@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.
- package/esm2020/immutable/immutable.mjs +109 -0
- package/{esm2015/immutable/index.js → esm2020/immutable/index.mjs} +0 -0
- package/{esm2015/immutable/tethys-cdk-immutable.js → esm2020/immutable/tethys-cdk-immutable.mjs} +0 -0
- package/{esm2015/is/index.js → esm2020/is/index.mjs} +0 -0
- package/{esm2015/is/tethys-cdk-is.js → esm2020/is/tethys-cdk-is.mjs} +0 -0
- package/{esm2015/is/utils.js → esm2020/is/utils.mjs} +0 -0
- package/{esm2015/logger/index.js → esm2020/logger/index.mjs} +0 -0
- package/{esm2015/logger/logger.js → esm2020/logger/logger.mjs} +0 -0
- package/{esm2015/logger/tethys-cdk-logger.js → esm2020/logger/tethys-cdk-logger.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/{esm2015/tethys-cdk.js → esm2020/tethys-cdk.mjs} +0 -0
- package/fesm2015/{tethys-cdk-immutable.js → tethys-cdk-immutable.mjs} +1 -1
- package/fesm2015/tethys-cdk-immutable.mjs.map +1 -0
- package/fesm2015/{tethys-cdk-is.js → tethys-cdk-is.mjs} +1 -1
- package/fesm2015/tethys-cdk-is.mjs.map +1 -0
- package/fesm2015/{tethys-cdk-logger.js → tethys-cdk-logger.mjs} +1 -1
- package/fesm2015/tethys-cdk-logger.mjs.map +1 -0
- package/fesm2015/{tethys-cdk.js → tethys-cdk.mjs} +1 -1
- package/fesm2015/tethys-cdk.mjs.map +1 -0
- package/fesm2020/tethys-cdk-immutable.mjs +116 -0
- package/fesm2020/tethys-cdk-immutable.mjs.map +1 -0
- package/fesm2020/tethys-cdk-is.mjs +104 -0
- package/fesm2020/tethys-cdk-is.mjs.map +1 -0
- package/fesm2020/tethys-cdk-logger.mjs +43 -0
- package/fesm2020/tethys-cdk-logger.mjs.map +1 -0
- package/fesm2020/tethys-cdk.mjs +12 -0
- package/fesm2020/tethys-cdk.mjs.map +1 -0
- package/immutable/package.json +5 -5
- package/is/package.json +5 -5
- package/logger/package.json +5 -5
- package/package.json +43 -6
- package/bundles/tethys-cdk-immutable.umd.js +0 -446
- package/bundles/tethys-cdk-immutable.umd.js.map +0 -1
- package/bundles/tethys-cdk-is.umd.js +0 -125
- package/bundles/tethys-cdk-is.umd.js.map +0 -1
- package/bundles/tethys-cdk-logger.umd.js +0 -405
- package/bundles/tethys-cdk-logger.umd.js.map +0 -1
- package/bundles/tethys-cdk.umd.js +0 -43
- package/bundles/tethys-cdk.umd.js.map +0 -1
- package/esm2015/immutable/immutable.js +0 -109
- package/fesm2015/tethys-cdk-immutable.js.map +0 -1
- package/fesm2015/tethys-cdk-is.js.map +0 -1
- package/fesm2015/tethys-cdk-logger.js.map +0 -1
- 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1tdXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY2RrL2ltbXV0YWJsZS9pbW11dGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQXFCL0QsTUFBTSxPQUFPLFFBQVE7SUFLakIsWUFBWSxRQUFtQixFQUFFLE9BQWtDO1FBSjNELFVBQUssR0FBRyxLQUFLLENBQUM7UUFLbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQy9CLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBZSxDQUFDO1NBQ3hDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsR0FBRyxDQUFDLE1BQTJCLEVBQUUsVUFBNkI7UUFDMUQsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDMUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMxRCxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3BCLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3BDLE1BQU0sS0FBSyxHQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssVUFBVSxDQUFDLE9BQU8sQ0FBQztnQkFDbkQsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNYLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLFdBQVcsQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQzthQUNqQztpQkFBTSxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN0RDtTQUNKO2FBQU07WUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsV0FBVyxDQUFDLENBQUM7U0FDdEQ7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQXdCRCxNQUFNLENBQ0YsT0FBdUYsRUFDdkYsWUFBbUY7UUFFbkYsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMzQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25DLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN6QyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO2dCQUNuRixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLEVBQUUsR0FBRyxRQUFRLEVBQUUsQ0FBQzthQUNwRDtTQUNKO1FBQ0QsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFhRCxNQUFNLENBQUMsT0FBOEQ7UUFDakUsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDMUMsT0FBTyxDQUFFLE9BQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyQyxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDMUMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNsRCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsSUFBSSxDQUFDLEVBQU0sRUFBRSxXQUErQjtRQUN4QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDM0UsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdkMsSUFBSSxDQUFDLEVBQUUsSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM3QjtRQUVELElBQUksV0FBVyxFQUFFO1lBQ2IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDekMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDdkY7aUJBQU0sSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFO2dCQUM1QixPQUFPLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQzthQUNqQztTQUNKO1FBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDbkUsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFO1lBQ3ZCLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM3QjthQUFNO1lBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN4QyxNQUFNLEtBQUssR0FBRyxPQUFPLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTNDLEtBQUssSUFBSSxDQUFDLEdBQUcsU0FBUyxFQUFFLENBQUMsS0FBSyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRTtnQkFDL0MsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7YUFDM0M7WUFDRCxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO1NBQzNCO0lBQ0wsQ0FBQztDQUNKO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBVSxRQUFtQixFQUFFLE9BQWtDO0lBQ3BGLE9BQU8sSUFBSSxRQUFRLENBQVUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VBcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uLCBpc1VuZGVmaW5lZE9yTnVsbCB9IGZyb20gJ0B0ZXRoeXMvY2RrL2lzJztcblxuZXhwb3J0IHR5cGUgSWQgPSBzdHJpbmcgfCBudW1iZXI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5QWRkT3B0aW9ucyB7XG4gICAgcHJlcGVuZD86IGJvb2xlYW47XG5cbiAgICBhZnRlcklkPzogSWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5TW92ZU9wdGlvbnMge1xuICAgIGFmdGVySWQ/OiBJZDtcblxuICAgIHRvSW5kZXg/OiBudW1iZXI7XG59XG5cbnR5cGUgRXh0cmFjdEtleXNPZlZhbHVlVHlwZTxULCBLPiA9IHsgW0kgaW4ga2V5b2YgVF06IFRbSV0gZXh0ZW5kcyBLID8gSSA6IG5ldmVyIH1ba2V5b2YgVF07XG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y2VyT3B0aW9uczxURW50aXR5PiB7XG4gICAgaWRLZXk/OiBFeHRyYWN0S2V5c09mVmFsdWVUeXBlPFRFbnRpdHksIElkPjtcbn1cblxuZXhwb3J0IGNsYXNzIFByb2R1Y2VyPFRFbnRpdHk+IHtcbiAgICBwcml2YXRlIGlkS2V5ID0gJ19pZCc7XG5cbiAgICBwcml2YXRlIGVudGl0aWVzOiBURW50aXR5W107XG5cbiAgICBjb25zdHJ1Y3RvcihlbnRpdGllczogVEVudGl0eVtdLCBvcHRpb25zPzogUHJvZHVjZXJPcHRpb25zPFRFbnRpdHk+KSB7XG4gICAgICAgIHRoaXMuZW50aXRpZXMgPSBlbnRpdGllcyB8fCBbXTtcbiAgICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5pZEtleSkge1xuICAgICAgICAgICAgdGhpcy5pZEtleSA9IG9wdGlvbnMuaWRLZXkgYXMgc3RyaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIGFuIGVudGl0eSBvciBlbnRpdGllcy5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogcHJvZHVjZShbdXNlcnNdKS5hZGQoRW50aXR5KTtcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLmFkZChbRW50aXR5LCBFbnRpdHldKTtcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLmFkZChFbnRpdHksIHsgcHJlcGVuZDogdHJ1ZSB9KTtcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLmFkZChFbnRpdHksIHsgYWZ0ZXJJZDogJycgfSk7XG4gICAgICovXG4gICAgYWRkKGVudGl0eTogVEVudGl0eSB8IFRFbnRpdHlbXSwgYWRkT3B0aW9ucz86IEVudGl0eUFkZE9wdGlvbnMpOiBURW50aXR5W10ge1xuICAgICAgICBjb25zdCBhZGRFbnRpdGllcyA9IGNvZXJjZUFycmF5KGVudGl0eSk7XG4gICAgICAgIGlmIChhZGRFbnRpdGllcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVudGl0aWVzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhZGRPcHRpb25zICYmIChhZGRPcHRpb25zLmFmdGVySWQgfHwgYWRkT3B0aW9ucy5wcmVwZW5kKSkge1xuICAgICAgICAgICAgaWYgKGFkZE9wdGlvbnMuYWZ0ZXJJZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVudGl0aWVzID0gWy4uLnRoaXMuZW50aXRpZXNdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRpdGllcy5maW5kSW5kZXgoaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbVt0aGlzLmlkS2V5XSA9PT0gYWRkT3B0aW9ucy5hZnRlcklkO1xuICAgICAgICAgICAgICAgICAgICB9KSArIDE7XG4gICAgICAgICAgICAgICAgZW50aXRpZXMuc3BsaWNlKGluZGV4LCAwLCAuLi5hZGRFbnRpdGllcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbnRpdGllcyA9IFsuLi5lbnRpdGllc107XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFkZE9wdGlvbnMucHJlcGVuZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZW50aXRpZXMgPSBbLi4uYWRkRW50aXRpZXMsIC4uLnRoaXMuZW50aXRpZXNdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lbnRpdGllcyA9IFsuLi50aGlzLmVudGl0aWVzLCAuLi5hZGRFbnRpdGllc107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXRpZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBVcGRhdGUgYW4gZW50aXR5IG9yIGVudGl0aWVzLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLnVwZGF0ZSgzLCB7XG4gICAgICogICBuYW1lOiAnTmV3IE5hbWUnXG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLnVwZGF0ZSgzLCBlbnRpdHkgPT4ge1xuICAgICAqICAgIHJldHVybiB7XG4gICAgICogICAgICAuLi5lbnRpdHksXG4gICAgICogICAgICBuYW1lOiAnTmV3IE5hbWUnXG4gICAgICogICAgfVxuICAgICAqICB9KTtcbiAgICAgKlxuICAgICAqIHByb2R1Y2UoW3VzZXJzXSkudXBkYXRlKFsxLDIsM10sIHtcbiAgICAgKiAgIG5hbWU6ICdOZXcgTmFtZSdcbiAgICAgKiB9KTtcbiAgICAgKi9cbiAgICB1cGRhdGUoaWQ6IElkIHwgSWRbXSB8IG51bGwsIG5ld1N0YXRlRm46IChlbnRpdHk6IFJlYWRvbmx5PFRFbnRpdHk+KSA9PiBQYXJ0aWFsPFRFbnRpdHk+KTogVEVudGl0eVtdO1xuICAgIHVwZGF0ZShpZDogSWQgfCBJZFtdIHwgbnVsbCwgbmV3U3RhdGU/OiBQYXJ0aWFsPFRFbnRpdHk+KTogVEVudGl0eVtdO1xuICAgIHVwZGF0ZShcbiAgICAgICAgaWRzT3JGbjogSWQgfCBJZFtdIHwgbnVsbCB8IFBhcnRpYWw8VEVudGl0eT4gfCAoKGVudGl0eTogUmVhZG9ubHk8VEVudGl0eT4pID0+IGJvb2xlYW4pLFxuICAgICAgICBuZXdTdGF0ZU9yRm4/OiAoKGVudGl0eTogUmVhZG9ubHk8VEVudGl0eT4pID0+IFBhcnRpYWw8VEVudGl0eT4pIHwgUGFydGlhbDxURW50aXR5PlxuICAgICk6IFRFbnRpdHlbXSB7XG4gICAgICAgIGNvbnN0IGlkcyA9IGNvZXJjZUFycmF5KGlkc09yRm4pO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5lbnRpdGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgb2xkRW50aXR5ID0gdGhpcy5lbnRpdGllc1tpXTtcbiAgICAgICAgICAgIGlmIChpZHMuaW5kZXhPZihvbGRFbnRpdHlbdGhpcy5pZEtleV0pID49IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdTdGF0ZSA9IGlzRnVuY3Rpb24obmV3U3RhdGVPckZuKSA/IG5ld1N0YXRlT3JGbihvbGRFbnRpdHkpIDogbmV3U3RhdGVPckZuO1xuICAgICAgICAgICAgICAgIHRoaXMuZW50aXRpZXNbaV0gPSB7IC4uLm9sZEVudGl0eSwgLi4ubmV3U3RhdGUgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gWy4uLnRoaXMuZW50aXRpZXNdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogUmVtb3ZlIG9uZSBvciBtb3JlIGVudGl0aWVzOlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLnJlbW92ZSg1KTtcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLnJlbW92ZShbMSwyLDNdKTtcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLnJlbW92ZShlbnRpdHkgPT4gZW50aXR5LmlkID09PSAxKTtcbiAgICAgKi9cbiAgICByZW1vdmUoaWQ6IElkIHwgSWRbXSk6IFRFbnRpdHlbXTtcbiAgICByZW1vdmUocHJlZGljYXRlOiAoZW50aXR5OiBSZWFkb25seTxURW50aXR5PikgPT4gYm9vbGVhbik6IFRFbnRpdHlbXTtcbiAgICByZW1vdmUoaWRzT3JGbj86IElkIHwgSWRbXSB8ICgoZW50aXR5OiBSZWFkb25seTxURW50aXR5PikgPT4gYm9vbGVhbikpOiBURW50aXR5W10ge1xuICAgICAgICBpZiAoaXNGdW5jdGlvbihpZHNPckZuKSkge1xuICAgICAgICAgICAgdGhpcy5lbnRpdGllcyA9IHRoaXMuZW50aXRpZXMuZmlsdGVyKGVudGl0eSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEoaWRzT3JGbiBhcyBhbnkpKGVudGl0eSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGlkcyA9IGNvZXJjZUFycmF5KGlkc09yRm4pO1xuICAgICAgICAgICAgdGhpcy5lbnRpdGllcyA9IHRoaXMuZW50aXRpZXMuZmlsdGVyKGVudGl0eSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlkcy5pbmRleE9mKGVudGl0eVt0aGlzLmlkS2V5XSkgPT09IC0xO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXRpZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBNb3ZlIG9uZSBvciBtb3JlIGVudGl0aWVzOlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLm1vdmUoNSwge2FmdGVySWQ6IDJ9KTtcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLm1vdmUoNSwge3RvSW5kZXg6IDB9KTtcbiAgICAgKi9cbiAgICBtb3ZlKGlkOiBJZCwgbW92ZU9wdGlvbnM/OiBFbnRpdHlNb3ZlT3B0aW9ucyk6IFRFbnRpdHlbXSB7XG4gICAgICAgIGNvbnN0IGZyb21JbmRleCA9IHRoaXMuZW50aXRpZXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbVt0aGlzLmlkS2V5XSA9PT0gaWQpO1xuICAgICAgICBsZXQgdG9JbmRleCA9IDA7XG4gICAgICAgIGNvbnN0IG5ld0VudGl0aWVzID0gWy4uLnRoaXMuZW50aXRpZXNdO1xuXG4gICAgICAgIGlmICghaWQgfHwgZnJvbUluZGV4IDwgMCkge1xuICAgICAgICAgICAgcmV0dXJuIFsuLi50aGlzLmVudGl0aWVzXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtb3ZlT3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbChtb3ZlT3B0aW9ucy5hZnRlcklkKSkge1xuICAgICAgICAgICAgICAgIHRvSW5kZXggPSB0aGlzLmVudGl0aWVzLmZpbmRJbmRleChpdGVtID0+IGl0ZW1bdGhpcy5pZEtleV0gPT09IG1vdmVPcHRpb25zLmFmdGVySWQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtb3ZlT3B0aW9ucy50b0luZGV4KSB7XG4gICAgICAgICAgICAgICAgdG9JbmRleCA9IG1vdmVPcHRpb25zLnRvSW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdG9JbmRleCA9IE1hdGgubWF4KDAsIE1hdGgubWluKHRoaXMuZW50aXRpZXMubGVuZ3RoIC0gMSwgdG9JbmRleCkpO1xuICAgICAgICBpZiAodG9JbmRleCA9PT0gZnJvbUluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gWy4uLnRoaXMuZW50aXRpZXNdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5lbnRpdGllc1tmcm9tSW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgZGVsdGEgPSB0b0luZGV4IDwgZnJvbUluZGV4ID8gLTEgOiAxO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gZnJvbUluZGV4OyBpICE9PSB0b0luZGV4OyBpICs9IGRlbHRhKSB7XG4gICAgICAgICAgICAgICAgbmV3RW50aXRpZXNbaV0gPSBuZXdFbnRpdGllc1tpICsgZGVsdGFdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV3RW50aXRpZXNbdG9JbmRleF0gPSB0YXJnZXQ7XG4gICAgICAgICAgICByZXR1cm4gWy4uLm5ld0VudGl0aWVzXTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2R1Y2U8VEVudGl0eT4oZW50aXRpZXM6IFRFbnRpdHlbXSwgb3B0aW9ucz86IFByb2R1Y2VyT3B0aW9uczxURW50aXR5Pikge1xuICAgIHJldHVybiBuZXcgUHJvZHVjZXI8VEVudGl0eT4oZW50aXRpZXMsIG9wdGlvbnMpO1xufVxuIl19
|
|
File without changes
|
package/{esm2015/immutable/tethys-cdk-immutable.js → esm2020/immutable/tethys-cdk-immutable.mjs}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -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.
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|
package/immutable/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"fesm2015": "../fesm2015/tethys-cdk-immutable.
|
|
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
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"fesm2015": "../fesm2015/tethys-cdk-is.
|
|
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"
|
package/logger/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"fesm2015": "../fesm2015/tethys-cdk-logger.
|
|
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"
|