imng-ngrx-utils 4.62.1 → 4.102.13

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 (64) hide show
  1. package/{esm2015/imng-ngrx-utils.js → esm2020/imng-ngrx-utils.mjs} +0 -0
  2. package/esm2020/index.mjs +8 -0
  3. package/esm2020/lib/find-and-merge.mjs +7 -0
  4. package/esm2020/lib/find-and-modify.mjs +9 -0
  5. package/{esm2015/lib/isTruthy.js → esm2020/lib/isTruthy.mjs} +0 -0
  6. package/{esm2015/lib/match-and-spread.js → esm2020/lib/match-and-spread.mjs} +0 -0
  7. package/esm2020/lib/payload.mjs +6 -0
  8. package/esm2020/lib/remove-by-id.mjs +15 -0
  9. package/{esm2015/lib/subscribable.js → esm2020/lib/subscribable.mjs} +0 -0
  10. package/esm2020/lib/subscriptions.mjs +23 -0
  11. package/{esm2015/testing/imng-ngrx-utils-testing.js → esm2020/testing/imng-ngrx-utils-testing.mjs} +2 -2
  12. package/esm2020/testing/index.mjs +8 -0
  13. package/fesm2015/imng-ngrx-utils-testing.mjs +15 -0
  14. package/fesm2015/imng-ngrx-utils-testing.mjs.map +1 -0
  15. package/fesm2015/{imng-ngrx-utils.js → imng-ngrx-utils.mjs} +7 -7
  16. package/fesm2015/imng-ngrx-utils.mjs.map +1 -0
  17. package/fesm2020/imng-ngrx-utils-testing.mjs +15 -0
  18. package/fesm2020/imng-ngrx-utils-testing.mjs.map +1 -0
  19. package/fesm2020/imng-ngrx-utils.mjs +84 -0
  20. package/fesm2020/imng-ngrx-utils.mjs.map +1 -0
  21. package/imng-ngrx-utils.d.ts +0 -1
  22. package/index.d.ts +0 -1
  23. package/lib/find-and-merge.d.ts +0 -1
  24. package/lib/find-and-modify.d.ts +0 -1
  25. package/lib/isTruthy.d.ts +0 -1
  26. package/lib/match-and-spread.d.ts +0 -1
  27. package/lib/payload.d.ts +1 -2
  28. package/lib/remove-by-id.d.ts +1 -2
  29. package/lib/subscribable.d.ts +0 -1
  30. package/lib/subscriptions.d.ts +1 -2
  31. package/package.json +39 -16
  32. package/testing/README.md +3 -0
  33. package/testing/imng-ngrx-utils-testing.d.ts +1 -2
  34. package/testing/index.d.ts +3 -7
  35. package/testing/package.json +5 -5
  36. package/bundles/imng-ngrx-utils-testing.umd.js +0 -29
  37. package/bundles/imng-ngrx-utils-testing.umd.js.map +0 -1
  38. package/bundles/imng-ngrx-utils.umd.js +0 -433
  39. package/bundles/imng-ngrx-utils.umd.js.map +0 -1
  40. package/esm2015/index.js +0 -8
  41. package/esm2015/lib/find-and-merge.js +0 -4
  42. package/esm2015/lib/find-and-modify.js +0 -9
  43. package/esm2015/lib/payload.js +0 -8
  44. package/esm2015/lib/remove-by-id.js +0 -16
  45. package/esm2015/lib/subscriptions.js +0 -21
  46. package/esm2015/testing/index.js +0 -7
  47. package/esm2015/testing/public_api.js +0 -2
  48. package/fesm2015/imng-ngrx-utils-testing.js +0 -12
  49. package/fesm2015/imng-ngrx-utils-testing.js.map +0 -1
  50. package/fesm2015/imng-ngrx-utils.js.map +0 -1
  51. package/imng-ngrx-utils.d.ts.map +0 -1
  52. package/index.d.ts.map +0 -1
  53. package/lib/find-and-merge.d.ts.map +0 -1
  54. package/lib/find-and-modify.d.ts.map +0 -1
  55. package/lib/isTruthy.d.ts.map +0 -1
  56. package/lib/match-and-spread.d.ts.map +0 -1
  57. package/lib/payload.d.ts.map +0 -1
  58. package/lib/remove-by-id.d.ts.map +0 -1
  59. package/lib/subscribable.d.ts.map +0 -1
  60. package/lib/subscriptions.d.ts.map +0 -1
  61. package/testing/imng-ngrx-utils-testing.d.ts.map +0 -1
  62. package/testing/index.d.ts.map +0 -1
  63. package/testing/public_api.d.ts +0 -2
  64. package/testing/public_api.d.ts.map +0 -1
@@ -0,0 +1,8 @@
1
+ export { createPayloadAction } from './lib/payload';
2
+ export { isTruthy, isFalsy } from './lib/isTruthy';
3
+ export { findAndModify } from './lib/find-and-modify';
4
+ export { findAndMerge } from './lib/find-and-merge';
5
+ export { matchAndSpread } from './lib/match-and-spread';
6
+ export { removeById } from './lib/remove-by-id';
7
+ export { Subscriptions } from './lib/subscriptions';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2ltbmctbmdyeC11dGlscy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLG1CQUFtQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFBheWxvYWQsIGNyZWF0ZVBheWxvYWRBY3Rpb24gfSBmcm9tICcuL2xpYi9wYXlsb2FkJztcbmV4cG9ydCB7IGlzVHJ1dGh5LCBpc0ZhbHN5IH0gZnJvbSAnLi9saWIvaXNUcnV0aHknO1xuZXhwb3J0IHsgZmluZEFuZE1vZGlmeSB9IGZyb20gJy4vbGliL2ZpbmQtYW5kLW1vZGlmeSc7XG5leHBvcnQgeyBmaW5kQW5kTWVyZ2UgfSBmcm9tICcuL2xpYi9maW5kLWFuZC1tZXJnZSc7XG5leHBvcnQgeyBtYXRjaEFuZFNwcmVhZCB9IGZyb20gJy4vbGliL21hdGNoLWFuZC1zcHJlYWQnO1xuZXhwb3J0IHsgcmVtb3ZlQnlJZCB9IGZyb20gJy4vbGliL3JlbW92ZS1ieS1pZCc7XG5leHBvcnQgeyBTdWJzY3JpcHRpb25zIH0gZnJvbSAnLi9saWIvc3Vic2NyaXB0aW9ucyc7XG5leHBvcnQgeyBTdWJzY3JpYmFibGUgfSBmcm9tICcuL2xpYi9zdWJzY3JpYmFibGUnO1xuIl19
@@ -0,0 +1,7 @@
1
+ export function findAndMerge(record, data) {
2
+ return {
3
+ ...data.find((f) => f.id === record.id),
4
+ ...record,
5
+ };
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1hbmQtbWVyZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2ltbmctbmdyeC11dGlscy9zcmMvbGliL2ZpbmQtYW5kLW1lcmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxZQUFZLENBQzFCLE1BQWMsRUFDZCxJQUF5QjtJQUV6QixPQUFPO1FBQ0wsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdkMsR0FBRyxNQUFNO0tBQ1YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJZFR5cGUgfSBmcm9tICdpbW5nLW5yc3J4LWNsaWVudC11dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQW5kTWVyZ2U8RU5USVRZIGV4dGVuZHMgeyBpZD86IElkVHlwZSB9LCBDT0xMRUNUSU9OX0VOVElUWSBleHRlbmRzIHsgaWQ/OiBJZFR5cGUgfT4oXG4gIHJlY29yZDogRU5USVRZLFxuICBkYXRhOiBDT0xMRUNUSU9OX0VOVElUWVtdLFxuKTogRU5USVRZIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5kYXRhLmZpbmQoKGYpID0+IGYuaWQgPT09IHJlY29yZC5pZCksXG4gICAgLi4ucmVjb3JkLFxuICB9O1xufVxuIl19
@@ -0,0 +1,9 @@
1
+ export function findAndModify(data, lookupId, modificationLogic) {
2
+ return [...data.map((m) => (m.id === lookupId ? applyChanges(m, modificationLogic) : m))];
3
+ }
4
+ function applyChanges(record, modificationLogic) {
5
+ const spreadRecord = { ...record };
6
+ modificationLogic(spreadRecord);
7
+ return spreadRecord;
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1hbmQtbW9kaWZ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9pbW5nLW5ncngtdXRpbHMvc3JjL2xpYi9maW5kLWFuZC1tb2RpZnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsSUFBYyxFQUNkLFFBQWdCLEVBQ2hCLGlCQUFtRDtJQUVuRCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1RixDQUFDO0FBRUQsU0FBUyxZQUFZLENBQVMsTUFBYyxFQUFFLGlCQUFtRDtJQUMvRixNQUFNLFlBQVksR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFDbkMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEMsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElkVHlwZSB9IGZyb20gJ2ltbmctbnJzcngtY2xpZW50LXV0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRBbmRNb2RpZnk8RU5USVRZIGV4dGVuZHMgeyBpZD86IElkVHlwZSB9PihcbiAgZGF0YTogRU5USVRZW10sXG4gIGxvb2t1cElkOiBJZFR5cGUsXG4gIG1vZGlmaWNhdGlvbkxvZ2ljOiAobWF0Y2hpbmdSZWNvcmQ6IEVOVElUWSkgPT4gdm9pZCxcbik6IEVOVElUWVtdIHtcbiAgcmV0dXJuIFsuLi5kYXRhLm1hcCgobSkgPT4gKG0uaWQgPT09IGxvb2t1cElkID8gYXBwbHlDaGFuZ2VzKG0sIG1vZGlmaWNhdGlvbkxvZ2ljKSA6IG0pKV07XG59XG5cbmZ1bmN0aW9uIGFwcGx5Q2hhbmdlczxFTlRJVFk+KHJlY29yZDogRU5USVRZLCBtb2RpZmljYXRpb25Mb2dpYzogKG1hdGNoaW5nUmVjb3JkOiBFTlRJVFkpID0+IHZvaWQpOiBFTlRJVFkge1xuICBjb25zdCBzcHJlYWRSZWNvcmQgPSB7IC4uLnJlY29yZCB9O1xuICBtb2RpZmljYXRpb25Mb2dpYyhzcHJlYWRSZWNvcmQpO1xuICByZXR1cm4gc3ByZWFkUmVjb3JkO1xufVxuIl19
@@ -0,0 +1,6 @@
1
+ import { createAction } from '@ngrx/store';
2
+ // tslint:disable-next-line: typedef , doing otherwise would involve having deep imports on the @ngrx library
3
+ export function createPayloadAction(actionType) {
4
+ return createAction(actionType, (payload) => ({ payload }));
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvaW1uZy1uZ3J4LXV0aWxzL3NyYy9saWIvcGF5bG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBTTNDLDZHQUE2RztBQUM3RyxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLFVBQWtCO0lBRWxCLE9BQU8sWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNqRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQWN0aW9uIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBheWxvYWQ8VD4ge1xuICBwYXlsb2FkOiBUO1xufVxuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IHR5cGVkZWYgLCBkb2luZyBvdGhlcndpc2Ugd291bGQgaW52b2x2ZSBoYXZpbmcgZGVlcCBpbXBvcnRzIG9uIHRoZSBAbmdyeCBsaWJyYXJ5XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGF5bG9hZEFjdGlvbjxUPihcbiAgYWN0aW9uVHlwZTogc3RyaW5nLFxuKSB7XG4gIHJldHVybiBjcmVhdGVBY3Rpb24oYWN0aW9uVHlwZSwgKHBheWxvYWQ6IFQpID0+ICh7IHBheWxvYWQgfSkpO1xufVxuIl19
@@ -0,0 +1,15 @@
1
+ export function removeById(source, id) {
2
+ if (Array.isArray(source)) {
3
+ const result = source;
4
+ return result?.filter((f) => f.id !== id);
5
+ }
6
+ else if (source) {
7
+ const data = source.data?.filter((f) => f.id !== id);
8
+ return {
9
+ total: source.total + (data?.length - source.data?.length) || 0,
10
+ data,
11
+ };
12
+ }
13
+ return null;
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWJ5LWlkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9pbW5nLW5ncngtdXRpbHMvc3JjL2xpYi9yZW1vdmUtYnktaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsTUFBZ0QsRUFDaEQsRUFBVTtJQUVWLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN6QixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDdEIsT0FBTyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0tBQzNDO1NBQU0sSUFBSSxNQUFNLEVBQUU7UUFDakIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDckQsT0FBTztZQUNMLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDL0QsSUFBSTtTQUNMLENBQUM7S0FDSDtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElkVHlwZSB9IGZyb20gJ2ltbmctbnJzcngtY2xpZW50LXV0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUJ5SWQ8VCBleHRlbmRzIHsgaWQ/OiBJZFR5cGU7IH0+KFxuICBzb3VyY2U6IHsgZGF0YTogVFtdOyB0b3RhbDogbnVtYmVyOyB9IHwgQXJyYXk8VD4sXG4gIGlkOiBJZFR5cGUsXG4pOiB7IGRhdGE6IFRbXTsgdG90YWw6IG51bWJlcjsgfSB8IEFycmF5PFQ+IHwgbnVsbCB7XG4gIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZSkpIHtcbiAgICBjb25zdCByZXN1bHQgPSBzb3VyY2U7XG4gICAgcmV0dXJuIHJlc3VsdD8uZmlsdGVyKChmKSA9PiBmLmlkICE9PSBpZCk7XG4gIH0gZWxzZSBpZiAoc291cmNlKSB7XG4gICAgY29uc3QgZGF0YSA9IHNvdXJjZS5kYXRhPy5maWx0ZXIoKGYpID0+IGYuaWQgIT09IGlkKTtcbiAgICByZXR1cm4ge1xuICAgICAgdG90YWw6IHNvdXJjZS50b3RhbCArIChkYXRhPy5sZW5ndGggLSBzb3VyY2UuZGF0YT8ubGVuZ3RoKSB8fCAwLFxuICAgICAgZGF0YSxcbiAgICB9O1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuIl19
@@ -0,0 +1,23 @@
1
+ export class Subscriptions {
2
+ constructor(...items) {
3
+ this._subscriptions = items;
4
+ }
5
+ get length() {
6
+ return this._subscriptions.length;
7
+ }
8
+ push(...items) {
9
+ this._subscriptions.push(...items.filter((t) => t));
10
+ }
11
+ forEach(callbackfn, thisArg) {
12
+ this._subscriptions
13
+ .map((t) => t)
14
+ .forEach(callbackfn, thisArg);
15
+ }
16
+ unsubscribeAll() {
17
+ while (this._subscriptions.length > 0) {
18
+ const val = this._subscriptions.pop();
19
+ val?.unsubscribe();
20
+ }
21
+ }
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvaW1uZy1uZ3J4LXV0aWxzL3NyYy9saWIvc3Vic2NyaXB0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sYUFBYTtJQUd4QixZQUFtQixHQUFHLEtBQXFCO1FBQ3pDLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxJQUFJLENBQUMsR0FBRyxLQUFtQztRQUNoRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNNLE9BQU8sQ0FDWixVQUlTLEVBQ1QsT0FBaUI7UUFFakIsSUFBSSxDQUFDLGNBQWM7YUFDaEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFpQixDQUFDO2FBQzdCLE9BQU8sQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN0QyxHQUFHLEVBQUUsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvbnMge1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdWJzY3JpcHRpb25zOiAoU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkKVtdO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvciguLi5pdGVtczogU3Vic2NyaXB0aW9uW10pIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zID0gaXRlbXM7XG4gIH1cbiAgcHVibGljIGdldCBsZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc3Vic2NyaXB0aW9ucy5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgcHVzaCguLi5pdGVtczogKFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZClbXSk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaCguLi5pdGVtcy5maWx0ZXIoKHQpID0+IHQpKTtcbiAgfVxuICBwdWJsaWMgZm9yRWFjaChcbiAgICBjYWxsYmFja2ZuOiAoXG4gICAgICB2YWx1ZTogU3Vic2NyaXB0aW9uLFxuICAgICAgaW5kZXg6IG51bWJlcixcbiAgICAgIGFycmF5OiBTdWJzY3JpcHRpb25bXVxuICAgICkgPT4gdm9pZCxcbiAgICB0aGlzQXJnPzogdW5rbm93blxuICApOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zXG4gICAgICAubWFwKCh0KSA9PiB0IGFzIFN1YnNjcmlwdGlvbilcbiAgICAgIC5mb3JFYWNoKGNhbGxiYWNrZm4sIHRoaXNBcmcpO1xuICB9XG5cbiAgcHVibGljIHVuc3Vic2NyaWJlQWxsKCk6IHZvaWQge1xuICAgIHdoaWxlICh0aGlzLl9zdWJzY3JpcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHZhbCA9IHRoaXMuX3N1YnNjcmlwdGlvbnMucG9wKCk7XG4gICAgICB2YWw/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
- export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1uZy1uZ3J4LXV0aWxzLXRlc3RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2ltbmctbmdyeC11dGlscy90ZXN0aW5nL3NyYy9pbW5nLW5ncngtdXRpbHMtdGVzdGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1uZy1uZ3J4LXV0aWxzLXRlc3RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2ltbmctbmdyeC11dGlscy90ZXN0aW5nL3NyYy9pbW5nLW5ncngtdXRpbHMtdGVzdGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,8 @@
1
+ import { first, firstValueFrom, lastValueFrom, toArray } from 'rxjs';
2
+ export function readFirst(o) {
3
+ return firstValueFrom(o.pipe(first()));
4
+ }
5
+ export function readAll(o) {
6
+ return lastValueFrom(o.pipe(toArray()));
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2ltbmctbmdyeC11dGlscy90ZXN0aW5nL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpGLE1BQU0sVUFBVSxTQUFTLENBQUksQ0FBZ0I7SUFDM0MsT0FBTyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUksQ0FBZ0I7SUFDekMsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpcnN0LCBmaXJzdFZhbHVlRnJvbSwgbGFzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgdG9BcnJheSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEZpcnN0PFQ+KG86IE9ic2VydmFibGU8VD4pOiBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKG8ucGlwZShmaXJzdCgpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkQWxsPFQ+KG86IE9ic2VydmFibGU8VD4pOiBQcm9taXNlPFRbXT4ge1xuICByZXR1cm4gbGFzdFZhbHVlRnJvbShvLnBpcGUodG9BcnJheSgpKSk7XG59XG4iXX0=
@@ -0,0 +1,15 @@
1
+ import { firstValueFrom, first, lastValueFrom, toArray } from 'rxjs';
2
+
3
+ function readFirst(o) {
4
+ return firstValueFrom(o.pipe(first()));
5
+ }
6
+ function readAll(o) {
7
+ return lastValueFrom(o.pipe(toArray()));
8
+ }
9
+
10
+ /**
11
+ * Generated bundle index. Do not edit.
12
+ */
13
+
14
+ export { readAll, readFirst };
15
+ //# sourceMappingURL=imng-ngrx-utils-testing.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imng-ngrx-utils-testing.mjs","sources":["../../../../libs/imng-ngrx-utils/testing/src/index.ts","../../../../libs/imng-ngrx-utils/testing/src/imng-ngrx-utils-testing.ts"],"sourcesContent":["import { first, firstValueFrom, lastValueFrom, Observable, toArray } from 'rxjs';\n\nexport function readFirst<T>(o: Observable<T>): Promise<T> {\n return firstValueFrom(o.pipe(first()));\n}\n\nexport function readAll<T>(o: Observable<T>): Promise<T[]> {\n return lastValueFrom(o.pipe(toArray()));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAEM,SAAU,SAAS,CAAI,CAAgB,EAAA;IAC3C,OAAO,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAEK,SAAU,OAAO,CAAI,CAAgB,EAAA;IACzC,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1C;;ACRA;;AAEG;;;;"}
@@ -1,7 +1,5 @@
1
1
  import { createAction } from '@ngrx/store';
2
2
 
3
- class Payload {
4
- }
5
3
  // tslint:disable-next-line: typedef , doing otherwise would involve having deep imports on the @ngrx library
6
4
  function createPayloadAction(actionType) {
7
5
  return createAction(actionType, (payload) => ({ payload }));
@@ -47,7 +45,7 @@ function removeById(source, id) {
47
45
  const data = (_a = source.data) === null || _a === void 0 ? void 0 : _a.filter((f) => f.id !== id);
48
46
  return {
49
47
  total: source.total + ((data === null || data === void 0 ? void 0 : data.length) - ((_b = source.data) === null || _b === void 0 ? void 0 : _b.length)) || 0,
50
- data: data,
48
+ data,
51
49
  };
52
50
  }
53
51
  return null;
@@ -61,10 +59,12 @@ class Subscriptions {
61
59
  return this._subscriptions.length;
62
60
  }
63
61
  push(...items) {
64
- this._subscriptions.push(...items);
62
+ this._subscriptions.push(...items.filter((t) => t));
65
63
  }
66
64
  forEach(callbackfn, thisArg) {
67
- this._subscriptions.forEach(callbackfn, thisArg);
65
+ this._subscriptions
66
+ .map((t) => t)
67
+ .forEach(callbackfn, thisArg);
68
68
  }
69
69
  unsubscribeAll() {
70
70
  while (this._subscriptions.length > 0) {
@@ -78,5 +78,5 @@ class Subscriptions {
78
78
  * Generated bundle index. Do not edit.
79
79
  */
80
80
 
81
- export { Payload, Subscriptions, createPayloadAction, findAndMerge, findAndModify, isFalsy, isTruthy, matchAndSpread, removeById };
82
- //# sourceMappingURL=imng-ngrx-utils.js.map
81
+ export { Subscriptions, createPayloadAction, findAndMerge, findAndModify, isFalsy, isTruthy, matchAndSpread, removeById };
82
+ //# sourceMappingURL=imng-ngrx-utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imng-ngrx-utils.mjs","sources":["../../../../libs/imng-ngrx-utils/src/lib/payload.ts","../../../../libs/imng-ngrx-utils/src/lib/isTruthy.ts","../../../../libs/imng-ngrx-utils/src/lib/find-and-modify.ts","../../../../libs/imng-ngrx-utils/src/lib/find-and-merge.ts","../../../../libs/imng-ngrx-utils/src/lib/match-and-spread.ts","../../../../libs/imng-ngrx-utils/src/lib/remove-by-id.ts","../../../../libs/imng-ngrx-utils/src/lib/subscriptions.ts","../../../../libs/imng-ngrx-utils/src/imng-ngrx-utils.ts"],"sourcesContent":["import { createAction } from '@ngrx/store';\n\nexport interface Payload<T> {\n payload: T;\n}\n\n// tslint:disable-next-line: typedef , doing otherwise would involve having deep imports on the @ngrx library\nexport function createPayloadAction<T>(\n actionType: string,\n) {\n return createAction(actionType, (payload: T) => ({ payload }));\n}\n","export function isTruthy(value: unknown): boolean {\n return !!value;\n}\n\nexport function isFalsy(value: unknown): boolean {\n return !value;\n}\n","import { IdType } from 'imng-nrsrx-client-utils';\n\nexport function findAndModify<ENTITY extends { id?: IdType }>(\n data: ENTITY[],\n lookupId: IdType,\n modificationLogic: (matchingRecord: ENTITY) => void,\n): ENTITY[] {\n return [...data.map((m) => (m.id === lookupId ? applyChanges(m, modificationLogic) : m))];\n}\n\nfunction applyChanges<ENTITY>(record: ENTITY, modificationLogic: (matchingRecord: ENTITY) => void): ENTITY {\n const spreadRecord = { ...record };\n modificationLogic(spreadRecord);\n return spreadRecord;\n}\n","import { IdType } from 'imng-nrsrx-client-utils';\n\nexport function findAndMerge<ENTITY extends { id?: IdType }, COLLECTION_ENTITY extends { id?: IdType }>(\n record: ENTITY,\n data: COLLECTION_ENTITY[],\n): ENTITY {\n return {\n ...data.find((f) => f.id === record.id),\n ...record,\n };\n}\n","import { findAndMerge } from './find-and-merge';\nimport { IdType } from 'imng-nrsrx-client-utils';\n/**\n * Spreads the objects in the dataset1, with a matching id object from the dataset2.\n * @param dataset1 The original dataset, these are the records you can expect to get back.\n * @param dataset2 This dataset will be used to augment the individuals records in dataSet1, records will be matched based on 'id'.\n * @returns dataset1\n */\nexport function matchAndSpread<ENTITY1 extends { id?: IdType }, ENTITY2 extends { id?: IdType }>(\n dataset1: ENTITY1[],\n dataset2: ENTITY2[],\n): ENTITY1[] {\n return dataset1.map((d1) => findAndMerge(d1, dataset2));\n}\n","import { IdType } from 'imng-nrsrx-client-utils';\n\nexport function removeById<T extends { id?: IdType; }>(\n source: { data: T[]; total: number; } | Array<T>,\n id: IdType,\n): { data: T[]; total: number; } | Array<T> | null {\n if (Array.isArray(source)) {\n const result = source;\n return result?.filter((f) => f.id !== id);\n } else if (source) {\n const data = source.data?.filter((f) => f.id !== id);\n return {\n total: source.total + (data?.length - source.data?.length) || 0,\n data,\n };\n }\n return null;\n}\n","import { Subscription } from 'rxjs';\n\nexport class Subscriptions {\n private readonly _subscriptions: (Subscription | undefined)[];\n\n public constructor(...items: Subscription[]) {\n this._subscriptions = items;\n }\n public get length(): number {\n return this._subscriptions.length;\n }\n\n public push(...items: (Subscription | undefined)[]): void {\n this._subscriptions.push(...items.filter((t) => t));\n }\n public forEach(\n callbackfn: (\n value: Subscription,\n index: number,\n array: Subscription[]\n ) => void,\n thisArg?: unknown\n ): void {\n this._subscriptions\n .map((t) => t as Subscription)\n .forEach(callbackfn, thisArg);\n }\n\n public unsubscribeAll(): void {\n while (this._subscriptions.length > 0) {\n const val = this._subscriptions.pop();\n val?.unsubscribe();\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { firstValueFrom, first, lastValueFrom, toArray } from 'rxjs';
2
+
3
+ function readFirst(o) {
4
+ return firstValueFrom(o.pipe(first()));
5
+ }
6
+ function readAll(o) {
7
+ return lastValueFrom(o.pipe(toArray()));
8
+ }
9
+
10
+ /**
11
+ * Generated bundle index. Do not edit.
12
+ */
13
+
14
+ export { readAll, readFirst };
15
+ //# sourceMappingURL=imng-ngrx-utils-testing.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imng-ngrx-utils-testing.mjs","sources":["../../../../libs/imng-ngrx-utils/testing/src/index.ts","../../../../libs/imng-ngrx-utils/testing/src/imng-ngrx-utils-testing.ts"],"sourcesContent":["import { first, firstValueFrom, lastValueFrom, Observable, toArray } from 'rxjs';\n\nexport function readFirst<T>(o: Observable<T>): Promise<T> {\n return firstValueFrom(o.pipe(first()));\n}\n\nexport function readAll<T>(o: Observable<T>): Promise<T[]> {\n return lastValueFrom(o.pipe(toArray()));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAEM,SAAU,SAAS,CAAI,CAAgB,EAAA;IAC3C,OAAO,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAEK,SAAU,OAAO,CAAI,CAAgB,EAAA;IACzC,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1C;;ACRA;;AAEG;;;;"}
@@ -0,0 +1,84 @@
1
+ import { createAction } from '@ngrx/store';
2
+
3
+ // tslint:disable-next-line: typedef , doing otherwise would involve having deep imports on the @ngrx library
4
+ function createPayloadAction(actionType) {
5
+ return createAction(actionType, (payload) => ({ payload }));
6
+ }
7
+
8
+ function isTruthy(value) {
9
+ return !!value;
10
+ }
11
+ function isFalsy(value) {
12
+ return !value;
13
+ }
14
+
15
+ function findAndModify(data, lookupId, modificationLogic) {
16
+ return [...data.map((m) => (m.id === lookupId ? applyChanges(m, modificationLogic) : m))];
17
+ }
18
+ function applyChanges(record, modificationLogic) {
19
+ const spreadRecord = { ...record };
20
+ modificationLogic(spreadRecord);
21
+ return spreadRecord;
22
+ }
23
+
24
+ function findAndMerge(record, data) {
25
+ return {
26
+ ...data.find((f) => f.id === record.id),
27
+ ...record,
28
+ };
29
+ }
30
+
31
+ /**
32
+ * Spreads the objects in the dataset1, with a matching id object from the dataset2.
33
+ * @param dataset1 The original dataset, these are the records you can expect to get back.
34
+ * @param dataset2 This dataset will be used to augment the individuals records in dataSet1, records will be matched based on 'id'.
35
+ * @returns dataset1
36
+ */
37
+ function matchAndSpread(dataset1, dataset2) {
38
+ return dataset1.map((d1) => findAndMerge(d1, dataset2));
39
+ }
40
+
41
+ function removeById(source, id) {
42
+ if (Array.isArray(source)) {
43
+ const result = source;
44
+ return result?.filter((f) => f.id !== id);
45
+ }
46
+ else if (source) {
47
+ const data = source.data?.filter((f) => f.id !== id);
48
+ return {
49
+ total: source.total + (data?.length - source.data?.length) || 0,
50
+ data,
51
+ };
52
+ }
53
+ return null;
54
+ }
55
+
56
+ class Subscriptions {
57
+ constructor(...items) {
58
+ this._subscriptions = items;
59
+ }
60
+ get length() {
61
+ return this._subscriptions.length;
62
+ }
63
+ push(...items) {
64
+ this._subscriptions.push(...items.filter((t) => t));
65
+ }
66
+ forEach(callbackfn, thisArg) {
67
+ this._subscriptions
68
+ .map((t) => t)
69
+ .forEach(callbackfn, thisArg);
70
+ }
71
+ unsubscribeAll() {
72
+ while (this._subscriptions.length > 0) {
73
+ const val = this._subscriptions.pop();
74
+ val?.unsubscribe();
75
+ }
76
+ }
77
+ }
78
+
79
+ /**
80
+ * Generated bundle index. Do not edit.
81
+ */
82
+
83
+ export { Subscriptions, createPayloadAction, findAndMerge, findAndModify, isFalsy, isTruthy, matchAndSpread, removeById };
84
+ //# sourceMappingURL=imng-ngrx-utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imng-ngrx-utils.mjs","sources":["../../../../libs/imng-ngrx-utils/src/lib/payload.ts","../../../../libs/imng-ngrx-utils/src/lib/isTruthy.ts","../../../../libs/imng-ngrx-utils/src/lib/find-and-modify.ts","../../../../libs/imng-ngrx-utils/src/lib/find-and-merge.ts","../../../../libs/imng-ngrx-utils/src/lib/match-and-spread.ts","../../../../libs/imng-ngrx-utils/src/lib/remove-by-id.ts","../../../../libs/imng-ngrx-utils/src/lib/subscriptions.ts","../../../../libs/imng-ngrx-utils/src/imng-ngrx-utils.ts"],"sourcesContent":["import { createAction } from '@ngrx/store';\n\nexport interface Payload<T> {\n payload: T;\n}\n\n// tslint:disable-next-line: typedef , doing otherwise would involve having deep imports on the @ngrx library\nexport function createPayloadAction<T>(\n actionType: string,\n) {\n return createAction(actionType, (payload: T) => ({ payload }));\n}\n","export function isTruthy(value: unknown): boolean {\n return !!value;\n}\n\nexport function isFalsy(value: unknown): boolean {\n return !value;\n}\n","import { IdType } from 'imng-nrsrx-client-utils';\n\nexport function findAndModify<ENTITY extends { id?: IdType }>(\n data: ENTITY[],\n lookupId: IdType,\n modificationLogic: (matchingRecord: ENTITY) => void,\n): ENTITY[] {\n return [...data.map((m) => (m.id === lookupId ? applyChanges(m, modificationLogic) : m))];\n}\n\nfunction applyChanges<ENTITY>(record: ENTITY, modificationLogic: (matchingRecord: ENTITY) => void): ENTITY {\n const spreadRecord = { ...record };\n modificationLogic(spreadRecord);\n return spreadRecord;\n}\n","import { IdType } from 'imng-nrsrx-client-utils';\n\nexport function findAndMerge<ENTITY extends { id?: IdType }, COLLECTION_ENTITY extends { id?: IdType }>(\n record: ENTITY,\n data: COLLECTION_ENTITY[],\n): ENTITY {\n return {\n ...data.find((f) => f.id === record.id),\n ...record,\n };\n}\n","import { findAndMerge } from './find-and-merge';\nimport { IdType } from 'imng-nrsrx-client-utils';\n/**\n * Spreads the objects in the dataset1, with a matching id object from the dataset2.\n * @param dataset1 The original dataset, these are the records you can expect to get back.\n * @param dataset2 This dataset will be used to augment the individuals records in dataSet1, records will be matched based on 'id'.\n * @returns dataset1\n */\nexport function matchAndSpread<ENTITY1 extends { id?: IdType }, ENTITY2 extends { id?: IdType }>(\n dataset1: ENTITY1[],\n dataset2: ENTITY2[],\n): ENTITY1[] {\n return dataset1.map((d1) => findAndMerge(d1, dataset2));\n}\n","import { IdType } from 'imng-nrsrx-client-utils';\n\nexport function removeById<T extends { id?: IdType; }>(\n source: { data: T[]; total: number; } | Array<T>,\n id: IdType,\n): { data: T[]; total: number; } | Array<T> | null {\n if (Array.isArray(source)) {\n const result = source;\n return result?.filter((f) => f.id !== id);\n } else if (source) {\n const data = source.data?.filter((f) => f.id !== id);\n return {\n total: source.total + (data?.length - source.data?.length) || 0,\n data,\n };\n }\n return null;\n}\n","import { Subscription } from 'rxjs';\n\nexport class Subscriptions {\n private readonly _subscriptions: (Subscription | undefined)[];\n\n public constructor(...items: Subscription[]) {\n this._subscriptions = items;\n }\n public get length(): number {\n return this._subscriptions.length;\n }\n\n public push(...items: (Subscription | undefined)[]): void {\n this._subscriptions.push(...items.filter((t) => t));\n }\n public forEach(\n callbackfn: (\n value: Subscription,\n index: number,\n array: Subscription[]\n ) => void,\n thisArg?: unknown\n ): void {\n this._subscriptions\n .map((t) => t as Subscription)\n .forEach(callbackfn, thisArg);\n }\n\n public unsubscribeAll(): void {\n while (this._subscriptions.length > 0) {\n const val = this._subscriptions.pop();\n val?.unsubscribe();\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -3,4 +3,3 @@
3
3
  */
4
4
  /// <amd-module name="imng-ngrx-utils" />
5
5
  export * from './index';
6
- //# sourceMappingURL=imng-ngrx-utils.d.ts.map
package/index.d.ts CHANGED
@@ -6,4 +6,3 @@ export { matchAndSpread } from './lib/match-and-spread';
6
6
  export { removeById } from './lib/remove-by-id';
7
7
  export { Subscriptions } from './lib/subscriptions';
8
8
  export { Subscribable } from './lib/subscribable';
9
- //# sourceMappingURL=index.d.ts.map
@@ -4,4 +4,3 @@ export declare function findAndMerge<ENTITY extends {
4
4
  }, COLLECTION_ENTITY extends {
5
5
  id?: IdType;
6
6
  }>(record: ENTITY, data: COLLECTION_ENTITY[]): ENTITY;
7
- //# sourceMappingURL=find-and-merge.d.ts.map
@@ -2,4 +2,3 @@ import { IdType } from 'imng-nrsrx-client-utils';
2
2
  export declare function findAndModify<ENTITY extends {
3
3
  id?: IdType;
4
4
  }>(data: ENTITY[], lookupId: IdType, modificationLogic: (matchingRecord: ENTITY) => void): ENTITY[];
5
- //# sourceMappingURL=find-and-modify.d.ts.map
package/lib/isTruthy.d.ts CHANGED
@@ -1,3 +1,2 @@
1
1
  export declare function isTruthy(value: unknown): boolean;
2
2
  export declare function isFalsy(value: unknown): boolean;
3
- //# sourceMappingURL=isTruthy.d.ts.map
@@ -10,4 +10,3 @@ export declare function matchAndSpread<ENTITY1 extends {
10
10
  }, ENTITY2 extends {
11
11
  id?: IdType;
12
12
  }>(dataset1: ENTITY1[], dataset2: ENTITY2[]): ENTITY1[];
13
- //# sourceMappingURL=match-and-spread.d.ts.map
package/lib/payload.d.ts CHANGED
@@ -1,7 +1,6 @@
1
- export declare class Payload<T> {
1
+ export interface Payload<T> {
2
2
  payload: T;
3
3
  }
4
4
  export declare function createPayloadAction<T>(actionType: string): import("@ngrx/store").FunctionWithParametersType<[payload: T], {
5
5
  payload: T;
6
6
  } & import("@ngrx/store/src/models").TypedAction<string>> & import("@ngrx/store/src/models").TypedAction<string>;
7
- //# sourceMappingURL=payload.d.ts.map
@@ -7,5 +7,4 @@ export declare function removeById<T extends {
7
7
  } | Array<T>, id: IdType): {
8
8
  data: T[];
9
9
  total: number;
10
- } | Array<T>;
11
- //# sourceMappingURL=remove-by-id.d.ts.map
10
+ } | Array<T> | null;
@@ -3,4 +3,3 @@ import { Subscriptions } from './subscriptions';
3
3
  export interface Subscribable extends OnDestroy {
4
4
  allSubscriptions: Subscriptions;
5
5
  }
6
- //# sourceMappingURL=subscribable.d.ts.map
@@ -3,8 +3,7 @@ export declare class Subscriptions {
3
3
  private readonly _subscriptions;
4
4
  constructor(...items: Subscription[]);
5
5
  get length(): number;
6
- push(...items: Subscription[]): void;
6
+ push(...items: (Subscription | undefined)[]): void;
7
7
  forEach(callbackfn: (value: Subscription, index: number, array: Subscription[]) => void, thisArg?: unknown): void;
8
8
  unsubscribeAll(): void;
9
9
  }
10
- //# sourceMappingURL=subscriptions.d.ts.map
package/package.json CHANGED
@@ -1,34 +1,57 @@
1
1
  {
2
2
  "name": "imng-ngrx-utils",
3
- "version": "4.62.1",
3
+ "version": "4.102.13",
4
+ "keywords": [
5
+ "Angular",
6
+ "NGRX"
7
+ ],
4
8
  "peerDependencies": {
5
- "@progress/kendo-data-query": ">=1.x",
6
- "@ngrx/store": ">=12.x"
9
+ "@angular/common": ">=13.x",
10
+ "@angular/core": ">=13.x",
11
+ "@ngrx/store": ">=13.x",
12
+ "imng-nrsrx-client-utils": "*",
13
+ "rxjs": "*"
7
14
  },
8
15
  "dependencies": {
9
-
10
- "imng-nrsrx-client-utils": "4.62.1",
11
- "@angular/common": "12.2.11",
12
- "rxjs": "^6.6.7",
13
- "@angular/core": "12.2.11",
14
- "@nrwl/angular": "13.0.1"
16
+ "tslib": "^2.3.0"
15
17
  },
18
+ "license": "MIT",
16
19
  "repository": {
17
20
  "type": "git",
18
21
  "url": "https://github.com/ikemtz/AngularMonoRepo.git"
19
22
  },
20
23
  "icon": "https://avatars.githubusercontent.com/u/6444182?v=4",
21
- "license": "MIT",
22
24
  "private": false,
23
25
  "author": {
24
26
  "name": "Isaac Martinez <@ikemtz>",
25
27
  "url": "https://github.com/ikemtz"
26
28
  },
27
- "main": "bundles/imng-ngrx-utils.umd.js",
28
- "module": "fesm2015/imng-ngrx-utils.js",
29
- "es2015": "fesm2015/imng-ngrx-utils.js",
30
- "esm2015": "esm2015/imng-ngrx-utils.js",
31
- "fesm2015": "fesm2015/imng-ngrx-utils.js",
29
+ "module": "fesm2015/imng-ngrx-utils.mjs",
30
+ "es2020": "fesm2020/imng-ngrx-utils.mjs",
31
+ "esm2020": "esm2020/imng-ngrx-utils.mjs",
32
+ "fesm2020": "fesm2020/imng-ngrx-utils.mjs",
33
+ "fesm2015": "fesm2015/imng-ngrx-utils.mjs",
32
34
  "typings": "imng-ngrx-utils.d.ts",
35
+ "exports": {
36
+ "./package.json": {
37
+ "default": "./package.json"
38
+ },
39
+ ".": {
40
+ "types": "./imng-ngrx-utils.d.ts",
41
+ "esm2020": "./esm2020/imng-ngrx-utils.mjs",
42
+ "es2020": "./fesm2020/imng-ngrx-utils.mjs",
43
+ "es2015": "./fesm2015/imng-ngrx-utils.mjs",
44
+ "node": "./fesm2015/imng-ngrx-utils.mjs",
45
+ "default": "./fesm2020/imng-ngrx-utils.mjs"
46
+ },
47
+ "./testing": {
48
+ "types": "./testing/imng-ngrx-utils-testing.d.ts",
49
+ "esm2020": "./esm2020/testing/imng-ngrx-utils-testing.mjs",
50
+ "es2020": "./fesm2020/imng-ngrx-utils-testing.mjs",
51
+ "es2015": "./fesm2015/imng-ngrx-utils-testing.mjs",
52
+ "node": "./fesm2015/imng-ngrx-utils-testing.mjs",
53
+ "default": "./fesm2020/imng-ngrx-utils-testing.mjs"
54
+ }
55
+ },
33
56
  "sideEffects": false
34
- }
57
+ }
@@ -0,0 +1,3 @@
1
+ # imng-ngrx-utils/testing
2
+
3
+ Secondary entry point of `imng-ngrx-utils`. It can be used by importing from `imng-ngrx-utils/testing`.
@@ -2,5 +2,4 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  /// <amd-module name="imng-ngrx-utils/testing" />
5
- export * from './public_api';
6
- //# sourceMappingURL=imng-ngrx-utils-testing.d.ts.map
5
+ export * from './index';
@@ -1,7 +1,3 @@
1
- /**
2
- * This was introduced due to breaking changes in Jest@27
3
- * Issue Link: https://github.com/nrwl/nx/issues/5716#issuecomment-864705809
4
- *
5
- */
6
- export { readAll, readFirst } from '@nrwl/angular/testing/src/testing-utils';
7
- //# sourceMappingURL=index.d.ts.map
1
+ import { Observable } from 'rxjs';
2
+ export declare function readFirst<T>(o: Observable<T>): Promise<T>;
3
+ export declare function readAll<T>(o: Observable<T>): Promise<T[]>;
@@ -1,9 +1,9 @@
1
1
  {
2
- "main": "../bundles/imng-ngrx-utils-testing.umd.js",
3
- "module": "../fesm2015/imng-ngrx-utils-testing.js",
4
- "es2015": "../fesm2015/imng-ngrx-utils-testing.js",
5
- "esm2015": "../esm2015/testing/imng-ngrx-utils-testing.js",
6
- "fesm2015": "../fesm2015/imng-ngrx-utils-testing.js",
2
+ "module": "../fesm2015/imng-ngrx-utils-testing.mjs",
3
+ "es2020": "../fesm2020/imng-ngrx-utils-testing.mjs",
4
+ "esm2020": "../esm2020/testing/imng-ngrx-utils-testing.mjs",
5
+ "fesm2020": "../fesm2020/imng-ngrx-utils-testing.mjs",
6
+ "fesm2015": "../fesm2015/imng-ngrx-utils-testing.mjs",
7
7
  "typings": "imng-ngrx-utils-testing.d.ts",
8
8
  "sideEffects": false,
9
9
  "name": "imng-ngrx-utils/testing"
@@ -1,29 +0,0 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@nrwl/angular/testing/src/testing-utils')) :
3
- typeof define === 'function' && define.amd ? define('imng-ngrx-utils/testing', ['exports', '@nrwl/angular/testing/src/testing-utils'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["imng-ngrx-utils"] = global["imng-ngrx-utils"] || {}, global["imng-ngrx-utils"].testing = {}), global.testingUtils));
5
- })(this, (function (exports, testingUtils) { 'use strict';
6
-
7
- /**
8
- * This was introduced due to breaking changes in Jest@27
9
- * Issue Link: https://github.com/nrwl/nx/issues/5716#issuecomment-864705809
10
- *
11
- */
12
-
13
- /**
14
- * Generated bundle index. Do not edit.
15
- */
16
-
17
- Object.defineProperty(exports, 'readAll', {
18
- enumerable: true,
19
- get: function () { return testingUtils.readAll; }
20
- });
21
- Object.defineProperty(exports, 'readFirst', {
22
- enumerable: true,
23
- get: function () { return testingUtils.readFirst; }
24
- });
25
-
26
- Object.defineProperty(exports, '__esModule', { value: true });
27
-
28
- }));
29
- //# sourceMappingURL=imng-ngrx-utils-testing.umd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"imng-ngrx-utils-testing.umd.js","sources":["../../../../libs/imng-ngrx-utils/testing/src/index.ts","../../../../libs/imng-ngrx-utils/testing/src/imng-ngrx-utils-testing.ts"],"sourcesContent":["/**\n * This was introduced due to breaking changes in Jest@27\n * Issue Link: https://github.com/nrwl/nx/issues/5716#issuecomment-864705809\n * \n */\n\nexport { readAll, readFirst } from '@nrwl/angular/testing/src/testing-utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;CAAA;;;;;;CCAA;;;;;;;;;;;;;;;;;;;"}