@ngrx/entity 6.0.1 → 7.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/bundles/entity.umd.js +419 -369
  2. package/bundles/entity.umd.js.map +1 -1
  3. package/bundles/entity.umd.min.js +2 -2
  4. package/bundles/entity.umd.min.js.map +1 -1
  5. package/entity.metadata.json +1 -1
  6. package/esm2015/index.js +3 -3
  7. package/esm2015/public_api.js +3 -3
  8. package/esm2015/src/create_adapter.js +8 -5
  9. package/esm2015/src/entity_state.js +2 -2
  10. package/esm2015/src/index.js +3 -2
  11. package/esm2015/src/models.js +113 -54
  12. package/esm2015/src/sorted_state_adapter.js +64 -23
  13. package/esm2015/src/state_adapter.js +10 -8
  14. package/esm2015/src/state_selectors.js +10 -6
  15. package/esm2015/src/unsorted_state_adapter.js +65 -23
  16. package/esm2015/src/utils.js +21 -0
  17. package/esm5/index.js +1 -1
  18. package/esm5/src/create_adapter.js +11 -8
  19. package/esm5/src/entity_state.js +1 -1
  20. package/esm5/src/index.js +2 -1
  21. package/esm5/src/models.js +1 -1
  22. package/esm5/src/sorted_state_adapter.js +18 -6
  23. package/esm5/src/state_adapter.js +11 -8
  24. package/esm5/src/state_selectors.js +1 -1
  25. package/esm5/src/unsorted_state_adapter.js +26 -7
  26. package/esm5/src/utils.js +10 -0
  27. package/fesm2015/entity.js +181 -69
  28. package/fesm2015/entity.js.map +1 -1
  29. package/fesm5/entity.js +86 -36
  30. package/fesm5/entity.js.map +1 -1
  31. package/migrations/6_0_0/index.js +3 -3
  32. package/package.json +4 -4
  33. package/schematics-core/index.d.ts +6 -6
  34. package/schematics-core/index.js +5 -3
  35. package/schematics-core/utility/ast-utils.js +13 -11
  36. package/schematics-core/utility/change.js +1 -1
  37. package/schematics-core/utility/config.js +1 -1
  38. package/schematics-core/utility/find-module.js +2 -2
  39. package/schematics-core/utility/ngrx-utils.d.ts +1 -1
  40. package/schematics-core/utility/ngrx-utils.js +12 -12
  41. package/schematics-core/utility/package.js +1 -1
  42. package/schematics-core/utility/parse-name.js +1 -1
  43. package/schematics-core/utility/project.d.ts +12 -0
  44. package/schematics-core/utility/project.js +12 -3
  45. package/schematics-core/utility/route-utils.js +1 -1
  46. package/schematics-core/utility/strings.js +1 -1
  47. package/schematics-core/utility/update.js +1 -1
  48. package/src/index.d.ts +1 -1
  49. package/src/models.d.ts +16 -20
  50. package/src/state_adapter.d.ts +1 -1
  51. package/src/utils.d.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"entity.js","sources":["../../../../../../../../../../execroot/ngrx/bazel-out/darwin-fastbuild/bin/modules/entity/npm_package.es6/modules/entity/src/entity_state.js","../../../../../../../../../../execroot/ngrx/bazel-out/darwin-fastbuild/bin/modules/entity/npm_package.es6/modules/entity/src/state_selectors.js","../../../../../../../../../../execroot/ngrx/bazel-out/darwin-fastbuild/bin/modules/entity/npm_package.es6/modules/entity/src/state_adapter.js","../../../../../../../../../../execroot/ngrx/bazel-out/darwin-fastbuild/bin/modules/entity/npm_package.es6/modules/entity/src/unsorted_state_adapter.js","../../../../../../../../../../execroot/ngrx/bazel-out/darwin-fastbuild/bin/modules/entity/npm_package.es6/modules/entity/src/sorted_state_adapter.js","../../../../../../../../../../execroot/ngrx/bazel-out/darwin-fastbuild/bin/modules/entity/npm_package.es6/modules/entity/src/create_adapter.js","../../../../../../../../../../execroot/ngrx/bazel-out/darwin-fastbuild/bin/modules/entity/npm_package.es6/modules/entity/src/index.js","../../../../../../../../../../execroot/ngrx/bazel-out/darwin-fastbuild/bin/modules/entity/npm_package.es6/modules/entity/public_api.js","../../../../../../../../../../execroot/ngrx/bazel-out/darwin-fastbuild/bin/modules/entity/npm_package.es6/modules/entity/index.js","../../../../../../../../../../execroot/ngrx/bazel-out/darwin-fastbuild/bin/modules/entity/npm_package.es6/modules/entity/entity.js"],"sourcesContent":["/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @template V\n * @return {?}\n */\nexport function getInitialEntityState() {\n return {\n ids: [],\n entities: {},\n };\n}\n/**\n * @template V\n * @return {?}\n */\nexport function createInitialStateFactory() {\n /**\n * @param {?=} additionalState\n * @return {?}\n */\n function getInitialState(additionalState = {}) {\n return Object.assign(getInitialEntityState(), additionalState);\n }\n return { getInitialState };\n}\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5X3N0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9lbnRpdHkvc3JjL2VudGl0eV9zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUVBLE1BQU07SUFDSixNQUFNLENBQUM7UUFDTCxHQUFHLEVBQUUsRUFBRTtRQUNQLFFBQVEsRUFBRSxFQUFFO0tBQ2IsQ0FBQztDQUNIOzs7OztBQUVELE1BQU07Ozs7O0lBS0oseUJBQXlCLGtCQUF1QixFQUFFO1FBQ2hELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsZUFBZSxDQUFDLENBQUM7S0FDaEU7SUFFRCxNQUFNLENBQUMsRUFBRSxlQUFlLEVBQUUsQ0FBQztDQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eVN0YXRlIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5pdGlhbEVudGl0eVN0YXRlPFY+KCk6IEVudGl0eVN0YXRlPFY+IHtcbiAgcmV0dXJuIHtcbiAgICBpZHM6IFtdLFxuICAgIGVudGl0aWVzOiB7fSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUluaXRpYWxTdGF0ZUZhY3Rvcnk8Vj4oKSB7XG4gIGZ1bmN0aW9uIGdldEluaXRpYWxTdGF0ZSgpOiBFbnRpdHlTdGF0ZTxWPjtcbiAgZnVuY3Rpb24gZ2V0SW5pdGlhbFN0YXRlPFMgZXh0ZW5kcyBvYmplY3Q+KFxuICAgIGFkZGl0aW9uYWxTdGF0ZTogU1xuICApOiBFbnRpdHlTdGF0ZTxWPiAmIFM7XG4gIGZ1bmN0aW9uIGdldEluaXRpYWxTdGF0ZShhZGRpdGlvbmFsU3RhdGU6IGFueSA9IHt9KTogYW55IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihnZXRJbml0aWFsRW50aXR5U3RhdGUoKSwgYWRkaXRpb25hbFN0YXRlKTtcbiAgfVxuXG4gIHJldHVybiB7IGdldEluaXRpYWxTdGF0ZSB9O1xufVxuIl19","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nimport { createSelector } from '@ngrx/store';\n/**\n * @template T\n * @return {?}\n */\nexport function createSelectorsFactory() {\n /**\n * @param {?=} selectState\n * @return {?}\n */\n function getSelectors(selectState) {\n const /** @type {?} */ selectIds = (state) => state.ids;\n const /** @type {?} */ selectEntities = (state) => state.entities;\n const /** @type {?} */ selectAll = createSelector(selectIds, selectEntities, (ids, entities) => ids.map((id) => (/** @type {?} */ (entities))[id]));\n const /** @type {?} */ selectTotal = createSelector(selectIds, ids => ids.length);\n if (!selectState) {\n return {\n selectIds,\n selectEntities,\n selectAll,\n selectTotal,\n };\n }\n return {\n selectIds: createSelector(selectState, selectIds),\n selectEntities: createSelector(selectState, selectEntities),\n selectAll: createSelector(selectState, selectAll),\n selectTotal: createSelector(selectState, selectTotal),\n };\n }\n return { getSelectors };\n}\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVfc2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9lbnRpdHkvc3JjL3N0YXRlX3NlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7QUFHN0MsTUFBTTs7Ozs7SUFLSixzQkFDRSxXQUE0QztRQUU1Qyx1QkFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDNUMsdUJBQU0sY0FBYyxHQUFHLENBQUMsS0FBcUIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUNqRSx1QkFBTSxTQUFTLEdBQUcsY0FBYyxDQUM5QixTQUFTLEVBQ1QsY0FBYyxFQUNkLENBQUMsR0FBUSxFQUFFLFFBQXVCLEVBQU8sRUFBRSxDQUN6QyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBTyxFQUFFLEVBQUUsQ0FBQyxtQkFBQyxRQUFlLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUM5QyxDQUFDO1FBRUYsdUJBQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFakUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sQ0FBQztnQkFDTCxTQUFTO2dCQUNULGNBQWM7Z0JBQ2QsU0FBUztnQkFDVCxXQUFXO2FBQ1osQ0FBQztTQUNIO1FBRUQsTUFBTSxDQUFDO1lBQ0wsU0FBUyxFQUFFLGNBQWMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDO1lBQ2pELGNBQWMsRUFBRSxjQUFjLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQztZQUMzRCxTQUFTLEVBQUUsY0FBYyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUM7WUFDakQsV0FBVyxFQUFFLGNBQWMsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO1NBQ3RELENBQUM7S0FDSDtJQUVELE1BQU0sQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDO0NBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlU2VsZWN0b3IgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBFbnRpdHlTdGF0ZSwgRW50aXR5U2VsZWN0b3JzLCBEaWN0aW9uYXJ5IH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VsZWN0b3JzRmFjdG9yeTxUPigpIHtcbiAgZnVuY3Rpb24gZ2V0U2VsZWN0b3JzKCk6IEVudGl0eVNlbGVjdG9yczxULCBFbnRpdHlTdGF0ZTxUPj47XG4gIGZ1bmN0aW9uIGdldFNlbGVjdG9yczxWPihcbiAgICBzZWxlY3RTdGF0ZTogKHN0YXRlOiBWKSA9PiBFbnRpdHlTdGF0ZTxUPlxuICApOiBFbnRpdHlTZWxlY3RvcnM8VCwgVj47XG4gIGZ1bmN0aW9uIGdldFNlbGVjdG9ycyhcbiAgICBzZWxlY3RTdGF0ZT86IChzdGF0ZTogYW55KSA9PiBFbnRpdHlTdGF0ZTxUPlxuICApOiBFbnRpdHlTZWxlY3RvcnM8VCwgYW55PiB7XG4gICAgY29uc3Qgc2VsZWN0SWRzID0gKHN0YXRlOiBhbnkpID0+IHN0YXRlLmlkcztcbiAgICBjb25zdCBzZWxlY3RFbnRpdGllcyA9IChzdGF0ZTogRW50aXR5U3RhdGU8VD4pID0+IHN0YXRlLmVudGl0aWVzO1xuICAgIGNvbnN0IHNlbGVjdEFsbCA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgc2VsZWN0SWRzLFxuICAgICAgc2VsZWN0RW50aXRpZXMsXG4gICAgICAoaWRzOiBUW10sIGVudGl0aWVzOiBEaWN0aW9uYXJ5PFQ+KTogYW55ID0+XG4gICAgICAgIGlkcy5tYXAoKGlkOiBhbnkpID0+IChlbnRpdGllcyBhcyBhbnkpW2lkXSlcbiAgICApO1xuXG4gICAgY29uc3Qgc2VsZWN0VG90YWwgPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RJZHMsIGlkcyA9PiBpZHMubGVuZ3RoKTtcblxuICAgIGlmICghc2VsZWN0U3RhdGUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNlbGVjdElkcyxcbiAgICAgICAgc2VsZWN0RW50aXRpZXMsXG4gICAgICAgIHNlbGVjdEFsbCxcbiAgICAgICAgc2VsZWN0VG90YWwsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzZWxlY3RJZHM6IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFN0YXRlLCBzZWxlY3RJZHMpLFxuICAgICAgc2VsZWN0RW50aXRpZXM6IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFN0YXRlLCBzZWxlY3RFbnRpdGllcyksXG4gICAgICBzZWxlY3RBbGw6IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFN0YXRlLCBzZWxlY3RBbGwpLFxuICAgICAgc2VsZWN0VG90YWw6IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFN0YXRlLCBzZWxlY3RUb3RhbCksXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7IGdldFNlbGVjdG9ycyB9O1xufVxuIl19","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/** @enum {number} */\nconst DidMutate = {\n EntitiesOnly: 0,\n Both: 1,\n None: 2,\n};\nexport { DidMutate };\nDidMutate[DidMutate.EntitiesOnly] = \"EntitiesOnly\";\nDidMutate[DidMutate.Both] = \"Both\";\nDidMutate[DidMutate.None] = \"None\";\n/**\n * @template V, R\n * @param {?} mutator\n * @return {?}\n */\nexport function createStateOperator(mutator) {\n return function operation(arg, state) {\n const /** @type {?} */ clonedEntityState = {\n ids: [...state.ids],\n entities: Object.assign({}, state.entities),\n };\n const /** @type {?} */ didMutate = mutator(arg, clonedEntityState);\n if (didMutate === DidMutate.Both) {\n return Object.assign({}, state, clonedEntityState);\n }\n if (didMutate === DidMutate.EntitiesOnly) {\n return Object.assign({}, state, { entities: clonedEntityState.entities });\n }\n return state;\n };\n}\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVfYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZW50aXR5L3NyYy9zdGF0ZV9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQSxNQUFNLDhCQUNKLE9BQTRDO0lBRTVDLE1BQU0sQ0FBQyxtQkFBNkMsR0FBTSxFQUFFLEtBQVU7UUFDcEUsdUJBQU0saUJBQWlCLEdBQW1CO1lBQ3hDLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUNuQixRQUFRLG9CQUFPLEtBQUssQ0FBQyxRQUFRLENBQUU7U0FDaEMsQ0FBQztRQUVGLHVCQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFFbEQsRUFBRSxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztTQUNwRDtRQUVELEVBQUUsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUN6QyxNQUFNLG1CQUNELEtBQUssSUFDUixRQUFRLEVBQUUsaUJBQWlCLENBQUMsUUFBUSxJQUNwQztTQUNIO1FBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQztLQUNkLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eVN0YXRlLCBFbnRpdHlTdGF0ZUFkYXB0ZXIgfSBmcm9tICcuL21vZGVscyc7XG5cbmV4cG9ydCBlbnVtIERpZE11dGF0ZSB7XG4gIEVudGl0aWVzT25seSxcbiAgQm90aCxcbiAgTm9uZSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN0YXRlT3BlcmF0b3I8ViwgUj4oXG4gIG11dGF0b3I6IChhcmc6IFIsIHN0YXRlOiBFbnRpdHlTdGF0ZTxWPikgPT4gRGlkTXV0YXRlXG4pOiBFbnRpdHlTdGF0ZTxWPjtcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdGF0ZU9wZXJhdG9yPFYsIFI+KFxuICBtdXRhdG9yOiAoYXJnOiBhbnksIHN0YXRlOiBhbnkpID0+IERpZE11dGF0ZVxuKTogYW55IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIG9wZXJhdGlvbjxTIGV4dGVuZHMgRW50aXR5U3RhdGU8Vj4+KGFyZzogUiwgc3RhdGU6IGFueSk6IFMge1xuICAgIGNvbnN0IGNsb25lZEVudGl0eVN0YXRlOiBFbnRpdHlTdGF0ZTxWPiA9IHtcbiAgICAgIGlkczogWy4uLnN0YXRlLmlkc10sXG4gICAgICBlbnRpdGllczogeyAuLi5zdGF0ZS5lbnRpdGllcyB9LFxuICAgIH07XG5cbiAgICBjb25zdCBkaWRNdXRhdGUgPSBtdXRhdG9yKGFyZywgY2xvbmVkRW50aXR5U3RhdGUpO1xuXG4gICAgaWYgKGRpZE11dGF0ZSA9PT0gRGlkTXV0YXRlLkJvdGgpIHtcbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgY2xvbmVkRW50aXR5U3RhdGUpO1xuICAgIH1cblxuICAgIGlmIChkaWRNdXRhdGUgPT09IERpZE11dGF0ZS5FbnRpdGllc09ubHkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBlbnRpdGllczogY2xvbmVkRW50aXR5U3RhdGUuZW50aXRpZXMsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfTtcbn1cbiJdfQ==","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nimport { createStateOperator, DidMutate } from './state_adapter';\n/**\n * @template T\n * @param {?} selectId\n * @return {?}\n */\nexport function createUnsortedStateAdapter(selectId) {\n /**\n * @param {?} entity\n * @param {?} state\n * @return {?}\n */\n function addOneMutably(entity, state) {\n const /** @type {?} */ key = selectId(entity);\n if (key in state.entities) {\n return DidMutate.None;\n }\n state.ids.push(key);\n state.entities[key] = entity;\n return DidMutate.Both;\n }\n /**\n * @param {?} entities\n * @param {?} state\n * @return {?}\n */\n function addManyMutably(entities, state) {\n let /** @type {?} */ didMutate = false;\n for (const /** @type {?} */ entity of entities) {\n didMutate = addOneMutably(entity, state) !== DidMutate.None || didMutate;\n }\n return didMutate ? DidMutate.Both : DidMutate.None;\n }\n /**\n * @param {?} entities\n * @param {?} state\n * @return {?}\n */\n function addAllMutably(entities, state) {\n state.ids = [];\n state.entities = {};\n addManyMutably(entities, state);\n return DidMutate.Both;\n }\n /**\n * @param {?} key\n * @param {?} state\n * @return {?}\n */\n function removeOneMutably(key, state) {\n return removeManyMutably([key], state);\n }\n /**\n * @param {?} keys\n * @param {?} state\n * @return {?}\n */\n function removeManyMutably(keys, state) {\n const /** @type {?} */ didMutate = keys\n .filter(key => key in state.entities)\n .map(key => delete state.entities[key]).length > 0;\n if (didMutate) {\n state.ids = state.ids.filter((id) => id in state.entities);\n }\n return didMutate ? DidMutate.Both : DidMutate.None;\n }\n /**\n * @template S\n * @param {?} state\n * @return {?}\n */\n function removeAll(state) {\n return Object.assign({}, state, {\n ids: [],\n entities: {},\n });\n }\n /**\n * @param {?} keys\n * @param {?} update\n * @param {?} state\n * @return {?}\n */\n function takeNewKey(keys, update, state) {\n const /** @type {?} */ original = state.entities[update.id];\n const /** @type {?} */ updated = Object.assign({}, original, update.changes);\n const /** @type {?} */ newKey = selectId(updated);\n const /** @type {?} */ hasNewKey = newKey !== update.id;\n if (hasNewKey) {\n keys[update.id] = newKey;\n delete state.entities[update.id];\n }\n state.entities[newKey] = updated;\n return hasNewKey;\n }\n /**\n * @param {?} update\n * @param {?} state\n * @return {?}\n */\n function updateOneMutably(update, state) {\n return updateManyMutably([update], state);\n }\n /**\n * @param {?} updates\n * @param {?} state\n * @return {?}\n */\n function updateManyMutably(updates, state) {\n const /** @type {?} */ newKeys = {};\n updates = updates.filter(update => update.id in state.entities);\n const /** @type {?} */ didMutateEntities = updates.length > 0;\n if (didMutateEntities) {\n const /** @type {?} */ didMutateIds = updates.filter(update => takeNewKey(newKeys, update, state)).length > 0;\n if (didMutateIds) {\n state.ids = state.ids.map((id) => newKeys[id] || id);\n return DidMutate.Both;\n }\n else {\n return DidMutate.EntitiesOnly;\n }\n }\n return DidMutate.None;\n }\n /**\n * @param {?} entity\n * @param {?} state\n * @return {?}\n */\n function upsertOneMutably(entity, state) {\n return upsertManyMutably([entity], state);\n }\n /**\n * @param {?} entities\n * @param {?} state\n * @return {?}\n */\n function upsertManyMutably(entities, state) {\n const /** @type {?} */ added = [];\n const /** @type {?} */ updated = [];\n for (const /** @type {?} */ entity of entities) {\n const /** @type {?} */ id = selectId(entity);\n if (id in state.entities) {\n updated.push({ id, changes: entity });\n }\n else {\n added.push(entity);\n }\n }\n const /** @type {?} */ didMutateByUpdated = updateManyMutably(updated, state);\n const /** @type {?} */ didMutateByAdded = addManyMutably(added, state);\n switch (true) {\n case didMutateByAdded === DidMutate.None &&\n didMutateByUpdated === DidMutate.None:\n return DidMutate.None;\n case didMutateByAdded === DidMutate.Both ||\n didMutateByUpdated === DidMutate.Both:\n return DidMutate.Both;\n default:\n return DidMutate.EntitiesOnly;\n }\n }\n return {\n removeAll,\n addOne: createStateOperator(addOneMutably),\n addMany: createStateOperator(addManyMutably),\n addAll: createStateOperator(addAllMutably),\n updateOne: createStateOperator(updateOneMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n upsertMany: createStateOperator(upsertManyMutably),\n removeOne: createStateOperator(removeOneMutably),\n removeMany: createStateOperator(removeManyMutably),\n };\n}\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zb3J0ZWRfc3RhdGVfYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZW50aXR5L3NyYy91bnNvcnRlZF9zdGF0ZV9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQUtqRSxNQUFNLHFDQUF3QyxRQUF1Qjs7Ozs7O0lBSW5FLHVCQUF1QixNQUFXLEVBQUUsS0FBVTtRQUM1Qyx1QkFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTdCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUMxQixNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztTQUN2QjtRQUVELEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBRTdCLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO0tBQ3ZCOzs7Ozs7SUFHRCx3QkFBd0IsUUFBZSxFQUFFLEtBQVU7UUFDakQscUJBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV0QixHQUFHLENBQUMsQ0FBQyx1QkFBTSxNQUFNLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztZQUM5QixTQUFTLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsS0FBSyxTQUFTLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQztTQUMxRTtRQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7S0FDcEQ7Ozs7OztJQUdELHVCQUF1QixRQUFlLEVB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LCBFbnRpdHlTdGF0ZUFkYXB0ZXIsIElkU2VsZWN0b3IsIFVwZGF0ZSB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IGNyZWF0ZVN0YXRlT3BlcmF0b3IsIERpZE11dGF0ZSB9IGZyb20gJy4vc3RhdGVfYWRhcHRlcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVVbnNvcnRlZFN0YXRlQWRhcHRlcjxUPihcbiAgc2VsZWN0SWQ6IElkU2VsZWN0b3I8VD5cbik6IEVudGl0eVN0YXRlQWRhcHRlcjxUPjtcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVVbnNvcnRlZFN0YXRlQWRhcHRlcjxUPihzZWxlY3RJZDogSWRTZWxlY3RvcjxUPik6IGFueSB7XG4gIHR5cGUgUiA9IEVudGl0eVN0YXRlPFQ+O1xuXG4gIGZ1bmN0aW9uIGFkZE9uZU11dGFibHkoZW50aXR5OiBULCBzdGF0ZTogUik6IERpZE11dGF0ZTtcbiAgZnVuY3Rpb24gYWRkT25lTXV0YWJseShlbnRpdHk6IGFueSwgc3RhdGU6IGFueSk6IERpZE11dGF0ZSB7XG4gICAgY29uc3Qga2V5ID0gc2VsZWN0SWQoZW50aXR5KTtcblxuICAgIGlmIChrZXkgaW4gc3RhdGUuZW50aXRpZXMpIHtcbiAgICAgIHJldHVybiBEaWRNdXRhdGUuTm9uZTtcbiAgICB9XG5cbiAgICBzdGF0ZS5pZHMucHVzaChrZXkpO1xuICAgIHN0YXRlLmVudGl0aWVzW2tleV0gPSBlbnRpdHk7XG5cbiAgICByZXR1cm4gRGlkTXV0YXRlLkJvdGg7XG4gIH1cblxuICBmdW5jdGlvbiBhZGRNYW55TXV0YWJseShlbnRpdGllczogVFtdLCBzdGF0ZTogUik6IERpZE11dGF0ZTtcbiAgZnVuY3Rpb24gYWRkTWFueU11dGFibHkoZW50aXRpZXM6IGFueVtdLCBzdGF0ZTogYW55KTogRGlkTXV0YXRlIHtcbiAgICBsZXQgZGlkTXV0YXRlID0gZmFsc2U7XG5cbiAgICBmb3IgKGNvbnN0IGVudGl0eSBvZiBlbnRpdGllcykge1xuICAgICAgZGlkTXV0YXRlID0gYWRkT25lTXV0YWJseShlbnRpdHksIHN0YXRlKSAhPT0gRGlkTXV0YXRlLk5vbmUgfHwgZGlkTXV0YXRlO1xuICAgIH1cblxuICAgIHJldHVybiBkaWRNdXRhdGUgPyBEaWRNdXRhdGUuQm90aCA6IERpZE11dGF0ZS5Ob25lO1xuICB9XG5cbiAgZnVuY3Rpb24gYWRkQWxsTXV0YWJseShlbnRpdGllczogVFtdLCBzdGF0ZTogUik6IERpZE11dGF0ZTtcbiAgZnVuY3Rpb24gYWRkQWxsTXV0YWJseShlbnRpdGllczogYW55W10sIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIHN0YXRlLmlkcyA9IFtdO1xuICAgIHN0YXRlLmVudGl0aWVzID0ge307XG5cbiAgICBhZGRNYW55TXV0YWJseShlbnRpdGllcywgc3RhdGUpO1xuXG4gICAgcmV0dXJuIERpZE11dGF0ZS5Cb3RoO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVtb3ZlT25lTXV0YWJseShrZXk6IFQsIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiByZW1vdmVPbmVNdXRhYmx5KGtleTogYW55LCBzdGF0ZTogYW55KTogRGlkTXV0YXRlIHtcbiAgICByZXR1cm4gcmVtb3ZlTWFueU11dGFibHkoW2tleV0sIHN0YXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbW92ZU1hbnlNdXRhYmx5KGtleXM6IFRbXSwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHJlbW92ZU1hbnlNdXRhYmx5KGtleXM6IGFueVtdLCBzdGF0ZTogYW55KTogRGlkTXV0YXRlIHtcbiAgICBjb25zdCBkaWRNdXRhdGUgPVxuICAgICAga2V5c1xuICAgICAgICAuZmlsdGVyKGtleSA9PiBrZXkgaW4gc3RhdGUuZW50aXRpZXMpXG4gICAgICAgIC5tYXAoa2V5ID0+IGRlbGV0ZSBzdGF0ZS5lbnRpdGllc1trZXldKS5sZW5ndGggPiAwO1xuXG4gICAgaWYgKGRpZE11dGF0ZSkge1xuICAgICAgc3RhdGUuaWRzID0gc3RhdGUuaWRzLmZpbHRlcigoaWQ6IGFueSkgPT4gaWQgaW4gc3RhdGUuZW50aXRpZXMpO1xuICAgIH1cblxuICAgIHJldHVybiBkaWRNdXRhdGUgPyBEaWRNdXRhdGUuQm90aCA6IERpZE11dGF0ZS5Ob25lO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVtb3ZlQWxsPFMgZXh0ZW5kcyBSPihzdGF0ZTogUyk6IFM7XG4gIGZ1bmN0aW9uIHJlbW92ZUFsbDxTIGV4dGVuZHMgUj4oc3RhdGU6IGFueSk6IFMge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwge1xuICAgICAgaWRzOiBbXSxcbiAgICAgIGVudGl0aWVzOiB7fSxcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRha2VOZXdLZXkoXG4gICAga2V5czogeyBbaWQ6IHN0cmluZ106IHN0cmluZyB9LFxuICAgIHVwZGF0ZTogVXBkYXRlPFQ+LFxuICAgIHN0YXRlOiBSXG4gICk6IHZvaWQ7XG4gIGZ1bmN0aW9uIHRha2VOZXdLZXkoXG4gICAga2V5czogeyBbaWQ6IHN0cmluZ106IGFueSB9LFxuICAgIHVwZGF0ZTogVXBkYXRlPFQ+LFxuICAgIHN0YXRlOiBhbnlcbiAgKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgb3JpZ2luYWwgPSBzdGF0ZS5lbnRpdGllc1t1cGRhdGUuaWRdO1xuICAgIGNvbnN0IHVwZGF0ZWQ6IFQgPSBPYmplY3QuYXNzaWduKHt9LCBvcmlnaW5hbCwgdXBkYXRlLmNoYW5nZXMpO1xuICAgIGNvbnN0IG5ld0tleSA9IHNlbGVjdElkKHVwZGF0ZWQpO1xuICAgIGNvbnN0IGhhc05ld0tleSA9IG5ld0tleSAhPT0gdXBkYXRlLmlkO1xuXG4gICAgaWYgKGhhc05ld0tleSkge1xuICAgICAga2V5c1t1cGRhdGUuaWRdID0gbmV3S2V5O1xuICAgICAgZGVsZXRlIHN0YXRlLmVudGl0aWVzW3VwZGF0ZS5pZF07XG4gICAgfVxuXG4gICAgc3RhdGUuZW50aXRpZXNbbmV3S2V5XSA9IHVwZGF0ZWQ7XG5cbiAgICByZXR1cm4gaGFzTmV3S2V5O1xuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlT25lTXV0YWJseSh1cGRhdGU6IFVwZGF0ZTxUPiwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHVwZGF0ZU9uZU11dGFibHkodXBkYXRlOiBhbnksIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIHJldHVybiB1cGRhdGVNYW55TXV0YWJseShbdXBkYXRlXSwgc3RhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlTWFueU11dGFibHkodXBkYXRlczogVXBkYXRlPFQ+W10sIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiB1cGRhdGVNYW55TXV0YWJseSh1cGRhdGVzOiBhbnlbXSwgc3RhdGU6IGFueSk6IERpZE11dGF0ZSB7XG4gICAgY29uc3QgbmV3S2V5czogeyBbaWQ6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cbiAgICB1cGRhdGVzID0gdXBkYXRlcy5maWx0ZXIodXBkYXRlID0+IHVwZGF0ZS5pZCBpbiBzdGF0ZS5lbnRpdGllcyk7XG5cbiAgICBjb25zdCBkaWRNdXRhdGVFbnRpdGllcyA9IHVwZGF0ZXMubGVuZ3RoID4gMDtcblxuICAgIGlmIChkaWRNdXRhdGVFbnRpdGllcykge1xuICAgICAgY29uc3QgZGlkTXV0YXRlSWRzID1cbiAgICAgICAgdXBkYXRlcy5maWx0ZXIodXBkYXRlID0+IHRha2VOZXdLZXkobmV3S2V5cywgdXBkYXRlLCBzdGF0ZSkpLmxlbmd0aCA+IDA7XG5cbiAgICAgIGlmIChkaWRNdXRhdGVJZHMpIHtcbiAgICAgICAgc3RhdGUuaWRzID0gc3RhdGUuaWRzLm1hcCgoaWQ6IGFueSkgPT4gbmV3S2V5c1tpZF0gfHwgaWQpO1xuICAgICAgICByZXR1cm4gRGlkTXV0YXRlLkJvdGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gRGlkTXV0YXRlLkVudGl0aWVzT25seTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gRGlkTXV0YXRlLk5vbmU7XG4gIH1cblxuICBmdW5jdGlvbiB1cHNlcnRPbmVNdXRhYmx5KGVudGl0eTogVCwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHVwc2VydE9uZU11dGFibHkoZW50aXR5OiBhbnksIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIHJldHVybiB1cHNlcnRNYW55TXV0YWJseShbZW50aXR5XSwgc3RhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBzZXJ0TWFueU11dGFibHkoZW50aXRpZXM6IFRbXSwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHVwc2VydE1hbnlNdXRhYmx5KGVudGl0aWVzOiBhbnlbXSwgc3RhdGU6IGFueSk6IERpZE11dGF0ZSB7XG4gICAgY29uc3QgYWRkZWQ6IGFueVtdID0gW107XG4gICAgY29uc3QgdXBkYXRlZDogYW55W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgZW50aXR5IG9mIGVudGl0aWVzKSB7XG4gICAgICBjb25zdCBpZCA9IHNlbGVjdElkKGVudGl0eSk7XG4gICAgICBpZiAoaWQgaW4gc3RhdGUuZW50aXRpZXMpIHtcbiAgICAgICAgdXBkYXRlZC5wdXNoKHsgaWQsIGNoYW5nZXM6IGVudGl0eSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFkZGVkLnB1c2goZW50aXR5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkaWRNdXRhdGVCeVVwZGF0ZWQgPSB1cGRhdGVNYW55TXV0YWJseSh1cGRhdGVkLCBzdGF0ZSk7XG4gICAgY29uc3QgZGlkTXV0YXRlQnlBZGRlZCA9IGFkZE1hbnlNdXRhYmx5KGFkZGVkLCBzdGF0ZSk7XG5cbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgZGlkTXV0YXRlQnlBZGRlZCA9PT0gRGlkTXV0YXRlLk5vbmUgJiZcbiAgICAgICAgZGlkTXV0YXRlQnlVcGRhdGVkID09PSBEaWRNdXRhdGUuTm9uZTpcbiAgICAgICAgcmV0dXJuIERpZE11dGF0ZS5Ob25lO1xuICAgICAgY2FzZSBkaWRNdXRhdGVCeUFkZGVkID09PSBEaWRNdXRhdGUuQm90aCB8fFxuICAgICAgICBkaWRNdXRhdGVCeVVwZGF0ZWQgPT09IERpZE11dGF0ZS5Cb3RoOlxuICAgICAgICByZXR1cm4gRGlkTXV0YXRlLkJvdGg7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gRGlkTXV0YXRlLkVudGl0aWVzT25seTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHJlbW92ZUFsbCxcbiAgICBhZGRPbmU6IGNyZWF0ZVN0YXRlT3BlcmF0b3IoYWRkT25lTXV0YWJseSksXG4gICAgYWRkTWFueTogY3JlYXRlU3RhdGVPcGVyYXRvcihhZGRNYW55TXV0YWJseSksXG4gICAgYWRkQWxsOiBjcmVhdGVTdGF0ZU9wZXJhdG9yKGFkZEFsbE11dGFibHkpLFxuICAgIHVwZGF0ZU9uZTogY3JlYXRlU3RhdGVPcGVyYXRvcih1cGRhdGVPbmVNdXRhYmx5KSxcbiAgICB1cGRhdGVNYW55OiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHVwZGF0ZU1hbnlNdXRhYmx5KSxcbiAgICB1cHNlcnRPbmU6IGNyZWF0ZVN0YXRlT3BlcmF0b3IodXBzZXJ0T25lTXV0YWJseSksXG4gICAgdXBzZXJ0TWFueTogY3JlYXRlU3RhdGVPcGVyYXRvcih1cHNlcnRNYW55TXV0YWJseSksXG4gICAgcmVtb3ZlT25lOiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHJlbW92ZU9uZU11dGFibHkpLFxuICAgIHJlbW92ZU1hbnk6IGNyZWF0ZVN0YXRlT3BlcmF0b3IocmVtb3ZlTWFueU11dGFibHkpLFxuICB9O1xufVxuIl19","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nimport { createStateOperator, DidMutate } from './state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\n/**\n * @template T\n * @param {?} selectId\n * @param {?} sort\n * @return {?}\n */\nexport function createSortedStateAdapter(selectId, sort) {\n const { removeOne, removeMany, removeAll } = createUnsortedStateAdapter(selectId);\n /**\n * @param {?} entity\n * @param {?} state\n * @return {?}\n */\n function addOneMutably(entity, state) {\n return addManyMutably([entity], state);\n }\n /**\n * @param {?} newModels\n * @param {?} state\n * @return {?}\n */\n function addManyMutably(newModels, state) {\n const /** @type {?} */ models = newModels.filter(model => !(selectId(model) in state.entities));\n if (models.length === 0) {\n return DidMutate.None;\n }\n else {\n merge(models, state);\n return DidMutate.Both;\n }\n }\n /**\n * @param {?} models\n * @param {?} state\n * @return {?}\n */\n function addAllMutably(models, state) {\n state.entities = {};\n state.ids = [];\n addManyMutably(models, state);\n return DidMutate.Both;\n }\n /**\n * @param {?} update\n * @param {?} state\n * @return {?}\n */\n function updateOneMutably(update, state) {\n return updateManyMutably([update], state);\n }\n /**\n * @param {?} models\n * @param {?} update\n * @param {?} state\n * @return {?}\n */\n function takeUpdatedModel(models, update, state) {\n if (!(update.id in state.entities)) {\n return false;\n }\n const /** @type {?} */ original = state.entities[update.id];\n const /** @type {?} */ updated = Object.assign({}, original, update.changes);\n const /** @type {?} */ newKey = selectId(updated);\n delete state.entities[update.id];\n models.push(updated);\n return newKey !== update.id;\n }\n /**\n * @param {?} updates\n * @param {?} state\n * @return {?}\n */\n function updateManyMutably(updates, state) {\n const /** @type {?} */ models = [];\n const /** @type {?} */ didMutateIds = updates.filter(update => takeUpdatedModel(models, update, state)).length >\n 0;\n if (models.length === 0) {\n return DidMutate.None;\n }\n else {\n const /** @type {?} */ originalIds = state.ids;\n const /** @type {?} */ updatedIndexes = [];\n state.ids = state.ids.filter((id, index) => {\n if (id in state.entities) {\n return true;\n }\n else {\n updatedIndexes.push(index);\n return false;\n }\n });\n merge(models, state);\n if (!didMutateIds &&\n updatedIndexes.every((i) => state.ids[i] === originalIds[i])) {\n return DidMutate.EntitiesOnly;\n }\n else {\n return DidMutate.Both;\n }\n }\n }\n /**\n * @param {?} entity\n * @param {?} state\n * @return {?}\n */\n function upsertOneMutably(entity, state) {\n return upsertManyMutably([entity], state);\n }\n /**\n * @param {?} entities\n * @param {?} state\n * @return {?}\n */\n function upsertManyMutably(entities, state) {\n const /** @type {?} */ added = [];\n const /** @type {?} */ updated = [];\n for (const /** @type {?} */ entity of entities) {\n const /** @type {?} */ id = selectId(entity);\n if (id in state.entities) {\n updated.push({ id, changes: entity });\n }\n else {\n added.push(entity);\n }\n }\n const /** @type {?} */ didMutateByUpdated = updateManyMutably(updated, state);\n const /** @type {?} */ didMutateByAdded = addManyMutably(added, state);\n switch (true) {\n case didMutateByAdded === DidMutate.None &&\n didMutateByUpdated === DidMutate.None:\n return DidMutate.None;\n case didMutateByAdded === DidMutate.Both ||\n didMutateByUpdated === DidMutate.Both:\n return DidMutate.Both;\n default:\n return DidMutate.EntitiesOnly;\n }\n }\n /**\n * @param {?} models\n * @param {?} state\n * @return {?}\n */\n function merge(models, state) {\n models.sort(sort);\n const /** @type {?} */ ids = [];\n let /** @type {?} */ i = 0;\n let /** @type {?} */ j = 0;\n while (i < models.length && j < state.ids.length) {\n const /** @type {?} */ model = models[i];\n const /** @type {?} */ modelId = selectId(model);\n const /** @type {?} */ entityId = state.ids[j];\n const /** @type {?} */ entity = state.entities[entityId];\n if (sort(model, entity) <= 0) {\n ids.push(modelId);\n i++;\n }\n else {\n ids.push(entityId);\n j++;\n }\n }\n if (i < models.length) {\n state.ids = ids.concat(models.slice(i).map(selectId));\n }\n else {\n state.ids = ids.concat(state.ids.slice(j));\n }\n models.forEach((model, i) => {\n state.entities[selectId(model)] = model;\n });\n }\n return {\n removeOne,\n removeMany,\n removeAll,\n addOne: createStateOperator(addOneMutably),\n updateOne: createStateOperator(updateOneMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n addAll: createStateOperator(addAllMutably),\n addMany: createStateOperator(addManyMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertMany: createStateOperator(upsertManyMutably),\n };\n}\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGVkX3N0YXRlX2FkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2VudGl0eS9zcmMvc29ydGVkX3N0YXRlX2FkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQVFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQU10RSxNQUFNLG1DQUFzQyxRQUFhLEVBQUUsSUFBUztJQUdsRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRywwQkFBMEIsQ0FDckUsUUFBUSxDQUNULENBQUM7Ozs7OztJQUdGLHVCQUF1QixNQUFXLEVBQUUsS0FBVTtRQUM1QyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDeEM7Ozs7OztJQUdELHdCQUF3QixTQUFnQixFQUFFLEtBQVU7UUFDbEQsdUJBQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQzdCLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQzlDLENBQUM7UUFFRixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7U0FDdkI7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7U0FDdkI7S0FDRjs7Ozs7O0lBR0QsdUJBQXVCLE1BQWEsRUFBRSxLQUFVO1FBQzlDLEtBQUssQ0FBQyxR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LEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzVDO1FBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUN6QyxDQUFDLENBQUM7S0FDSjtJQUVELE1BQU0sQ0FBQztRQUNMLFNBQVM7UUFDVCxVQUFVO1FBQ1YsU0FBUztRQUNULE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxhQUFhLENBQUM7UUFDMUMsU0FBUyxFQUFFLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDO1FBQ2hELFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoRCxNQUFNLEVBQUUsbUJBQW1CLENBQUMsYUFBYSxDQUFDO1FBQzFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxjQUFjLENBQUM7UUFDNUMsVUFBVSxFQUFFLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDO1FBQ2xELFVBQVUsRUFBRSxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQztLQUNuRCxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbnRpdHlTdGF0ZSxcbiAgSWRTZWxlY3RvcixcbiAgQ29tcGFyZXIsXG4gIERpY3Rpb25hcnksXG4gIEVudGl0eVN0YXRlQWRhcHRlcixcbiAgVXBkYXRlLFxufSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBjcmVhdGVTdGF0ZU9wZXJhdG9yLCBEaWRNdXRhdGUgfSBmcm9tICcuL3N0YXRlX2FkYXB0ZXInO1xuaW1wb3J0IHsgY3JlYXRlVW5zb3J0ZWRTdGF0ZUFkYXB0ZXIgfSBmcm9tICcuL3Vuc29ydGVkX3N0YXRlX2FkYXB0ZXInO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU29ydGVkU3RhdGVBZGFwdGVyPFQ+KFxuICBzZWxlY3RJZDogSWRTZWxlY3RvcjxUPixcbiAgc29ydDogQ29tcGFyZXI8VD5cbik6IEVudGl0eVN0YXRlQWRhcHRlcjxUPjtcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTb3J0ZWRTdGF0ZUFkYXB0ZXI8VD4oc2VsZWN0SWQ6IGFueSwgc29ydDogYW55KTogYW55IHtcbiAgdHlwZSBSID0gRW50aXR5U3RhdGU8VD47XG5cbiAgY29uc3QgeyByZW1vdmVPbmUsIHJlbW92ZU1hbnksIHJlbW92ZUFsbCB9ID0gY3JlYXRlVW5zb3J0ZWRTdGF0ZUFkYXB0ZXIoXG4gICAgc2VsZWN0SWRcbiAgKTtcblxuICBmdW5jdGlvbiBhZGRPbmVNdXRhYmx5KGVudGl0eTogVCwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIGFkZE9uZU11dGFibHkoZW50aXR5OiBhbnksIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIHJldHVybiBhZGRNYW55TXV0YWJseShbZW50aXR5XSwgc3RhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gYWRkTWFueU11dGFibHkobmV3TW9kZWxzOiBUW10sIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiBhZGRNYW55TXV0YWJseShuZXdNb2RlbHM6IGFueVtdLCBzdGF0ZTogYW55KTogRGlkTXV0YXRlIHtcbiAgICBjb25zdCBtb2RlbHMgPSBuZXdNb2RlbHMuZmlsdGVyKFxuICAgICAgbW9kZWwgPT4gIShzZWxlY3RJZChtb2RlbCkgaW4gc3RhdGUuZW50aXRpZXMpXG4gICAgKTtcblxuICAgIGlmIChtb2RlbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gRGlkTXV0YXRlLk5vbmU7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1lcmdlKG1vZGVscywgc3RhdGUpO1xuICAgICAgcmV0dXJuIERpZE11dGF0ZS5Cb3RoO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGFkZEFsbE11dGFibHkobW9kZWxzOiBUW10sIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiBhZGRBbGxNdXRhYmx5KG1vZGVsczogYW55W10sIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIHN0YXRlLmVudGl0aWVzID0ge307XG4gICAgc3RhdGUuaWRzID0gW107XG5cbiAgICBhZGRNYW55TXV0YWJseShtb2RlbHMsIHN0YXRlKTtcblxuICAgIHJldHVybiBEaWRNdXRhdGUuQm90aDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHVwZGF0ZU9uZU11dGFibHkodXBkYXRlOiBVcGRhdGU8VD4sIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiB1cGRhdGVPbmVNdXRhYmx5KHVwZGF0ZTogYW55LCBzdGF0ZTogYW55KTogRGlkTXV0YXRlIHtcbiAgICByZXR1cm4gdXBkYXRlTWFueU11dGFibHkoW3VwZGF0ZV0sIHN0YXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRha2VVcGRhdGVkTW9kZWwobW9kZWxzOiBUW10sIHVwZGF0ZTogVXBkYXRlPFQ+LCBzdGF0ZTogUik6IGJvb2xlYW47XG4gIGZ1bmN0aW9uIHRha2VVcGRhdGVkTW9kZWwobW9kZWxzOiBhbnlbXSwgdXBkYXRlOiBhbnksIHN0YXRlOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAoISh1cGRhdGUuaWQgaW4gc3RhdGUuZW50aXRpZXMpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qgb3JpZ2luYWwgPSBzdGF0ZS5lbnRpdGllc1t1cGRhdGUuaWRdO1xuICAgIGNvbnN0IHVwZGF0ZWQgPSBPYmplY3QuYXNzaWduKHt9LCBvcmlnaW5hbCwgdXBkYXRlLmNoYW5nZXMpO1xuICAgIGNvbnN0IG5ld0tleSA9IHNlbGVjdElkKHVwZGF0ZWQpO1xuXG4gICAgZGVsZXRlIHN0YXRlLmVudGl0aWVzW3VwZGF0ZS5pZF07XG5cbiAgICBtb2RlbHMucHVzaCh1cGRhdGVkKTtcblxuICAgIHJldHVybiBuZXdLZXkgIT09IHVwZGF0ZS5pZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHVwZGF0ZU1hbnlNdXRhYmx5KHVwZGF0ZXM6IFVwZGF0ZTxUPltdLCBzdGF0ZTogUik6IERpZE11dGF0ZTtcbiAgZnVuY3Rpb24gdXBkYXRlTWFueU11dGFibHkodXBkYXRlczogYW55W10sIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIGNvbnN0IG1vZGVsczogVFtdID0gW107XG5cbiAgICBjb25zdCBkaWRNdXRhdGVJZHMgPVxuICAgICAgdXBkYXRlcy5maWx0ZXIodXBkYXRlID0+IHRha2VVcGRhdGVkTW9kZWwobW9kZWxzLCB1cGRhdGUsIHN0YXRlKSkubGVuZ3RoID5cbiAgICAgIDA7XG5cbiAgICBpZiAobW9kZWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIERpZE11dGF0ZS5Ob25lO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBvcmlnaW5hbElkcyA9IHN0YXRlLmlkcztcbiAgICAgIGNvbnN0IHVwZGF0ZWRJbmRleGVzOiBhbnlbXSA9IFtdO1xuICAgICAgc3RhdGUuaWRzID0gc3RhdGUuaWRzLmZpbHRlcigoaWQ6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBpZiAoaWQgaW4gc3RhdGUuZW50aXRpZXMpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1cGRhdGVkSW5kZXhlcy5wdXNoKGluZGV4KTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBtZXJnZShtb2RlbHMsIHN0YXRlKTtcblxuICAgICAgaWYgKFxuICAgICAgICAhZGlkTXV0YXRlSWRzICYmXG4gICAgICAgIHVwZGF0ZWRJbmRleGVzLmV2ZXJ5KChpOiBudW1iZXIpID0+IHN0YXRlLmlkc1tpXSA9PT0gb3JpZ2luYWxJZHNbaV0pXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIERpZE11dGF0ZS5FbnRpdGllc09ubHk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gRGlkTXV0YXRlLkJvdGg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gdXBzZXJ0T25lTXV0YWJseShlbnRpdHk6IFQsIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiB1cHNlcnRPbmVNdXRhYmx5KGVudGl0eTogYW55LCBzdGF0ZTogYW55KTogRGlkTXV0YXRlIHtcbiAgICByZXR1cm4gdXBzZXJ0TWFueU11dGFibHkoW2VudGl0eV0sIHN0YXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHVwc2VydE1hbnlNdXRhYmx5KGVudGl0aWVzOiBUW10sIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiB1cHNlcnRNYW55TXV0YWJseShlbnRpdGllczogYW55W10sIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIGNvbnN0IGFkZGVkOiBhbnlbXSA9IFtdO1xuICAgIGNvbnN0IHVwZGF0ZWQ6IGFueVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGVudGl0eSBvZiBlbnRpdGllcykge1xuICAgICAgY29uc3QgaWQgPSBzZWxlY3RJZChlbnRpdHkpO1xuICAgICAgaWYgKGlkIGluIHN0YXRlLmVudGl0aWVzKSB7XG4gICAgICAgIHVwZGF0ZWQucHVzaCh7IGlkLCBjaGFuZ2VzOiBlbnRpdHkgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhZGRlZC5wdXNoKGVudGl0eSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZGlkTXV0YXRlQnlVcGRhdGVkID0gdXBkYXRlTWFueU11dGFibHkodXBkYXRlZCwgc3RhdGUpO1xuICAgIGNvbnN0IGRpZE11dGF0ZUJ5QWRkZWQgPSBhZGRNYW55TXV0YWJseShhZGRlZCwgc3RhdGUpO1xuXG4gICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICBjYXNlIGRpZE11dGF0ZUJ5QWRkZWQgPT09IERpZE11dGF0ZS5Ob25lICYmXG4gICAgICAgIGRpZE11dGF0ZUJ5VXBkYXRlZCA9PT0gRGlkTXV0YXRlLk5vbmU6XG4gICAgICAgIHJldHVybiBEaWRNdXRhdGUuTm9uZTtcbiAgICAgIGNhc2UgZGlkTXV0YXRlQnlBZGRlZCA9PT0gRGlkTXV0YXRlLkJvdGggfHxcbiAgICAgICAgZGlkTXV0YXRlQnlVcGRhdGVkID09PSBEaWRNdXRhdGUuQm90aDpcbiAgICAgICAgcmV0dXJuIERpZE11dGF0ZS5Cb3RoO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIERpZE11dGF0ZS5FbnRpdGllc09ubHk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gbWVyZ2UobW9kZWxzOiBUW10sIHN0YXRlOiBSKTogdm9pZDtcbiAgZnVuY3Rpb24gbWVyZ2UobW9kZWxzOiBhbnlbXSwgc3RhdGU6IGFueSk6IHZvaWQge1xuICAgIG1vZGVscy5zb3J0KHNvcnQpO1xuXG4gICAgY29uc3QgaWRzOiBhbnlbXSA9IFtdO1xuXG4gICAgbGV0IGkgPSAwO1xuICAgIGxldCBqID0gMDtcblxuICAgIHdoaWxlIChpIDwgbW9kZWxzLmxlbmd0aCAmJiBqIDwgc3RhdGUuaWRzLmxlbmd0aCkge1xuICAgICAgY29uc3QgbW9kZWwgPSBtb2RlbHNbaV07XG4gICAgICBjb25zdCBtb2RlbElkID0gc2VsZWN0SWQobW9kZWwpO1xuICAgICAgY29uc3QgZW50aXR5SWQgPSBzdGF0ZS5pZHNbal07XG4gICAgICBjb25zdCBlbnRpdHkgPSBzdGF0ZS5lbnRpdGllc1tlbnRpdHlJZF07XG5cbiAgICAgIGlmIChzb3J0KG1vZGVsLCBlbnRpdHkpIDw9IDApIHtcbiAgICAgICAgaWRzLnB1c2gobW9kZWxJZCk7XG4gICAgICAgIGkrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlkcy5wdXNoKGVudGl0eUlkKTtcbiAgICAgICAgaisrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpIDwgbW9kZWxzLmxlbmd0aCkge1xuICAgICAgc3RhdGUuaWRzID0gaWRzLmNvbmNhdChtb2RlbHMuc2xpY2UoaSkubWFwKHNlbGVjdElkKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXRlLmlkcyA9IGlkcy5jb25jYXQoc3RhdGUuaWRzLnNsaWNlKGopKTtcbiAgICB9XG5cbiAgICBtb2RlbHMuZm9yRWFjaCgobW9kZWwsIGkpID0+IHtcbiAgICAgIHN0YXRlLmVudGl0aWVzW3NlbGVjdElkKG1vZGVsKV0gPSBtb2RlbDtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcmVtb3ZlT25lLFxuICAgIHJlbW92ZU1hbnksXG4gICAgcmVtb3ZlQWxsLFxuICAgIGFkZE9uZTogY3JlYXRlU3RhdGVPcGVyYXRvcihhZGRPbmVNdXRhYmx5KSxcbiAgICB1cGRhdGVPbmU6IGNyZWF0ZVN0YXRlT3BlcmF0b3IodXBkYXRlT25lTXV0YWJseSksXG4gICAgdXBzZXJ0T25lOiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHVwc2VydE9uZU11dGFibHkpLFxuICAgIGFkZEFsbDogY3JlYXRlU3RhdGVPcGVyYXRvcihhZGRBbGxNdXRhYmx5KSxcbiAgICBhZGRNYW55OiBjcmVhdGVTdGF0ZU9wZXJhdG9yKGFkZE1hbnlNdXRhYmx5KSxcbiAgICB1cGRhdGVNYW55OiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHVwZGF0ZU1hbnlNdXRhYmx5KSxcbiAgICB1cHNlcnRNYW55OiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHVwc2VydE1hbnlNdXRhYmx5KSxcbiAgfTtcbn1cbiJdfQ==","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nimport { createInitialStateFactory } from './entity_state';\nimport { createSelectorsFactory } from './state_selectors';\nimport { createSortedStateAdapter } from './sorted_state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\n/**\n * @template T\n * @param {?=} options\n * @return {?}\n */\nexport function createEntityAdapter(options = {}) {\n const { selectId, sortComparer } = Object.assign({ sortComparer: false, selectId: (instance) => instance.id }, options);\n const /** @type {?} */ stateFactory = createInitialStateFactory();\n const /** @type {?} */ selectorsFactory = createSelectorsFactory();\n const /** @type {?} */ stateAdapter = sortComparer\n ? createSortedStateAdapter(selectId, sortComparer)\n : createUnsortedStateAdapter(selectId);\n return Object.assign({ selectId,\n sortComparer }, stateFactory, selectorsFactory, stateAdapter);\n}\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX2FkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2VudGl0eS9zcmMvY3JlYXRlX2FkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQU9BLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7QUFFdEUsTUFBTSw4QkFDSixVQUdJLEVBQUU7SUFFTixNQUFNLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxtQkFDOUIsWUFBWSxFQUFFLEtBQUssRUFDbkIsUUFBUSxFQUFFLENBQUMsUUFBYSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUNyQyxPQUFPLENBQ1gsQ0FBQztJQUVGLHVCQUFNLFlBQVksR0FBRyx5QkFBeUIsRUFBSyxDQUFDO0lBQ3BELHVCQUFNLGdCQUFnQixHQUFHLHNCQUFzQixFQUFLLENBQUM7SUFDckQsdUJBQU0sWUFBWSxHQUFHLFlBQVk7UUFDL0IsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUM7UUFDbEQsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXpDLE1BQU0saUJBQ0osUUFBUTtRQUNSLFlBQVksSUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLFlBQVksRUFDZjtDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlU2VsZWN0b3IgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBFbnRpdHlEZWZpbml0aW9uLFxuICBDb21wYXJlcixcbiAgSWRTZWxlY3RvcixcbiAgRW50aXR5QWRhcHRlcixcbn0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgY3JlYXRlSW5pdGlhbFN0YXRlRmFjdG9yeSB9IGZyb20gJy4vZW50aXR5X3N0YXRlJztcbmltcG9ydCB7IGNyZWF0ZVNlbGVjdG9yc0ZhY3RvcnkgfSBmcm9tICcuL3N0YXRlX3NlbGVjdG9ycyc7XG5pbXBvcnQgeyBjcmVhdGVTb3J0ZWRTdGF0ZUFkYXB0ZXIgfSBmcm9tICcuL3NvcnRlZF9zdGF0ZV9hZGFwdGVyJztcbmltcG9ydCB7IGNyZWF0ZVVuc29ydGVkU3RhdGVBZGFwdGVyIH0gZnJvbSAnLi91bnNvcnRlZF9zdGF0ZV9hZGFwdGVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVudGl0eUFkYXB0ZXI8VD4oXG4gIG9wdGlvbnM6IHtcbiAgICBzZWxlY3RJZD86IElkU2VsZWN0b3I8VD47XG4gICAgc29ydENvbXBhcmVyPzogZmFsc2UgfCBDb21wYXJlcjxUPjtcbiAgfSA9IHt9XG4pOiBFbnRpdHlBZGFwdGVyPFQ+IHtcbiAgY29uc3QgeyBzZWxlY3RJZCwgc29ydENvbXBhcmVyIH06IEVudGl0eURlZmluaXRpb248VD4gPSB7XG4gICAgc29ydENvbXBhcmVyOiBmYWxzZSxcbiAgICBzZWxlY3RJZDogKGluc3RhbmNlOiBhbnkpID0+IGluc3RhbmNlLmlkLFxuICAgIC4uLm9wdGlvbnMsXG4gIH07XG5cbiAgY29uc3Qgc3RhdGVGYWN0b3J5ID0gY3JlYXRlSW5pdGlhbFN0YXRlRmFjdG9yeTxUPigpO1xuICBjb25zdCBzZWxlY3RvcnNGYWN0b3J5ID0gY3JlYXRlU2VsZWN0b3JzRmFjdG9yeTxUPigpO1xuICBjb25zdCBzdGF0ZUFkYXB0ZXIgPSBzb3J0Q29tcGFyZXJcbiAgICA/IGNyZWF0ZVNvcnRlZFN0YXRlQWRhcHRlcihzZWxlY3RJZCwgc29ydENvbXBhcmVyKVxuICAgIDogY3JlYXRlVW5zb3J0ZWRTdGF0ZUFkYXB0ZXIoc2VsZWN0SWQpO1xuXG4gIHJldHVybiB7XG4gICAgc2VsZWN0SWQsXG4gICAgc29ydENvbXBhcmVyLFxuICAgIC4uLnN0YXRlRmFjdG9yeSxcbiAgICAuLi5zZWxlY3RvcnNGYWN0b3J5LFxuICAgIC4uLnN0YXRlQWRhcHRlcixcbiAgfTtcbn1cbiJdfQ==","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nexport { createEntityAdapter } from './create_adapter';\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2VudGl0eS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgY3JlYXRlRW50aXR5QWRhcHRlciB9IGZyb20gJy4vY3JlYXRlX2FkYXB0ZXInO1xuZXhwb3J0IHsgRW50aXR5U3RhdGUsIEVudGl0eUFkYXB0ZXIsIFVwZGF0ZSB9IGZyb20gJy4vbW9kZWxzJztcbiJdfQ==","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nexport { createEntityAdapter } from './src/index';\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZW50aXR5L3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLG9DQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3JjL2luZGV4JztcbiJdfQ==","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\nexport { createEntityAdapter } from './public_api';\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2VudGl0eS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFNQSxvQ0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERPIE5PVCBFRElUXG4gKlxuICogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGF0IGJ1aWxkXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9lbnRpdHkvZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity.js","sources":["../src/entity_state.ts","../src/state_selectors.ts","../src/state_adapter.ts","../src/utils.ts","../src/unsorted_state_adapter.ts","../src/sorted_state_adapter.ts","../src/create_adapter.ts","../src/models.ts","../entity.ts"],"sourcesContent":["import { EntityState } from './models';\n\nexport function getInitialEntityState<V>(): EntityState<V> {\n return {\n ids: [],\n entities: {},\n };\n}\n\nexport function createInitialStateFactory<V>() {\n function getInitialState(): EntityState<V>;\n function getInitialState<S extends object>(\n additionalState: S\n ): EntityState<V> & S;\n function getInitialState(additionalState: any = {}): any {\n return Object.assign(getInitialEntityState(), additionalState);\n }\n\n return { getInitialState };\n}\n","import { createSelector } from '@ngrx/store';\nimport { EntityState, EntitySelectors, Dictionary } from './models';\n\nexport function createSelectorsFactory<T>() {\n function getSelectors(): EntitySelectors<T, EntityState<T>>;\n function getSelectors<V>(\n selectState: (state: V) => EntityState<T>\n ): EntitySelectors<T, V>;\n function getSelectors(\n selectState?: (state: any) => EntityState<T>\n ): EntitySelectors<T, any> {\n const selectIds = (state: any) => state.ids;\n const selectEntities = (state: EntityState<T>) => state.entities;\n const selectAll = createSelector(\n selectIds,\n selectEntities,\n (ids: T[], entities: Dictionary<T>): any =>\n ids.map((id: any) => (entities as any)[id])\n );\n\n const selectTotal = createSelector(selectIds, ids => ids.length);\n\n if (!selectState) {\n return {\n selectIds,\n selectEntities,\n selectAll,\n selectTotal,\n };\n }\n\n return {\n selectIds: createSelector(selectState, selectIds),\n selectEntities: createSelector(selectState, selectEntities),\n selectAll: createSelector(selectState, selectAll),\n selectTotal: createSelector(selectState, selectTotal),\n };\n }\n\n return { getSelectors };\n}\n","import { EntityState } from './models';\n\nexport enum DidMutate {\n EntitiesOnly,\n Both,\n None,\n}\n\nexport function createStateOperator<V, R>(\n mutator: (arg: R, state: EntityState<V>) => DidMutate\n): EntityState<V>;\nexport function createStateOperator<V, R>(\n mutator: (arg: any, state: any) => DidMutate\n): any {\n return function operation<S extends EntityState<V>>(arg: R, state: any): S {\n const clonedEntityState: EntityState<V> = {\n ids: [...state.ids],\n entities: { ...state.entities },\n };\n\n const didMutate = mutator(arg, clonedEntityState);\n\n if (didMutate === DidMutate.Both) {\n return Object.assign({}, state, clonedEntityState);\n }\n\n if (didMutate === DidMutate.EntitiesOnly) {\n return {\n ...state,\n entities: clonedEntityState.entities,\n };\n }\n\n return state;\n };\n}\n","import { isDevMode } from '@angular/core';\nimport { IdSelector } from './models';\n\nexport function selectIdValue<T>(entity: T, selectId: IdSelector<T>) {\n const key = selectId(entity);\n\n if (isDevMode() && key === undefined) {\n console.warn(\n '@ngrx/entity: The entity passed to the `selectId` implementation returned undefined.',\n 'You should probably provide your own `selectId` implementation.',\n 'The entity that was passed:',\n entity,\n 'The `selectId` implementation:',\n selectId.toString()\n );\n }\n\n return key;\n}\n","import {\n EntityState,\n EntityStateAdapter,\n IdSelector,\n Update,\n Predicate,\n EntityMap,\n} from './models';\nimport { createStateOperator, DidMutate } from './state_adapter';\nimport { selectIdValue } from './utils';\n\nexport function createUnsortedStateAdapter<T>(\n selectId: IdSelector<T>\n): EntityStateAdapter<T>;\nexport function createUnsortedStateAdapter<T>(selectId: IdSelector<T>): any {\n type R = EntityState<T>;\n\n function addOneMutably(entity: T, state: R): DidMutate;\n function addOneMutably(entity: any, state: any): DidMutate {\n const key = selectIdValue(entity, selectId);\n\n if (key in state.entities) {\n return DidMutate.None;\n }\n\n state.ids.push(key);\n state.entities[key] = entity;\n\n return DidMutate.Both;\n }\n\n function addManyMutably(entities: T[], state: R): DidMutate;\n function addManyMutably(entities: any[], state: any): DidMutate {\n let didMutate = false;\n\n for (const entity of entities) {\n didMutate = addOneMutably(entity, state) !== DidMutate.None || didMutate;\n }\n\n return didMutate ? DidMutate.Both : DidMutate.None;\n }\n\n function addAllMutably(entities: T[], state: R): DidMutate;\n function addAllMutably(entities: any[], state: any): DidMutate {\n state.ids = [];\n state.entities = {};\n\n addManyMutably(entities, state);\n\n return DidMutate.Both;\n }\n\n function removeOneMutably(key: T, state: R): DidMutate;\n function removeOneMutably(key: any, state: any): DidMutate {\n return removeManyMutably([key], state);\n }\n\n function removeManyMutably(keys: T[], state: R): DidMutate;\n function removeManyMutably(predicate: Predicate<T>, state: R): DidMutate;\n function removeManyMutably(\n keysOrPredicate: any[] | Predicate<T>,\n state: any\n ): DidMutate {\n const keys =\n keysOrPredicate instanceof Array\n ? keysOrPredicate\n : state.ids.filter((key: any) => keysOrPredicate(state.entities[key]));\n\n const didMutate =\n keys\n .filter((key: any) => key in state.entities)\n .map((key: any) => delete state.entities[key]).length > 0;\n\n if (didMutate) {\n state.ids = state.ids.filter((id: any) => id in state.entities);\n }\n\n return didMutate ? DidMutate.Both : DidMutate.None;\n }\n\n function removeAll<S extends R>(state: S): S;\n function removeAll<S extends R>(state: any): S {\n return Object.assign({}, state, {\n ids: [],\n entities: {},\n });\n }\n\n function takeNewKey(\n keys: { [id: string]: string },\n update: Update<T>,\n state: R\n ): void;\n function takeNewKey(\n keys: { [id: string]: any },\n update: Update<T>,\n state: any\n ): boolean {\n const original = state.entities[update.id];\n const updated: T = Object.assign({}, original, update.changes);\n const newKey = selectIdValue(updated, selectId);\n const hasNewKey = newKey !== update.id;\n\n if (hasNewKey) {\n keys[update.id] = newKey;\n delete state.entities[update.id];\n }\n\n state.entities[newKey] = updated;\n\n return hasNewKey;\n }\n\n function updateOneMutably(update: Update<T>, state: R): DidMutate;\n function updateOneMutably(update: any, state: any): DidMutate {\n return updateManyMutably([update], state);\n }\n\n function updateManyMutably(updates: Update<T>[], state: R): DidMutate;\n function updateManyMutably(updates: any[], state: any): DidMutate {\n const newKeys: { [id: string]: string } = {};\n\n updates = updates.filter(update => update.id in state.entities);\n\n const didMutateEntities = updates.length > 0;\n\n if (didMutateEntities) {\n const didMutateIds =\n updates.filter(update => takeNewKey(newKeys, update, state)).length > 0;\n\n if (didMutateIds) {\n state.ids = state.ids.map((id: any) => newKeys[id] || id);\n return DidMutate.Both;\n } else {\n return DidMutate.EntitiesOnly;\n }\n }\n\n return DidMutate.None;\n }\n\n function mapMutably(map: EntityMap<T>, state: R): DidMutate;\n function mapMutably(map: any, state: any): DidMutate {\n const changes: Update<T>[] = state.ids.reduce(\n (changes: any[], id: string | number) => {\n const change = map(state.entities[id]);\n if (change !== state.entities[id]) {\n changes.push({ id, changes: change });\n }\n return changes;\n },\n []\n );\n const updates = changes.filter(({ id }) => id in state.entities);\n\n return updateManyMutably(updates, state);\n }\n\n function upsertOneMutably(entity: T, state: R): DidMutate;\n function upsertOneMutably(entity: any, state: any): DidMutate {\n return upsertManyMutably([entity], state);\n }\n\n function upsertManyMutably(entities: T[], state: R): DidMutate;\n function upsertManyMutably(entities: any[], state: any): DidMutate {\n const added: any[] = [];\n const updated: any[] = [];\n\n for (const entity of entities) {\n const id = selectIdValue(entity, selectId);\n if (id in state.entities) {\n updated.push({ id, changes: entity });\n } else {\n added.push(entity);\n }\n }\n\n const didMutateByUpdated = updateManyMutably(updated, state);\n const didMutateByAdded = addManyMutably(added, state);\n\n switch (true) {\n case didMutateByAdded === DidMutate.None &&\n didMutateByUpdated === DidMutate.None:\n return DidMutate.None;\n case didMutateByAdded === DidMutate.Both ||\n didMutateByUpdated === DidMutate.Both:\n return DidMutate.Both;\n default:\n return DidMutate.EntitiesOnly;\n }\n }\n\n return {\n removeAll,\n addOne: createStateOperator(addOneMutably),\n addMany: createStateOperator(addManyMutably),\n addAll: createStateOperator(addAllMutably),\n updateOne: createStateOperator(updateOneMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n upsertMany: createStateOperator(upsertManyMutably),\n removeOne: createStateOperator(removeOneMutably),\n removeMany: createStateOperator(removeManyMutably),\n map: createStateOperator(mapMutably),\n };\n}\n","import {\n EntityState,\n IdSelector,\n Comparer,\n EntityStateAdapter,\n Update,\n EntityMap,\n} from './models';\nimport { createStateOperator, DidMutate } from './state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\nimport { selectIdValue } from './utils';\n\nexport function createSortedStateAdapter<T>(\n selectId: IdSelector<T>,\n sort: Comparer<T>\n): EntityStateAdapter<T>;\nexport function createSortedStateAdapter<T>(selectId: any, sort: any): any {\n type R = EntityState<T>;\n\n const { removeOne, removeMany, removeAll } = createUnsortedStateAdapter(\n selectId\n );\n\n function addOneMutably(entity: T, state: R): DidMutate;\n function addOneMutably(entity: any, state: any): DidMutate {\n return addManyMutably([entity], state);\n }\n\n function addManyMutably(newModels: T[], state: R): DidMutate;\n function addManyMutably(newModels: any[], state: any): DidMutate {\n const models = newModels.filter(\n model => !(selectIdValue(model, selectId) in state.entities)\n );\n\n if (models.length === 0) {\n return DidMutate.None;\n } else {\n merge(models, state);\n return DidMutate.Both;\n }\n }\n\n function addAllMutably(models: T[], state: R): DidMutate;\n function addAllMutably(models: any[], state: any): DidMutate {\n state.entities = {};\n state.ids = [];\n\n addManyMutably(models, state);\n\n return DidMutate.Both;\n }\n\n function updateOneMutably(update: Update<T>, state: R): DidMutate;\n function updateOneMutably(update: any, state: any): DidMutate {\n return updateManyMutably([update], state);\n }\n\n function takeUpdatedModel(models: T[], update: Update<T>, state: R): boolean;\n function takeUpdatedModel(models: any[], update: any, state: any): boolean {\n if (!(update.id in state.entities)) {\n return false;\n }\n\n const original = state.entities[update.id];\n const updated = Object.assign({}, original, update.changes);\n const newKey = selectIdValue(updated, selectId);\n\n delete state.entities[update.id];\n\n models.push(updated);\n\n return newKey !== update.id;\n }\n\n function updateManyMutably(updates: Update<T>[], state: R): DidMutate;\n function updateManyMutably(updates: any[], state: any): DidMutate {\n const models: T[] = [];\n\n const didMutateIds =\n updates.filter(update => takeUpdatedModel(models, update, state)).length >\n 0;\n\n if (models.length === 0) {\n return DidMutate.None;\n } else {\n const originalIds = state.ids;\n const updatedIndexes: any[] = [];\n state.ids = state.ids.filter((id: any, index: number) => {\n if (id in state.entities) {\n return true;\n } else {\n updatedIndexes.push(index);\n return false;\n }\n });\n\n merge(models, state);\n\n if (\n !didMutateIds &&\n updatedIndexes.every((i: number) => state.ids[i] === originalIds[i])\n ) {\n return DidMutate.EntitiesOnly;\n } else {\n return DidMutate.Both;\n }\n }\n }\n\n function mapMutably(map: EntityMap<T>, state: R): DidMutate;\n function mapMutably(updatesOrMap: any, state: any): DidMutate {\n const updates: Update<T>[] = state.ids.reduce(\n (changes: any[], id: string | number) => {\n const change = updatesOrMap(state.entities[id]);\n if (change !== state.entities[id]) {\n changes.push({ id, changes: change });\n }\n return changes;\n },\n []\n );\n\n return updateManyMutably(updates, state);\n }\n\n function upsertOneMutably(entity: T, state: R): DidMutate;\n function upsertOneMutably(entity: any, state: any): DidMutate {\n return upsertManyMutably([entity], state);\n }\n\n function upsertManyMutably(entities: T[], state: R): DidMutate;\n function upsertManyMutably(entities: any[], state: any): DidMutate {\n const added: any[] = [];\n const updated: any[] = [];\n\n for (const entity of entities) {\n const id = selectIdValue(entity, selectId);\n if (id in state.entities) {\n updated.push({ id, changes: entity });\n } else {\n added.push(entity);\n }\n }\n\n const didMutateByUpdated = updateManyMutably(updated, state);\n const didMutateByAdded = addManyMutably(added, state);\n\n switch (true) {\n case didMutateByAdded === DidMutate.None &&\n didMutateByUpdated === DidMutate.None:\n return DidMutate.None;\n case didMutateByAdded === DidMutate.Both ||\n didMutateByUpdated === DidMutate.Both:\n return DidMutate.Both;\n default:\n return DidMutate.EntitiesOnly;\n }\n }\n\n function merge(models: T[], state: R): void;\n function merge(models: any[], state: any): void {\n models.sort(sort);\n\n const ids: any[] = [];\n\n let i = 0;\n let j = 0;\n\n while (i < models.length && j < state.ids.length) {\n const model = models[i];\n const modelId = selectIdValue(model, selectId);\n const entityId = state.ids[j];\n const entity = state.entities[entityId];\n\n if (sort(model, entity) <= 0) {\n ids.push(modelId);\n i++;\n } else {\n ids.push(entityId);\n j++;\n }\n }\n\n if (i < models.length) {\n state.ids = ids.concat(models.slice(i).map(selectId));\n } else {\n state.ids = ids.concat(state.ids.slice(j));\n }\n\n models.forEach((model, i) => {\n state.entities[selectId(model)] = model;\n });\n }\n\n return {\n removeOne,\n removeMany,\n removeAll,\n addOne: createStateOperator(addOneMutably),\n updateOne: createStateOperator(updateOneMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n addAll: createStateOperator(addAllMutably),\n addMany: createStateOperator(addManyMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertMany: createStateOperator(upsertManyMutably),\n map: createStateOperator(mapMutably),\n };\n}\n","import { createSelector } from '@ngrx/store';\nimport {\n EntityDefinition,\n Comparer,\n IdSelector,\n EntityAdapter,\n} from './models';\nimport { createInitialStateFactory } from './entity_state';\nimport { createSelectorsFactory } from './state_selectors';\nimport { createSortedStateAdapter } from './sorted_state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\n\nexport function createEntityAdapter<T>(\n options: {\n selectId?: IdSelector<T>;\n sortComparer?: false | Comparer<T>;\n } = {}\n): EntityAdapter<T> {\n const { selectId, sortComparer }: EntityDefinition<T> = {\n sortComparer: false,\n selectId: (instance: any) => instance.id,\n ...options,\n };\n\n const stateFactory = createInitialStateFactory<T>();\n const selectorsFactory = createSelectorsFactory<T>();\n const stateAdapter = sortComparer\n ? createSortedStateAdapter(selectId, sortComparer)\n : createUnsortedStateAdapter(selectId);\n\n return {\n selectId,\n sortComparer,\n ...stateFactory,\n ...selectorsFactory,\n ...stateAdapter,\n };\n}\n","export type ComparerStr<T> = (a: T, b: T) => string;\nexport type ComparerNum<T> = (a: T, b: T) => number;\n\nexport type Comparer<T> = ComparerNum<T> | ComparerStr<T>;\n\nexport type IdSelectorStr<T> = (model: T) => string;\nexport type IdSelectorNum<T> = (model: T) => number;\n\nexport type IdSelector<T> = IdSelectorStr<T> | IdSelectorNum<T>;\n\nexport interface DictionaryNum<T> {\n [id: number]: T;\n}\n\nexport abstract class Dictionary<T> implements DictionaryNum<T> {\n [id: string]: T;\n}\n\nexport interface UpdateStr<T> {\n id: string;\n changes: Partial<T>;\n}\n\nexport interface UpdateNum<T> {\n id: number;\n changes: Partial<T>;\n}\n\nexport type Update<T> = UpdateStr<T> | UpdateNum<T>;\n\nexport type Predicate<T> = (entity: T) => boolean;\n\nexport type EntityMap<T> = (entity: T) => T;\n\nexport interface EntityState<T> {\n ids: string[] | number[];\n entities: Dictionary<T>;\n}\n\nexport interface EntityDefinition<T> {\n selectId: IdSelector<T>;\n sortComparer: false | Comparer<T>;\n}\n\nexport interface EntityStateAdapter<T> {\n addOne<S extends EntityState<T>>(entity: T, state: S): S;\n addMany<S extends EntityState<T>>(entities: T[], state: S): S;\n addAll<S extends EntityState<T>>(entities: T[], state: S): S;\n\n removeOne<S extends EntityState<T>>(key: string, state: S): S;\n removeOne<S extends EntityState<T>>(key: number, state: S): S;\n\n removeMany<S extends EntityState<T>>(keys: string[], state: S): S;\n removeMany<S extends EntityState<T>>(keys: number[], state: S): S;\n removeMany<S extends EntityState<T>>(predicate: Predicate<T>, state: S): S;\n\n removeAll<S extends EntityState<T>>(state: S): S;\n\n updateOne<S extends EntityState<T>>(update: Update<T>, state: S): S;\n updateMany<S extends EntityState<T>>(updates: Update<T>[], state: S): S;\n\n upsertOne<S extends EntityState<T>>(entity: T, state: S): S;\n upsertMany<S extends EntityState<T>>(entities: T[], state: S): S;\n\n map<S extends EntityState<T>>(map: EntityMap<T>, state: S): S;\n}\n\nexport interface EntitySelectors<T, V> {\n selectIds: (state: V) => string[] | number[];\n selectEntities: (state: V) => Dictionary<T>;\n selectAll: (state: V) => T[];\n selectTotal: (state: V) => number;\n}\n\nexport interface EntityAdapter<T> extends EntityStateAdapter<T> {\n selectId: IdSelector<T>;\n sortComparer: false | Comparer<T>;\n getInitialState(): EntityState<T>;\n getInitialState<S extends object>(state: S): EntityState<T> & S;\n getSelectors(): EntitySelectors<T, EntityState<T>>;\n getSelectors<V>(\n selectState: (state: V) => EntityState<T>\n ): EntitySelectors<T, V>;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/fesm5/entity.js CHANGED
@@ -1,9 +1,10 @@
1
1
  /**
2
- * @license NgRx 6.0.1
2
+ * @license NgRx 7.0.0-beta.0
3
3
  * (c) 2015-2018 Brandon Roberts, Mike Ryan, Rob Wormald, Victor Savkin
4
4
  * License: MIT
5
5
  */
6
6
  import { createSelector } from '@ngrx/store';
7
+ import { isDevMode } from '@angular/core';
7
8
 
8
9
  function getInitialEntityState() {
9
10
  return {
@@ -45,13 +46,16 @@ function createSelectorsFactory() {
45
46
  return { getSelectors: getSelectors };
46
47
  }
47
48
 
48
- var __assign$1 = (undefined && undefined.__assign) || Object.assign || function(t) {
49
- for (var s, i = 1, n = arguments.length; i < n; i++) {
50
- s = arguments[i];
51
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
52
- t[p] = s[p];
53
- }
54
- return t;
49
+ var __assign = (undefined && undefined.__assign) || function () {
50
+ __assign = Object.assign || function(t) {
51
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
52
+ s = arguments[i];
53
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
54
+ t[p] = s[p];
55
+ }
56
+ return t;
57
+ };
58
+ return __assign.apply(this, arguments);
55
59
  };
56
60
  var __read = (undefined && undefined.__read) || function (o, n) {
57
61
  var m = typeof Symbol === "function" && o[Symbol.iterator];
@@ -83,20 +87,28 @@ function createStateOperator(mutator) {
83
87
  return function operation(arg, state) {
84
88
  var clonedEntityState = {
85
89
  ids: __spread(state.ids),
86
- entities: __assign$1({}, state.entities),
90
+ entities: __assign({}, state.entities),
87
91
  };
88
92
  var didMutate = mutator(arg, clonedEntityState);
89
93
  if (didMutate === DidMutate.Both) {
90
94
  return Object.assign({}, state, clonedEntityState);
91
95
  }
92
96
  if (didMutate === DidMutate.EntitiesOnly) {
93
- return __assign$1({}, state, { entities: clonedEntityState.entities });
97
+ return __assign({}, state, { entities: clonedEntityState.entities });
94
98
  }
95
99
  return state;
96
100
  };
97
101
  }
98
102
 
99
- var __values$1 = (undefined && undefined.__values) || function (o) {
103
+ function selectIdValue(entity, selectId) {
104
+ var key = selectId(entity);
105
+ if (isDevMode() && key === undefined) {
106
+ console.warn('@ngrx/entity: The entity passed to the `selectId` implementation returned undefined.', 'You should probably provide your own `selectId` implementation.', 'The entity that was passed:', entity, 'The `selectId` implementation:', selectId.toString());
107
+ }
108
+ return key;
109
+ }
110
+
111
+ var __values = (undefined && undefined.__values) || function (o) {
100
112
  var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
101
113
  if (m) return m.call(o);
102
114
  return {
@@ -108,7 +120,7 @@ var __values$1 = (undefined && undefined.__values) || function (o) {
108
120
  };
109
121
  function createUnsortedStateAdapter(selectId) {
110
122
  function addOneMutably(entity, state) {
111
- var key = selectId(entity);
123
+ var key = selectIdValue(entity, selectId);
112
124
  if (key in state.entities) {
113
125
  return DidMutate.None;
114
126
  }
@@ -117,9 +129,10 @@ function createUnsortedStateAdapter(selectId) {
117
129
  return DidMutate.Both;
118
130
  }
119
131
  function addManyMutably(entities, state) {
132
+ var e_1, _a;
120
133
  var didMutate = false;
121
134
  try {
122
- for (var entities_1 = __values$1(entities), entities_1_1 = entities_1.next(); !entities_1_1.done; entities_1_1 = entities_1.next()) {
135
+ for (var entities_1 = __values(entities), entities_1_1 = entities_1.next(); !entities_1_1.done; entities_1_1 = entities_1.next()) {
123
136
  var entity = entities_1_1.value;
124
137
  didMutate = addOneMutably(entity, state) !== DidMutate.None || didMutate;
125
138
  }
@@ -132,7 +145,6 @@ function createUnsortedStateAdapter(selectId) {
132
145
  finally { if (e_1) throw e_1.error; }
133
146
  }
134
147
  return didMutate ? DidMutate.Both : DidMutate.None;
135
- var e_1, _a;
136
148
  }
137
149
  function addAllMutably(entities, state) {
138
150
  state.ids = [];
@@ -143,7 +155,10 @@ function createUnsortedStateAdapter(selectId) {
143
155
  function removeOneMutably(key, state) {
144
156
  return removeManyMutably([key], state);
145
157
  }
146
- function removeManyMutably(keys, state) {
158
+ function removeManyMutably(keysOrPredicate, state) {
159
+ var keys = keysOrPredicate instanceof Array
160
+ ? keysOrPredicate
161
+ : state.ids.filter(function (key) { return keysOrPredicate(state.entities[key]); });
147
162
  var didMutate = keys
148
163
  .filter(function (key) { return key in state.entities; })
149
164
  .map(function (key) { return delete state.entities[key]; }).length > 0;
@@ -161,7 +176,7 @@ function createUnsortedStateAdapter(selectId) {
161
176
  function takeNewKey(keys, update, state) {
162
177
  var original = state.entities[update.id];
163
178
  var updated = Object.assign({}, original, update.changes);
164
- var newKey = selectId(updated);
179
+ var newKey = selectIdValue(updated, selectId);
165
180
  var hasNewKey = newKey !== update.id;
166
181
  if (hasNewKey) {
167
182
  keys[update.id] = newKey;
@@ -189,16 +204,31 @@ function createUnsortedStateAdapter(selectId) {
189
204
  }
190
205
  return DidMutate.None;
191
206
  }
207
+ function mapMutably(map, state) {
208
+ var changes = state.ids.reduce(function (changes, id) {
209
+ var change = map(state.entities[id]);
210
+ if (change !== state.entities[id]) {
211
+ changes.push({ id: id, changes: change });
212
+ }
213
+ return changes;
214
+ }, []);
215
+ var updates = changes.filter(function (_a) {
216
+ var id = _a.id;
217
+ return id in state.entities;
218
+ });
219
+ return updateManyMutably(updates, state);
220
+ }
192
221
  function upsertOneMutably(entity, state) {
193
222
  return upsertManyMutably([entity], state);
194
223
  }
195
224
  function upsertManyMutably(entities, state) {
225
+ var e_2, _a;
196
226
  var added = [];
197
227
  var updated = [];
198
228
  try {
199
- for (var entities_2 = __values$1(entities), entities_2_1 = entities_2.next(); !entities_2_1.done; entities_2_1 = entities_2.next()) {
229
+ for (var entities_2 = __values(entities), entities_2_1 = entities_2.next(); !entities_2_1.done; entities_2_1 = entities_2.next()) {
200
230
  var entity = entities_2_1.value;
201
- var id = selectId(entity);
231
+ var id = selectIdValue(entity, selectId);
202
232
  if (id in state.entities) {
203
233
  updated.push({ id: id, changes: entity });
204
234
  }
@@ -226,7 +256,6 @@ function createUnsortedStateAdapter(selectId) {
226
256
  default:
227
257
  return DidMutate.EntitiesOnly;
228
258
  }
229
- var e_2, _a;
230
259
  }
231
260
  return {
232
261
  removeAll: removeAll,
@@ -239,10 +268,11 @@ function createUnsortedStateAdapter(selectId) {
239
268
  upsertMany: createStateOperator(upsertManyMutably),
240
269
  removeOne: createStateOperator(removeOneMutably),
241
270
  removeMany: createStateOperator(removeManyMutably),
271
+ map: createStateOperator(mapMutably),
242
272
  };
243
273
  }
244
274
 
245
- var __values = (undefined && undefined.__values) || function (o) {
275
+ var __values$1 = (undefined && undefined.__values) || function (o) {
246
276
  var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
247
277
  if (m) return m.call(o);
248
278
  return {
@@ -258,7 +288,7 @@ function createSortedStateAdapter(selectId, sort) {
258
288
  return addManyMutably([entity], state);
259
289
  }
260
290
  function addManyMutably(newModels, state) {
261
- var models = newModels.filter(function (model) { return !(selectId(model) in state.entities); });
291
+ var models = newModels.filter(function (model) { return !(selectIdValue(model, selectId) in state.entities); });
262
292
  if (models.length === 0) {
263
293
  return DidMutate.None;
264
294
  }
@@ -282,7 +312,7 @@ function createSortedStateAdapter(selectId, sort) {
282
312
  }
283
313
  var original = state.entities[update.id];
284
314
  var updated = Object.assign({}, original, update.changes);
285
- var newKey = selectId(updated);
315
+ var newKey = selectIdValue(updated, selectId);
286
316
  delete state.entities[update.id];
287
317
  models.push(updated);
288
318
  return newKey !== update.id;
@@ -316,16 +346,27 @@ function createSortedStateAdapter(selectId, sort) {
316
346
  }
317
347
  }
318
348
  }
349
+ function mapMutably(updatesOrMap, state) {
350
+ var updates = state.ids.reduce(function (changes, id) {
351
+ var change = updatesOrMap(state.entities[id]);
352
+ if (change !== state.entities[id]) {
353
+ changes.push({ id: id, changes: change });
354
+ }
355
+ return changes;
356
+ }, []);
357
+ return updateManyMutably(updates, state);
358
+ }
319
359
  function upsertOneMutably(entity, state) {
320
360
  return upsertManyMutably([entity], state);
321
361
  }
322
362
  function upsertManyMutably(entities, state) {
363
+ var e_1, _a;
323
364
  var added = [];
324
365
  var updated = [];
325
366
  try {
326
- for (var entities_1 = __values(entities), entities_1_1 = entities_1.next(); !entities_1_1.done; entities_1_1 = entities_1.next()) {
367
+ for (var entities_1 = __values$1(entities), entities_1_1 = entities_1.next(); !entities_1_1.done; entities_1_1 = entities_1.next()) {
327
368
  var entity = entities_1_1.value;
328
- var id = selectId(entity);
369
+ var id = selectIdValue(entity, selectId);
329
370
  if (id in state.entities) {
330
371
  updated.push({ id: id, changes: entity });
331
372
  }
@@ -353,7 +394,6 @@ function createSortedStateAdapter(selectId, sort) {
353
394
  default:
354
395
  return DidMutate.EntitiesOnly;
355
396
  }
356
- var e_1, _a;
357
397
  }
358
398
  function merge(models, state) {
359
399
  models.sort(sort);
@@ -362,7 +402,7 @@ function createSortedStateAdapter(selectId, sort) {
362
402
  var j = 0;
363
403
  while (i < models.length && j < state.ids.length) {
364
404
  var model = models[i];
365
- var modelId = selectId(model);
405
+ var modelId = selectIdValue(model, selectId);
366
406
  var entityId = state.ids[j];
367
407
  var entity = state.entities[entityId];
368
408
  if (sort(model, entity) <= 0) {
@@ -395,29 +435,39 @@ function createSortedStateAdapter(selectId, sort) {
395
435
  addMany: createStateOperator(addManyMutably),
396
436
  updateMany: createStateOperator(updateManyMutably),
397
437
  upsertMany: createStateOperator(upsertManyMutably),
438
+ map: createStateOperator(mapMutably),
398
439
  };
399
440
  }
400
441
 
401
- var __assign = (undefined && undefined.__assign) || Object.assign || function(t) {
402
- for (var s, i = 1, n = arguments.length; i < n; i++) {
403
- s = arguments[i];
404
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
405
- t[p] = s[p];
406
- }
407
- return t;
442
+ var __assign$1 = (undefined && undefined.__assign) || function () {
443
+ __assign$1 = Object.assign || function(t) {
444
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
445
+ s = arguments[i];
446
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
447
+ t[p] = s[p];
448
+ }
449
+ return t;
450
+ };
451
+ return __assign$1.apply(this, arguments);
408
452
  };
409
453
  function createEntityAdapter(options) {
410
454
  if (options === void 0) { options = {}; }
411
- var _a = __assign({ sortComparer: false, selectId: function (instance) { return instance.id; } }, options), selectId = _a.selectId, sortComparer = _a.sortComparer;
455
+ var _a = __assign$1({ sortComparer: false, selectId: function (instance) { return instance.id; } }, options), selectId = _a.selectId, sortComparer = _a.sortComparer;
412
456
  var stateFactory = createInitialStateFactory();
413
457
  var selectorsFactory = createSelectorsFactory();
414
458
  var stateAdapter = sortComparer
415
459
  ? createSortedStateAdapter(selectId, sortComparer)
416
460
  : createUnsortedStateAdapter(selectId);
417
- return __assign({ selectId: selectId,
461
+ return __assign$1({ selectId: selectId,
418
462
  sortComparer: sortComparer }, stateFactory, selectorsFactory, stateAdapter);
419
463
  }
420
464
 
465
+ var Dictionary = /** @class */ (function () {
466
+ function Dictionary() {
467
+ }
468
+ return Dictionary;
469
+ }());
470
+
421
471
  /**
422
472
  * DO NOT EDIT
423
473
  *
@@ -428,5 +478,5 @@ function createEntityAdapter(options) {
428
478
  * Generated bundle index. Do not edit.
429
479
  */
430
480
 
431
- export { createEntityAdapter };
481
+ export { createEntityAdapter, Dictionary };
432
482
  //# sourceMappingURL=entity.js.map