@ngxs/store 3.7.3-dev.master-1e7127b → 3.7.3-dev.master-fb8b33e

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 (62) hide show
  1. package/bundles/ngxs-store-internals.umd.js +42 -0
  2. package/bundles/ngxs-store-internals.umd.js.map +1 -1
  3. package/bundles/ngxs-store-internals.umd.min.js +1 -1
  4. package/bundles/ngxs-store-internals.umd.min.js.map +1 -1
  5. package/bundles/ngxs-store-operators.umd.js +13 -12
  6. package/bundles/ngxs-store-operators.umd.js.map +1 -1
  7. package/bundles/ngxs-store-operators.umd.min.js +1 -1
  8. package/bundles/ngxs-store-operators.umd.min.js.map +1 -1
  9. package/bundles/ngxs-store.umd.js +27 -6
  10. package/bundles/ngxs-store.umd.js.map +1 -1
  11. package/bundles/ngxs-store.umd.min.js +1 -1
  12. package/bundles/ngxs-store.umd.min.js.map +1 -1
  13. package/esm2015/internals/decorator-injector-adapter.js +43 -1
  14. package/esm2015/internals/index.js +2 -2
  15. package/esm2015/internals/ngxs-store-internals.js +2 -2
  16. package/esm2015/operators/append.js +3 -3
  17. package/esm2015/operators/compose.js +1 -1
  18. package/esm2015/operators/iif.js +1 -1
  19. package/esm2015/operators/index.js +1 -1
  20. package/esm2015/operators/insert-item.js +3 -3
  21. package/esm2015/operators/patch.js +4 -5
  22. package/esm2015/operators/update-item.js +7 -5
  23. package/esm2015/operators/utils.js +1 -1
  24. package/esm2015/src/decorators/select/select.js +29 -8
  25. package/esm5/internals/decorator-injector-adapter.js +43 -1
  26. package/esm5/internals/index.js +2 -2
  27. package/esm5/internals/ngxs-store-internals.js +2 -2
  28. package/esm5/operators/append.js +3 -3
  29. package/esm5/operators/compose.js +1 -1
  30. package/esm5/operators/iif.js +1 -1
  31. package/esm5/operators/index.js +1 -1
  32. package/esm5/operators/insert-item.js +3 -3
  33. package/esm5/operators/patch.js +4 -5
  34. package/esm5/operators/update-item.js +7 -5
  35. package/esm5/operators/utils.js +1 -1
  36. package/esm5/src/decorators/select/select.js +30 -8
  37. package/fesm2015/ngxs-store-internals.js +42 -1
  38. package/fesm2015/ngxs-store-internals.js.map +1 -1
  39. package/fesm2015/ngxs-store-operators.js +13 -12
  40. package/fesm2015/ngxs-store-operators.js.map +1 -1
  41. package/fesm2015/ngxs-store.js +27 -7
  42. package/fesm2015/ngxs-store.js.map +1 -1
  43. package/fesm5/ngxs-store-internals.js +42 -1
  44. package/fesm5/ngxs-store-internals.js.map +1 -1
  45. package/fesm5/ngxs-store-operators.js +13 -12
  46. package/fesm5/ngxs-store-operators.js.map +1 -1
  47. package/fesm5/ngxs-store.js +28 -7
  48. package/fesm5/ngxs-store.js.map +1 -1
  49. package/internals/decorator-injector-adapter.d.ts +7 -0
  50. package/internals/index.d.ts +1 -1
  51. package/internals/ngxs-store-internals.metadata.json +1 -1
  52. package/ngxs-store.metadata.json +1 -1
  53. package/operators/append.d.ts +2 -2
  54. package/operators/compose.d.ts +2 -1
  55. package/operators/iif.d.ts +2 -2
  56. package/operators/index.d.ts +1 -1
  57. package/operators/insert-item.d.ts +2 -2
  58. package/operators/ngxs-store-operators.metadata.json +1 -1
  59. package/operators/patch.d.ts +2 -6
  60. package/operators/update-item.d.ts +2 -2
  61. package/operators/utils.d.ts +2 -1
  62. package/package.json +1 -1
@@ -25,4 +25,4 @@ export function compose() {
25
25
  function (accumulator, operator) { return operator(accumulator); }), existing);
26
26
  });
27
27
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlL29wZXJhdG9ycy8iLCJzb3VyY2VzIjpbImNvbXBvc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRUEsTUFBTSxVQUFVLE9BQU87SUFBSSxtQkFBZ0M7U0FBaEMsVUFBZ0MsRUFBaEMscUJBQWdDLEVBQWhDLElBQWdDO1FBQWhDLDhCQUFnQzs7SUFDekQ7Ozs7SUFBTyxTQUFTLGVBQWUsQ0FBQyxRQUFxQjtRQUNuRCxPQUFPLFNBQVMsQ0FBQyxNQUFNOzs7OztRQUFDLFVBQUMsV0FBVyxFQUFFLFFBQVEsSUFBSyxPQUFBLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBckIsQ0FBcUIsR0FBRSxRQUFRLENBQUMsQ0FBQztJQUN0RixDQUFDLEVBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGVPcGVyYXRvciB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvc2U8VD4oLi4ub3BlcmF0b3JzOiBTdGF0ZU9wZXJhdG9yPFQ+W10pOiBTdGF0ZU9wZXJhdG9yPFQ+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGNvbXBvc2VPcGVyYXRvcihleGlzdGluZzogUmVhZG9ubHk8VD4pOiBUIHtcbiAgICByZXR1cm4gb3BlcmF0b3JzLnJlZHVjZSgoYWNjdW11bGF0b3IsIG9wZXJhdG9yKSA9PiBvcGVyYXRvcihhY2N1bXVsYXRvciksIGV4aXN0aW5nKTtcbiAgfTtcbn1cbiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlL29wZXJhdG9ycy8iLCJzb3VyY2VzIjpbImNvbXBvc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsTUFBTSxVQUFVLE9BQU87SUFBSSxtQkFBeUM7U0FBekMsVUFBeUMsRUFBekMscUJBQXlDLEVBQXpDLElBQXlDO1FBQXpDLDhCQUF5Qzs7SUFDbEU7Ozs7SUFBTyxTQUFTLGVBQWUsQ0FBQyxRQUFxQjtRQUNuRCxPQUFPLFNBQVMsQ0FBQyxNQUFNOzs7OztRQUFDLFVBQUMsV0FBVyxFQUFFLFFBQVEsSUFBSyxPQUFBLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBckIsQ0FBcUIsR0FBRSxRQUFRLENBQUMsQ0FBQztJQUN0RixDQUFDLEVBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGVPcGVyYXRvciB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE5vSW5mZXIgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvc2U8VD4oLi4ub3BlcmF0b3JzOiBOb0luZmVyPFN0YXRlT3BlcmF0b3I8VD5bXT4pOiBTdGF0ZU9wZXJhdG9yPFQ+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGNvbXBvc2VPcGVyYXRvcihleGlzdGluZzogUmVhZG9ubHk8VD4pOiBUIHtcbiAgICByZXR1cm4gb3BlcmF0b3JzLnJlZHVjZSgoYWNjdW11bGF0b3IsIG9wZXJhdG9yKSA9PiBvcGVyYXRvcihhY2N1bXVsYXRvciksIGV4aXN0aW5nKTtcbiAgfTtcbn1cbiJdfQ==
@@ -53,4 +53,4 @@ export function iif(condition, trueOperatorOrValue, elseOperatorOrValue) {
53
53
  return retrieveValue((/** @type {?} */ (elseOperatorOrValue)), (/** @type {?} */ (existing)));
54
54
  });
55
55
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWlmLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvb3BlcmF0b3JzLyIsInNvdXJjZXMiOlsiaWlmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQWMsTUFBTSxTQUFTLENBQUM7Ozs7Ozs7QUFHaEYsU0FBUyxhQUFhLENBQ3BCLGVBQXFDLEVBQ3JDLFFBQWtDO0lBRWxDLGtDQUFrQztJQUNsQyxzQ0FBc0M7SUFDdEMsSUFBSSxlQUFlLENBQUMsZUFBZSxDQUFDLEVBQUU7O1lBQzlCLEtBQUssR0FBRyxlQUFlLENBQUMsbUJBQUEsbUJBQUEsUUFBUSxFQUFDLEVBQWUsQ0FBQztRQUN2RCxPQUFPLG1CQUFBLEtBQUssRUFBaUIsQ0FBQztLQUMvQjtJQUVELHdDQUF3QztJQUN4Qyw0Q0FBNEM7SUFDNUMsd0NBQXdDO0lBQ3hDLElBQUksV0FBVyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQ2hDLE9BQU8sbUJBQUEsbUJBQUEsQ0FBQyxtQkFBSyxRQUFRLEVBQUEsQ0FBQyxFQUFDLEVBQWlCLENBQUM7S0FDMUM7SUFFRCxPQUFPLG1CQUFBLGVBQWUsRUFBaUIsQ0FBQztBQUMxQyxDQUFDOzs7Ozs7Ozs7O0FBU0QsTUFBTSxVQUFVLEdBQUcsQ0FDakIsU0FBaUMsRUFDakMsbUJBQXlDLEVBQ3pDLG1CQUEwQztJQUUxQzs7OztJQUFPLFNBQVMsV0FBVyxDQUFDLFFBQWlDOzs7WUFFdkQsTUFBTSxHQUFHLENBQUMsQ0FBQyxTQUFTO1FBQ3hCLHdEQUF3RDtRQUN4RCxJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMxQixNQUFNLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzlCO1FBRUQsSUFBSSxNQUFNLEVBQUU7WUFDVixPQUFPLGFBQWEsQ0FBSSxtQkFBbUIsRUFBRSxtQkFBQSxRQUFRLEVBQWlCLENBQUMsQ0FBQztTQUN6RTtRQUVELE9BQU8sYUFBYSxDQUFJLG1CQUFBLG1CQUFtQixFQUFDLEVBQUUsbUJBQUEsUUFBUSxFQUFpQixDQUFDLENBQUM7SUFDM0UsQ0FBQyxFQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXRlT3BlcmF0b3IgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5cbmltcG9ydCB7IGlzU3RhdGVPcGVyYXRvciwgaXNVbmRlZmluZWQsIGlzUHJlZGljYXRlLCBSZXBhaXJUeXBlIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBQcmVkaWNhdGUgfSBmcm9tICcuL2ludGVybmFscyc7XG5cbmZ1bmN0aW9uIHJldHJpZXZlVmFsdWU8VD4oXG4gIG9wZXJhdG9yT3JWYWx1ZTogU3RhdGVPcGVyYXRvcjxUPiB8IFQsXG4gIGV4aXN0aW5nPzogUmVhZG9ubHk8UmVwYWlyVHlwZTxUPj5cbik6IFJlcGFpclR5cGU8VD4ge1xuICAvLyBJZiBzdGF0ZSBvcGVyYXRvciBpcyBhIGZ1bmN0aW9uXG4gIC8vIHRoZW4gY2FsbCBpdCB3aXRoIGFuIG9yaWdpbmFsIHZhbHVlXG4gIGlmIChpc1N0YXRlT3BlcmF0b3Iob3BlcmF0b3JPclZhbHVlKSkge1xuICAgIGNvbnN0IHZhbHVlID0gb3BlcmF0b3JPclZhbHVlKGV4aXN0aW5nISBhcyBSZWFkb25seTxUPik7XG4gICAgcmV0dXJuIHZhbHVlIGFzIFJlcGFpclR5cGU8VD47XG4gIH1cblxuICAvLyBJZiBvcGVyYXRvciBvciB2YWx1ZSB3YXMgbm90IHByb3ZpZGVkXG4gIC8vIGUuZy4gYGVsc2VPcGVyYXRvck9yVmFsdWVgIGlzIGB1bmRlZmluZWRgXG4gIC8vIHRoZW4gd2UganVzdCByZXR1cm4gYW4gb3JpZ2luYWwgdmFsdWVcbiAgaWYgKGlzVW5kZWZpbmVkKG9wZXJhdG9yT3JWYWx1ZSkpIHtcbiAgICByZXR1cm4gKDxhbnk+ZXhpc3RpbmcpISBhcyBSZXBhaXJUeXBlPFQ+O1xuICB9XG5cbiAgcmV0dXJuIG9wZXJhdG9yT3JWYWx1ZSBhcyBSZXBhaXJUeXBlPFQ+O1xufVxuXG4vKipcbiAqIEBwYXJhbSBjb25kaXRpb24gLSBDb25kaXRpb24gY2FuIGJlIGEgcGxhaW4gYm9vbGVhbiB2YWx1ZSBvciBhIGZ1bmN0aW9uLFxuICogdGhhdCByZXR1cm5zIGJvb2xlYW4sIGFsc28gdGhpcyBmdW5jdGlvbiBjYW4gdGFrZSBhIHZhbHVlIGFzIGFuIGFyZ3VtZW50XG4gKiB0byB3aGljaCB0aGlzIHN0YXRlIG9wZXJhdG9yIGFwcGxpZXNcbiAqIEBwYXJhbSB0cnVlT3BlcmF0b3JPclZhbHVlIC0gQW55IHZhbHVlIG9yIGEgc3RhdGUgb3BlcmF0b3JcbiAqIEBwYXJhbSBlbHNlT3BlcmF0b3JPclZhbHVlIC0gQW55IHZhbHVlIG9yIGEgc3RhdGUgb3BlcmF0b3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlpZjxUPihcbiAgY29uZGl0aW9uOiBQcmVkaWNhdGU8VD4gfCBib29sZWFuLFxuICB0cnVlT3BlcmF0b3JPclZhbHVlOiBTdGF0ZU9wZXJhdG9yPFQ+IHwgVCxcbiAgZWxzZU9wZXJhdG9yT3JWYWx1ZT86IFN0YXRlT3BlcmF0b3I8VD4gfCBUXG4pOiBTdGF0ZU9wZXJhdG9yPFJlcGFpclR5cGU8VD4+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGlpZk9wZXJhdG9yKGV4aXN0aW5nOiBSZWFkb25seTxSZXBhaXJUeXBlPFQ+Pik6IFJlcGFpclR5cGU8VD4ge1xuICAgIC8vIENvbnZlcnQgdGhlIHZhbHVlIHRvIGEgYm9vbGVhblxuICAgIGxldCByZXN1bHQgPSAhIWNvbmRpdGlvbjtcbiAgICAvLyBidXQgaWYgaXQgaXMgYSBmdW5jdGlvbiB0aGVuIHJ1biBpdCB0byBnZXQgdGhlIHJlc3VsdFxuICAgIGlmIChpc1ByZWRpY2F0ZShjb25kaXRpb24pKSB7XG4gICAgICByZXN1bHQgPSBjb25kaXRpb24oZXhpc3RpbmcpO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIHJldHVybiByZXRyaWV2ZVZhbHVlPFQ+KHRydWVPcGVyYXRvck9yVmFsdWUsIGV4aXN0aW5nIGFzIFJlcGFpclR5cGU8VD4pO1xuICAgIH1cblxuICAgIHJldHVybiByZXRyaWV2ZVZhbHVlPFQ+KGVsc2VPcGVyYXRvck9yVmFsdWUhLCBleGlzdGluZyBhcyBSZXBhaXJUeXBlPFQ+KTtcbiAgfTtcbn1cbiJdfQ==
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWlmLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvb3BlcmF0b3JzLyIsInNvdXJjZXMiOlsiaWlmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQXVCLE1BQU0sU0FBUyxDQUFDOzs7Ozs7O0FBR3pGLFNBQVMsYUFBYSxDQUNwQixlQUFxQyxFQUNyQyxRQUFrQztJQUVsQyxrQ0FBa0M7SUFDbEMsc0NBQXNDO0lBQ3RDLElBQUksZUFBZSxDQUFDLGVBQWUsQ0FBQyxFQUFFOztZQUM5QixLQUFLLEdBQUcsZUFBZSxDQUFDLG1CQUFBLG1CQUFBLFFBQVEsRUFBQyxFQUFlLENBQUM7UUFDdkQsT0FBTyxtQkFBQSxLQUFLLEVBQWlCLENBQUM7S0FDL0I7SUFFRCx3Q0FBd0M7SUFDeEMsNENBQTRDO0lBQzVDLHdDQUF3QztJQUN4QyxJQUFJLFdBQVcsQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUNoQyxPQUFPLG1CQUFBLG1CQUFBLENBQUMsbUJBQUssUUFBUSxFQUFBLENBQUMsRUFBQyxFQUFpQixDQUFDO0tBQzFDO0lBRUQsT0FBTyxtQkFBQSxlQUFlLEVBQWlCLENBQUM7QUFDMUMsQ0FBQzs7Ozs7Ozs7OztBQVNELE1BQU0sVUFBVSxHQUFHLENBQ2pCLFNBQTBDLEVBQzFDLG1CQUFrRCxFQUNsRCxtQkFBbUQ7SUFFbkQ7Ozs7SUFBTyxTQUFTLFdBQVcsQ0FBQyxRQUFpQzs7O1lBRXZELE1BQU0sR0FBRyxDQUFDLENBQUMsU0FBUztRQUN4Qix3REFBd0Q7UUFDeEQsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDMUIsTUFBTSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM5QjtRQUVELElBQUksTUFBTSxFQUFFO1lBQ1YsT0FBTyxhQUFhLENBQUksbUJBQW1CLEVBQUUsbUJBQUEsUUFBUSxFQUFpQixDQUFDLENBQUM7U0FDekU7UUFFRCxPQUFPLGFBQWEsQ0FBSSxtQkFBQSxtQkFBbUIsRUFBQyxFQUFFLG1CQUFBLFFBQVEsRUFBaUIsQ0FBQyxDQUFDO0lBQzNFLENBQUMsRUFBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGF0ZU9wZXJhdG9yIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuXG5pbXBvcnQgeyBpc1N0YXRlT3BlcmF0b3IsIGlzVW5kZWZpbmVkLCBpc1ByZWRpY2F0ZSwgUmVwYWlyVHlwZSwgTm9JbmZlciB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgUHJlZGljYXRlIH0gZnJvbSAnLi9pbnRlcm5hbHMnO1xuXG5mdW5jdGlvbiByZXRyaWV2ZVZhbHVlPFQ+KFxuICBvcGVyYXRvck9yVmFsdWU6IFN0YXRlT3BlcmF0b3I8VD4gfCBULFxuICBleGlzdGluZz86IFJlYWRvbmx5PFJlcGFpclR5cGU8VD4+XG4pOiBSZXBhaXJUeXBlPFQ+IHtcbiAgLy8gSWYgc3RhdGUgb3BlcmF0b3IgaXMgYSBmdW5jdGlvblxuICAvLyB0aGVuIGNhbGwgaXQgd2l0aCBhbiBvcmlnaW5hbCB2YWx1ZVxuICBpZiAoaXNTdGF0ZU9wZXJhdG9yKG9wZXJhdG9yT3JWYWx1ZSkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IG9wZXJhdG9yT3JWYWx1ZShleGlzdGluZyEgYXMgUmVhZG9ubHk8VD4pO1xuICAgIHJldHVybiB2YWx1ZSBhcyBSZXBhaXJUeXBlPFQ+O1xuICB9XG5cbiAgLy8gSWYgb3BlcmF0b3Igb3IgdmFsdWUgd2FzIG5vdCBwcm92aWRlZFxuICAvLyBlLmcuIGBlbHNlT3BlcmF0b3JPclZhbHVlYCBpcyBgdW5kZWZpbmVkYFxuICAvLyB0aGVuIHdlIGp1c3QgcmV0dXJuIGFuIG9yaWdpbmFsIHZhbHVlXG4gIGlmIChpc1VuZGVmaW5lZChvcGVyYXRvck9yVmFsdWUpKSB7XG4gICAgcmV0dXJuICg8YW55PmV4aXN0aW5nKSEgYXMgUmVwYWlyVHlwZTxUPjtcbiAgfVxuXG4gIHJldHVybiBvcGVyYXRvck9yVmFsdWUgYXMgUmVwYWlyVHlwZTxUPjtcbn1cblxuLyoqXG4gKiBAcGFyYW0gY29uZGl0aW9uIC0gQ29uZGl0aW9uIGNhbiBiZSBhIHBsYWluIGJvb2xlYW4gdmFsdWUgb3IgYSBmdW5jdGlvbixcbiAqIHRoYXQgcmV0dXJucyBib29sZWFuLCBhbHNvIHRoaXMgZnVuY3Rpb24gY2FuIHRha2UgYSB2YWx1ZSBhcyBhbiBhcmd1bWVudFxuICogdG8gd2hpY2ggdGhpcyBzdGF0ZSBvcGVyYXRvciBhcHBsaWVzXG4gKiBAcGFyYW0gdHJ1ZU9wZXJhdG9yT3JWYWx1ZSAtIEFueSB2YWx1ZSBvciBhIHN0YXRlIG9wZXJhdG9yXG4gKiBAcGFyYW0gZWxzZU9wZXJhdG9yT3JWYWx1ZSAtIEFueSB2YWx1ZSBvciBhIHN0YXRlIG9wZXJhdG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpaWY8VD4oXG4gIGNvbmRpdGlvbjogTm9JbmZlcjxQcmVkaWNhdGU8VD4+IHwgYm9vbGVhbixcbiAgdHJ1ZU9wZXJhdG9yT3JWYWx1ZTogTm9JbmZlcjxTdGF0ZU9wZXJhdG9yPFQ+PiB8IFQsXG4gIGVsc2VPcGVyYXRvck9yVmFsdWU/OiBOb0luZmVyPFN0YXRlT3BlcmF0b3I8VD4+IHwgVFxuKTogU3RhdGVPcGVyYXRvcjxSZXBhaXJUeXBlPFQ+PiB7XG4gIHJldHVybiBmdW5jdGlvbiBpaWZPcGVyYXRvcihleGlzdGluZzogUmVhZG9ubHk8UmVwYWlyVHlwZTxUPj4pOiBSZXBhaXJUeXBlPFQ+IHtcbiAgICAvLyBDb252ZXJ0IHRoZSB2YWx1ZSB0byBhIGJvb2xlYW5cbiAgICBsZXQgcmVzdWx0ID0gISFjb25kaXRpb247XG4gICAgLy8gYnV0IGlmIGl0IGlzIGEgZnVuY3Rpb24gdGhlbiBydW4gaXQgdG8gZ2V0IHRoZSByZXN1bHRcbiAgICBpZiAoaXNQcmVkaWNhdGUoY29uZGl0aW9uKSkge1xuICAgICAgcmVzdWx0ID0gY29uZGl0aW9uKGV4aXN0aW5nKTtcbiAgICB9XG5cbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICByZXR1cm4gcmV0cmlldmVWYWx1ZTxUPih0cnVlT3BlcmF0b3JPclZhbHVlLCBleGlzdGluZyBhcyBSZXBhaXJUeXBlPFQ+KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0cmlldmVWYWx1ZTxUPihlbHNlT3BlcmF0b3JPclZhbHVlISwgZXhpc3RpbmcgYXMgUmVwYWlyVHlwZTxUPik7XG4gIH07XG59XG4iXX0=
@@ -15,4 +15,4 @@ export { patch } from './patch';
15
15
  export { isStateOperator } from './utils';
16
16
  export { updateItem } from './update-item';
17
17
  export { removeItem } from './remove-item';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFLQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM1QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGVcbiAqIEBkZXNjcmlwdGlvblxuICogRW50cnkgcG9pbnQgZm9yIGFsbCBwdWJsaWMgQVBJcyBvZiB0aGlzIHBhY2thZ2UuXG4gKi9cbmV4cG9ydCB7IGFwcGVuZCB9IGZyb20gJy4vYXBwZW5kJztcbmV4cG9ydCB7IGNvbXBvc2UgfSBmcm9tICcuL2NvbXBvc2UnO1xuZXhwb3J0IHsgaWlmIH0gZnJvbSAnLi9paWYnO1xuZXhwb3J0IHsgaW5zZXJ0SXRlbSB9IGZyb20gJy4vaW5zZXJ0LWl0ZW0nO1xuZXhwb3J0IHsgcGF0Y2ggfSBmcm9tICcuL3BhdGNoJztcbmV4cG9ydCB7IGlzU3RhdGVPcGVyYXRvciB9IGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0IHsgdXBkYXRlSXRlbSB9IGZyb20gJy4vdXBkYXRlLWl0ZW0nO1xuZXhwb3J0IHsgcmVtb3ZlSXRlbSB9IGZyb20gJy4vcmVtb3ZlLWl0ZW0nO1xuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFLQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM1QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLGVBQWUsRUFBVyxNQUFNLFNBQVMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGVcbiAqIEBkZXNjcmlwdGlvblxuICogRW50cnkgcG9pbnQgZm9yIGFsbCBwdWJsaWMgQVBJcyBvZiB0aGlzIHBhY2thZ2UuXG4gKi9cbmV4cG9ydCB7IGFwcGVuZCB9IGZyb20gJy4vYXBwZW5kJztcbmV4cG9ydCB7IGNvbXBvc2UgfSBmcm9tICcuL2NvbXBvc2UnO1xuZXhwb3J0IHsgaWlmIH0gZnJvbSAnLi9paWYnO1xuZXhwb3J0IHsgaW5zZXJ0SXRlbSB9IGZyb20gJy4vaW5zZXJ0LWl0ZW0nO1xuZXhwb3J0IHsgcGF0Y2ggfSBmcm9tICcuL3BhdGNoJztcbmV4cG9ydCB7IGlzU3RhdGVPcGVyYXRvciwgTm9JbmZlciB9IGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0IHsgdXBkYXRlSXRlbSB9IGZyb20gJy4vdXBkYXRlLWl0ZW0nO1xuZXhwb3J0IHsgcmVtb3ZlSXRlbSB9IGZyb20gJy4vcmVtb3ZlLWl0ZW0nO1xuIl19
@@ -22,7 +22,7 @@ export function insertItem(value, beforePosition) {
22
22
  }
23
23
  // Property may be dynamic and might not existed before
24
24
  if (!Array.isArray(existing)) {
25
- return [(/** @type {?} */ (value))];
25
+ return [(/** @type {?} */ (((/** @type {?} */ (value)))))];
26
26
  }
27
27
  /** @type {?} */
28
28
  var clone = existing.slice();
@@ -34,8 +34,8 @@ export function insertItem(value, beforePosition) {
34
34
  if ((/** @type {?} */ (beforePosition)) > 0) {
35
35
  index = (/** @type {?} */ (beforePosition));
36
36
  }
37
- clone.splice(index, 0, (/** @type {?} */ (value)));
37
+ clone.splice(index, 0, (/** @type {?} */ (((/** @type {?} */ (value))))));
38
38
  return clone;
39
39
  });
40
40
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWl0ZW0uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJpbnNlcnQtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFFLEtBQUssRUFBYyxNQUFNLFNBQVMsQ0FBQzs7Ozs7OztBQU01QyxNQUFNLFVBQVUsVUFBVSxDQUN4QixLQUFRLEVBQ1IsY0FBdUI7SUFFdkI7Ozs7SUFBTyxTQUFTLGtCQUFrQixDQUFDLFFBQW1DO1FBQ3BFLHNEQUFzRDtRQUN0RCwrREFBK0Q7UUFDL0QsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksUUFBUSxFQUFFO1lBQzVCLE9BQU8sbUJBQUEsUUFBUSxFQUFtQixDQUFDO1NBQ3BDO1FBRUQsdURBQXVEO1FBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzVCLE9BQU8sQ0FBQyxtQkFBQSxLQUFLLEVBQWlCLENBQUMsQ0FBQztTQUNqQzs7WUFFSyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRTs7WUFFMUIsS0FBSyxHQUFHLENBQUM7UUFFYiw2QkFBNkI7UUFDN0Isc0NBQXNDO1FBQ3RDLGtEQUFrRDtRQUNsRCxJQUFJLG1CQUFBLGNBQWMsRUFBQyxHQUFHLENBQUMsRUFBRTtZQUN2QixLQUFLLEdBQUcsbUJBQUEsY0FBYyxFQUFDLENBQUM7U0FDekI7UUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsbUJBQUEsS0FBSyxFQUFpQixDQUFDLENBQUM7UUFDL0MsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLEVBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGVPcGVyYXRvciB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGlzTmlsLCBSZXBhaXJUeXBlIH0gZnJvbSAnLi91dGlscyc7XG5cbi8qKlxuICogQHBhcmFtIHZhbHVlIC0gVmFsdWUgdG8gaW5zZXJ0XG4gKiBAcGFyYW0gW2JlZm9yZVBvc2l0aW9uXSAtICBTcGVjaWZpZWQgaW5kZXggdG8gaW5zZXJ0IHZhbHVlIGJlZm9yZSwgb3B0aW9uYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluc2VydEl0ZW08VD4oXG4gIHZhbHVlOiBULFxuICBiZWZvcmVQb3NpdGlvbj86IG51bWJlclxuKTogU3RhdGVPcGVyYXRvcjxSZXBhaXJUeXBlPFQ+W10+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGluc2VydEl0ZW1PcGVyYXRvcihleGlzdGluZzogUmVhZG9ubHk8UmVwYWlyVHlwZTxUPltdPik6IFJlcGFpclR5cGU8VD5bXSB7XG4gICAgLy8gSGF2ZSB0byBjaGVjayBleHBsaWNpdGx5IGZvciBgbnVsbGAgYW5kIGB1bmRlZmluZWRgXG4gICAgLy8gYmVjYXVzZSBgdmFsdWVgIGNhbiBiZSBgMGAsIHRodXMgYCF2YWx1ZWAgd2lsbCByZXR1cm4gYHRydWVgXG4gICAgaWYgKGlzTmlsKHZhbHVlKSAmJiBleGlzdGluZykge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nIGFzIFJlcGFpclR5cGU8VD5bXTtcbiAgICB9XG5cbiAgICAvLyBQcm9wZXJ0eSBtYXkgYmUgZHluYW1pYyBhbmQgbWlnaHQgbm90IGV4aXN0ZWQgYmVmb3JlXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGV4aXN0aW5nKSkge1xuICAgICAgcmV0dXJuIFt2YWx1ZSBhcyBSZXBhaXJUeXBlPFQ+XTtcbiAgICB9XG5cbiAgICBjb25zdCBjbG9uZSA9IGV4aXN0aW5nLnNsaWNlKCk7XG5cbiAgICBsZXQgaW5kZXggPSAwO1xuXG4gICAgLy8gTm8gbmVlZCB0byBjYWxsIGBpc051bWJlcmBcbiAgICAvLyBhcyB3ZSBhcmUgY2hlY2tpbmcgYD4gMGAgbm90IGA+PSAwYFxuICAgIC8vIGV2ZXJ5dGhpbmcgZXhjZXB0IG51bWJlciB3aWxsIHJldHVybiBmYWxzZSBoZXJlXG4gICAgaWYgKGJlZm9yZVBvc2l0aW9uISA+IDApIHtcbiAgICAgIGluZGV4ID0gYmVmb3JlUG9zaXRpb24hO1xuICAgIH1cblxuICAgIGNsb25lLnNwbGljZShpbmRleCwgMCwgdmFsdWUgYXMgUmVwYWlyVHlwZTxUPik7XG4gICAgcmV0dXJuIGNsb25lO1xuICB9O1xufVxuIl19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWl0ZW0uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJpbnNlcnQtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFFLEtBQUssRUFBdUIsTUFBTSxTQUFTLENBQUM7Ozs7Ozs7QUFNckQsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsS0FBaUIsRUFDakIsY0FBdUI7SUFFdkI7Ozs7SUFBTyxTQUFTLGtCQUFrQixDQUFDLFFBQW1DO1FBQ3BFLHNEQUFzRDtRQUN0RCwrREFBK0Q7UUFDL0QsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksUUFBUSxFQUFFO1lBQzVCLE9BQU8sbUJBQUEsUUFBUSxFQUFtQixDQUFDO1NBQ3BDO1FBRUQsdURBQXVEO1FBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzVCLE9BQU8sQ0FBQyxtQkFBQSxDQUFDLG1CQUFBLEtBQUssRUFBVyxDQUFDLEVBQWlCLENBQUMsQ0FBQztTQUM5Qzs7WUFFSyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRTs7WUFFMUIsS0FBSyxHQUFHLENBQUM7UUFFYiw2QkFBNkI7UUFDN0Isc0NBQXNDO1FBQ3RDLGtEQUFrRDtRQUNsRCxJQUFJLG1CQUFBLGNBQWMsRUFBQyxHQUFHLENBQUMsRUFBRTtZQUN2QixLQUFLLEdBQUcsbUJBQUEsY0FBYyxFQUFDLENBQUM7U0FDekI7UUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsbUJBQUEsQ0FBQyxtQkFBQSxLQUFLLEVBQVcsQ0FBQyxFQUFpQixDQUFDLENBQUM7UUFDNUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLEVBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGVPcGVyYXRvciB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGlzTmlsLCBSZXBhaXJUeXBlLCBOb0luZmVyIH0gZnJvbSAnLi91dGlscyc7XG5cbi8qKlxuICogQHBhcmFtIHZhbHVlIC0gVmFsdWUgdG8gaW5zZXJ0XG4gKiBAcGFyYW0gW2JlZm9yZVBvc2l0aW9uXSAtICBTcGVjaWZpZWQgaW5kZXggdG8gaW5zZXJ0IHZhbHVlIGJlZm9yZSwgb3B0aW9uYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluc2VydEl0ZW08VD4oXG4gIHZhbHVlOiBOb0luZmVyPFQ+LFxuICBiZWZvcmVQb3NpdGlvbj86IG51bWJlclxuKTogU3RhdGVPcGVyYXRvcjxSZXBhaXJUeXBlPFQ+W10+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGluc2VydEl0ZW1PcGVyYXRvcihleGlzdGluZzogUmVhZG9ubHk8UmVwYWlyVHlwZTxUPltdPik6IFJlcGFpclR5cGU8VD5bXSB7XG4gICAgLy8gSGF2ZSB0byBjaGVjayBleHBsaWNpdGx5IGZvciBgbnVsbGAgYW5kIGB1bmRlZmluZWRgXG4gICAgLy8gYmVjYXVzZSBgdmFsdWVgIGNhbiBiZSBgMGAsIHRodXMgYCF2YWx1ZWAgd2lsbCByZXR1cm4gYHRydWVgXG4gICAgaWYgKGlzTmlsKHZhbHVlKSAmJiBleGlzdGluZykge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nIGFzIFJlcGFpclR5cGU8VD5bXTtcbiAgICB9XG5cbiAgICAvLyBQcm9wZXJ0eSBtYXkgYmUgZHluYW1pYyBhbmQgbWlnaHQgbm90IGV4aXN0ZWQgYmVmb3JlXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGV4aXN0aW5nKSkge1xuICAgICAgcmV0dXJuIFsodmFsdWUgYXMgdW5rbm93bikgYXMgUmVwYWlyVHlwZTxUPl07XG4gICAgfVxuXG4gICAgY29uc3QgY2xvbmUgPSBleGlzdGluZy5zbGljZSgpO1xuXG4gICAgbGV0IGluZGV4ID0gMDtcblxuICAgIC8vIE5vIG5lZWQgdG8gY2FsbCBgaXNOdW1iZXJgXG4gICAgLy8gYXMgd2UgYXJlIGNoZWNraW5nIGA+IDBgIG5vdCBgPj0gMGBcbiAgICAvLyBldmVyeXRoaW5nIGV4Y2VwdCBudW1iZXIgd2lsbCByZXR1cm4gZmFsc2UgaGVyZVxuICAgIGlmIChiZWZvcmVQb3NpdGlvbiEgPiAwKSB7XG4gICAgICBpbmRleCA9IGJlZm9yZVBvc2l0aW9uITtcbiAgICB9XG5cbiAgICBjbG9uZS5zcGxpY2UoaW5kZXgsIDAsICh2YWx1ZSBhcyB1bmtub3duKSBhcyBSZXBhaXJUeXBlPFQ+KTtcbiAgICByZXR1cm4gY2xvbmU7XG4gIH07XG59XG4iXX0=
@@ -10,8 +10,7 @@ import { isStateOperator } from './utils';
10
10
  * @return {?}
11
11
  */
12
12
  export function patch(patchObject) {
13
- return (/**
14
- * @template U
13
+ return (/** @type {?} */ (((/** @type {?} */ ((/**
15
14
  * @param {?} existing
16
15
  * @return {?}
17
16
  */
@@ -22,7 +21,7 @@ export function patch(patchObject) {
22
21
  /** @type {?} */
23
22
  var newValue = patchObject[k];
24
23
  /** @type {?} */
25
- var existingPropValue = existing[k];
24
+ var existingPropValue = existing[(/** @type {?} */ (k))];
26
25
  /** @type {?} */
27
26
  var newPropValue = isStateOperator(newValue)
28
27
  ? newValue((/** @type {?} */ (existingPropValue)))
@@ -35,6 +34,6 @@ export function patch(patchObject) {
35
34
  }
36
35
  }
37
36
  return clone || existing;
38
- });
37
+ }))))));
39
38
  }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2guanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJwYXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7Ozs7OztBQVUxQyxNQUFNLFVBQVUsS0FBSyxDQUFJLFdBQXlCO0lBQ2hEOzs7OztJQUFPLFNBQVMsa0JBQWtCLENBQTJCLFFBQXFCOztZQUM1RSxLQUFLLEdBQUcsSUFBSTtRQUNoQixLQUFLLElBQU0sQ0FBQyxJQUFJLFdBQVcsRUFBRTs7Z0JBQ3JCLFFBQVEsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDOztnQkFDekIsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQzs7Z0JBQy9CLFlBQVksR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDO2dCQUM1QyxDQUFDLENBQUMsUUFBUSxDQUFDLG1CQUFLLGlCQUFpQixFQUFBLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxRQUFRO1lBQ1osSUFBSSxZQUFZLEtBQUssaUJBQWlCLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQ1YsS0FBSyx3QkFBUSxDQUFDLG1CQUFLLFFBQVEsRUFBQSxDQUFDLENBQUUsQ0FBQztpQkFDaEM7Z0JBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQzthQUN6QjtTQUNGO1FBQ0QsT0FBTyxLQUFLLElBQUksUUFBUSxDQUFDO0lBQzNCLENBQUMsRUFBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGF0ZU9wZXJhdG9yIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgaXNTdGF0ZU9wZXJhdG9yIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCB0eXBlIFBhdGNoU3BlYzxUPiA9IHsgW1AgaW4ga2V5b2YgVF0/OiBUW1BdIHwgU3RhdGVPcGVyYXRvcjxOb25OdWxsYWJsZTxUW1BdPj4gfTtcblxudHlwZSBQYXRjaFZhbHVlczxUPiA9IHtcbiAgcmVhZG9ubHkgW1AgaW4ga2V5b2YgVF0/OiBUW1BdIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBpbmZlciBSID8gUiA6IFRbUF07XG59O1xuXG50eXBlIFBhdGNoT3BlcmF0b3I8VD4gPSA8VSBleHRlbmRzIFBhdGNoVmFsdWVzPFQ+PihleGlzdGluZzogUmVhZG9ubHk8VT4pID0+IFU7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXRjaDxUPihwYXRjaE9iamVjdDogUGF0Y2hTcGVjPFQ+KTogUGF0Y2hPcGVyYXRvcjxUPiB7XG4gIHJldHVybiBmdW5jdGlvbiBwYXRjaFN0YXRlT3BlcmF0b3I8VSBleHRlbmRzIFBhdGNoVmFsdWVzPFQ+PihleGlzdGluZzogUmVhZG9ubHk8VT4pOiBVIHtcbiAgICBsZXQgY2xvbmUgPSBudWxsO1xuICAgIGZvciAoY29uc3QgayBpbiBwYXRjaE9iamVjdCkge1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSBwYXRjaE9iamVjdFtrXTtcbiAgICAgIGNvbnN0IGV4aXN0aW5nUHJvcFZhbHVlID0gZXhpc3Rpbmdba107XG4gICAgICBjb25zdCBuZXdQcm9wVmFsdWUgPSBpc1N0YXRlT3BlcmF0b3IobmV3VmFsdWUpXG4gICAgICAgID8gbmV3VmFsdWUoPGFueT5leGlzdGluZ1Byb3BWYWx1ZSlcbiAgICAgICAgOiBuZXdWYWx1ZTtcbiAgICAgIGlmIChuZXdQcm9wVmFsdWUgIT09IGV4aXN0aW5nUHJvcFZhbHVlKSB7XG4gICAgICAgIGlmICghY2xvbmUpIHtcbiAgICAgICAgICBjbG9uZSA9IHsgLi4uKDxhbnk+ZXhpc3RpbmcpIH07XG4gICAgICAgIH1cbiAgICAgICAgY2xvbmVba10gPSBuZXdQcm9wVmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjbG9uZSB8fCBleGlzdGluZztcbiAgfTtcbn1cbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2guanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJwYXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQVcsTUFBTSxTQUFTLENBQUM7Ozs7OztBQVFuRCxNQUFNLFVBQVUsS0FBSyxDQUFJLFdBQWtDO0lBQ3pELE9BQU8sbUJBQUEsQ0FBQzs7OztJQUFBLFNBQVMsa0JBQWtCLENBQUMsUUFBa0M7O1lBQ2hFLEtBQUssR0FBRyxJQUFJO1FBQ2hCLEtBQUssSUFBTSxDQUFDLElBQUksV0FBVyxFQUFFOztnQkFDckIsUUFBUSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUM7O2dCQUN6QixpQkFBaUIsR0FBRyxRQUFRLENBQUMsbUJBQUEsQ0FBQyxFQUE0QixDQUFDOztnQkFDM0QsWUFBWSxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUM7Z0JBQzVDLENBQUMsQ0FBQyxRQUFRLENBQUMsbUJBQUssaUJBQWlCLEVBQUEsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLFFBQVE7WUFDWixJQUFJLFlBQVksS0FBSyxpQkFBaUIsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLEtBQUssRUFBRTtvQkFDVixLQUFLLHdCQUFRLENBQUMsbUJBQUssUUFBUSxFQUFBLENBQUMsQ0FBRSxDQUFDO2lCQUNoQztnQkFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxDQUFDO2FBQ3pCO1NBQ0Y7UUFDRCxPQUFPLEtBQUssSUFBSSxRQUFRLENBQUM7SUFDM0IsQ0FBQyxHQUFXLENBQUMsRUFBaUMsQ0FBQztBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGVPcGVyYXRvciB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGlzU3RhdGVPcGVyYXRvciwgTm9JbmZlciB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgdHlwZSBQYXRjaFNwZWM8VD4gPSB7IFtQIGluIGtleW9mIFRdPzogVFtQXSB8IFN0YXRlT3BlcmF0b3I8Tm9uTnVsbGFibGU8VFtQXT4+IH07XG5cbnR5cGUgUGF0Y2hWYWx1ZXM8VD4gPSB7XG4gIHJlYWRvbmx5IFtQIGluIGtleW9mIFRdPzogVFtQXSBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gaW5mZXIgUiA/IFIgOiBUW1BdO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGNoPFQ+KHBhdGNoT2JqZWN0OiBOb0luZmVyPFBhdGNoU3BlYzxUPj4pOiBTdGF0ZU9wZXJhdG9yPE5vbk51bGxhYmxlPFQ+PiB7XG4gIHJldHVybiAoZnVuY3Rpb24gcGF0Y2hTdGF0ZU9wZXJhdG9yKGV4aXN0aW5nOiBSZWFkb25seTxQYXRjaFZhbHVlczxUPj4pOiBOb25OdWxsYWJsZTxUPiB7XG4gICAgbGV0IGNsb25lID0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IGsgaW4gcGF0Y2hPYmplY3QpIHtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gcGF0Y2hPYmplY3Rba107XG4gICAgICBjb25zdCBleGlzdGluZ1Byb3BWYWx1ZSA9IGV4aXN0aW5nW2sgYXMgRXh0cmFjdDxrZXlvZiBULCBzdHJpbmc+XTtcbiAgICAgIGNvbnN0IG5ld1Byb3BWYWx1ZSA9IGlzU3RhdGVPcGVyYXRvcihuZXdWYWx1ZSlcbiAgICAgICAgPyBuZXdWYWx1ZSg8YW55PmV4aXN0aW5nUHJvcFZhbHVlKVxuICAgICAgICA6IG5ld1ZhbHVlO1xuICAgICAgaWYgKG5ld1Byb3BWYWx1ZSAhPT0gZXhpc3RpbmdQcm9wVmFsdWUpIHtcbiAgICAgICAgaWYgKCFjbG9uZSkge1xuICAgICAgICAgIGNsb25lID0geyAuLi4oPGFueT5leGlzdGluZykgfTtcbiAgICAgICAgfVxuICAgICAgICBjbG9uZVtrXSA9IG5ld1Byb3BWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNsb25lIHx8IGV4aXN0aW5nO1xuICB9IGFzIHVua25vd24pIGFzIFN0YXRlT3BlcmF0b3I8Tm9uTnVsbGFibGU8VD4+O1xufVxuIl19
@@ -20,7 +20,7 @@ export function updateItem(selector, operatorOrValue) {
20
20
  /** @type {?} */
21
21
  var index = -1;
22
22
  if (isPredicate(selector)) {
23
- index = existing.findIndex(selector);
23
+ index = existing.findIndex((/** @type {?} */ (selector)));
24
24
  }
25
25
  else if (isNumber(selector)) {
26
26
  index = selector;
@@ -32,11 +32,13 @@ export function updateItem(selector, operatorOrValue) {
32
32
  var value = (/** @type {?} */ (null));
33
33
  // Need to check if the new item value will change the existing item value
34
34
  // then, only if it will change it then clone the array and set the item
35
- if (isStateOperator(operatorOrValue)) {
36
- value = operatorOrValue((/** @type {?} */ (existing[index])));
35
+ /** @type {?} */
36
+ var theOperatorOrValue = (/** @type {?} */ (operatorOrValue));
37
+ if (isStateOperator(theOperatorOrValue)) {
38
+ value = theOperatorOrValue((/** @type {?} */ (existing[index])));
37
39
  }
38
40
  else {
39
- value = operatorOrValue;
41
+ value = theOperatorOrValue;
40
42
  }
41
43
  // If the value hasn't been mutated
42
44
  // then we just return `existing` array
@@ -49,4 +51,4 @@ export function updateItem(selector, operatorOrValue) {
49
51
  return clone;
50
52
  });
51
53
  }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWl0ZW0uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJ1cGRhdGUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBYyxNQUFNLFNBQVMsQ0FBQzs7Ozs7Ozs7O0FBUzNGLE1BQU0sVUFBVSxVQUFVLENBQ3hCLFFBQStCLEVBQy9CLGVBQXFDO0lBRXJDOzs7O0lBQU8sU0FBUyxrQkFBa0IsQ0FBQyxRQUFtQzs7WUFDaEUsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVkLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3pCLEtBQUssR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3RDO2FBQU0sSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDN0IsS0FBSyxHQUFHLFFBQVEsQ0FBQztTQUNsQjtRQUVELElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZCLE9BQU8sbUJBQUEsUUFBUSxFQUFtQixDQUFDO1NBQ3BDOztZQUVHLEtBQUssR0FBTSxtQkFBQSxJQUFJLEVBQUM7UUFDcEIsMEVBQTBFO1FBQzFFLHdFQUF3RTtRQUN4RSxJQUFJLGVBQWUsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUNwQyxLQUFLLEdBQUcsZUFBZSxDQUFDLG1CQUFBLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBZSxDQUFDLENBQUM7U0FDekQ7YUFBTTtZQUNMLEtBQUssR0FBRyxlQUFlLENBQUM7U0FDekI7UUFFRCxtQ0FBbUM7UUFDbkMsdUNBQXVDO1FBQ3ZDLElBQUksS0FBSyxLQUFLLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM3QixPQUFPLG1CQUFBLFFBQVEsRUFBbUIsQ0FBQztTQUNwQzs7WUFFSyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRTtRQUM5QixLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsbUJBQUEsS0FBSyxFQUFpQixDQUFDO1FBQ3RDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxFQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXRlT3BlcmF0b3IgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5cbmltcG9ydCB7IGlzU3RhdGVPcGVyYXRvciwgaXNQcmVkaWNhdGUsIGlzTnVtYmVyLCBpbnZhbGlkSW5kZXgsIFJlcGFpclR5cGUgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFByZWRpY2F0ZSB9IGZyb20gJy4vaW50ZXJuYWxzJztcblxuLyoqXG4gKiBAcGFyYW0gc2VsZWN0b3IgLSBJbmRleCBvZiBpdGVtIGluIHRoZSBhcnJheSBvciBhIHByZWRpY2F0ZSBmdW5jdGlvblxuICogdGhhdCBjYW4gYmUgcHJvdmlkZWQgaW4gYEFycmF5LnByb3RvdHlwZS5maW5kSW5kZXhgXG4gKiBAcGFyYW0gb3BlcmF0b3JPclZhbHVlIC0gTmV3IHZhbHVlIHVuZGVyIHRoZSBgc2VsZWN0b3JgIGluZGV4IG9yIGFcbiAqIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGFwcGxpZWQgdG8gYW4gZXhpc3RpbmcgdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUl0ZW08VD4oXG4gIHNlbGVjdG9yOiBudW1iZXIgfCBQcmVkaWNhdGU8VD4sXG4gIG9wZXJhdG9yT3JWYWx1ZTogVCB8IFN0YXRlT3BlcmF0b3I8VD5cbik6IFN0YXRlT3BlcmF0b3I8UmVwYWlyVHlwZTxUPltdPiB7XG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGVJdGVtT3BlcmF0b3IoZXhpc3Rpbmc6IFJlYWRvbmx5PFJlcGFpclR5cGU8VD5bXT4pOiBSZXBhaXJUeXBlPFQ+W10ge1xuICAgIGxldCBpbmRleCA9IC0xO1xuXG4gICAgaWYgKGlzUHJlZGljYXRlKHNlbGVjdG9yKSkge1xuICAgICAgaW5kZXggPSBleGlzdGluZy5maW5kSW5kZXgoc2VsZWN0b3IpO1xuICAgIH0gZWxzZSBpZiAoaXNOdW1iZXIoc2VsZWN0b3IpKSB7XG4gICAgICBpbmRleCA9IHNlbGVjdG9yO1xuICAgIH1cblxuICAgIGlmIChpbnZhbGlkSW5kZXgoaW5kZXgpKSB7XG4gICAgICByZXR1cm4gZXhpc3RpbmcgYXMgUmVwYWlyVHlwZTxUPltdO1xuICAgIH1cblxuICAgIGxldCB2YWx1ZTogVCA9IG51bGwhO1xuICAgIC8vIE5lZWQgdG8gY2hlY2sgaWYgdGhlIG5ldyBpdGVtIHZhbHVlIHdpbGwgY2hhbmdlIHRoZSBleGlzdGluZyBpdGVtIHZhbHVlXG4gICAgLy8gdGhlbiwgb25seSBpZiBpdCB3aWxsIGNoYW5nZSBpdCB0aGVuIGNsb25lIHRoZSBhcnJheSBhbmQgc2V0IHRoZSBpdGVtXG4gICAgaWYgKGlzU3RhdGVPcGVyYXRvcihvcGVyYXRvck9yVmFsdWUpKSB7XG4gICAgICB2YWx1ZSA9IG9wZXJhdG9yT3JWYWx1ZShleGlzdGluZ1tpbmRleF0gYXMgUmVhZG9ubHk8VD4pO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IG9wZXJhdG9yT3JWYWx1ZTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgdmFsdWUgaGFzbid0IGJlZW4gbXV0YXRlZFxuICAgIC8vIHRoZW4gd2UganVzdCByZXR1cm4gYGV4aXN0aW5nYCBhcnJheVxuICAgIGlmICh2YWx1ZSA9PT0gZXhpc3RpbmdbaW5kZXhdKSB7XG4gICAgICByZXR1cm4gZXhpc3RpbmcgYXMgUmVwYWlyVHlwZTxUPltdO1xuICAgIH1cblxuICAgIGNvbnN0IGNsb25lID0gZXhpc3Rpbmcuc2xpY2UoKTtcbiAgICBjbG9uZVtpbmRleF0gPSB2YWx1ZSBhcyBSZXBhaXJUeXBlPFQ+O1xuICAgIHJldHVybiBjbG9uZTtcbiAgfTtcbn1cbiJdfQ==
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWl0ZW0uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJ1cGRhdGUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsT0FBTyxFQUNMLGVBQWUsRUFDZixXQUFXLEVBQ1gsUUFBUSxFQUNSLFlBQVksRUFHYixNQUFNLFNBQVMsQ0FBQzs7Ozs7Ozs7O0FBU2pCLE1BQU0sVUFBVSxVQUFVLENBQ3hCLFFBQXdDLEVBQ3hDLGVBQXVEO0lBRXZEOzs7O0lBQU8sU0FBUyxrQkFBa0IsQ0FBQyxRQUFtQzs7WUFDaEUsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVkLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3pCLEtBQUssR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLG1CQUFBLFFBQVEsRUFBZ0IsQ0FBQyxDQUFDO1NBQ3REO2FBQU0sSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDN0IsS0FBSyxHQUFHLFFBQVEsQ0FBQztTQUNsQjtRQUVELElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZCLE9BQU8sbUJBQUEsUUFBUSxFQUFtQixDQUFDO1NBQ3BDOztZQUVHLEtBQUssR0FBTSxtQkFBQSxJQUFJLEVBQUM7Ozs7WUFHZCxrQkFBa0IsR0FBRyxtQkFBQSxlQUFlLEVBQXdCO1FBQ2xFLElBQUksZUFBZSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7WUFDdkMsS0FBSyxHQUFHLGtCQUFrQixDQUFDLG1CQUFBLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBZSxDQUFDLENBQUM7U0FDNUQ7YUFBTTtZQUNMLEtBQUssR0FBRyxrQkFBa0IsQ0FBQztTQUM1QjtRQUVELG1DQUFtQztRQUNuQyx1Q0FBdUM7UUFDdkMsSUFBSSxLQUFLLEtBQUssUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzdCLE9BQU8sbUJBQUEsUUFBUSxFQUFtQixDQUFDO1NBQ3BDOztZQUVLLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFO1FBQzlCLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxtQkFBQSxLQUFLLEVBQWlCLENBQUM7UUFDdEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLEVBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGVPcGVyYXRvciB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcblxuaW1wb3J0IHtcbiAgaXNTdGF0ZU9wZXJhdG9yLFxuICBpc1ByZWRpY2F0ZSxcbiAgaXNOdW1iZXIsXG4gIGludmFsaWRJbmRleCxcbiAgUmVwYWlyVHlwZSxcbiAgTm9JbmZlclxufSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFByZWRpY2F0ZSB9IGZyb20gJy4vaW50ZXJuYWxzJztcblxuLyoqXG4gKiBAcGFyYW0gc2VsZWN0b3IgLSBJbmRleCBvZiBpdGVtIGluIHRoZSBhcnJheSBvciBhIHByZWRpY2F0ZSBmdW5jdGlvblxuICogdGhhdCBjYW4gYmUgcHJvdmlkZWQgaW4gYEFycmF5LnByb3RvdHlwZS5maW5kSW5kZXhgXG4gKiBAcGFyYW0gb3BlcmF0b3JPclZhbHVlIC0gTmV3IHZhbHVlIHVuZGVyIHRoZSBgc2VsZWN0b3JgIGluZGV4IG9yIGFcbiAqIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGFwcGxpZWQgdG8gYW4gZXhpc3RpbmcgdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUl0ZW08VD4oXG4gIHNlbGVjdG9yOiBudW1iZXIgfCBOb0luZmVyPFByZWRpY2F0ZTxUPj4sXG4gIG9wZXJhdG9yT3JWYWx1ZTogTm9JbmZlcjxUPiB8IE5vSW5mZXI8U3RhdGVPcGVyYXRvcjxUPj5cbik6IFN0YXRlT3BlcmF0b3I8UmVwYWlyVHlwZTxUPltdPiB7XG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGVJdGVtT3BlcmF0b3IoZXhpc3Rpbmc6IFJlYWRvbmx5PFJlcGFpclR5cGU8VD5bXT4pOiBSZXBhaXJUeXBlPFQ+W10ge1xuICAgIGxldCBpbmRleCA9IC0xO1xuXG4gICAgaWYgKGlzUHJlZGljYXRlKHNlbGVjdG9yKSkge1xuICAgICAgaW5kZXggPSBleGlzdGluZy5maW5kSW5kZXgoc2VsZWN0b3IgYXMgUHJlZGljYXRlPFQ+KTtcbiAgICB9IGVsc2UgaWYgKGlzTnVtYmVyKHNlbGVjdG9yKSkge1xuICAgICAgaW5kZXggPSBzZWxlY3RvcjtcbiAgICB9XG5cbiAgICBpZiAoaW52YWxpZEluZGV4KGluZGV4KSkge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nIGFzIFJlcGFpclR5cGU8VD5bXTtcbiAgICB9XG5cbiAgICBsZXQgdmFsdWU6IFQgPSBudWxsITtcbiAgICAvLyBOZWVkIHRvIGNoZWNrIGlmIHRoZSBuZXcgaXRlbSB2YWx1ZSB3aWxsIGNoYW5nZSB0aGUgZXhpc3RpbmcgaXRlbSB2YWx1ZVxuICAgIC8vIHRoZW4sIG9ubHkgaWYgaXQgd2lsbCBjaGFuZ2UgaXQgdGhlbiBjbG9uZSB0aGUgYXJyYXkgYW5kIHNldCB0aGUgaXRlbVxuICAgIGNvbnN0IHRoZU9wZXJhdG9yT3JWYWx1ZSA9IG9wZXJhdG9yT3JWYWx1ZSBhcyBUIHwgU3RhdGVPcGVyYXRvcjxUPjtcbiAgICBpZiAoaXNTdGF0ZU9wZXJhdG9yKHRoZU9wZXJhdG9yT3JWYWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gdGhlT3BlcmF0b3JPclZhbHVlKGV4aXN0aW5nW2luZGV4XSBhcyBSZWFkb25seTxUPik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gdGhlT3BlcmF0b3JPclZhbHVlO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSB2YWx1ZSBoYXNuJ3QgYmVlbiBtdXRhdGVkXG4gICAgLy8gdGhlbiB3ZSBqdXN0IHJldHVybiBgZXhpc3RpbmdgIGFycmF5XG4gICAgaWYgKHZhbHVlID09PSBleGlzdGluZ1tpbmRleF0pIHtcbiAgICAgIHJldHVybiBleGlzdGluZyBhcyBSZXBhaXJUeXBlPFQ+W107XG4gICAgfVxuXG4gICAgY29uc3QgY2xvbmUgPSBleGlzdGluZy5zbGljZSgpO1xuICAgIGNsb25lW2luZGV4XSA9IHZhbHVlIGFzIFJlcGFpclR5cGU8VD47XG4gICAgcmV0dXJuIGNsb25lO1xuICB9O1xufVxuIl19
@@ -47,4 +47,4 @@ export function invalidIndex(index) {
47
47
  export function isNil(value) {
48
48
  return value === null || isUndefined(value);
49
49
  }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFJQSxNQUFNLFVBQVUsZUFBZSxDQUFJLEtBQTJCO0lBQzVELE9BQU8sT0FBTyxLQUFLLEtBQUssVUFBVSxDQUFDO0FBQ3JDLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFVO0lBQ3BDLE9BQU8sT0FBTyxLQUFLLEtBQUssV0FBVyxDQUFDO0FBQ3RDLENBQUM7Ozs7OztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUksS0FBc0M7SUFDbkUsT0FBTyxPQUFPLEtBQUssS0FBSyxVQUFVLENBQUM7QUFDckMsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQVU7SUFDakMsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUM7QUFDbkMsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQWE7SUFDeEMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM3QyxDQUFDOzs7Ozs7QUFFRCxNQUFNLFVBQVUsS0FBSyxDQUFJLEtBQTJCO0lBQ2xELE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXRlT3BlcmF0b3IgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5cbmltcG9ydCB7IFByZWRpY2F0ZSB9IGZyb20gJy4vaW50ZXJuYWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RhdGVPcGVyYXRvcjxUPih2YWx1ZTogVCB8IFN0YXRlT3BlcmF0b3I8VD4pOiB2YWx1ZSBpcyBTdGF0ZU9wZXJhdG9yPFQ+IHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVW5kZWZpbmVkKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyB1bmRlZmluZWQge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJlZGljYXRlPFQ+KHZhbHVlOiBQcmVkaWNhdGU8VD4gfCBib29sZWFuIHwgbnVtYmVyKTogdmFsdWUgaXMgUHJlZGljYXRlPFQ+IHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVtYmVyKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBudW1iZXIge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludmFsaWRJbmRleChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gIHJldHVybiBOdW1iZXIuaXNOYU4oaW5kZXgpIHx8IGluZGV4ID09PSAtMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTmlsPFQ+KHZhbHVlOiBUIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHZhbHVlIGlzIG51bGwgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgaXNVbmRlZmluZWQodmFsdWUpO1xufVxuXG5leHBvcnQgdHlwZSBSZXBhaXJUeXBlPFQ+ID0gVCBleHRlbmRzIHRydWUgPyBib29sZWFuIDogKFQgZXh0ZW5kcyBmYWxzZSA/IGJvb2xlYW4gOiBUKTtcbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFJQSxNQUFNLFVBQVUsZUFBZSxDQUFJLEtBQTJCO0lBQzVELE9BQU8sT0FBTyxLQUFLLEtBQUssVUFBVSxDQUFDO0FBQ3JDLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFVO0lBQ3BDLE9BQU8sT0FBTyxLQUFLLEtBQUssV0FBVyxDQUFDO0FBQ3RDLENBQUM7Ozs7OztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUksS0FBc0M7SUFDbkUsT0FBTyxPQUFPLEtBQUssS0FBSyxVQUFVLENBQUM7QUFDckMsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQVU7SUFDakMsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUM7QUFDbkMsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQWE7SUFDeEMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM3QyxDQUFDOzs7Ozs7QUFFRCxNQUFNLFVBQVUsS0FBSyxDQUFJLEtBQTJCO0lBQ2xELE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXRlT3BlcmF0b3IgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5cbmltcG9ydCB7IFByZWRpY2F0ZSB9IGZyb20gJy4vaW50ZXJuYWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RhdGVPcGVyYXRvcjxUPih2YWx1ZTogVCB8IFN0YXRlT3BlcmF0b3I8VD4pOiB2YWx1ZSBpcyBTdGF0ZU9wZXJhdG9yPFQ+IHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVW5kZWZpbmVkKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyB1bmRlZmluZWQge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJlZGljYXRlPFQ+KHZhbHVlOiBQcmVkaWNhdGU8VD4gfCBib29sZWFuIHwgbnVtYmVyKTogdmFsdWUgaXMgUHJlZGljYXRlPFQ+IHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVtYmVyKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBudW1iZXIge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludmFsaWRJbmRleChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gIHJldHVybiBOdW1iZXIuaXNOYU4oaW5kZXgpIHx8IGluZGV4ID09PSAtMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTmlsPFQ+KHZhbHVlOiBUIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHZhbHVlIGlzIG51bGwgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgaXNVbmRlZmluZWQodmFsdWUpO1xufVxuXG5leHBvcnQgdHlwZSBSZXBhaXJUeXBlPFQ+ID0gVCBleHRlbmRzIHRydWUgPyBib29sZWFuIDogVCBleHRlbmRzIGZhbHNlID8gYm9vbGVhbiA6IFQ7XG5cbmV4cG9ydCB0eXBlIE5vSW5mZXI8VD4gPSBUIGV4dGVuZHMgaW5mZXIgUyA/IFMgOiBuZXZlcjtcbiJdfQ==
@@ -3,7 +3,8 @@
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
5
  import { ɵivyEnabled } from '@angular/core';
6
- import { ensureLocalInjectorCaptured, localInject } from '@ngxs/store/internals';
6
+ import { mergeMap } from 'rxjs/operators';
7
+ import { localInject, ensureLocalInjectorCaptured, ensureInjectorNotifierIsCaptured } from '@ngxs/store/internals';
7
8
  import { Store } from '../../store';
8
9
  import { NgxsConfig } from '../../symbols';
9
10
  import { createSelectObservable, createSelectorFn } from './symbols';
@@ -32,6 +33,11 @@ export function Select(rawSelector) {
32
33
  var selectorId = "__" + name + "__selector";
33
34
  /** @type {?} */
34
35
  var selector = null;
36
+ /** @type {?} */
37
+ var injectorNotifier$ = null;
38
+ if (ɵivyEnabled) {
39
+ injectorNotifier$ = ensureInjectorNotifierIsCaptured(target);
40
+ }
35
41
  Object.defineProperties(target, (_a = {},
36
42
  _a[selectorId] = {
37
43
  writable: true,
@@ -45,14 +51,30 @@ export function Select(rawSelector) {
45
51
  * @return {?}
46
52
  */
47
53
  function () {
54
+ var _this = this;
55
+ if (this[selectorId]) {
56
+ return this[selectorId];
57
+ }
48
58
  // The `localInject` will be tree-shaken away in apps that
49
59
  // still use the View Engine.
50
- /** @type {?} */
51
- var store = ɵivyEnabled ? localInject(this, Store) : null;
52
- /** @type {?} */
53
- var config = ɵivyEnabled ? localInject(this, NgxsConfig) : null;
54
- selector = selector || createSelectorFn(config, name, rawSelector, paths);
55
- return (this[selectorId] || (this[selectorId] = createSelectObservable(selector, store)));
60
+ if (ɵivyEnabled) {
61
+ this[selectorId] = (/** @type {?} */ (injectorNotifier$)).pipe(mergeMap((/**
62
+ * @return {?}
63
+ */
64
+ function () {
65
+ /** @type {?} */
66
+ var store = localInject(_this, Store);
67
+ /** @type {?} */
68
+ var config = localInject(_this, NgxsConfig);
69
+ selector = selector || createSelectorFn(config, name, rawSelector, paths);
70
+ return createSelectObservable(selector, store);
71
+ })));
72
+ }
73
+ else {
74
+ selector = selector || createSelectorFn(null, name, rawSelector, paths);
75
+ this[selectorId] = createSelectObservable(selector, null);
76
+ }
77
+ return this[selectorId];
56
78
  }
57
79
  },
58
80
  _a));
@@ -62,4 +84,4 @@ export function Select(rawSelector) {
62
84
  }
63
85
  });
64
86
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvZGVjb3JhdG9ycy9zZWxlY3Qvc2VsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVqRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixFQUE0QixNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7QUFLL0YsTUFBTSxVQUFVLE1BQU0sQ0FBSSxXQUFlO0lBQUUsZUFBa0I7U0FBbEIsVUFBa0IsRUFBbEIscUJBQWtCLEVBQWxCLElBQWtCO1FBQWxCLDhCQUFrQjs7SUFDM0Q7Ozs7O0lBQU8sVUFBUyxNQUFNLEVBQUUsR0FBRzs7O1lBQ25CLElBQUksR0FBVyxHQUFHLENBQUMsUUFBUSxFQUFFOztZQUM3QixVQUFVLEdBQUcsT0FBSyxJQUFJLGVBQVk7O1lBQ3BDLFFBQVEsR0FBc0IsSUFBSTtRQUV0QyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTTtZQUM1QixHQUFDLFVBQVUsSUFBRztnQkFDWixRQUFRLEVBQUUsSUFBSTtnQkFDZCxVQUFVLEVBQUUsS0FBSztnQkFDakIsWUFBWSxFQUFFLElBQUk7YUFDbkI7WUFDRCxHQUFDLElBQUksSUFBRztnQkFDTixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLEdBQUc7OztnQkFBSDs7Ozt3QkFHUSxLQUFLLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJOzt3QkFDckQsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtvQkFFakUsUUFBUSxHQUFHLFFBQVEsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFFMUUsT0FBTyxDQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FDakYsQ0FBQztnQkFDSixDQUFDO2FBQ0Y7Z0JBQ0QsQ0FBQztRQUVILGdIQUFnSDtRQUNoSCxJQUFJLFdBQVcsRUFBRTtZQUNmLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQyxFQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IMm1aXZ5RW5hYmxlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZW5zdXJlTG9jYWxJbmplY3RvckNhcHR1cmVkLCBsb2NhbEluamVjdCB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5cbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnLi4vLi4vc3RvcmUnO1xuaW1wb3J0IHsgTmd4c0NvbmZpZyB9IGZyb20gJy4uLy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgY3JlYXRlU2VsZWN0T2JzZXJ2YWJsZSwgY3JlYXRlU2VsZWN0b3JGbiwgUHJvcGVydHlUeXBlLCBTZWxlY3RvckZuIH0gZnJvbSAnLi9zeW1ib2xzJztcblxuLyoqXG4gKiBEZWNvcmF0b3IgZm9yIHNlbGVjdGluZyBhIHNsaWNlIG9mIHN0YXRlIGZyb20gdGhlIHN0b3JlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gU2VsZWN0PFQ+KHJhd1NlbGVjdG9yPzogVCwgLi4ucGF0aHM6IHN0cmluZ1tdKTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICByZXR1cm4gZnVuY3Rpb24odGFyZ2V0LCBrZXkpOiB2b2lkIHtcbiAgICBjb25zdCBuYW1lOiBzdHJpbmcgPSBrZXkudG9TdHJpbmcoKTtcbiAgICBjb25zdCBzZWxlY3RvcklkID0gYF9fJHtuYW1lfV9fc2VsZWN0b3JgO1xuICAgIGxldCBzZWxlY3RvcjogU2VsZWN0b3JGbiB8IG51bGwgPSBudWxsO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCB7XG4gICAgICBbc2VsZWN0b3JJZF06IHtcbiAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBbbmFtZV06IHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQoKTogUHJvcGVydHlUeXBlPFQ+IHtcbiAgICAgICAgICAvLyBUaGUgYGxvY2FsSW5qZWN0YCB3aWxsIGJlIHRyZWUtc2hha2VuIGF3YXkgaW4gYXBwcyB0aGF0XG4gICAgICAgICAgLy8gc3RpbGwgdXNlIHRoZSBWaWV3IEVuZ2luZS5cbiAgICAgICAgICBjb25zdCBzdG9yZSA9IMm1aXZ5RW5hYmxlZCA/IGxvY2FsSW5qZWN0KHRoaXMsIFN0b3JlKSA6IG51bGw7XG4gICAgICAgICAgY29uc3QgY29uZmlnID0gybVpdnlFbmFibGVkID8gbG9jYWxJbmplY3QodGhpcywgTmd4c0NvbmZpZykgOiBudWxsO1xuXG4gICAgICAgICAgc2VsZWN0b3IgPSBzZWxlY3RvciB8fCBjcmVhdGVTZWxlY3RvckZuKGNvbmZpZywgbmFtZSwgcmF3U2VsZWN0b3IsIHBhdGhzKTtcblxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzW3NlbGVjdG9ySWRdIHx8ICh0aGlzW3NlbGVjdG9ySWRdID0gY3JlYXRlU2VsZWN0T2JzZXJ2YWJsZShzZWxlY3Rvciwgc3RvcmUpKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIEtlZXAgdGhpcyBgaWZgIGd1YXJkIGhlcmUgc28gdGhlIGJlbG93IHN0dWZmIHdpbGwgYmUgdHJlZS1zaGFrZW4gYXdheSBpbiBhcHBzIHRoYXQgc3RpbGwgdXNlIHRoZSBWaWV3IEVuZ2luZS5cbiAgICBpZiAoybVpdnlFbmFibGVkKSB7XG4gICAgICBlbnN1cmVMb2NhbEluamVjdG9yQ2FwdHVyZWQodGFyZ2V0KTtcbiAgICB9XG4gIH07XG59XG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvZGVjb3JhdG9ycy9zZWxlY3Qvc2VsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsV0FBVyxFQUNYLDJCQUEyQixFQUMzQixnQ0FBZ0MsRUFDakMsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixFQUFjLE1BQU0sV0FBVyxDQUFDOzs7Ozs7OztBQUtqRixNQUFNLFVBQVUsTUFBTSxDQUFJLFdBQWU7SUFBRSxlQUFrQjtTQUFsQixVQUFrQixFQUFsQixxQkFBa0IsRUFBbEIsSUFBa0I7UUFBbEIsOEJBQWtCOztJQUMzRDs7Ozs7SUFBTyxVQUFTLE1BQU0sRUFBRSxHQUFHOzs7WUFDbkIsSUFBSSxHQUFXLEdBQUcsQ0FBQyxRQUFRLEVBQUU7O1lBQzdCLFVBQVUsR0FBRyxPQUFLLElBQUksZUFBWTs7WUFDcEMsUUFBUSxHQUFzQixJQUFJOztZQUNsQyxpQkFBaUIsR0FBa0MsSUFBSTtRQUUzRCxJQUFJLFdBQVcsRUFBRTtZQUNmLGlCQUFpQixHQUFHLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzlEO1FBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE1BQU07WUFDNUIsR0FBQyxVQUFVLElBQUc7Z0JBQ1osUUFBUSxFQUFFLElBQUk7Z0JBQ2QsVUFBVSxFQUFFLEtBQUs7Z0JBQ2pCLFlBQVksRUFBRSxJQUFJO2FBQ25CO1lBQ0QsR0FBQyxJQUFJLElBQUc7Z0JBQ04sVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFlBQVksRUFBRSxJQUFJO2dCQUNsQixHQUFHOzs7O29CQUFILGlCQW9CQztvQkFuQkMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7d0JBQ3BCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO3FCQUN6QjtvQkFDRCwwREFBMEQ7b0JBQzFELDZCQUE2QjtvQkFDN0IsSUFBSSxXQUFXLEVBQUU7d0JBQ2YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLG1CQUFBLGlCQUFpQixFQUFDLENBQUMsSUFBSSxDQUN4QyxRQUFROzs7d0JBQUM7O2dDQUNELEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSSxFQUFFLEtBQUssQ0FBQzs7Z0NBQ2hDLE1BQU0sR0FBRyxXQUFXLENBQUMsS0FBSSxFQUFFLFVBQVUsQ0FBQzs0QkFDNUMsUUFBUSxHQUFHLFFBQVEsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQzs0QkFDMUUsT0FBTyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBQ2pELENBQUMsRUFBQyxDQUNILENBQUM7cUJBQ0g7eUJBQU07d0JBQ0wsUUFBUSxHQUFHLFFBQVEsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDeEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztxQkFDM0Q7b0JBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzFCLENBQUM7YUFDRjtnQkFDRCxDQUFDO1FBRUgsZ0hBQWdIO1FBQ2hILElBQUksV0FBVyxFQUFFO1lBQ2YsMkJBQTJCLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDLEVBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgybVpdnlFbmFibGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIGxvY2FsSW5qZWN0LFxuICBlbnN1cmVMb2NhbEluamVjdG9yQ2FwdHVyZWQsXG4gIGVuc3VyZUluamVjdG9yTm90aWZpZXJJc0NhcHR1cmVkXG59IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5cbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnLi4vLi4vc3RvcmUnO1xuaW1wb3J0IHsgTmd4c0NvbmZpZyB9IGZyb20gJy4uLy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgY3JlYXRlU2VsZWN0T2JzZXJ2YWJsZSwgY3JlYXRlU2VsZWN0b3JGbiwgU2VsZWN0b3JGbiB9IGZyb20gJy4vc3ltYm9scyc7XG5cbi8qKlxuICogRGVjb3JhdG9yIGZvciBzZWxlY3RpbmcgYSBzbGljZSBvZiBzdGF0ZSBmcm9tIHRoZSBzdG9yZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdDxUPihyYXdTZWxlY3Rvcj86IFQsIC4uLnBhdGhzOiBzdHJpbmdbXSk6IFByb3BlcnR5RGVjb3JhdG9yIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKHRhcmdldCwga2V5KTogdm9pZCB7XG4gICAgY29uc3QgbmFtZTogc3RyaW5nID0ga2V5LnRvU3RyaW5nKCk7XG4gICAgY29uc3Qgc2VsZWN0b3JJZCA9IGBfXyR7bmFtZX1fX3NlbGVjdG9yYDtcbiAgICBsZXQgc2VsZWN0b3I6IFNlbGVjdG9yRm4gfCBudWxsID0gbnVsbDtcbiAgICBsZXQgaW5qZWN0b3JOb3RpZmllciQ6IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4gfCBudWxsID0gbnVsbDtcblxuICAgIGlmICjJtWl2eUVuYWJsZWQpIHtcbiAgICAgIGluamVjdG9yTm90aWZpZXIkID0gZW5zdXJlSW5qZWN0b3JOb3RpZmllcklzQ2FwdHVyZWQodGFyZ2V0KTtcbiAgICB9XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHtcbiAgICAgIFtzZWxlY3RvcklkXToge1xuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFtuYW1lXToge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGdldCgpIHtcbiAgICAgICAgICBpZiAodGhpc1tzZWxlY3RvcklkXSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXNbc2VsZWN0b3JJZF07XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFRoZSBgbG9jYWxJbmplY3RgIHdpbGwgYmUgdHJlZS1zaGFrZW4gYXdheSBpbiBhcHBzIHRoYXRcbiAgICAgICAgICAvLyBzdGlsbCB1c2UgdGhlIFZpZXcgRW5naW5lLlxuICAgICAgICAgIGlmICjJtWl2eUVuYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXNbc2VsZWN0b3JJZF0gPSBpbmplY3Rvck5vdGlmaWVyJCEucGlwZShcbiAgICAgICAgICAgICAgbWVyZ2VNYXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0b3JlID0gbG9jYWxJbmplY3QodGhpcywgU3RvcmUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IGxvY2FsSW5qZWN0KHRoaXMsIE5neHNDb25maWcpO1xuICAgICAgICAgICAgICAgIHNlbGVjdG9yID0gc2VsZWN0b3IgfHwgY3JlYXRlU2VsZWN0b3JGbihjb25maWcsIG5hbWUsIHJhd1NlbGVjdG9yLCBwYXRocyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVNlbGVjdE9ic2VydmFibGUoc2VsZWN0b3IsIHN0b3JlKTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNlbGVjdG9yID0gc2VsZWN0b3IgfHwgY3JlYXRlU2VsZWN0b3JGbihudWxsLCBuYW1lLCByYXdTZWxlY3RvciwgcGF0aHMpO1xuICAgICAgICAgICAgdGhpc1tzZWxlY3RvcklkXSA9IGNyZWF0ZVNlbGVjdE9ic2VydmFibGUoc2VsZWN0b3IsIG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpc1tzZWxlY3RvcklkXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gS2VlcCB0aGlzIGBpZmAgZ3VhcmQgaGVyZSBzbyB0aGUgYmVsb3cgc3R1ZmYgd2lsbCBiZSB0cmVlLXNoYWtlbiBhd2F5IGluIGFwcHMgdGhhdCBzdGlsbCB1c2UgdGhlIFZpZXcgRW5naW5lLlxuICAgIGlmICjJtWl2eUVuYWJsZWQpIHtcbiAgICAgIGVuc3VyZUxvY2FsSW5qZWN0b3JDYXB0dXJlZCh0YXJnZXQpO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -215,6 +215,38 @@ const InjectorInstance = Symbol('InjectorInstance');
215
215
  // A `Symbol` which is used to determine if factory has been decorated previously or not.
216
216
  /** @type {?} */
217
217
  const FactoryHasBeenDecorated = Symbol('FactoryHasBeenDecorated');
218
+ // A `Symbol` which is used to save the notifier on the class instance. The `InjectorInstance` cannot
219
+ // be retrieved within the `constructor` since it's set after the `factory()` is called.
220
+ /** @type {?} */
221
+ const InjectorNotifier = Symbol('InjectorNotifier');
222
+ /**
223
+ * @record
224
+ */
225
+ function PrototypeWithInjectorNotifier() { }
226
+ if (false) {
227
+ /* Skipping unnamed member:
228
+ [InjectorNotifier]?: ReplaySubject<boolean>;*/
229
+ }
230
+ /**
231
+ * @param {?} target
232
+ * @return {?}
233
+ */
234
+ function ensureInjectorNotifierIsCaptured(target) {
235
+ if (target[InjectorNotifier]) {
236
+ return (/** @type {?} */ (target[InjectorNotifier]));
237
+ }
238
+ else {
239
+ /** @type {?} */
240
+ const injectorNotifier$ = new ReplaySubject(1);
241
+ Object.defineProperty(target, InjectorNotifier, {
242
+ get: (/**
243
+ * @return {?}
244
+ */
245
+ () => injectorNotifier$)
246
+ });
247
+ return injectorNotifier$;
248
+ }
249
+ }
218
250
  // eslint-disable-next-line @typescript-eslint/ban-types
219
251
  /**
220
252
  * @param {?} target
@@ -284,6 +316,13 @@ function decorateFactory(constructor) {
284
316
  // throws: `Cannot assign an abstract constructor type to a non-abstract constructor type.`.
285
317
  // Caretaker note: that this is the same way of getting the injector.
286
318
  INJECTOR);
319
+ // Caretaker note: the notifier will be available only if consumers call the `ensureInjectorNotifierIsCaptured()`.
320
+ /** @type {?} */
321
+ const injectorNotifier$ = instance[InjectorNotifier];
322
+ if (injectorNotifier$) {
323
+ injectorNotifier$.next(true);
324
+ injectorNotifier$.complete();
325
+ }
287
326
  return instance;
288
327
  });
289
328
  // If we've found any definition then it's enough to override the `def.factory` since Angular
@@ -361,6 +400,8 @@ function PrivateInstance() { }
361
400
  if (false) {
362
401
  /* Skipping unnamed member:
363
402
  [InjectorInstance]?: Injector;*/
403
+ /* Skipping unnamed member:
404
+ [InjectorNotifier]?: ReplaySubject<boolean>;*/
364
405
  }
365
406
 
366
407
  /**
@@ -373,5 +414,5 @@ if (false) {
373
414
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
374
415
  */
375
416
 
376
- export { INITIAL_STATE_TOKEN, InitialState, NGXS_STATE_CONTEXT_FACTORY, NGXS_STATE_FACTORY, NgxsBootstrapper, ensureLocalInjectorCaptured, isAngularInTestMode, localInject, memoize };
417
+ export { INITIAL_STATE_TOKEN, InitialState, NGXS_STATE_CONTEXT_FACTORY, NGXS_STATE_FACTORY, NgxsBootstrapper, ensureInjectorNotifierIsCaptured, ensureLocalInjectorCaptured, isAngularInTestMode, localInject, memoize };
377
418
  //# sourceMappingURL=ngxs-store-internals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngxs-store-internals.js","sources":["ng://@ngxs/store/internals/memoize.ts","ng://@ngxs/store/internals/angular.ts","ng://@ngxs/store/internals/ngxs-bootstrapper.ts","ng://@ngxs/store/internals/initial-state.ts","ng://@ngxs/store/internals/internal-tokens.ts","ng://@ngxs/store/internals/decorator-injector-adapter.ts"],"sourcesContent":["function defaultEqualityCheck(a: any, b: any) {\n return a === b;\n}\n\nfunction areArgumentsShallowlyEqual(\n equalityCheck: (a: any, b: any) => boolean,\n prev: IArguments | null,\n next: IArguments | null\n) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n }\n\n // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n const length = prev.length;\n for (let i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Memoize a function on its last inputs only.\n * Originally from: https://github.com/reduxjs/reselect/blob/master/src/index.js\n *\n * @ignore\n */\nexport function memoize<T extends (...args: any[]) => any>(\n func: T,\n equalityCheck = defaultEqualityCheck\n): T {\n let lastArgs: IArguments | null = null;\n let lastResult: any = null;\n // we reference arguments instead of spreading them for performance reasons\n function memoized() {\n if (!areArgumentsShallowlyEqual(equalityCheck, lastArgs, arguments)) {\n // apply arguments instead of spreading for performance.\n lastResult = (<Function>func).apply(null, arguments);\n }\n\n lastArgs = arguments;\n return lastResult;\n }\n (<any>memoized).reset = function() {\n // The hidden (for now) ability to reset the memoization\n lastArgs = null;\n lastResult = null;\n };\n return memoized as T;\n}\n","import { getPlatform, COMPILER_OPTIONS, CompilerOptions, PlatformRef } from '@angular/core';\nimport { memoize } from './memoize';\n\n/**\n * @description Will be provided through Terser global definitions by Angular CLI\n * during the production build. This is how Angular does tree-shaking internally.\n */\ndeclare const ngDevMode: boolean;\n\nfunction _isAngularInTestMode(): boolean {\n const platformRef: PlatformRef | null = getPlatform();\n if (!platformRef) return false;\n const compilerOptions = platformRef.injector.get(COMPILER_OPTIONS, null);\n if (!compilerOptions) return false;\n const isInTestMode = compilerOptions.some((item: CompilerOptions) => {\n const providers = (item && item.providers) || [];\n return providers.some((provider: any) => {\n return (\n (provider && provider.provide && provider.provide.name === 'MockNgModuleResolver') ||\n false\n );\n });\n });\n return isInTestMode;\n}\n\nexport const isAngularInTestMode =\n // Caretaker note: we have still left the `typeof` condition in order to avoid\n // creating a breaking change for projects that still use the View Engine.\n typeof ngDevMode === 'undefined' || ngDevMode ? memoize(_isAngularInTestMode) : () => false;\n","import { Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\n\n@Injectable()\nexport class NgxsBootstrapper {\n /**\n * Use `ReplaySubject`, thus we can get cached value even if the stream is completed\n */\n private bootstrap$ = new ReplaySubject<boolean>(1);\n\n get appBootstrapped$(): Observable<boolean> {\n return this.bootstrap$.asObservable();\n }\n\n /**\n * This event will be emitted after attaching `ComponentRef` of the root component\n * to the tree of views, that's a signal that application has been fully rendered\n */\n bootstrap(): void {\n this.bootstrap$.next(true);\n this.bootstrap$.complete();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { PlainObject } from './symbols';\n\nexport const INITIAL_STATE_TOKEN = new InjectionToken<any>('INITIAL_STATE_TOKEN');\n\nexport class InitialState {\n private static value: PlainObject = {};\n\n public static set(state: PlainObject) {\n this.value = state;\n }\n\n public static pop(): PlainObject {\n const state: PlainObject = this.value;\n this.value = {};\n return state;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\n/**\n * @see StateContextFactory as it's referenced by this token to be accessed by plugins internally\n */\nexport const NGXS_STATE_CONTEXT_FACTORY: InjectionToken<any> = new InjectionToken(\n 'Internals.StateContextFactory'\n);\n\n/**\n * @see StateFactory as it's referenced by this token to be accessed by plugins internally\n */\nexport const NGXS_STATE_FACTORY: InjectionToken<any> = new InjectionToken(\n 'Internals.StateFactory'\n);\n","import {\n InjectionToken,\n Injector,\n INJECTOR,\n Type,\n ɵɵdirectiveInject,\n ɵglobal\n} from '@angular/core';\n\n// Will be provided through Terser global definitions by Angular CLI\n// during the production build. This is how Angular does tree-shaking internally.\ndeclare const ngDevMode: boolean;\n\n// Angular doesn't export `NG_FACTORY_DEF`.\nconst NG_FACTORY_DEF = 'ɵfac';\n\n// A `Symbol` which is used to save the `Injector` onto the class instance.\nconst InjectorInstance: unique symbol = Symbol('InjectorInstance');\n\n// A `Symbol` which is used to determine if factory has been decorated previously or not.\nconst FactoryHasBeenDecorated: unique symbol = Symbol('FactoryHasBeenDecorated');\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function ensureLocalInjectorCaptured(target: Object): void {\n if (FactoryHasBeenDecorated in target.constructor.prototype) {\n return;\n }\n\n const constructor: ConstructorWithDefinitionAndFactory = target.constructor;\n // Means we're in AOT mode.\n if (typeof constructor[NG_FACTORY_DEF] === 'function') {\n decorateFactory(constructor);\n } else if (ngDevMode) {\n // We're running in JIT mode and that means we're not able to get the compiled definition\n // on the class inside the property decorator during the current message loop tick. We have\n // to wait for the next message loop tick. Note that this is safe since this Promise will be\n // resolved even before the `APP_INITIALIZER` is resolved.\n // The below code also will be executed only in development mode, since it's never recommended\n // to use the JIT compiler in production mode (by setting \"aot: false\").\n decorateFactoryLater(constructor);\n }\n\n target.constructor.prototype[FactoryHasBeenDecorated] = true;\n}\n\nexport function localInject<T>(\n instance: PrivateInstance,\n token: InjectionToken<T> | Type<T>\n): T | null {\n const injector: Injector | undefined = instance[InjectorInstance];\n return injector ? injector.get(token) : null;\n}\n\nfunction decorateFactory(constructor: ConstructorWithDefinitionAndFactory): void {\n const factory = constructor[NG_FACTORY_DEF];\n\n if (typeof factory !== 'function') {\n return;\n }\n\n // Let's try to get any definition.\n // Caretaker note: this will be compatible only with Angular 9+, since Angular 9 is the first\n // Ivy-stable version. Previously definition properties were named differently (e.g. `ngComponentDef`).\n const def = constructor.ɵprov || constructor.ɵpipe || constructor.ɵcmp || constructor.ɵdir;\n\n const decoratedFactory = () => {\n const instance = factory();\n // Caretaker note: `inject()` won't work here.\n // We can use the `directiveInject` only during the component\n // construction, since Angular captures the currently active injector.\n // We're not able to use this function inside the getter (when the `selectorId` property is\n // requested for the first time), since the currently active injector will be null.\n instance[InjectorInstance] = ɵɵdirectiveInject(\n // We're using `INJECTOR` token except of the `Injector` class since the compiler\n // throws: `Cannot assign an abstract constructor type to a non-abstract constructor type.`.\n // Caretaker note: that this is the same way of getting the injector.\n INJECTOR\n );\n return instance;\n };\n\n // If we've found any definition then it's enough to override the `def.factory` since Angular\n // code uses the `def.factory` and then fallbacks to `ɵfac`.\n if (def) {\n def.factory = decoratedFactory;\n }\n\n // `@NgModule()` doesn't doesn't have definition factory, also providers have definitions but Angular\n // still uses the `ɵfac`.\n Object.defineProperty(constructor, NG_FACTORY_DEF, {\n get: () => decoratedFactory\n });\n}\n\nfunction decorateFactoryLater(constructor: ConstructorWithDefinitionAndFactory): void {\n // This function actually will be tree-shaken away when building for production since it's guarded with `ngDevMode`.\n // We're having the `try-catch` here because of the `SyncTestZoneSpec`, which throws\n // an error when micro or macrotask is used within a synchronous test. E.g. `Cannot call\n // Promise.then from within a sync test`.\n try {\n Promise.resolve().then(() => {\n decorateFactory(constructor);\n });\n } catch {\n // This is kind of a \"hack\", but we try to be backwards-compatible,\n // tho this `catch` block will only be executed when tests are run with Jasmine or Jest.\n ɵglobal.process &&\n ɵglobal.process.nextTick &&\n ɵglobal.process.nextTick(() => {\n decorateFactory(constructor);\n });\n }\n}\n\n// We could've used `ɵɵFactoryDef` but we try to be backwards-compatible,\n// since it's not exported in older Angular versions.\ntype Factory = () => PrivateInstance;\n\n// We could've used `ɵɵInjectableDef`, `ɵɵPipeDef`, etc. We try to be backwards-compatible\n// since they're not exported in older Angular versions.\ninterface Definition {\n factory: Factory | null;\n}\n\ninterface ConstructorWithDefinitionAndFactory extends Function {\n // Provider definition for the `@Injectable()` class.\n ɵprov?: Definition;\n // Pipe definition for the `@Pipe()` class.\n ɵpipe?: Definition;\n // Component definition for the `@Component()` class.\n ɵcmp?: Definition;\n // Directive definition for the `@Directive()` class.\n ɵdir?: Definition;\n [NG_FACTORY_DEF]?: Factory;\n}\n\ninterface PrivateInstance {\n [InjectorInstance]?: Injector;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngxs-store-internals.js","sources":["ng://@ngxs/store/internals/memoize.ts","ng://@ngxs/store/internals/angular.ts","ng://@ngxs/store/internals/ngxs-bootstrapper.ts","ng://@ngxs/store/internals/initial-state.ts","ng://@ngxs/store/internals/internal-tokens.ts","ng://@ngxs/store/internals/decorator-injector-adapter.ts"],"sourcesContent":["function defaultEqualityCheck(a: any, b: any) {\n return a === b;\n}\n\nfunction areArgumentsShallowlyEqual(\n equalityCheck: (a: any, b: any) => boolean,\n prev: IArguments | null,\n next: IArguments | null\n) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n }\n\n // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n const length = prev.length;\n for (let i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Memoize a function on its last inputs only.\n * Originally from: https://github.com/reduxjs/reselect/blob/master/src/index.js\n *\n * @ignore\n */\nexport function memoize<T extends (...args: any[]) => any>(\n func: T,\n equalityCheck = defaultEqualityCheck\n): T {\n let lastArgs: IArguments | null = null;\n let lastResult: any = null;\n // we reference arguments instead of spreading them for performance reasons\n function memoized() {\n if (!areArgumentsShallowlyEqual(equalityCheck, lastArgs, arguments)) {\n // apply arguments instead of spreading for performance.\n lastResult = (<Function>func).apply(null, arguments);\n }\n\n lastArgs = arguments;\n return lastResult;\n }\n (<any>memoized).reset = function() {\n // The hidden (for now) ability to reset the memoization\n lastArgs = null;\n lastResult = null;\n };\n return memoized as T;\n}\n","import { getPlatform, COMPILER_OPTIONS, CompilerOptions, PlatformRef } from '@angular/core';\nimport { memoize } from './memoize';\n\n/**\n * @description Will be provided through Terser global definitions by Angular CLI\n * during the production build. This is how Angular does tree-shaking internally.\n */\ndeclare const ngDevMode: boolean;\n\nfunction _isAngularInTestMode(): boolean {\n const platformRef: PlatformRef | null = getPlatform();\n if (!platformRef) return false;\n const compilerOptions = platformRef.injector.get(COMPILER_OPTIONS, null);\n if (!compilerOptions) return false;\n const isInTestMode = compilerOptions.some((item: CompilerOptions) => {\n const providers = (item && item.providers) || [];\n return providers.some((provider: any) => {\n return (\n (provider && provider.provide && provider.provide.name === 'MockNgModuleResolver') ||\n false\n );\n });\n });\n return isInTestMode;\n}\n\nexport const isAngularInTestMode =\n // Caretaker note: we have still left the `typeof` condition in order to avoid\n // creating a breaking change for projects that still use the View Engine.\n typeof ngDevMode === 'undefined' || ngDevMode ? memoize(_isAngularInTestMode) : () => false;\n","import { Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\n\n@Injectable()\nexport class NgxsBootstrapper {\n /**\n * Use `ReplaySubject`, thus we can get cached value even if the stream is completed\n */\n private bootstrap$ = new ReplaySubject<boolean>(1);\n\n get appBootstrapped$(): Observable<boolean> {\n return this.bootstrap$.asObservable();\n }\n\n /**\n * This event will be emitted after attaching `ComponentRef` of the root component\n * to the tree of views, that's a signal that application has been fully rendered\n */\n bootstrap(): void {\n this.bootstrap$.next(true);\n this.bootstrap$.complete();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { PlainObject } from './symbols';\n\nexport const INITIAL_STATE_TOKEN = new InjectionToken<any>('INITIAL_STATE_TOKEN');\n\nexport class InitialState {\n private static value: PlainObject = {};\n\n public static set(state: PlainObject) {\n this.value = state;\n }\n\n public static pop(): PlainObject {\n const state: PlainObject = this.value;\n this.value = {};\n return state;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\n/**\n * @see StateContextFactory as it's referenced by this token to be accessed by plugins internally\n */\nexport const NGXS_STATE_CONTEXT_FACTORY: InjectionToken<any> = new InjectionToken(\n 'Internals.StateContextFactory'\n);\n\n/**\n * @see StateFactory as it's referenced by this token to be accessed by plugins internally\n */\nexport const NGXS_STATE_FACTORY: InjectionToken<any> = new InjectionToken(\n 'Internals.StateFactory'\n);\n","import {\n InjectionToken,\n Injector,\n INJECTOR,\n Type,\n ɵɵdirectiveInject,\n ɵglobal\n} from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\n\n// Will be provided through Terser global definitions by Angular CLI\n// during the production build. This is how Angular does tree-shaking internally.\ndeclare const ngDevMode: boolean;\n\n// Angular doesn't export `NG_FACTORY_DEF`.\nconst NG_FACTORY_DEF = 'ɵfac';\n\n// A `Symbol` which is used to save the `Injector` onto the class instance.\nconst InjectorInstance: unique symbol = Symbol('InjectorInstance');\n\n// A `Symbol` which is used to determine if factory has been decorated previously or not.\nconst FactoryHasBeenDecorated: unique symbol = Symbol('FactoryHasBeenDecorated');\n\n// A `Symbol` which is used to save the notifier on the class instance. The `InjectorInstance` cannot\n// be retrieved within the `constructor` since it's set after the `factory()` is called.\nconst InjectorNotifier: unique symbol = Symbol('InjectorNotifier');\n\ninterface PrototypeWithInjectorNotifier extends Object {\n [InjectorNotifier]?: ReplaySubject<boolean>;\n}\n\nexport function ensureInjectorNotifierIsCaptured(\n target: PrototypeWithInjectorNotifier | PrivateInstance\n): ReplaySubject<boolean> {\n if (target[InjectorNotifier]) {\n return target[InjectorNotifier]!;\n } else {\n const injectorNotifier$ = new ReplaySubject<boolean>(1);\n Object.defineProperty(target, InjectorNotifier, {\n get: () => injectorNotifier$\n });\n return injectorNotifier$;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function ensureLocalInjectorCaptured(target: Object): void {\n if (FactoryHasBeenDecorated in target.constructor.prototype) {\n return;\n }\n\n const constructor: ConstructorWithDefinitionAndFactory = target.constructor;\n // Means we're in AOT mode.\n if (typeof constructor[NG_FACTORY_DEF] === 'function') {\n decorateFactory(constructor);\n } else if (ngDevMode) {\n // We're running in JIT mode and that means we're not able to get the compiled definition\n // on the class inside the property decorator during the current message loop tick. We have\n // to wait for the next message loop tick. Note that this is safe since this Promise will be\n // resolved even before the `APP_INITIALIZER` is resolved.\n // The below code also will be executed only in development mode, since it's never recommended\n // to use the JIT compiler in production mode (by setting \"aot: false\").\n decorateFactoryLater(constructor);\n }\n\n target.constructor.prototype[FactoryHasBeenDecorated] = true;\n}\n\nexport function localInject<T>(\n instance: PrivateInstance,\n token: InjectionToken<T> | Type<T>\n): T | null {\n const injector: Injector | undefined = instance[InjectorInstance];\n return injector ? injector.get(token) : null;\n}\n\nfunction decorateFactory(constructor: ConstructorWithDefinitionAndFactory): void {\n const factory = constructor[NG_FACTORY_DEF];\n\n if (typeof factory !== 'function') {\n return;\n }\n\n // Let's try to get any definition.\n // Caretaker note: this will be compatible only with Angular 9+, since Angular 9 is the first\n // Ivy-stable version. Previously definition properties were named differently (e.g. `ngComponentDef`).\n const def = constructor.ɵprov || constructor.ɵpipe || constructor.ɵcmp || constructor.ɵdir;\n\n const decoratedFactory = () => {\n const instance = factory();\n // Caretaker note: `inject()` won't work here.\n // We can use the `directiveInject` only during the component\n // construction, since Angular captures the currently active injector.\n // We're not able to use this function inside the getter (when the `selectorId` property is\n // requested for the first time), since the currently active injector will be null.\n instance[InjectorInstance] = ɵɵdirectiveInject(\n // We're using `INJECTOR` token except of the `Injector` class since the compiler\n // throws: `Cannot assign an abstract constructor type to a non-abstract constructor type.`.\n // Caretaker note: that this is the same way of getting the injector.\n INJECTOR\n );\n\n // Caretaker note: the notifier will be available only if consumers call the `ensureInjectorNotifierIsCaptured()`.\n const injectorNotifier$ = instance[InjectorNotifier];\n if (injectorNotifier$) {\n injectorNotifier$.next(true);\n injectorNotifier$.complete();\n }\n\n return instance;\n };\n\n // If we've found any definition then it's enough to override the `def.factory` since Angular\n // code uses the `def.factory` and then fallbacks to `ɵfac`.\n if (def) {\n def.factory = decoratedFactory;\n }\n\n // `@NgModule()` doesn't doesn't have definition factory, also providers have definitions but Angular\n // still uses the `ɵfac`.\n Object.defineProperty(constructor, NG_FACTORY_DEF, {\n get: () => decoratedFactory\n });\n}\n\nfunction decorateFactoryLater(constructor: ConstructorWithDefinitionAndFactory): void {\n // This function actually will be tree-shaken away when building for production since it's guarded with `ngDevMode`.\n // We're having the `try-catch` here because of the `SyncTestZoneSpec`, which throws\n // an error when micro or macrotask is used within a synchronous test. E.g. `Cannot call\n // Promise.then from within a sync test`.\n try {\n Promise.resolve().then(() => {\n decorateFactory(constructor);\n });\n } catch {\n // This is kind of a \"hack\", but we try to be backwards-compatible,\n // tho this `catch` block will only be executed when tests are run with Jasmine or Jest.\n ɵglobal.process &&\n ɵglobal.process.nextTick &&\n ɵglobal.process.nextTick(() => {\n decorateFactory(constructor);\n });\n }\n}\n\n// We could've used `ɵɵFactoryDef` but we try to be backwards-compatible,\n// since it's not exported in older Angular versions.\ntype Factory = () => PrivateInstance;\n\n// We could've used `ɵɵInjectableDef`, `ɵɵPipeDef`, etc. We try to be backwards-compatible\n// since they're not exported in older Angular versions.\ninterface Definition {\n factory: Factory | null;\n}\n\ninterface ConstructorWithDefinitionAndFactory extends Function {\n // Provider definition for the `@Injectable()` class.\n ɵprov?: Definition;\n // Pipe definition for the `@Pipe()` class.\n ɵpipe?: Definition;\n // Component definition for the `@Component()` class.\n ɵcmp?: Definition;\n // Directive definition for the `@Directive()` class.\n ɵdir?: Definition;\n [NG_FACTORY_DEF]?: Factory;\n}\n\ninterface PrivateInstance {\n [InjectorInstance]?: Injector;\n [InjectorNotifier]?: ReplaySubject<boolean>;\n}\n"],"names":[],"mappings":"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"}
@@ -21,11 +21,11 @@ function append(items) {
21
21
  return (/** @type {?} */ (existing));
22
22
  }
23
23
  if (Array.isArray(existing)) {
24
- return existing.concat((/** @type {?} */ (items)));
24
+ return existing.concat((/** @type {?} */ (((/** @type {?} */ (items))))));
25
25
  }
26
26
  // For example if some property is added dynamically
27
27
  // and didn't exist before thus it's not `ArrayLike`
28
- return (/** @type {?} */ (items));
28
+ return (/** @type {?} */ (((/** @type {?} */ (items)))));
29
29
  });
30
30
  }
31
31
 
@@ -181,7 +181,7 @@ function insertItem(value, beforePosition) {
181
181
  }
182
182
  // Property may be dynamic and might not existed before
183
183
  if (!Array.isArray(existing)) {
184
- return [(/** @type {?} */ (value))];
184
+ return [(/** @type {?} */ (((/** @type {?} */ (value)))))];
185
185
  }
186
186
  /** @type {?} */
187
187
  const clone = existing.slice();
@@ -193,7 +193,7 @@ function insertItem(value, beforePosition) {
193
193
  if ((/** @type {?} */ (beforePosition)) > 0) {
194
194
  index = (/** @type {?} */ (beforePosition));
195
195
  }
196
- clone.splice(index, 0, (/** @type {?} */ (value)));
196
+ clone.splice(index, 0, (/** @type {?} */ (((/** @type {?} */ (value))))));
197
197
  return clone;
198
198
  });
199
199
  }
@@ -208,8 +208,7 @@ function insertItem(value, beforePosition) {
208
208
  * @return {?}
209
209
  */
210
210
  function patch(patchObject) {
211
- return (/**
212
- * @template U
211
+ return (/** @type {?} */ (((/** @type {?} */ ((/**
213
212
  * @param {?} existing
214
213
  * @return {?}
215
214
  */
@@ -220,7 +219,7 @@ function patch(patchObject) {
220
219
  /** @type {?} */
221
220
  const newValue = patchObject[k];
222
221
  /** @type {?} */
223
- const existingPropValue = existing[k];
222
+ const existingPropValue = existing[(/** @type {?} */ (k))];
224
223
  /** @type {?} */
225
224
  const newPropValue = isStateOperator(newValue)
226
225
  ? newValue((/** @type {?} */ (existingPropValue)))
@@ -233,7 +232,7 @@ function patch(patchObject) {
233
232
  }
234
233
  }
235
234
  return clone || existing;
236
- });
235
+ }))))));
237
236
  }
238
237
 
239
238
  /**
@@ -257,7 +256,7 @@ function updateItem(selector, operatorOrValue) {
257
256
  /** @type {?} */
258
257
  let index = -1;
259
258
  if (isPredicate(selector)) {
260
- index = existing.findIndex(selector);
259
+ index = existing.findIndex((/** @type {?} */ (selector)));
261
260
  }
262
261
  else if (isNumber(selector)) {
263
262
  index = selector;
@@ -269,11 +268,13 @@ function updateItem(selector, operatorOrValue) {
269
268
  let value = (/** @type {?} */ (null));
270
269
  // Need to check if the new item value will change the existing item value
271
270
  // then, only if it will change it then clone the array and set the item
272
- if (isStateOperator(operatorOrValue)) {
273
- value = operatorOrValue((/** @type {?} */ (existing[index])));
271
+ /** @type {?} */
272
+ const theOperatorOrValue = (/** @type {?} */ (operatorOrValue));
273
+ if (isStateOperator(theOperatorOrValue)) {
274
+ value = theOperatorOrValue((/** @type {?} */ (existing[index])));
274
275
  }
275
276
  else {
276
- value = operatorOrValue;
277
+ value = theOperatorOrValue;
277
278
  }
278
279
  // If the value hasn't been mutated
279
280
  // then we just return `existing` array
@@ -1 +1 @@
1
- {"version":3,"file":"ngxs-store-operators.js","sources":["ng://@ngxs/store/operators/append.ts","ng://@ngxs/store/operators/compose.ts","ng://@ngxs/store/operators/utils.ts","ng://@ngxs/store/operators/iif.ts","ng://@ngxs/store/operators/insert-item.ts","ng://@ngxs/store/operators/patch.ts","ng://@ngxs/store/operators/update-item.ts","ng://@ngxs/store/operators/remove-item.ts"],"sourcesContent":["import { StateOperator } from '@ngxs/store';\nimport { RepairType } from './utils';\n\n/**\n * @param items - Specific items to append to the end of an array\n */\nexport function append<T>(items: T[]): StateOperator<RepairType<T>[]> {\n return function appendOperator(existing: Readonly<RepairType<T>[]>): RepairType<T>[] {\n // If `items` is `undefined` or `null` or `[]` but `existing` is provided\n // just return `existing`\n const itemsNotProvidedButExistingIs = (!items || !items.length) && existing;\n if (itemsNotProvidedButExistingIs) {\n return existing as RepairType<T>[];\n }\n\n if (Array.isArray(existing)) {\n return existing.concat(items as RepairType<T>[]);\n }\n\n // For example if some property is added dynamically\n // and didn't exist before thus it's not `ArrayLike`\n return items as RepairType<T>[];\n };\n}\n","import { StateOperator } from '@ngxs/store';\n\nexport function compose<T>(...operators: StateOperator<T>[]): StateOperator<T> {\n return function composeOperator(existing: Readonly<T>): T {\n return operators.reduce((accumulator, operator) => operator(accumulator), existing);\n };\n}\n","import { StateOperator } from '@ngxs/store';\n\nimport { Predicate } from './internals';\n\nexport function isStateOperator<T>(value: T | StateOperator<T>): value is StateOperator<T> {\n return typeof value === 'function';\n}\n\nexport function isUndefined(value: any): value is undefined {\n return typeof value === 'undefined';\n}\n\nexport function isPredicate<T>(value: Predicate<T> | boolean | number): value is Predicate<T> {\n return typeof value === 'function';\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === 'number';\n}\n\nexport function invalidIndex(index: number): boolean {\n return Number.isNaN(index) || index === -1;\n}\n\nexport function isNil<T>(value: T | null | undefined): value is null | undefined {\n return value === null || isUndefined(value);\n}\n\nexport type RepairType<T> = T extends true ? boolean : (T extends false ? boolean : T);\n","import { StateOperator } from '@ngxs/store';\n\nimport { isStateOperator, isUndefined, isPredicate, RepairType } from './utils';\nimport { Predicate } from './internals';\n\nfunction retrieveValue<T>(\n operatorOrValue: StateOperator<T> | T,\n existing?: Readonly<RepairType<T>>\n): RepairType<T> {\n // If state operator is a function\n // then call it with an original value\n if (isStateOperator(operatorOrValue)) {\n const value = operatorOrValue(existing! as Readonly<T>);\n return value as RepairType<T>;\n }\n\n // If operator or value was not provided\n // e.g. `elseOperatorOrValue` is `undefined`\n // then we just return an original value\n if (isUndefined(operatorOrValue)) {\n return (<any>existing)! as RepairType<T>;\n }\n\n return operatorOrValue as RepairType<T>;\n}\n\n/**\n * @param condition - Condition can be a plain boolean value or a function,\n * that returns boolean, also this function can take a value as an argument\n * to which this state operator applies\n * @param trueOperatorOrValue - Any value or a state operator\n * @param elseOperatorOrValue - Any value or a state operator\n */\nexport function iif<T>(\n condition: Predicate<T> | boolean,\n trueOperatorOrValue: StateOperator<T> | T,\n elseOperatorOrValue?: StateOperator<T> | T\n): StateOperator<RepairType<T>> {\n return function iifOperator(existing: Readonly<RepairType<T>>): RepairType<T> {\n // Convert the value to a boolean\n let result = !!condition;\n // but if it is a function then run it to get the result\n if (isPredicate(condition)) {\n result = condition(existing);\n }\n\n if (result) {\n return retrieveValue<T>(trueOperatorOrValue, existing as RepairType<T>);\n }\n\n return retrieveValue<T>(elseOperatorOrValue!, existing as RepairType<T>);\n };\n}\n","import { StateOperator } from '@ngxs/store';\nimport { isNil, RepairType } from './utils';\n\n/**\n * @param value - Value to insert\n * @param [beforePosition] - Specified index to insert value before, optional\n */\nexport function insertItem<T>(\n value: T,\n beforePosition?: number\n): StateOperator<RepairType<T>[]> {\n return function insertItemOperator(existing: Readonly<RepairType<T>[]>): RepairType<T>[] {\n // Have to check explicitly for `null` and `undefined`\n // because `value` can be `0`, thus `!value` will return `true`\n if (isNil(value) && existing) {\n return existing as RepairType<T>[];\n }\n\n // Property may be dynamic and might not existed before\n if (!Array.isArray(existing)) {\n return [value as RepairType<T>];\n }\n\n const clone = existing.slice();\n\n let index = 0;\n\n // No need to call `isNumber`\n // as we are checking `> 0` not `>= 0`\n // everything except number will return false here\n if (beforePosition! > 0) {\n index = beforePosition!;\n }\n\n clone.splice(index, 0, value as RepairType<T>);\n return clone;\n };\n}\n","import { StateOperator } from '@ngxs/store';\nimport { isStateOperator } from './utils';\n\nexport type PatchSpec<T> = { [P in keyof T]?: T[P] | StateOperator<NonNullable<T[P]>> };\n\ntype PatchValues<T> = {\n readonly [P in keyof T]?: T[P] extends (...args: any[]) => infer R ? R : T[P];\n};\n\ntype PatchOperator<T> = <U extends PatchValues<T>>(existing: Readonly<U>) => U;\n\nexport function patch<T>(patchObject: PatchSpec<T>): PatchOperator<T> {\n return function patchStateOperator<U extends PatchValues<T>>(existing: Readonly<U>): U {\n let clone = null;\n for (const k in patchObject) {\n const newValue = patchObject[k];\n const existingPropValue = existing[k];\n const newPropValue = isStateOperator(newValue)\n ? newValue(<any>existingPropValue)\n : newValue;\n if (newPropValue !== existingPropValue) {\n if (!clone) {\n clone = { ...(<any>existing) };\n }\n clone[k] = newPropValue;\n }\n }\n return clone || existing;\n };\n}\n","import { StateOperator } from '@ngxs/store';\n\nimport { isStateOperator, isPredicate, isNumber, invalidIndex, RepairType } from './utils';\nimport { Predicate } from './internals';\n\n/**\n * @param selector - Index of item in the array or a predicate function\n * that can be provided in `Array.prototype.findIndex`\n * @param operatorOrValue - New value under the `selector` index or a\n * function that can be applied to an existing value\n */\nexport function updateItem<T>(\n selector: number | Predicate<T>,\n operatorOrValue: T | StateOperator<T>\n): StateOperator<RepairType<T>[]> {\n return function updateItemOperator(existing: Readonly<RepairType<T>[]>): RepairType<T>[] {\n let index = -1;\n\n if (isPredicate(selector)) {\n index = existing.findIndex(selector);\n } else if (isNumber(selector)) {\n index = selector;\n }\n\n if (invalidIndex(index)) {\n return existing as RepairType<T>[];\n }\n\n let value: T = null!;\n // Need to check if the new item value will change the existing item value\n // then, only if it will change it then clone the array and set the item\n if (isStateOperator(operatorOrValue)) {\n value = operatorOrValue(existing[index] as Readonly<T>);\n } else {\n value = operatorOrValue;\n }\n\n // If the value hasn't been mutated\n // then we just return `existing` array\n if (value === existing[index]) {\n return existing as RepairType<T>[];\n }\n\n const clone = existing.slice();\n clone[index] = value as RepairType<T>;\n return clone;\n };\n}\n","import { StateOperator } from '@ngxs/store';\nimport { Predicate } from './internals';\nimport { isPredicate, isNumber, invalidIndex, RepairType } from './utils';\n\n/**\n * @param selector - index or predicate to remove an item from an array by\n */\nexport function removeItem<T>(\n selector: number | Predicate<T>\n): StateOperator<RepairType<T>[]> {\n return function removeItemOperator(existing: Readonly<RepairType<T>[]>): RepairType<T>[] {\n let index = -1;\n\n if (isPredicate(selector)) {\n index = existing.findIndex(selector);\n } else if (isNumber(selector)) {\n index = selector;\n }\n\n if (invalidIndex(index)) {\n return existing as RepairType<T>[];\n }\n\n const clone = existing.slice();\n clone.splice(index, 1);\n return clone;\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngxs-store-operators.js","sources":["ng://@ngxs/store/operators/append.ts","ng://@ngxs/store/operators/compose.ts","ng://@ngxs/store/operators/utils.ts","ng://@ngxs/store/operators/iif.ts","ng://@ngxs/store/operators/insert-item.ts","ng://@ngxs/store/operators/patch.ts","ng://@ngxs/store/operators/update-item.ts","ng://@ngxs/store/operators/remove-item.ts"],"sourcesContent":["import { StateOperator } from '@ngxs/store';\nimport { RepairType, NoInfer } from './utils';\n\n/**\n * @param items - Specific items to append to the end of an array\n */\nexport function append<T>(items: NoInfer<T>[]): StateOperator<RepairType<T>[]> {\n return function appendOperator(existing: Readonly<RepairType<T>[]>): RepairType<T>[] {\n // If `items` is `undefined` or `null` or `[]` but `existing` is provided\n // just return `existing`\n const itemsNotProvidedButExistingIs = (!items || !items.length) && existing;\n if (itemsNotProvidedButExistingIs) {\n return existing as RepairType<T>[];\n }\n\n if (Array.isArray(existing)) {\n return existing.concat((items as unknown) as RepairType<T>[]);\n }\n\n // For example if some property is added dynamically\n // and didn't exist before thus it's not `ArrayLike`\n return (items as unknown) as RepairType<T>[];\n };\n}\n","import { StateOperator } from '@ngxs/store';\nimport { NoInfer } from './utils';\n\nexport function compose<T>(...operators: NoInfer<StateOperator<T>[]>): StateOperator<T> {\n return function composeOperator(existing: Readonly<T>): T {\n return operators.reduce((accumulator, operator) => operator(accumulator), existing);\n };\n}\n","import { StateOperator } from '@ngxs/store';\n\nimport { Predicate } from './internals';\n\nexport function isStateOperator<T>(value: T | StateOperator<T>): value is StateOperator<T> {\n return typeof value === 'function';\n}\n\nexport function isUndefined(value: any): value is undefined {\n return typeof value === 'undefined';\n}\n\nexport function isPredicate<T>(value: Predicate<T> | boolean | number): value is Predicate<T> {\n return typeof value === 'function';\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === 'number';\n}\n\nexport function invalidIndex(index: number): boolean {\n return Number.isNaN(index) || index === -1;\n}\n\nexport function isNil<T>(value: T | null | undefined): value is null | undefined {\n return value === null || isUndefined(value);\n}\n\nexport type RepairType<T> = T extends true ? boolean : T extends false ? boolean : T;\n\nexport type NoInfer<T> = T extends infer S ? S : never;\n","import { StateOperator } from '@ngxs/store';\n\nimport { isStateOperator, isUndefined, isPredicate, RepairType, NoInfer } from './utils';\nimport { Predicate } from './internals';\n\nfunction retrieveValue<T>(\n operatorOrValue: StateOperator<T> | T,\n existing?: Readonly<RepairType<T>>\n): RepairType<T> {\n // If state operator is a function\n // then call it with an original value\n if (isStateOperator(operatorOrValue)) {\n const value = operatorOrValue(existing! as Readonly<T>);\n return value as RepairType<T>;\n }\n\n // If operator or value was not provided\n // e.g. `elseOperatorOrValue` is `undefined`\n // then we just return an original value\n if (isUndefined(operatorOrValue)) {\n return (<any>existing)! as RepairType<T>;\n }\n\n return operatorOrValue as RepairType<T>;\n}\n\n/**\n * @param condition - Condition can be a plain boolean value or a function,\n * that returns boolean, also this function can take a value as an argument\n * to which this state operator applies\n * @param trueOperatorOrValue - Any value or a state operator\n * @param elseOperatorOrValue - Any value or a state operator\n */\nexport function iif<T>(\n condition: NoInfer<Predicate<T>> | boolean,\n trueOperatorOrValue: NoInfer<StateOperator<T>> | T,\n elseOperatorOrValue?: NoInfer<StateOperator<T>> | T\n): StateOperator<RepairType<T>> {\n return function iifOperator(existing: Readonly<RepairType<T>>): RepairType<T> {\n // Convert the value to a boolean\n let result = !!condition;\n // but if it is a function then run it to get the result\n if (isPredicate(condition)) {\n result = condition(existing);\n }\n\n if (result) {\n return retrieveValue<T>(trueOperatorOrValue, existing as RepairType<T>);\n }\n\n return retrieveValue<T>(elseOperatorOrValue!, existing as RepairType<T>);\n };\n}\n","import { StateOperator } from '@ngxs/store';\nimport { isNil, RepairType, NoInfer } from './utils';\n\n/**\n * @param value - Value to insert\n * @param [beforePosition] - Specified index to insert value before, optional\n */\nexport function insertItem<T>(\n value: NoInfer<T>,\n beforePosition?: number\n): StateOperator<RepairType<T>[]> {\n return function insertItemOperator(existing: Readonly<RepairType<T>[]>): RepairType<T>[] {\n // Have to check explicitly for `null` and `undefined`\n // because `value` can be `0`, thus `!value` will return `true`\n if (isNil(value) && existing) {\n return existing as RepairType<T>[];\n }\n\n // Property may be dynamic and might not existed before\n if (!Array.isArray(existing)) {\n return [(value as unknown) as RepairType<T>];\n }\n\n const clone = existing.slice();\n\n let index = 0;\n\n // No need to call `isNumber`\n // as we are checking `> 0` not `>= 0`\n // everything except number will return false here\n if (beforePosition! > 0) {\n index = beforePosition!;\n }\n\n clone.splice(index, 0, (value as unknown) as RepairType<T>);\n return clone;\n };\n}\n","import { StateOperator } from '@ngxs/store';\nimport { isStateOperator, NoInfer } from './utils';\n\nexport type PatchSpec<T> = { [P in keyof T]?: T[P] | StateOperator<NonNullable<T[P]>> };\n\ntype PatchValues<T> = {\n readonly [P in keyof T]?: T[P] extends (...args: any[]) => infer R ? R : T[P];\n};\n\nexport function patch<T>(patchObject: NoInfer<PatchSpec<T>>): StateOperator<NonNullable<T>> {\n return (function patchStateOperator(existing: Readonly<PatchValues<T>>): NonNullable<T> {\n let clone = null;\n for (const k in patchObject) {\n const newValue = patchObject[k];\n const existingPropValue = existing[k as Extract<keyof T, string>];\n const newPropValue = isStateOperator(newValue)\n ? newValue(<any>existingPropValue)\n : newValue;\n if (newPropValue !== existingPropValue) {\n if (!clone) {\n clone = { ...(<any>existing) };\n }\n clone[k] = newPropValue;\n }\n }\n return clone || existing;\n } as unknown) as StateOperator<NonNullable<T>>;\n}\n","import { StateOperator } from '@ngxs/store';\n\nimport {\n isStateOperator,\n isPredicate,\n isNumber,\n invalidIndex,\n RepairType,\n NoInfer\n} from './utils';\nimport { Predicate } from './internals';\n\n/**\n * @param selector - Index of item in the array or a predicate function\n * that can be provided in `Array.prototype.findIndex`\n * @param operatorOrValue - New value under the `selector` index or a\n * function that can be applied to an existing value\n */\nexport function updateItem<T>(\n selector: number | NoInfer<Predicate<T>>,\n operatorOrValue: NoInfer<T> | NoInfer<StateOperator<T>>\n): StateOperator<RepairType<T>[]> {\n return function updateItemOperator(existing: Readonly<RepairType<T>[]>): RepairType<T>[] {\n let index = -1;\n\n if (isPredicate(selector)) {\n index = existing.findIndex(selector as Predicate<T>);\n } else if (isNumber(selector)) {\n index = selector;\n }\n\n if (invalidIndex(index)) {\n return existing as RepairType<T>[];\n }\n\n let value: T = null!;\n // Need to check if the new item value will change the existing item value\n // then, only if it will change it then clone the array and set the item\n const theOperatorOrValue = operatorOrValue as T | StateOperator<T>;\n if (isStateOperator(theOperatorOrValue)) {\n value = theOperatorOrValue(existing[index] as Readonly<T>);\n } else {\n value = theOperatorOrValue;\n }\n\n // If the value hasn't been mutated\n // then we just return `existing` array\n if (value === existing[index]) {\n return existing as RepairType<T>[];\n }\n\n const clone = existing.slice();\n clone[index] = value as RepairType<T>;\n return clone;\n };\n}\n","import { StateOperator } from '@ngxs/store';\nimport { Predicate } from './internals';\nimport { isPredicate, isNumber, invalidIndex, RepairType } from './utils';\n\n/**\n * @param selector - index or predicate to remove an item from an array by\n */\nexport function removeItem<T>(\n selector: number | Predicate<T>\n): StateOperator<RepairType<T>[]> {\n return function removeItemOperator(existing: Readonly<RepairType<T>[]>): RepairType<T>[] {\n let index = -1;\n\n if (isPredicate(selector)) {\n index = existing.findIndex(selector);\n } else if (isNumber(selector)) {\n index = selector;\n }\n\n if (invalidIndex(index)) {\n return existing as RepairType<T>[];\n }\n\n const clone = existing.slice();\n clone.splice(index, 1);\n return clone;\n };\n}\n"],"names":[],"mappings":"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"}