@tethys/cdk 12.1.26 → 13.0.0-next.2

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 (44) hide show
  1. package/esm2020/immutable/immutable.mjs +109 -0
  2. package/{esm2015/immutable/index.js → esm2020/immutable/index.mjs} +0 -0
  3. package/{esm2015/immutable/tethys-cdk-immutable.js → esm2020/immutable/tethys-cdk-immutable.mjs} +0 -0
  4. package/{esm2015/is/index.js → esm2020/is/index.mjs} +0 -0
  5. package/{esm2015/is/tethys-cdk-is.js → esm2020/is/tethys-cdk-is.mjs} +0 -0
  6. package/{esm2015/is/utils.js → esm2020/is/utils.mjs} +0 -0
  7. package/{esm2015/logger/index.js → esm2020/logger/index.mjs} +0 -0
  8. package/{esm2015/logger/logger.js → esm2020/logger/logger.mjs} +0 -0
  9. package/{esm2015/logger/tethys-cdk-logger.js → esm2020/logger/tethys-cdk-logger.mjs} +0 -0
  10. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  11. package/{esm2015/tethys-cdk.js → esm2020/tethys-cdk.mjs} +0 -0
  12. package/fesm2015/{tethys-cdk-immutable.js → tethys-cdk-immutable.mjs} +1 -1
  13. package/fesm2015/tethys-cdk-immutable.mjs.map +1 -0
  14. package/fesm2015/{tethys-cdk-is.js → tethys-cdk-is.mjs} +1 -1
  15. package/fesm2015/tethys-cdk-is.mjs.map +1 -0
  16. package/fesm2015/{tethys-cdk-logger.js → tethys-cdk-logger.mjs} +1 -1
  17. package/fesm2015/tethys-cdk-logger.mjs.map +1 -0
  18. package/fesm2015/{tethys-cdk.js → tethys-cdk.mjs} +1 -1
  19. package/fesm2015/tethys-cdk.mjs.map +1 -0
  20. package/fesm2020/tethys-cdk-immutable.mjs +116 -0
  21. package/fesm2020/tethys-cdk-immutable.mjs.map +1 -0
  22. package/fesm2020/tethys-cdk-is.mjs +104 -0
  23. package/fesm2020/tethys-cdk-is.mjs.map +1 -0
  24. package/fesm2020/tethys-cdk-logger.mjs +43 -0
  25. package/fesm2020/tethys-cdk-logger.mjs.map +1 -0
  26. package/fesm2020/tethys-cdk.mjs +12 -0
  27. package/fesm2020/tethys-cdk.mjs.map +1 -0
  28. package/immutable/package.json +5 -5
  29. package/is/package.json +5 -5
  30. package/logger/package.json +5 -5
  31. package/package.json +43 -6
  32. package/bundles/tethys-cdk-immutable.umd.js +0 -446
  33. package/bundles/tethys-cdk-immutable.umd.js.map +0 -1
  34. package/bundles/tethys-cdk-is.umd.js +0 -125
  35. package/bundles/tethys-cdk-is.umd.js.map +0 -1
  36. package/bundles/tethys-cdk-logger.umd.js +0 -405
  37. package/bundles/tethys-cdk-logger.umd.js.map +0 -1
  38. package/bundles/tethys-cdk.umd.js +0 -43
  39. package/bundles/tethys-cdk.umd.js.map +0 -1
  40. package/esm2015/immutable/immutable.js +0 -109
  41. package/fesm2015/tethys-cdk-immutable.js.map +0 -1
  42. package/fesm2015/tethys-cdk-is.js.map +0 -1
  43. package/fesm2015/tethys-cdk-logger.js.map +0 -1
  44. package/fesm2015/tethys-cdk.js.map +0 -1
@@ -0,0 +1,109 @@
1
+ import { coerceArray } from '@angular/cdk/coercion';
2
+ import { isFunction, isUndefinedOrNull } from '@tethys/cdk/is';
3
+ export class Producer {
4
+ constructor(entities, options) {
5
+ this.idKey = '_id';
6
+ this.entities = entities || [];
7
+ if (options && options.idKey) {
8
+ this.idKey = options.idKey;
9
+ }
10
+ }
11
+ /**
12
+ * Add an entity or entities.
13
+ *
14
+ * @example
15
+ * produce([users]).add(Entity);
16
+ * produce([users]).add([Entity, Entity]);
17
+ * produce([users]).add(Entity, { prepend: true });
18
+ * produce([users]).add(Entity, { afterId: '' });
19
+ */
20
+ add(entity, addOptions) {
21
+ const addEntities = coerceArray(entity);
22
+ if (addEntities.length === 0) {
23
+ return this.entities;
24
+ }
25
+ if (addOptions && (addOptions.afterId || addOptions.prepend)) {
26
+ if (addOptions.afterId) {
27
+ const entities = [...this.entities];
28
+ const index = this.entities.findIndex(item => {
29
+ return item[this.idKey] === addOptions.afterId;
30
+ }) + 1;
31
+ entities.splice(index, 0, ...addEntities);
32
+ this.entities = [...entities];
33
+ }
34
+ else if (addOptions.prepend) {
35
+ this.entities = [...addEntities, ...this.entities];
36
+ }
37
+ }
38
+ else {
39
+ this.entities = [...this.entities, ...addEntities];
40
+ }
41
+ return this.entities;
42
+ }
43
+ update(idsOrFn, newStateOrFn) {
44
+ const ids = coerceArray(idsOrFn);
45
+ for (let i = 0; i < this.entities.length; i++) {
46
+ const oldEntity = this.entities[i];
47
+ if (ids.indexOf(oldEntity[this.idKey]) >= 0) {
48
+ const newState = isFunction(newStateOrFn) ? newStateOrFn(oldEntity) : newStateOrFn;
49
+ this.entities[i] = { ...oldEntity, ...newState };
50
+ }
51
+ }
52
+ return [...this.entities];
53
+ }
54
+ remove(idsOrFn) {
55
+ if (isFunction(idsOrFn)) {
56
+ this.entities = this.entities.filter(entity => {
57
+ return !idsOrFn(entity);
58
+ });
59
+ }
60
+ else {
61
+ const ids = coerceArray(idsOrFn);
62
+ this.entities = this.entities.filter(entity => {
63
+ return ids.indexOf(entity[this.idKey]) === -1;
64
+ });
65
+ }
66
+ return this.entities;
67
+ }
68
+ /**
69
+ *
70
+ * Move one or more entities:
71
+ *
72
+ * @example
73
+ * produce([users]).move(5, {afterId: 2});
74
+ * produce([users]).move(5, {toIndex: 0});
75
+ */
76
+ move(id, moveOptions) {
77
+ const fromIndex = this.entities.findIndex(item => item[this.idKey] === id);
78
+ let toIndex = 0;
79
+ const newEntities = [...this.entities];
80
+ if (!id || fromIndex < 0) {
81
+ return [...this.entities];
82
+ }
83
+ if (moveOptions) {
84
+ if (!isUndefinedOrNull(moveOptions.afterId)) {
85
+ toIndex = this.entities.findIndex(item => item[this.idKey] === moveOptions.afterId);
86
+ }
87
+ else if (moveOptions.toIndex) {
88
+ toIndex = moveOptions.toIndex;
89
+ }
90
+ }
91
+ toIndex = Math.max(0, Math.min(this.entities.length - 1, toIndex));
92
+ if (toIndex === fromIndex) {
93
+ return [...this.entities];
94
+ }
95
+ else {
96
+ const target = this.entities[fromIndex];
97
+ const delta = toIndex < fromIndex ? -1 : 1;
98
+ for (let i = fromIndex; i !== toIndex; i += delta) {
99
+ newEntities[i] = newEntities[i + delta];
100
+ }
101
+ newEntities[toIndex] = target;
102
+ return [...newEntities];
103
+ }
104
+ }
105
+ }
106
+ export function produce(entities, options) {
107
+ return new Producer(entities, options);
108
+ }
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1tdXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY2RrL2ltbXV0YWJsZS9pbW11dGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQXFCL0QsTUFBTSxPQUFPLFFBQVE7SUFLakIsWUFBWSxRQUFtQixFQUFFLE9BQWtDO1FBSjNELFVBQUssR0FBRyxLQUFLLENBQUM7UUFLbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQy9CLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBZSxDQUFDO1NBQ3hDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsR0FBRyxDQUFDLE1BQTJCLEVBQUUsVUFBNkI7UUFDMUQsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDMUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMxRCxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3BCLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3BDLE1BQU0sS0FBSyxHQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssVUFBVSxD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QU8sQ0FBVSxRQUFtQixFQUFFLE9BQWtDO0lBQ3BGLE9BQU8sSUFBSSxRQUFRLENBQVUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VBcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uLCBpc1VuZGVmaW5lZE9yTnVsbCB9IGZyb20gJ0B0ZXRoeXMvY2RrL2lzJztcblxuZXhwb3J0IHR5cGUgSWQgPSBzdHJpbmcgfCBudW1iZXI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5QWRkT3B0aW9ucyB7XG4gICAgcHJlcGVuZD86IGJvb2xlYW47XG5cbiAgICBhZnRlcklkPzogSWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5TW92ZU9wdGlvbnMge1xuICAgIGFmdGVySWQ/OiBJZDtcblxuICAgIHRvSW5kZXg/OiBudW1iZXI7XG59XG5cbnR5cGUgRXh0cmFjdEtleXNPZlZhbHVlVHlwZTxULCBLPiA9IHsgW0kgaW4ga2V5b2YgVF06IFRbSV0gZXh0ZW5kcyBLID8gSSA6IG5ldmVyIH1ba2V5b2YgVF07XG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y2VyT3B0aW9uczxURW50aXR5PiB7XG4gICAgaWRLZXk/OiBFeHRyYWN0S2V5c09mVmFsdWVUeXBlPFRFbnRpdHksIElkPjtcbn1cblxuZXhwb3J0IGNsYXNzIFByb2R1Y2VyPFRFbnRpdHk+IHtcbiAgICBwcml2YXRlIGlkS2V5ID0gJ19pZCc7XG5cbiAgICBwcml2YXRlIGVudGl0aWVzOiBURW50aXR5W107XG5cbiAgICBjb25zdHJ1Y3RvcihlbnRpdGllczogVEVudGl0eVtdLCBvcHRpb25zPzogUHJvZHVjZXJPcHRpb25zPFRFbnRpdHk+KSB7XG4gICAgICAgIHRoaXMuZW50aXRpZXMgPSBlbnRpdGllcyB8fCBbXTtcbiAgICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5pZEtleSkge1xuICAgICAgICAgICAgdGhpcy5pZEtleSA9IG9wdGlvbnMuaWRLZXkgYXMgc3RyaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIGFuIGVudGl0eSBvciBlbnRpdGllcy5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogcHJvZHVjZShbdXNlcnNdKS5hZGQoRW50aXR5KTtcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLmFkZChbRW50aXR5LCBFbnRpdHldKTtcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLmFkZChFbnRpdHksIHsgcHJlcGVuZDogdHJ1ZSB9KTtcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLmFkZChFbnRpdHksIHsgYWZ0ZXJJZDogJycgfSk7XG4gICAgICovXG4gICAgYWRkKGVudGl0eTogVEVudGl0eSB8IFRFbnRpdHlbXSwgYWRkT3B0aW9ucz86IEVudGl0eUFkZE9wdGlvbnMpOiBURW50aXR5W10ge1xuICAgICAgICBjb25zdCBhZGRFbnRpdGllcyA9IGNvZXJjZUFycmF5KGVudGl0eSk7XG4gICAgICAgIGlmIChhZGRFbnRpdGllcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVudGl0aWVzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhZGRPcHRpb25zICYmIChhZGRPcHRpb25zLmFmdGVySWQgfHwgYWRkT3B0aW9ucy5wcmVwZW5kKSkge1xuICAgICAgICAgICAgaWYgKGFkZE9wdGlvbnMuYWZ0ZXJJZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVudGl0aWVzID0gWy4uLnRoaXMuZW50aXRpZXNdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRpdGllcy5maW5kSW5kZXgoaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbVt0aGlzLmlkS2V5XSA9PT0gYWRkT3B0aW9ucy5hZnRlcklkO1xuICAgICAgICAgICAgICAgICAgICB9KSArIDE7XG4gICAgICAgICAgICAgICAgZW50aXRpZXMuc3BsaWNlKGluZGV4LCAwLCAuLi5hZGRFbnRpdGllcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbnRpdGllcyA9IFsuLi5lbnRpdGllc107XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFkZE9wdGlvbnMucHJlcGVuZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZW50aXRpZXMgPSBbLi4uYWRkRW50aXRpZXMsIC4uLnRoaXMuZW50aXRpZXNdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lbnRpdGllcyA9IFsuLi50aGlzLmVudGl0aWVzLCAuLi5hZGRFbnRpdGllc107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXRpZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBVcGRhdGUgYW4gZW50aXR5IG9yIGVudGl0aWVzLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLnVwZGF0ZSgzLCB7XG4gICAgICogICBuYW1lOiAnTmV3IE5hbWUnXG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLnVwZGF0ZSgzLCBlbnRpdHkgPT4ge1xuICAgICAqICAgIHJldHVybiB7XG4gICAgICogICAgICAuLi5lbnRpdHksXG4gICAgICogICAgICBuYW1lOiAnTmV3IE5hbWUnXG4gICAgICogICAgfVxuICAgICAqICB9KTtcbiAgICAgKlxuICAgICAqIHByb2R1Y2UoW3VzZXJzXSkudXBkYXRlKFsxLDIsM10sIHtcbiAgICAgKiAgIG5hbWU6ICdOZXcgTmFtZSdcbiAgICAgKiB9KTtcbiAgICAgKi9cbiAgICB1cGRhdGUoaWQ6IElkIHwgSWRbXSB8IG51bGwsIG5ld1N0YXRlRm46IChlbnRpdHk6IFJlYWRvbmx5PFRFbnRpdHk+KSA9PiBQYXJ0aWFsPFRFbnRpdHk+KTogVEVudGl0eVtdO1xuICAgIHVwZGF0ZShpZDogSWQgfCBJZFtdIHwgbnVsbCwgbmV3U3RhdGU/OiBQYXJ0aWFsPFRFbnRpdHk+KTogVEVudGl0eVtdO1xuICAgIHVwZGF0ZShcbiAgICAgICAgaWRzT3JGbjogSWQgfCBJZFtdIHwgbnVsbCB8IFBhcnRpYWw8VEVudGl0eT4gfCAoKGVudGl0eTogUmVhZG9ubHk8VEVudGl0eT4pID0+IGJvb2xlYW4pLFxuICAgICAgICBuZXdTdGF0ZU9yRm4/OiAoKGVudGl0eTogUmVhZG9ubHk8VEVudGl0eT4pID0+IFBhcnRpYWw8VEVudGl0eT4pIHwgUGFydGlhbDxURW50aXR5PlxuICAgICk6IFRFbnRpdHlbXSB7XG4gICAgICAgIGNvbnN0IGlkcyA9IGNvZXJjZUFycmF5KGlkc09yRm4pO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5lbnRpdGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgb2xkRW50aXR5ID0gdGhpcy5lbnRpdGllc1tpXTtcbiAgICAgICAgICAgIGlmIChpZHMuaW5kZXhPZihvbGRFbnRpdHlbdGhpcy5pZEtleV0pID49IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdTdGF0ZSA9IGlzRnVuY3Rpb24obmV3U3RhdGVPckZuKSA/IG5ld1N0YXRlT3JGbihvbGRFbnRpdHkpIDogbmV3U3RhdGVPckZuO1xuICAgICAgICAgICAgICAgIHRoaXMuZW50aXRpZXNbaV0gPSB7IC4uLm9sZEVudGl0eSwgLi4ubmV3U3RhdGUgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gWy4uLnRoaXMuZW50aXRpZXNdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogUmVtb3ZlIG9uZSBvciBtb3JlIGVudGl0aWVzOlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLnJlbW92ZSg1KTtcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLnJlbW92ZShbMSwyLDNdKTtcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLnJlbW92ZShlbnRpdHkgPT4gZW50aXR5LmlkID09PSAxKTtcbiAgICAgKi9cbiAgICByZW1vdmUoaWQ6IElkIHwgSWRbXSk6IFRFbnRpdHlbXTtcbiAgICByZW1vdmUocHJlZGljYXRlOiAoZW50aXR5OiBSZWFkb25seTxURW50aXR5PikgPT4gYm9vbGVhbik6IFRFbnRpdHlbXTtcbiAgICByZW1vdmUoaWRzT3JGbj86IElkIHwgSWRbXSB8ICgoZW50aXR5OiBSZWFkb25seTxURW50aXR5PikgPT4gYm9vbGVhbikpOiBURW50aXR5W10ge1xuICAgICAgICBpZiAoaXNGdW5jdGlvbihpZHNPckZuKSkge1xuICAgICAgICAgICAgdGhpcy5lbnRpdGllcyA9IHRoaXMuZW50aXRpZXMuZmlsdGVyKGVudGl0eSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEoaWRzT3JGbiBhcyBhbnkpKGVudGl0eSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGlkcyA9IGNvZXJjZUFycmF5KGlkc09yRm4pO1xuICAgICAgICAgICAgdGhpcy5lbnRpdGllcyA9IHRoaXMuZW50aXRpZXMuZmlsdGVyKGVudGl0eSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlkcy5pbmRleE9mKGVudGl0eVt0aGlzLmlkS2V5XSkgPT09IC0xO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXRpZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBNb3ZlIG9uZSBvciBtb3JlIGVudGl0aWVzOlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLm1vdmUoNSwge2FmdGVySWQ6IDJ9KTtcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLm1vdmUoNSwge3RvSW5kZXg6IDB9KTtcbiAgICAgKi9cbiAgICBtb3ZlKGlkOiBJZCwgbW92ZU9wdGlvbnM/OiBFbnRpdHlNb3ZlT3B0aW9ucyk6IFRFbnRpdHlbXSB7XG4gICAgICAgIGNvbnN0IGZyb21JbmRleCA9IHRoaXMuZW50aXRpZXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbVt0aGlzLmlkS2V5XSA9PT0gaWQpO1xuICAgICAgICBsZXQgdG9JbmRleCA9IDA7XG4gICAgICAgIGNvbnN0IG5ld0VudGl0aWVzID0gWy4uLnRoaXMuZW50aXRpZXNdO1xuXG4gICAgICAgIGlmICghaWQgfHwgZnJvbUluZGV4IDwgMCkge1xuICAgICAgICAgICAgcmV0dXJuIFsuLi50aGlzLmVudGl0aWVzXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtb3ZlT3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbChtb3ZlT3B0aW9ucy5hZnRlcklkKSkge1xuICAgICAgICAgICAgICAgIHRvSW5kZXggPSB0aGlzLmVudGl0aWVzLmZpbmRJbmRleChpdGVtID0+IGl0ZW1bdGhpcy5pZEtleV0gPT09IG1vdmVPcHRpb25zLmFmdGVySWQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtb3ZlT3B0aW9ucy50b0luZGV4KSB7XG4gICAgICAgICAgICAgICAgdG9JbmRleCA9IG1vdmVPcHRpb25zLnRvSW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdG9JbmRleCA9IE1hdGgubWF4KDAsIE1hdGgubWluKHRoaXMuZW50aXRpZXMubGVuZ3RoIC0gMSwgdG9JbmRleCkpO1xuICAgICAgICBpZiAodG9JbmRleCA9PT0gZnJvbUluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gWy4uLnRoaXMuZW50aXRpZXNdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5lbnRpdGllc1tmcm9tSW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgZGVsdGEgPSB0b0luZGV4IDwgZnJvbUluZGV4ID8gLTEgOiAxO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gZnJvbUluZGV4OyBpICE9PSB0b0luZGV4OyBpICs9IGRlbHRhKSB7XG4gICAgICAgICAgICAgICAgbmV3RW50aXRpZXNbaV0gPSBuZXdFbnRpdGllc1tpICsgZGVsdGFdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV3RW50aXRpZXNbdG9JbmRleF0gPSB0YXJnZXQ7XG4gICAgICAgICAgICByZXR1cm4gWy4uLm5ld0VudGl0aWVzXTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2R1Y2U8VEVudGl0eT4oZW50aXRpZXM6IFRFbnRpdHlbXSwgb3B0aW9ucz86IFByb2R1Y2VyT3B0aW9uczxURW50aXR5Pikge1xuICAgIHJldHVybiBuZXcgUHJvZHVjZXI8VEVudGl0eT4oZW50aXRpZXMsIG9wdGlvbnMpO1xufVxuIl19
File without changes
File without changes
@@ -113,4 +113,4 @@ function produce(entities, options) {
113
113
  */
114
114
 
115
115
  export { Producer, produce };
116
- //# sourceMappingURL=tethys-cdk-immutable.js.map
116
+ //# sourceMappingURL=tethys-cdk-immutable.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tethys-cdk-immutable.mjs","sources":["../../../cdk/immutable/immutable.ts","../../../cdk/immutable/tethys-cdk-immutable.ts"],"sourcesContent":["import { coerceArray } from '@angular/cdk/coercion';\nimport { isFunction, isUndefinedOrNull } from '@tethys/cdk/is';\n\nexport type Id = string | number;\n\nexport interface EntityAddOptions {\n prepend?: boolean;\n\n afterId?: Id;\n}\n\nexport interface EntityMoveOptions {\n afterId?: Id;\n\n toIndex?: number;\n}\n\ntype ExtractKeysOfValueType<T, K> = { [I in keyof T]: T[I] extends K ? I : never }[keyof T];\nexport interface ProducerOptions<TEntity> {\n idKey?: ExtractKeysOfValueType<TEntity, Id>;\n}\n\nexport class Producer<TEntity> {\n private idKey = '_id';\n\n private entities: TEntity[];\n\n constructor(entities: TEntity[], options?: ProducerOptions<TEntity>) {\n this.entities = entities || [];\n if (options && options.idKey) {\n this.idKey = options.idKey as string;\n }\n }\n\n /**\n * Add an entity or entities.\n *\n * @example\n * produce([users]).add(Entity);\n * produce([users]).add([Entity, Entity]);\n * produce([users]).add(Entity, { prepend: true });\n * produce([users]).add(Entity, { afterId: '' });\n */\n add(entity: TEntity | TEntity[], addOptions?: EntityAddOptions): TEntity[] {\n const addEntities = coerceArray(entity);\n if (addEntities.length === 0) {\n return this.entities;\n }\n if (addOptions && (addOptions.afterId || addOptions.prepend)) {\n if (addOptions.afterId) {\n const entities = [...this.entities];\n const index =\n this.entities.findIndex(item => {\n return item[this.idKey] === addOptions.afterId;\n }) + 1;\n entities.splice(index, 0, ...addEntities);\n this.entities = [...entities];\n } else if (addOptions.prepend) {\n this.entities = [...addEntities, ...this.entities];\n }\n } else {\n this.entities = [...this.entities, ...addEntities];\n }\n return this.entities;\n }\n\n /**\n *\n * Update an entity or entities.\n *\n * @example\n * produce([users]).update(3, {\n * name: 'New Name'\n * });\n *\n * produce([users]).update(3, entity => {\n * return {\n * ...entity,\n * name: 'New Name'\n * }\n * });\n *\n * produce([users]).update([1,2,3], {\n * name: 'New Name'\n * });\n */\n update(id: Id | Id[] | null, newStateFn: (entity: Readonly<TEntity>) => Partial<TEntity>): TEntity[];\n update(id: Id | Id[] | null, newState?: Partial<TEntity>): TEntity[];\n update(\n idsOrFn: Id | Id[] | null | Partial<TEntity> | ((entity: Readonly<TEntity>) => boolean),\n newStateOrFn?: ((entity: Readonly<TEntity>) => Partial<TEntity>) | Partial<TEntity>\n ): TEntity[] {\n const ids = coerceArray(idsOrFn);\n\n for (let i = 0; i < this.entities.length; i++) {\n const oldEntity = this.entities[i];\n if (ids.indexOf(oldEntity[this.idKey]) >= 0) {\n const newState = isFunction(newStateOrFn) ? newStateOrFn(oldEntity) : newStateOrFn;\n this.entities[i] = { ...oldEntity, ...newState };\n }\n }\n return [...this.entities];\n }\n\n /**\n *\n * Remove one or more entities:\n *\n * @example\n * produce([users]).remove(5);\n * produce([users]).remove([1,2,3]);\n * produce([users]).remove(entity => entity.id === 1);\n */\n remove(id: Id | Id[]): TEntity[];\n remove(predicate: (entity: Readonly<TEntity>) => boolean): TEntity[];\n remove(idsOrFn?: Id | Id[] | ((entity: Readonly<TEntity>) => boolean)): TEntity[] {\n if (isFunction(idsOrFn)) {\n this.entities = this.entities.filter(entity => {\n return !(idsOrFn as any)(entity);\n });\n } else {\n const ids = coerceArray(idsOrFn);\n this.entities = this.entities.filter(entity => {\n return ids.indexOf(entity[this.idKey]) === -1;\n });\n }\n return this.entities;\n }\n\n /**\n *\n * Move one or more entities:\n *\n * @example\n * produce([users]).move(5, {afterId: 2});\n * produce([users]).move(5, {toIndex: 0});\n */\n move(id: Id, moveOptions?: EntityMoveOptions): TEntity[] {\n const fromIndex = this.entities.findIndex(item => item[this.idKey] === id);\n let toIndex = 0;\n const newEntities = [...this.entities];\n\n if (!id || fromIndex < 0) {\n return [...this.entities];\n }\n\n if (moveOptions) {\n if (!isUndefinedOrNull(moveOptions.afterId)) {\n toIndex = this.entities.findIndex(item => item[this.idKey] === moveOptions.afterId);\n } else if (moveOptions.toIndex) {\n toIndex = moveOptions.toIndex;\n }\n }\n toIndex = Math.max(0, Math.min(this.entities.length - 1, toIndex));\n if (toIndex === fromIndex) {\n return [...this.entities];\n } else {\n const target = this.entities[fromIndex];\n const delta = toIndex < fromIndex ? -1 : 1;\n\n for (let i = fromIndex; i !== toIndex; i += delta) {\n newEntities[i] = newEntities[i + delta];\n }\n newEntities[toIndex] = target;\n return [...newEntities];\n }\n }\n}\n\nexport function produce<TEntity>(entities: TEntity[], options?: ProducerOptions<TEntity>) {\n return new Producer<TEntity>(entities, options);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -101,4 +101,4 @@ function isElementRef(value) {
101
101
  */
102
102
 
103
103
  export { isArray, isBoolean, isDate, isElementRef, isEmpty, isFunction, isHTMLElement, isNull, isNumber, isObject, isString, isTemplateRef, isUndefined, isUndefinedOrNull };
104
- //# sourceMappingURL=tethys-cdk-is.js.map
104
+ //# sourceMappingURL=tethys-cdk-is.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tethys-cdk-is.mjs","sources":["../../../cdk/is/utils.ts","../../../cdk/is/tethys-cdk-is.ts"],"sourcesContent":["import { ElementRef, TemplateRef } from '@angular/core';\n\nexport function isUndefined(value: any): value is undefined {\n return value === undefined;\n}\n\nexport function isNull(value: any): value is null {\n return value === null;\n}\n\nexport function isUndefinedOrNull(value: any): value is undefined | null {\n return isUndefined(value) || isNull(value);\n}\n\nexport function isArray<T = any>(value: any): value is Array<T> {\n return value && baseGetTag(value) === '[object Array]';\n}\n\nexport function isEmpty(value?: any): boolean {\n if (isUndefinedOrNull(value)) {\n return true;\n }\n if (isArray(value)) {\n return !value.length;\n }\n const tag = baseGetTag(value);\n if (tag == '[object Map]' || tag == '[object Set]') {\n return !value.size;\n }\n for (const key in value) {\n if (Object.hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport function isString(value?: any): value is string {\n return typeof value == 'string' || (!isArray(value) && isObjectLike(value) && baseGetTag(value) === '[object String]');\n}\n\nfunction isObjectLike(value: any): value is object {\n return value !== null && typeof value === 'object';\n}\n\nfunction baseGetTag(value: any) {\n const objectProto = Object.prototype;\n const hasOwnProperty = objectProto.hasOwnProperty;\n const toString = objectProto.toString;\n const symToStringTag = typeof Symbol !== 'undefined' ? Symbol.toStringTag : undefined;\n\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n if (!(symToStringTag && symToStringTag in Object(value))) {\n return toString.call(value);\n }\n const isOwn = hasOwnProperty.call(value, symToStringTag);\n const tag = value[symToStringTag];\n let unmasked = false;\n try {\n value[symToStringTag] = undefined;\n unmasked = true;\n } catch (e) {}\n\n const result = toString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === 'number' || (isObjectLike(value) && baseGetTag(value) === '[object Number]');\n}\n\nexport function isObject(value: any): value is object {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n const type = typeof value;\n return !!value && (type === 'object' || type === 'function');\n}\n\nexport function isFunction(value: any): value is Function {\n const type = typeof value;\n return !!value && type === 'function';\n}\n\nexport function isDate(value: any): value is Date {\n const type = typeof value;\n return !!value && type === 'object' && !!value.getTime;\n}\n\nexport function isBoolean(value: any): value is boolean {\n return value === true || value === false || (isObjectLike(value) && baseGetTag(value) === '[object Boolean]');\n}\n\nexport function isTemplateRef<C = any>(value: any): value is TemplateRef<C> {\n return value instanceof TemplateRef;\n}\n\nexport function isHTMLElement(value: any): value is HTMLElement {\n return value instanceof HTMLElement;\n}\n\nexport function isElementRef(value: any): value is ElementRef {\n return value instanceof ElementRef;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -40,4 +40,4 @@ const log = (...args) => {
40
40
  */
41
41
 
42
42
  export { PREFIX, createWarnDeprecation, log, warn, warnDeprecation };
43
- //# sourceMappingURL=tethys-cdk-logger.js.map
43
+ //# sourceMappingURL=tethys-cdk-logger.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tethys-cdk-logger.mjs","sources":["../../../cdk/logger/logger.ts","../../../cdk/logger/tethys-cdk-logger.ts"],"sourcesContent":["import { isDevMode } from '@angular/core';\n\nconst record: Record<string, boolean> = {};\n\nexport const PREFIX = '[TETHYS-CDK]:';\n\nfunction notRecorded(...args: any[]): boolean {\n const asRecord = args.reduce((acc, c) => acc + c.toString(), '');\n\n if (record[asRecord]) {\n return false;\n } else {\n record[asRecord] = true;\n return true;\n }\n}\n\nfunction consoleCommonBehavior(consoleFunc: (...args: any) => void, ...args: any[]): void {\n if (isDevMode() && notRecorded(...args)) {\n consoleFunc(...args);\n }\n}\n\n// Warning should only be printed in dev mode and only once.\nexport const warn = (...args: any[]) => consoleCommonBehavior((...arg: any[]) => console.warn(PREFIX, ...arg), ...args);\n\nexport function createWarnDeprecation(prefix: string): (...args: any[]) => void {\n return (...args: any[]) => {\n const stack = new Error().stack;\n return consoleCommonBehavior((...arg: any[]) => {\n console.warn(prefix, 'deprecated:', ...arg, stack);\n }, ...args);\n };\n}\n\nexport const warnDeprecation = createWarnDeprecation(PREFIX);\n\n// Log should only be printed in dev mode.\nexport const log = (...args: any[]) => {\n if (isDevMode()) {\n console.log(PREFIX, ...args);\n }\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAEA,MAAM,MAAM,GAA4B,EAAE,CAAC;AAEpC,MAAM,MAAM,GAAG,gBAAgB;AAEtC,SAAS,WAAW,CAAC,GAAG,IAAW,EAAA;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAEjE,IAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;AAClB,QAAA,OAAO,KAAK,CAAC;AAChB,KAAA;AAAM,SAAA;AACH,QAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AACxB,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,WAAmC,EAAE,GAAG,IAAW,EAAA;IAC9E,IAAI,SAAS,EAAE,IAAI,WAAW,CAAC,GAAG,IAAI,CAAC,EAAE;AACrC,QAAA,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,KAAA;AACL,CAAC;AAED;AACO,MAAM,IAAI,GAAG,CAAC,GAAG,IAAW,KAAK,qBAAqB,CAAC,CAAC,GAAG,GAAU,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE;AAElH,SAAU,qBAAqB,CAAC,MAAc,EAAA;AAChD,IAAA,OAAO,CAAC,GAAG,IAAW,KAAI;AACtB,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;AAChC,QAAA,OAAO,qBAAqB,CAAC,CAAC,GAAG,GAAU,KAAI;AAC3C,YAAA,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;AACvD,SAAC,EAAE,GAAG,IAAI,CAAC,CAAC;AAChB,KAAC,CAAC;AACN,CAAC;MAEY,eAAe,GAAG,qBAAqB,CAAC,MAAM,EAAE;AAE7D;MACa,GAAG,GAAG,CAAC,GAAG,IAAW,KAAI;IAClC,IAAI,SAAS,EAAE,EAAE;QACb,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;AAChC,KAAA;AACL;;AC1CA;;AAEG;;;;"}
@@ -9,4 +9,4 @@ export * from '@tethys/cdk/immutable';
9
9
  /**
10
10
  * Generated bundle index. Do not edit.
11
11
  */
12
- //# sourceMappingURL=tethys-cdk.js.map
12
+ //# sourceMappingURL=tethys-cdk.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tethys-cdk.mjs","sources":["../../../cdk/public-api.ts","../../../cdk/tethys-cdk.ts"],"sourcesContent":["/*\n * Public API Surface of cdk\n */\n\nexport * from '@tethys/cdk/is';\nexport * from '@tethys/cdk/logger';\nexport * from '@tethys/cdk/immutable';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAAA;;AAEG;;ACFH;;AAEG"}
@@ -0,0 +1,116 @@
1
+ import { coerceArray } from '@angular/cdk/coercion';
2
+ import { isFunction, isUndefinedOrNull } from '@tethys/cdk/is';
3
+
4
+ class Producer {
5
+ constructor(entities, options) {
6
+ this.idKey = '_id';
7
+ this.entities = entities || [];
8
+ if (options && options.idKey) {
9
+ this.idKey = options.idKey;
10
+ }
11
+ }
12
+ /**
13
+ * Add an entity or entities.
14
+ *
15
+ * @example
16
+ * produce([users]).add(Entity);
17
+ * produce([users]).add([Entity, Entity]);
18
+ * produce([users]).add(Entity, { prepend: true });
19
+ * produce([users]).add(Entity, { afterId: '' });
20
+ */
21
+ add(entity, addOptions) {
22
+ const addEntities = coerceArray(entity);
23
+ if (addEntities.length === 0) {
24
+ return this.entities;
25
+ }
26
+ if (addOptions && (addOptions.afterId || addOptions.prepend)) {
27
+ if (addOptions.afterId) {
28
+ const entities = [...this.entities];
29
+ const index = this.entities.findIndex(item => {
30
+ return item[this.idKey] === addOptions.afterId;
31
+ }) + 1;
32
+ entities.splice(index, 0, ...addEntities);
33
+ this.entities = [...entities];
34
+ }
35
+ else if (addOptions.prepend) {
36
+ this.entities = [...addEntities, ...this.entities];
37
+ }
38
+ }
39
+ else {
40
+ this.entities = [...this.entities, ...addEntities];
41
+ }
42
+ return this.entities;
43
+ }
44
+ update(idsOrFn, newStateOrFn) {
45
+ const ids = coerceArray(idsOrFn);
46
+ for (let i = 0; i < this.entities.length; i++) {
47
+ const oldEntity = this.entities[i];
48
+ if (ids.indexOf(oldEntity[this.idKey]) >= 0) {
49
+ const newState = isFunction(newStateOrFn) ? newStateOrFn(oldEntity) : newStateOrFn;
50
+ this.entities[i] = { ...oldEntity, ...newState };
51
+ }
52
+ }
53
+ return [...this.entities];
54
+ }
55
+ remove(idsOrFn) {
56
+ if (isFunction(idsOrFn)) {
57
+ this.entities = this.entities.filter(entity => {
58
+ return !idsOrFn(entity);
59
+ });
60
+ }
61
+ else {
62
+ const ids = coerceArray(idsOrFn);
63
+ this.entities = this.entities.filter(entity => {
64
+ return ids.indexOf(entity[this.idKey]) === -1;
65
+ });
66
+ }
67
+ return this.entities;
68
+ }
69
+ /**
70
+ *
71
+ * Move one or more entities:
72
+ *
73
+ * @example
74
+ * produce([users]).move(5, {afterId: 2});
75
+ * produce([users]).move(5, {toIndex: 0});
76
+ */
77
+ move(id, moveOptions) {
78
+ const fromIndex = this.entities.findIndex(item => item[this.idKey] === id);
79
+ let toIndex = 0;
80
+ const newEntities = [...this.entities];
81
+ if (!id || fromIndex < 0) {
82
+ return [...this.entities];
83
+ }
84
+ if (moveOptions) {
85
+ if (!isUndefinedOrNull(moveOptions.afterId)) {
86
+ toIndex = this.entities.findIndex(item => item[this.idKey] === moveOptions.afterId);
87
+ }
88
+ else if (moveOptions.toIndex) {
89
+ toIndex = moveOptions.toIndex;
90
+ }
91
+ }
92
+ toIndex = Math.max(0, Math.min(this.entities.length - 1, toIndex));
93
+ if (toIndex === fromIndex) {
94
+ return [...this.entities];
95
+ }
96
+ else {
97
+ const target = this.entities[fromIndex];
98
+ const delta = toIndex < fromIndex ? -1 : 1;
99
+ for (let i = fromIndex; i !== toIndex; i += delta) {
100
+ newEntities[i] = newEntities[i + delta];
101
+ }
102
+ newEntities[toIndex] = target;
103
+ return [...newEntities];
104
+ }
105
+ }
106
+ }
107
+ function produce(entities, options) {
108
+ return new Producer(entities, options);
109
+ }
110
+
111
+ /**
112
+ * Generated bundle index. Do not edit.
113
+ */
114
+
115
+ export { Producer, produce };
116
+ //# sourceMappingURL=tethys-cdk-immutable.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tethys-cdk-immutable.mjs","sources":["../../../cdk/immutable/immutable.ts","../../../cdk/immutable/tethys-cdk-immutable.ts"],"sourcesContent":["import { coerceArray } from '@angular/cdk/coercion';\nimport { isFunction, isUndefinedOrNull } from '@tethys/cdk/is';\n\nexport type Id = string | number;\n\nexport interface EntityAddOptions {\n prepend?: boolean;\n\n afterId?: Id;\n}\n\nexport interface EntityMoveOptions {\n afterId?: Id;\n\n toIndex?: number;\n}\n\ntype ExtractKeysOfValueType<T, K> = { [I in keyof T]: T[I] extends K ? I : never }[keyof T];\nexport interface ProducerOptions<TEntity> {\n idKey?: ExtractKeysOfValueType<TEntity, Id>;\n}\n\nexport class Producer<TEntity> {\n private idKey = '_id';\n\n private entities: TEntity[];\n\n constructor(entities: TEntity[], options?: ProducerOptions<TEntity>) {\n this.entities = entities || [];\n if (options && options.idKey) {\n this.idKey = options.idKey as string;\n }\n }\n\n /**\n * Add an entity or entities.\n *\n * @example\n * produce([users]).add(Entity);\n * produce([users]).add([Entity, Entity]);\n * produce([users]).add(Entity, { prepend: true });\n * produce([users]).add(Entity, { afterId: '' });\n */\n add(entity: TEntity | TEntity[], addOptions?: EntityAddOptions): TEntity[] {\n const addEntities = coerceArray(entity);\n if (addEntities.length === 0) {\n return this.entities;\n }\n if (addOptions && (addOptions.afterId || addOptions.prepend)) {\n if (addOptions.afterId) {\n const entities = [...this.entities];\n const index =\n this.entities.findIndex(item => {\n return item[this.idKey] === addOptions.afterId;\n }) + 1;\n entities.splice(index, 0, ...addEntities);\n this.entities = [...entities];\n } else if (addOptions.prepend) {\n this.entities = [...addEntities, ...this.entities];\n }\n } else {\n this.entities = [...this.entities, ...addEntities];\n }\n return this.entities;\n }\n\n /**\n *\n * Update an entity or entities.\n *\n * @example\n * produce([users]).update(3, {\n * name: 'New Name'\n * });\n *\n * produce([users]).update(3, entity => {\n * return {\n * ...entity,\n * name: 'New Name'\n * }\n * });\n *\n * produce([users]).update([1,2,3], {\n * name: 'New Name'\n * });\n */\n update(id: Id | Id[] | null, newStateFn: (entity: Readonly<TEntity>) => Partial<TEntity>): TEntity[];\n update(id: Id | Id[] | null, newState?: Partial<TEntity>): TEntity[];\n update(\n idsOrFn: Id | Id[] | null | Partial<TEntity> | ((entity: Readonly<TEntity>) => boolean),\n newStateOrFn?: ((entity: Readonly<TEntity>) => Partial<TEntity>) | Partial<TEntity>\n ): TEntity[] {\n const ids = coerceArray(idsOrFn);\n\n for (let i = 0; i < this.entities.length; i++) {\n const oldEntity = this.entities[i];\n if (ids.indexOf(oldEntity[this.idKey]) >= 0) {\n const newState = isFunction(newStateOrFn) ? newStateOrFn(oldEntity) : newStateOrFn;\n this.entities[i] = { ...oldEntity, ...newState };\n }\n }\n return [...this.entities];\n }\n\n /**\n *\n * Remove one or more entities:\n *\n * @example\n * produce([users]).remove(5);\n * produce([users]).remove([1,2,3]);\n * produce([users]).remove(entity => entity.id === 1);\n */\n remove(id: Id | Id[]): TEntity[];\n remove(predicate: (entity: Readonly<TEntity>) => boolean): TEntity[];\n remove(idsOrFn?: Id | Id[] | ((entity: Readonly<TEntity>) => boolean)): TEntity[] {\n if (isFunction(idsOrFn)) {\n this.entities = this.entities.filter(entity => {\n return !(idsOrFn as any)(entity);\n });\n } else {\n const ids = coerceArray(idsOrFn);\n this.entities = this.entities.filter(entity => {\n return ids.indexOf(entity[this.idKey]) === -1;\n });\n }\n return this.entities;\n }\n\n /**\n *\n * Move one or more entities:\n *\n * @example\n * produce([users]).move(5, {afterId: 2});\n * produce([users]).move(5, {toIndex: 0});\n */\n move(id: Id, moveOptions?: EntityMoveOptions): TEntity[] {\n const fromIndex = this.entities.findIndex(item => item[this.idKey] === id);\n let toIndex = 0;\n const newEntities = [...this.entities];\n\n if (!id || fromIndex < 0) {\n return [...this.entities];\n }\n\n if (moveOptions) {\n if (!isUndefinedOrNull(moveOptions.afterId)) {\n toIndex = this.entities.findIndex(item => item[this.idKey] === moveOptions.afterId);\n } else if (moveOptions.toIndex) {\n toIndex = moveOptions.toIndex;\n }\n }\n toIndex = Math.max(0, Math.min(this.entities.length - 1, toIndex));\n if (toIndex === fromIndex) {\n return [...this.entities];\n } else {\n const target = this.entities[fromIndex];\n const delta = toIndex < fromIndex ? -1 : 1;\n\n for (let i = fromIndex; i !== toIndex; i += delta) {\n newEntities[i] = newEntities[i + delta];\n }\n newEntities[toIndex] = target;\n return [...newEntities];\n }\n }\n}\n\nexport function produce<TEntity>(entities: TEntity[], options?: ProducerOptions<TEntity>) {\n return new Producer<TEntity>(entities, options);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import { TemplateRef, ElementRef } from '@angular/core';
2
+
3
+ function isUndefined(value) {
4
+ return value === undefined;
5
+ }
6
+ function isNull(value) {
7
+ return value === null;
8
+ }
9
+ function isUndefinedOrNull(value) {
10
+ return isUndefined(value) || isNull(value);
11
+ }
12
+ function isArray(value) {
13
+ return value && baseGetTag(value) === '[object Array]';
14
+ }
15
+ function isEmpty(value) {
16
+ if (isUndefinedOrNull(value)) {
17
+ return true;
18
+ }
19
+ if (isArray(value)) {
20
+ return !value.length;
21
+ }
22
+ const tag = baseGetTag(value);
23
+ if (tag == '[object Map]' || tag == '[object Set]') {
24
+ return !value.size;
25
+ }
26
+ for (const key in value) {
27
+ if (Object.hasOwnProperty.call(value, key)) {
28
+ return false;
29
+ }
30
+ }
31
+ return true;
32
+ }
33
+ function isString(value) {
34
+ return typeof value == 'string' || (!isArray(value) && isObjectLike(value) && baseGetTag(value) === '[object String]');
35
+ }
36
+ function isObjectLike(value) {
37
+ return value !== null && typeof value === 'object';
38
+ }
39
+ function baseGetTag(value) {
40
+ const objectProto = Object.prototype;
41
+ const hasOwnProperty = objectProto.hasOwnProperty;
42
+ const toString = objectProto.toString;
43
+ const symToStringTag = typeof Symbol !== 'undefined' ? Symbol.toStringTag : undefined;
44
+ if (value == null) {
45
+ return value === undefined ? '[object Undefined]' : '[object Null]';
46
+ }
47
+ if (!(symToStringTag && symToStringTag in Object(value))) {
48
+ return toString.call(value);
49
+ }
50
+ const isOwn = hasOwnProperty.call(value, symToStringTag);
51
+ const tag = value[symToStringTag];
52
+ let unmasked = false;
53
+ try {
54
+ value[symToStringTag] = undefined;
55
+ unmasked = true;
56
+ }
57
+ catch (e) { }
58
+ const result = toString.call(value);
59
+ if (unmasked) {
60
+ if (isOwn) {
61
+ value[symToStringTag] = tag;
62
+ }
63
+ else {
64
+ delete value[symToStringTag];
65
+ }
66
+ }
67
+ return result;
68
+ }
69
+ function isNumber(value) {
70
+ return typeof value === 'number' || (isObjectLike(value) && baseGetTag(value) === '[object Number]');
71
+ }
72
+ function isObject(value) {
73
+ // Avoid a V8 JIT bug in Chrome 19-20.
74
+ // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
75
+ const type = typeof value;
76
+ return !!value && (type === 'object' || type === 'function');
77
+ }
78
+ function isFunction(value) {
79
+ const type = typeof value;
80
+ return !!value && type === 'function';
81
+ }
82
+ function isDate(value) {
83
+ const type = typeof value;
84
+ return !!value && type === 'object' && !!value.getTime;
85
+ }
86
+ function isBoolean(value) {
87
+ return value === true || value === false || (isObjectLike(value) && baseGetTag(value) === '[object Boolean]');
88
+ }
89
+ function isTemplateRef(value) {
90
+ return value instanceof TemplateRef;
91
+ }
92
+ function isHTMLElement(value) {
93
+ return value instanceof HTMLElement;
94
+ }
95
+ function isElementRef(value) {
96
+ return value instanceof ElementRef;
97
+ }
98
+
99
+ /**
100
+ * Generated bundle index. Do not edit.
101
+ */
102
+
103
+ export { isArray, isBoolean, isDate, isElementRef, isEmpty, isFunction, isHTMLElement, isNull, isNumber, isObject, isString, isTemplateRef, isUndefined, isUndefinedOrNull };
104
+ //# sourceMappingURL=tethys-cdk-is.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tethys-cdk-is.mjs","sources":["../../../cdk/is/utils.ts","../../../cdk/is/tethys-cdk-is.ts"],"sourcesContent":["import { ElementRef, TemplateRef } from '@angular/core';\n\nexport function isUndefined(value: any): value is undefined {\n return value === undefined;\n}\n\nexport function isNull(value: any): value is null {\n return value === null;\n}\n\nexport function isUndefinedOrNull(value: any): value is undefined | null {\n return isUndefined(value) || isNull(value);\n}\n\nexport function isArray<T = any>(value: any): value is Array<T> {\n return value && baseGetTag(value) === '[object Array]';\n}\n\nexport function isEmpty(value?: any): boolean {\n if (isUndefinedOrNull(value)) {\n return true;\n }\n if (isArray(value)) {\n return !value.length;\n }\n const tag = baseGetTag(value);\n if (tag == '[object Map]' || tag == '[object Set]') {\n return !value.size;\n }\n for (const key in value) {\n if (Object.hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport function isString(value?: any): value is string {\n return typeof value == 'string' || (!isArray(value) && isObjectLike(value) && baseGetTag(value) === '[object String]');\n}\n\nfunction isObjectLike(value: any): value is object {\n return value !== null && typeof value === 'object';\n}\n\nfunction baseGetTag(value: any) {\n const objectProto = Object.prototype;\n const hasOwnProperty = objectProto.hasOwnProperty;\n const toString = objectProto.toString;\n const symToStringTag = typeof Symbol !== 'undefined' ? Symbol.toStringTag : undefined;\n\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n if (!(symToStringTag && symToStringTag in Object(value))) {\n return toString.call(value);\n }\n const isOwn = hasOwnProperty.call(value, symToStringTag);\n const tag = value[symToStringTag];\n let unmasked = false;\n try {\n value[symToStringTag] = undefined;\n unmasked = true;\n } catch (e) {}\n\n const result = toString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === 'number' || (isObjectLike(value) && baseGetTag(value) === '[object Number]');\n}\n\nexport function isObject(value: any): value is object {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n const type = typeof value;\n return !!value && (type === 'object' || type === 'function');\n}\n\nexport function isFunction(value: any): value is Function {\n const type = typeof value;\n return !!value && type === 'function';\n}\n\nexport function isDate(value: any): value is Date {\n const type = typeof value;\n return !!value && type === 'object' && !!value.getTime;\n}\n\nexport function isBoolean(value: any): value is boolean {\n return value === true || value === false || (isObjectLike(value) && baseGetTag(value) === '[object Boolean]');\n}\n\nexport function isTemplateRef<C = any>(value: any): value is TemplateRef<C> {\n return value instanceof TemplateRef;\n}\n\nexport function isHTMLElement(value: any): value is HTMLElement {\n return value instanceof HTMLElement;\n}\n\nexport function isElementRef(value: any): value is ElementRef {\n return value instanceof ElementRef;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { isDevMode } from '@angular/core';
2
+
3
+ const record = {};
4
+ const PREFIX = '[TETHYS-CDK]:';
5
+ function notRecorded(...args) {
6
+ const asRecord = args.reduce((acc, c) => acc + c.toString(), '');
7
+ if (record[asRecord]) {
8
+ return false;
9
+ }
10
+ else {
11
+ record[asRecord] = true;
12
+ return true;
13
+ }
14
+ }
15
+ function consoleCommonBehavior(consoleFunc, ...args) {
16
+ if (isDevMode() && notRecorded(...args)) {
17
+ consoleFunc(...args);
18
+ }
19
+ }
20
+ // Warning should only be printed in dev mode and only once.
21
+ const warn = (...args) => consoleCommonBehavior((...arg) => console.warn(PREFIX, ...arg), ...args);
22
+ function createWarnDeprecation(prefix) {
23
+ return (...args) => {
24
+ const stack = new Error().stack;
25
+ return consoleCommonBehavior((...arg) => {
26
+ console.warn(prefix, 'deprecated:', ...arg, stack);
27
+ }, ...args);
28
+ };
29
+ }
30
+ const warnDeprecation = createWarnDeprecation(PREFIX);
31
+ // Log should only be printed in dev mode.
32
+ const log = (...args) => {
33
+ if (isDevMode()) {
34
+ console.log(PREFIX, ...args);
35
+ }
36
+ };
37
+
38
+ /**
39
+ * Generated bundle index. Do not edit.
40
+ */
41
+
42
+ export { PREFIX, createWarnDeprecation, log, warn, warnDeprecation };
43
+ //# sourceMappingURL=tethys-cdk-logger.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tethys-cdk-logger.mjs","sources":["../../../cdk/logger/logger.ts","../../../cdk/logger/tethys-cdk-logger.ts"],"sourcesContent":["import { isDevMode } from '@angular/core';\n\nconst record: Record<string, boolean> = {};\n\nexport const PREFIX = '[TETHYS-CDK]:';\n\nfunction notRecorded(...args: any[]): boolean {\n const asRecord = args.reduce((acc, c) => acc + c.toString(), '');\n\n if (record[asRecord]) {\n return false;\n } else {\n record[asRecord] = true;\n return true;\n }\n}\n\nfunction consoleCommonBehavior(consoleFunc: (...args: any) => void, ...args: any[]): void {\n if (isDevMode() && notRecorded(...args)) {\n consoleFunc(...args);\n }\n}\n\n// Warning should only be printed in dev mode and only once.\nexport const warn = (...args: any[]) => consoleCommonBehavior((...arg: any[]) => console.warn(PREFIX, ...arg), ...args);\n\nexport function createWarnDeprecation(prefix: string): (...args: any[]) => void {\n return (...args: any[]) => {\n const stack = new Error().stack;\n return consoleCommonBehavior((...arg: any[]) => {\n console.warn(prefix, 'deprecated:', ...arg, stack);\n }, ...args);\n };\n}\n\nexport const warnDeprecation = createWarnDeprecation(PREFIX);\n\n// Log should only be printed in dev mode.\nexport const log = (...args: any[]) => {\n if (isDevMode()) {\n console.log(PREFIX, ...args);\n }\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAEA,MAAM,MAAM,GAA4B,EAAE,CAAC;AAEpC,MAAM,MAAM,GAAG,gBAAgB;AAEtC,SAAS,WAAW,CAAC,GAAG,IAAW,EAAA;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAEjE,IAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;AAClB,QAAA,OAAO,KAAK,CAAC;AAChB,KAAA;AAAM,SAAA;AACH,QAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AACxB,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,WAAmC,EAAE,GAAG,IAAW,EAAA;IAC9E,IAAI,SAAS,EAAE,IAAI,WAAW,CAAC,GAAG,IAAI,CAAC,EAAE;AACrC,QAAA,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,KAAA;AACL,CAAC;AAED;AACO,MAAM,IAAI,GAAG,CAAC,GAAG,IAAW,KAAK,qBAAqB,CAAC,CAAC,GAAG,GAAU,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE;AAElH,SAAU,qBAAqB,CAAC,MAAc,EAAA;AAChD,IAAA,OAAO,CAAC,GAAG,IAAW,KAAI;AACtB,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;AAChC,QAAA,OAAO,qBAAqB,CAAC,CAAC,GAAG,GAAU,KAAI;AAC3C,YAAA,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;AACvD,SAAC,EAAE,GAAG,IAAI,CAAC,CAAC;AAChB,KAAC,CAAC;AACN,CAAC;MAEY,eAAe,GAAG,qBAAqB,CAAC,MAAM,EAAE;AAE7D;MACa,GAAG,GAAG,CAAC,GAAG,IAAW,KAAI;IAClC,IAAI,SAAS,EAAE,EAAE;QACb,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;AAChC,KAAA;AACL;;AC1CA;;AAEG;;;;"}
@@ -0,0 +1,12 @@
1
+ export * from '@tethys/cdk/is';
2
+ export * from '@tethys/cdk/logger';
3
+ export * from '@tethys/cdk/immutable';
4
+
5
+ /*
6
+ * Public API Surface of cdk
7
+ */
8
+
9
+ /**
10
+ * Generated bundle index. Do not edit.
11
+ */
12
+ //# sourceMappingURL=tethys-cdk.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tethys-cdk.mjs","sources":["../../../cdk/public-api.ts","../../../cdk/tethys-cdk.ts"],"sourcesContent":["/*\n * Public API Surface of cdk\n */\n\nexport * from '@tethys/cdk/is';\nexport * from '@tethys/cdk/logger';\nexport * from '@tethys/cdk/immutable';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAAA;;AAEG;;ACFH;;AAEG"}
@@ -1,9 +1,9 @@
1
1
  {
2
- "main": "../bundles/tethys-cdk-immutable.umd.js",
3
- "module": "../fesm2015/tethys-cdk-immutable.js",
4
- "es2015": "../fesm2015/tethys-cdk-immutable.js",
5
- "esm2015": "../esm2015/immutable/tethys-cdk-immutable.js",
6
- "fesm2015": "../fesm2015/tethys-cdk-immutable.js",
2
+ "module": "../fesm2015/tethys-cdk-immutable.mjs",
3
+ "es2020": "../fesm2020/tethys-cdk-immutable.mjs",
4
+ "esm2020": "../esm2020/immutable/tethys-cdk-immutable.mjs",
5
+ "fesm2020": "../fesm2020/tethys-cdk-immutable.mjs",
6
+ "fesm2015": "../fesm2015/tethys-cdk-immutable.mjs",
7
7
  "typings": "tethys-cdk-immutable.d.ts",
8
8
  "sideEffects": false,
9
9
  "name": "@tethys/cdk/immutable"
package/is/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
- "main": "../bundles/tethys-cdk-is.umd.js",
3
- "module": "../fesm2015/tethys-cdk-is.js",
4
- "es2015": "../fesm2015/tethys-cdk-is.js",
5
- "esm2015": "../esm2015/is/tethys-cdk-is.js",
6
- "fesm2015": "../fesm2015/tethys-cdk-is.js",
2
+ "module": "../fesm2015/tethys-cdk-is.mjs",
3
+ "es2020": "../fesm2020/tethys-cdk-is.mjs",
4
+ "esm2020": "../esm2020/is/tethys-cdk-is.mjs",
5
+ "fesm2020": "../fesm2020/tethys-cdk-is.mjs",
6
+ "fesm2015": "../fesm2015/tethys-cdk-is.mjs",
7
7
  "typings": "tethys-cdk-is.d.ts",
8
8
  "sideEffects": false,
9
9
  "name": "@tethys/cdk/is"
@@ -1,9 +1,9 @@
1
1
  {
2
- "main": "../bundles/tethys-cdk-logger.umd.js",
3
- "module": "../fesm2015/tethys-cdk-logger.js",
4
- "es2015": "../fesm2015/tethys-cdk-logger.js",
5
- "esm2015": "../esm2015/logger/tethys-cdk-logger.js",
6
- "fesm2015": "../fesm2015/tethys-cdk-logger.js",
2
+ "module": "../fesm2015/tethys-cdk-logger.mjs",
3
+ "es2020": "../fesm2020/tethys-cdk-logger.mjs",
4
+ "esm2020": "../esm2020/logger/tethys-cdk-logger.mjs",
5
+ "fesm2020": "../fesm2020/tethys-cdk-logger.mjs",
6
+ "fesm2015": "../fesm2015/tethys-cdk-logger.mjs",
7
7
  "typings": "tethys-cdk-logger.d.ts",
8
8
  "sideEffects": false,
9
9
  "name": "@tethys/cdk/logger"