silentium-components 0.0.61 → 0.0.63
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/CHANGELOG.md +18 -0
- package/dist/silentium-components.cjs +41 -27
- package/dist/silentium-components.cjs.map +1 -1
- package/dist/silentium-components.d.ts +40 -38
- package/dist/silentium-components.js +41 -28
- package/dist/silentium-components.js.map +1 -1
- package/dist/silentium-components.min.js +1 -1
- package/dist/silentium-components.min.mjs +1 -1
- package/dist/silentium-components.min.mjs.map +1 -1
- package/dist/silentium-components.mjs +41 -28
- package/dist/silentium-components.mjs.map +1 -1
- package/package.json +2 -2
- package/src/behaviors/Branch._main.test.ts +2 -2
- package/src/behaviors/Branch.branchesDontAffectResult.test.ts +4 -4
- package/src/behaviors/Branch.dontRespondAfterRespond.test.ts +9 -9
- package/src/behaviors/Branch.ts +5 -5
- package/src/behaviors/BranchLazy._main.test.ts +2 -2
- package/src/behaviors/BranchLazy.ts +6 -6
- package/src/behaviors/Const.test.ts +3 -3
- package/src/behaviors/Const.ts +3 -3
- package/src/behaviors/Deadline._main.test.ts +1 -1
- package/src/behaviors/Deadline._value.test.ts +2 -2
- package/src/behaviors/Deadline.ts +7 -7
- package/src/behaviors/Deferred.test.ts +7 -7
- package/src/behaviors/Deferred.ts +4 -4
- package/src/behaviors/Detached.test.ts +20 -0
- package/src/behaviors/Detached.ts +14 -0
- package/src/behaviors/Dirty.test.ts +3 -3
- package/src/behaviors/Dirty.ts +6 -6
- package/src/behaviors/Loading.test.ts +4 -4
- package/src/behaviors/Loading.ts +4 -4
- package/src/behaviors/Lock.test.ts +9 -9
- package/src/behaviors/Lock.ts +4 -4
- package/src/behaviors/Memo.test.ts +9 -9
- package/src/behaviors/Memo.ts +2 -2
- package/src/behaviors/OnlyChanged.test.ts +4 -4
- package/src/behaviors/OnlyChanged.ts +2 -2
- package/src/behaviors/Part.test.ts +2 -2
- package/src/behaviors/Part.ts +7 -7
- package/src/behaviors/Path.ts +4 -4
- package/src/behaviors/Polling.test.ts +7 -7
- package/src/behaviors/Polling.ts +4 -4
- package/src/behaviors/Shot._main.test.ts +7 -7
- package/src/behaviors/Shot._onlyChanged.test.ts +6 -6
- package/src/behaviors/Shot.ts +4 -4
- package/src/behaviors/Task.ts +3 -3
- package/src/behaviors/Tick.test.ts +4 -4
- package/src/behaviors/Tick.ts +2 -2
- package/src/behaviors/index.ts +2 -1
- package/src/boolean/And.test.ts +7 -7
- package/src/boolean/And.ts +4 -4
- package/src/boolean/Bool.ts +2 -2
- package/src/boolean/Not.test.ts +2 -2
- package/src/boolean/Not.ts +2 -2
- package/src/boolean/Or.test.ts +7 -7
- package/src/boolean/Or.ts +4 -4
- package/src/formats/FromJson.ts +4 -4
- package/src/formats/ToJson.ts +4 -4
- package/src/lists/First.ts +3 -3
- package/src/navigation/Router._main.test.ts +6 -6
- package/src/navigation/Router._nested.test.ts +93 -0
- package/src/navigation/Router.ts +7 -7
- package/src/strings/Concatenated.ts +4 -4
- package/src/strings/Template.ts +6 -6
- package/src/structures/HashTable.test.ts +3 -3
- package/src/structures/HashTable.ts +3 -3
- package/src/structures/Record._main.test.ts +2 -2
- package/src/structures/Record.concatenated.test.ts +4 -4
- package/src/structures/RecordOf.ts +4 -4
- package/src/system/RegexpMatch.ts +5 -5
- package/src/system/RegexpMatched.test.ts +2 -2
- package/src/system/RegexpMatched.ts +5 -5
- package/src/system/RegexpReplaced.test.ts +2 -2
- package/src/system/RegexpReplaced.ts +6 -6
- package/src/system/Set.test.ts +2 -2
- package/src/system/Set.ts +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [0.0.63](https://github.com/silentium-lab/silentium-components/compare/v0.0.62...v0.0.63) (2025-10-11)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **main:** moving to events ([f865001](https://github.com/silentium-lab/silentium-components/commit/f865001e6c1c9e94765a7a513680ed86b30f61f3))
|
|
11
|
+
|
|
12
|
+
### [0.0.62](https://github.com/silentium-lab/silentium-components/compare/v0.0.61...v0.0.62) (2025-10-10)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* **main:** detached component for nested router ([b9b7a59](https://github.com/silentium-lab/silentium-components/commit/b9b7a59c18760f38b9c1fc912e47e3ec9dc769ce))
|
|
18
|
+
* **main:** nested routing test ([e4268ba](https://github.com/silentium-lab/silentium-components/commit/e4268ba0adaa4b6b247e09ff9638a31d84179da4))
|
|
19
|
+
* **main:** router nested test ([885a77a](https://github.com/silentium-lab/silentium-components/commit/885a77a1ea973b1420290e3bd5aae54c9a2ae95a))
|
|
20
|
+
* **main:** work on detached ([36ca97e](https://github.com/silentium-lab/silentium-components/commit/36ca97eb78c4aec5bcabbae593758ea7b751942e))
|
|
21
|
+
* **main:** work on router test ([ffb5009](https://github.com/silentium-lab/silentium-components/commit/ffb5009a56fa8ed0c7c32a140655d1303a1700b1))
|
|
22
|
+
|
|
5
23
|
### [0.0.61](https://github.com/silentium-lab/silentium-components/compare/v0.0.60...v0.0.61) (2025-10-05)
|
|
6
24
|
|
|
7
25
|
|
|
@@ -47,9 +47,9 @@ const deadline = (error, baseSrc, timeoutSrc) => {
|
|
|
47
47
|
timeoutReached = true;
|
|
48
48
|
error(new Error("Timeout reached in Deadline class"));
|
|
49
49
|
}, timeout);
|
|
50
|
-
const f = silentium.filtered(s.
|
|
50
|
+
const f = silentium.filtered(s.event, () => !timeoutReached);
|
|
51
51
|
f(u);
|
|
52
|
-
s.
|
|
52
|
+
s.event(() => {
|
|
53
53
|
timeoutReached = true;
|
|
54
54
|
});
|
|
55
55
|
});
|
|
@@ -68,14 +68,27 @@ const deferred = (baseSrc, triggerSrc) => {
|
|
|
68
68
|
};
|
|
69
69
|
};
|
|
70
70
|
|
|
71
|
+
const detached = (baseSrc) => {
|
|
72
|
+
const p = silentium.primitive(baseSrc);
|
|
73
|
+
let v = p.primitive();
|
|
74
|
+
return function Detached(user) {
|
|
75
|
+
if (silentium.isFilled(v)) {
|
|
76
|
+
user(v);
|
|
77
|
+
} else {
|
|
78
|
+
v = p.primitive();
|
|
79
|
+
Detached(user);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
|
|
71
84
|
const dirty = (baseEntitySource, alwaysKeep = [], excludeKeys = [], cloneFn) => {
|
|
72
85
|
const comparingSrc = silentium.late();
|
|
73
86
|
if (cloneFn === void 0) {
|
|
74
87
|
cloneFn = (value) => JSON.parse(JSON.stringify(value));
|
|
75
88
|
}
|
|
76
89
|
return {
|
|
77
|
-
|
|
78
|
-
const comparingDetached = silentium.applied(comparingSrc.
|
|
90
|
+
event: (u) => {
|
|
91
|
+
const comparingDetached = silentium.applied(comparingSrc.event, cloneFn);
|
|
79
92
|
silentium.all(
|
|
80
93
|
comparingDetached,
|
|
81
94
|
baseEntitySource
|
|
@@ -98,8 +111,8 @@ const dirty = (baseEntitySource, alwaysKeep = [], excludeKeys = [], cloneFn) =>
|
|
|
98
111
|
);
|
|
99
112
|
});
|
|
100
113
|
},
|
|
101
|
-
|
|
102
|
-
comparingSrc.
|
|
114
|
+
use: (v) => {
|
|
115
|
+
comparingSrc.use(v);
|
|
103
116
|
}
|
|
104
117
|
};
|
|
105
118
|
};
|
|
@@ -148,12 +161,12 @@ const onlyChanged = (baseSrc) => {
|
|
|
148
161
|
};
|
|
149
162
|
|
|
150
163
|
const part = (baseSrc, keySrc) => {
|
|
151
|
-
const baseSync = silentium.primitive(baseSrc.
|
|
164
|
+
const baseSync = silentium.primitive(baseSrc.event);
|
|
152
165
|
const keySync = silentium.primitive(keySrc);
|
|
153
166
|
return {
|
|
154
|
-
|
|
167
|
+
event: (u) => {
|
|
155
168
|
silentium.all(
|
|
156
|
-
baseSrc.
|
|
169
|
+
baseSrc.event,
|
|
157
170
|
keySrc
|
|
158
171
|
)(([base, key]) => {
|
|
159
172
|
const keyChunks = key.split(".");
|
|
@@ -166,10 +179,10 @@ const part = (baseSrc, keySrc) => {
|
|
|
166
179
|
}
|
|
167
180
|
});
|
|
168
181
|
},
|
|
169
|
-
|
|
182
|
+
use: (value) => {
|
|
170
183
|
const key = keySync.primitive();
|
|
171
184
|
if (silentium.isFilled(key)) {
|
|
172
|
-
baseSrc.
|
|
185
|
+
baseSrc.use({
|
|
173
186
|
...baseSync.primitive(),
|
|
174
187
|
[key]: value
|
|
175
188
|
});
|
|
@@ -216,6 +229,22 @@ const shot = (targetSrc, triggerSrc) => {
|
|
|
216
229
|
};
|
|
217
230
|
};
|
|
218
231
|
|
|
232
|
+
const task = (baseSrc, delay = 0) => {
|
|
233
|
+
return (u) => {
|
|
234
|
+
let prevTimer = null;
|
|
235
|
+
silentium.executorApplied(baseSrc, (fn) => {
|
|
236
|
+
return (v) => {
|
|
237
|
+
if (prevTimer) {
|
|
238
|
+
clearTimeout(prevTimer);
|
|
239
|
+
}
|
|
240
|
+
prevTimer = setTimeout(() => {
|
|
241
|
+
fn(v);
|
|
242
|
+
}, delay);
|
|
243
|
+
};
|
|
244
|
+
})(u);
|
|
245
|
+
};
|
|
246
|
+
};
|
|
247
|
+
|
|
219
248
|
const tick = (baseSrc) => {
|
|
220
249
|
return (u) => {
|
|
221
250
|
let microtaskScheduled = false;
|
|
@@ -239,22 +268,6 @@ const tick = (baseSrc) => {
|
|
|
239
268
|
};
|
|
240
269
|
};
|
|
241
270
|
|
|
242
|
-
const task = (baseSrc, delay = 0) => {
|
|
243
|
-
return (u) => {
|
|
244
|
-
let prevTimer = null;
|
|
245
|
-
silentium.executorApplied(baseSrc, (fn) => {
|
|
246
|
-
return (v) => {
|
|
247
|
-
if (prevTimer) {
|
|
248
|
-
clearTimeout(prevTimer);
|
|
249
|
-
}
|
|
250
|
-
prevTimer = setTimeout(() => {
|
|
251
|
-
fn(v);
|
|
252
|
-
}, delay);
|
|
253
|
-
};
|
|
254
|
-
})(u);
|
|
255
|
-
};
|
|
256
|
-
};
|
|
257
|
-
|
|
258
271
|
const hashTable = (baseSrc) => {
|
|
259
272
|
return (u) => {
|
|
260
273
|
const record = {};
|
|
@@ -520,6 +533,7 @@ exports.concatenated = concatenated;
|
|
|
520
533
|
exports.constant = constant;
|
|
521
534
|
exports.deadline = deadline;
|
|
522
535
|
exports.deferred = deferred;
|
|
536
|
+
exports.detached = detached;
|
|
523
537
|
exports.dirty = dirty;
|
|
524
538
|
exports.first = first;
|
|
525
539
|
exports.fromJson = fromJson;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silentium-components.cjs","sources":["../src/behaviors/Branch.ts","../src/behaviors/Const.ts","../src/behaviors/Deadline.ts","../src/behaviors/Deferred.ts","../src/behaviors/Dirty.ts","../src/behaviors/Loading.ts","../src/behaviors/Lock.ts","../src/behaviors/Memo.ts","../src/behaviors/OnlyChanged.ts","../src/behaviors/Part.ts","../src/behaviors/Path.ts","../src/behaviors/Polling.ts","../src/behaviors/Shot.ts","../src/behaviors/Tick.ts","../src/behaviors/Task.ts","../src/structures/HashTable.ts","../src/structures/RecordOf.ts","../src/strings/Concatenated.ts","../src/strings/Template.ts","../src/behaviors/BranchLazy.ts","../src/system/RegexpMatched.ts","../src/system/RegexpReplaced.ts","../src/system/RegexpMatch.ts","../src/system/Set.ts","../src/navigation/Router.ts","../src/boolean/And.ts","../src/boolean/Or.ts","../src/boolean/Not.ts","../src/boolean/Bool.ts","../src/formats/FromJson.ts","../src/formats/ToJson.ts","../src/lists/First.ts"],"sourcesContent":["import { DataType, primitive } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport const branch = <Then, Else>(\n conditionSrc: DataType<boolean>,\n leftSrc: DataType<Then>,\n rightSrc?: DataType<Else>,\n): DataType<Then | Else> => {\n return (u) => {\n const leftSync = primitive(leftSrc);\n let rightSync: ReturnType<typeof primitive<Else>>;\n\n if (rightSrc !== undefined) {\n rightSync = primitive(rightSrc);\n }\n\n conditionSrc((v) => {\n let result: Then | Else | null = null;\n if (v) {\n result = leftSync.primitive();\n } else if (rightSync) {\n result = rightSync.primitive();\n }\n\n if (result !== null) {\n u(result);\n }\n });\n };\n};\n","import { DataType } from \"silentium\";\n\nexport const constant = <T>(\n permanentValue: T,\n triggerSrc: DataType,\n): DataType<T> => {\n return (u) => {\n triggerSrc(() => {\n u(permanentValue);\n });\n };\n};\n","import { DataType, DataUserType, filtered, shared } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport const deadline = <T>(\n error: DataUserType<Error>,\n baseSrc: DataType<T>,\n timeoutSrc: DataType<number>,\n): DataType<T> => {\n return (u) => {\n let timerHead: unknown = null;\n\n const s = shared(baseSrc, true);\n\n timeoutSrc((timeout) => {\n if (timerHead) {\n clearTimeout(timerHead as number);\n }\n let timeoutReached = false;\n\n timerHead = setTimeout(() => {\n if (timeoutReached) {\n return;\n }\n timeoutReached = true;\n error(new Error(\"Timeout reached in Deadline class\"));\n }, timeout);\n\n const f = filtered(s.value, () => !timeoutReached);\n f(u);\n\n s.value(() => {\n timeoutReached = true;\n });\n });\n };\n};\n","import { DataType, isFilled, primitive } from \"silentium\";\n\n/**\n * Defer one source after another, gives values of baseSrc only when triggerSrc responds\n * https://silentium-lab.github.io/silentium-components/#/behaviors/deferred\n */\nexport const deferred = <T>(\n baseSrc: DataType<T>,\n triggerSrc: DataType<unknown>,\n): DataType<T> => {\n return (u) => {\n const baseSync = primitive(baseSrc);\n triggerSrc(() => {\n const value = baseSync.primitive();\n if (isFilled(value)) {\n u(value);\n }\n });\n };\n};\n","import { all, applied, DataType, late, SourceType } from \"silentium\";\n\n/**\n * Takes source and remember it first value\n * returns new record, what will contain only fields what was changed\n * https://silentium-lab.github.io/silentium-components/#/behaviors/dirty\n */\nexport const dirty = <T>(\n baseEntitySource: DataType<T>,\n alwaysKeep: string[] = [],\n excludeKeys: string[] = [],\n cloneFn?: (v: T) => T,\n): SourceType<T> => {\n const comparingSrc = late<T>();\n\n if (cloneFn === undefined) {\n cloneFn = (value) => JSON.parse(JSON.stringify(value));\n }\n\n return {\n value: (u) => {\n const comparingDetached = applied(comparingSrc.value, cloneFn);\n\n all(\n comparingDetached,\n baseEntitySource,\n )(([comparing, base]) => {\n if (!comparing) {\n return;\n }\n\n u(\n Object.fromEntries(\n Object.entries(comparing).filter(([key, value]) => {\n if (alwaysKeep.includes(key)) {\n return true;\n }\n if (excludeKeys.includes(key)) {\n return false;\n }\n return value !== (base as any)[key];\n }),\n ) as T,\n );\n });\n },\n give: (v) => {\n comparingSrc.give(v);\n },\n };\n};\n","import { DataType } from \"silentium\";\n\n/**\n * Representation of loading process\n * first informatin source begins loading\n * second information source stops loading\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport const loading = (\n loadingStartSrc: DataType<unknown>,\n loadingFinishSrc: DataType<unknown>,\n): DataType<boolean> => {\n return (u) => {\n loadingStartSrc(() => u(true));\n loadingFinishSrc(() => u(false));\n };\n};\n","import { DataType, filtered } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport const lock = <T>(\n baseSrc: DataType<T>,\n lockSrc: DataType<boolean>,\n): DataType<T> => {\n return (u) => {\n let locked = false;\n lockSrc((newLock) => {\n locked = newLock;\n });\n const i = filtered(baseSrc, () => !locked);\n i(u);\n };\n};\n","import { DataType } from \"silentium\";\n\n/**\n * Didn't respond if new value of baseSrc equals to old value\n * https://silentium-lab.github.io/silentium-components/#/behaviors/memo\n */\nexport const memo = <T>(baseSrc: DataType<T>): DataType<T> => {\n return (u) => {\n let lastValue: T | null = null;\n\n baseSrc((v) => {\n if (v !== lastValue) {\n u(v);\n lastValue = v;\n }\n });\n };\n};\n","import { DataType } from \"silentium\";\n\n/**\n * Represents source what was changed at least once\n * https://silentium-lab.github.io/silentium-components/#/behaviors/only-changed\n */\nexport const onlyChanged = <T>(baseSrc: DataType<T>): DataType<T> => {\n return (u) => {\n let firstValue = false;\n\n baseSrc((v) => {\n if (firstValue === false) {\n firstValue = true;\n } else {\n u(v);\n }\n });\n };\n};\n","import { all, DataType, isFilled, primitive, SourceType } from \"silentium\";\n\n/**\n * Return source of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport const part = <\n R,\n T extends Record<string, unknown> | Array<unknown> = any,\n K extends string = any,\n>(\n baseSrc: SourceType<T>,\n keySrc: DataType<K>,\n): SourceType<R> => {\n const baseSync = primitive(baseSrc.value);\n const keySync = primitive(keySrc);\n return {\n value: (u) => {\n all(\n baseSrc.value,\n keySrc,\n )(([base, key]) => {\n const keyChunks = key.split(\".\");\n let value: unknown = base;\n keyChunks.forEach((keyChunk) => {\n value = (value as Record<string, unknown>)[keyChunk];\n });\n\n if (value !== undefined && value !== base) {\n u(value as R);\n }\n });\n },\n give: (value: R) => {\n const key = keySync.primitive();\n if (isFilled(key)) {\n baseSrc.give({\n ...baseSync.primitive(),\n [key]: value,\n } as T);\n }\n },\n };\n};\n","import { all, DataType } from \"silentium\";\n\n/**\n * Return source of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport const path = <\n R,\n T extends Record<string, unknown> | Array<unknown> = any,\n K extends string = any,\n>(\n baseSrc: DataType<T>,\n keySrc: DataType<K>,\n): DataType<R> => {\n return (u) => {\n all(\n baseSrc,\n keySrc,\n )(([base, key]) => {\n const keyChunks = key.split(\".\");\n let value: unknown = base;\n keyChunks.forEach((keyChunk) => {\n value = (value as Record<string, unknown>)[keyChunk];\n });\n\n if (value !== undefined && value !== base) {\n u(value as R);\n }\n });\n };\n};\n","import { DataType } from \"silentium\";\n\nexport const polling = <T>(\n baseSrc: DataType<T>,\n triggerSrc: DataType<T>,\n): DataType<T> => {\n return (u) => {\n triggerSrc(() => {\n baseSrc(u);\n });\n };\n};\n","import { DataType, isFilled, primitive } from \"silentium\";\n\n/**\n * Helps to represent only last fresh value of some source, refreshing controls by shotSrc\n * https://silentium-lab.github.io/silentium-components/#/behaviors/shot\n */\nexport const shot = <T>(\n targetSrc: DataType<T>,\n triggerSrc: DataType,\n): DataType<T> => {\n return (u) => {\n const targetSync = primitive(targetSrc);\n\n triggerSrc(() => {\n const value = targetSync.primitive();\n if (isFilled(value)) {\n u(value);\n }\n });\n };\n};\n","import { DataType } from \"silentium\";\n\n/**\n * Accumulates the last value of the source and returns one result once per tick\n * https://silentium-lab.github.io/silentium-components/#/behaviors/tick\n */\nexport const tick = <T>(baseSrc: DataType<T>): DataType<T> => {\n return (u) => {\n let microtaskScheduled = false;\n let lastValue: T | null = null;\n\n const scheduleMicrotask = () => {\n microtaskScheduled = true;\n queueMicrotask(() => {\n microtaskScheduled = false;\n if (lastValue !== null) {\n u(lastValue);\n lastValue = null;\n }\n });\n };\n\n baseSrc((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n });\n };\n};\n","import { DataType, executorApplied } from \"silentium\";\n\nexport const task = <T>(\n baseSrc: DataType<T>,\n delay: number = 0,\n): DataType<T> => {\n return (u) => {\n let prevTimer: unknown | null = null;\n executorApplied(baseSrc, (fn) => {\n return (v) => {\n if (prevTimer) {\n clearTimeout(prevTimer as number);\n }\n prevTimer = setTimeout(() => {\n fn(v);\n }, delay);\n };\n })(u);\n };\n};\n","import { DataType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport const hashTable = <T>(\n baseSrc: DataType<[string, unknown]>,\n): DataType<T> => {\n return (u) => {\n const record: Record<string, unknown> = {};\n\n baseSrc(([key, value]) => {\n record[key] = value;\n u(record as T);\n });\n };\n};\n","import { all, DataType } from \"silentium\";\n\ntype UnInformation<T> = T extends DataType<infer U> ? U : never;\n\n/**\n * Returns record of data from record of sources\n * https://silentium-lab.github.io/silentium-components/#/structures/record\n */\nexport const recordOf = <T extends DataType>(\n recordSrc: Record<string, T>,\n): DataType<Record<string, UnInformation<T>>> => {\n return (u) => {\n const keys = Object.keys(recordSrc);\n all(...Object.values(recordSrc))((entries) => {\n const record: Record<string, any> = {};\n entries.forEach((entry, index) => {\n record[keys[index]] = entry;\n });\n u(record);\n });\n };\n};\n","import { all, DataType, of } from \"silentium\";\n\n/**\n * Join sources of strings to one source\n * https://silentium-lab.github.io/silentium-components/#/string/concatenated\n */\nexport const concatenated = (\n sources: DataType<string>[],\n joinPartSrc: DataType<string> = of(\"\"),\n): DataType<string> => {\n return (u) => {\n all(\n joinPartSrc,\n ...sources,\n )(([joinPart, ...strings]) => {\n u(strings.join(joinPart));\n });\n };\n};\n","import {\n all,\n applied,\n DataType,\n destructor,\n DestructorType,\n of,\n} from \"silentium\";\nimport { recordOf } from \"../structures\";\n\nexport const template = (\n theSrc: DataType<string> = of(\"\"),\n placesSrc: DataType<Record<string, unknown>> = of({}),\n) => {\n let placesCounter = 0;\n const vars: Record<string, DataType> = {\n $TPL: of(\"$TPL\"),\n };\n const destructors: DestructorType[] = [];\n return {\n value: <DataType<string>>((u) => {\n const varsSrc = recordOf(vars);\n applied(all(theSrc, placesSrc, varsSrc), ([base, rules, vars]) => {\n Object.entries(rules).forEach(([ph, val]) => {\n base = base.replaceAll(ph, String(val));\n });\n Object.entries(vars).forEach(([ph, val]) => {\n base = base.replaceAll(ph, String(val));\n });\n\n return base;\n })(u);\n }),\n template: (value: string) => {\n theSrc = of(value);\n },\n /**\n * Ability to register variable\n * in concrete place of template\n */\n var: (src: DataType<string>) => {\n const varName = `$var${placesCounter}`;\n placesCounter += 1;\n vars[varName] = destructor(src, (d: DestructorType) => {\n destructors.push(d);\n }).value;\n return varName;\n },\n destroy() {\n destructors.forEach((d) => d());\n },\n };\n};\n","import { DataType, DestructorType, ValueType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport const branchLazy = <Then, Else>(\n conditionSrc: DataType<boolean>,\n leftSrc: ValueType<[], DataType<Then>>,\n rightSrc?: ValueType<[], DataType<Else>>,\n): DataType<Then | Else> => {\n return (u) => {\n let destructor: DestructorType | void;\n conditionSrc((v) => {\n if (destructor !== undefined && typeof destructor === \"function\") {\n destructor();\n }\n let instance: DataType<Then | Else> | null = null;\n if (v) {\n instance = leftSrc();\n } else if (rightSrc) {\n instance = rightSrc();\n }\n if (instance) {\n destructor = instance(u);\n }\n });\n\n return () => {\n destructor?.();\n };\n };\n};\n","import { all, DataType, of } from \"silentium\";\n\n/**\n * Boolean source what checks what string matches pattern\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport const regexpMatched = (\n patternSrc: DataType<string>,\n valueSrc: DataType<string>,\n flagsSrc: DataType<string> = of(\"\"),\n): DataType<boolean> => {\n return (u) => {\n all(\n patternSrc,\n valueSrc,\n flagsSrc,\n )(([pattern, value, flags]) => {\n u(new RegExp(pattern, flags).test(value));\n });\n };\n};\n","import { all, DataType, of } from \"silentium\";\n\n/**\n * Returns string replaced by regular expression pattern\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-replaced\n */\nexport const regexpReplaced = (\n valueSrc: DataType<string>,\n patternSrc: DataType<string>,\n replaceValueSrc: DataType<string>,\n flagsSrc: DataType<string> = of(\"\"),\n): DataType<string> => {\n return (u) => {\n all(\n patternSrc,\n valueSrc,\n replaceValueSrc,\n flagsSrc,\n )(([pattern, value, replaceValue, flags]) => {\n u(String(value).replace(new RegExp(pattern, flags), replaceValue));\n });\n };\n};\n","import { all, DataType, of } from \"silentium\";\n\n/**\n * First match of regexp\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport const regexpMatch = (\n patternSrc: DataType<string>,\n valueSrc: DataType<string>,\n flagsSrc: DataType<string> = of(\"\"),\n): DataType<string[]> => {\n return (u) => {\n all(\n patternSrc,\n valueSrc,\n flagsSrc,\n )(([pattern, value, flags]) => {\n const result = new RegExp(pattern, flags).exec(value);\n u(result ?? []);\n });\n };\n};\n","import { all, DataType } from \"silentium\";\n\n/**\n * Ability to mutate some object, helpful when integrate to procedure systems\n * https://silentium-lab.github.io/silentium-components/#/system/set\n */\nexport const set = <T extends Record<string, unknown>>(\n baseSrc: DataType<T>,\n keySrc: DataType<string>,\n valueSrc: DataType<unknown>,\n): DataType<T> => {\n return (u) => {\n all(\n baseSrc,\n keySrc,\n valueSrc,\n )(([base, key, value]) => {\n (base as Record<string, unknown>)[key] = value;\n u(base);\n });\n };\n};\n","import {\n all,\n applied,\n DataType,\n destructor,\n DestructorType,\n of,\n ValueType,\n} from \"silentium\";\nimport { branchLazy } from \"../behaviors/BranchLazy\";\nimport { regexpMatched } from \"../system\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n template: ValueType<[], DataType<T>>;\n}\n\nconst emptySrc = () => of(false);\n\n/**\n * Router component what will return template if url matches pattern\n * https://silentium-lab.github.io/silentium-components/#/navigation/router\n */\nexport const router = <T = \"string\">(\n urlSrc: DataType<string>,\n routesSrc: DataType<Route<T>[]>,\n defaultSrc: ValueType<[], DataType<T>>,\n): DataType<T> => {\n return (u) => {\n const destructors: DestructorType[] = [];\n const destroyAllData = () => {\n destructors.forEach((d) => d());\n destructors.length = 0;\n };\n all(\n routesSrc,\n urlSrc,\n )(([routes, url]) => {\n destroyAllData();\n const instance = all(\n defaultSrc(),\n all(\n ...routes.map(\n (r) =>\n destructor(\n branchLazy(\n regexpMatched(\n of(r.pattern),\n of(url),\n r.patternFlags ? of(r.patternFlags) : undefined,\n ),\n r.template,\n emptySrc,\n ),\n (d: DestructorType) => destructors.push(d),\n ).value,\n ),\n ),\n );\n\n // Return first not false or default\n applied(instance, (r) => {\n const firstReal = r[1].find((r) => r !== false);\n\n if (firstReal) {\n return firstReal as T;\n }\n\n return r[0];\n })(u);\n });\n\n return destroyAllData;\n };\n};\n","import { all, DataType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport const and = (\n oneSrc: DataType<boolean>,\n twoSrc: DataType<boolean>,\n): DataType<boolean> => {\n return (u) => {\n all(\n oneSrc,\n twoSrc,\n )(([one, two]) => {\n u(one && two);\n });\n };\n};\n","import { all, DataType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport const or = (\n oneSrc: DataType<boolean>,\n twoSrc: DataType<boolean>,\n): DataType<boolean> => {\n return (u) => {\n all(\n oneSrc,\n twoSrc,\n )(([one, two]) => {\n u(one || two);\n });\n };\n};\n","import { DataType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport const not = (baseSrc: DataType<boolean>): DataType<boolean> => {\n return (u) => {\n baseSrc((v) => {\n u(!v);\n });\n };\n};\n","import { applied, DataType } from \"silentium\";\n\n/**\n * Convert any source to boolean source\n * https://silentium-lab.github.io/silentium-components/#/boolean/bool\n */\nexport const bool = (baseSrc: DataType): DataType<boolean> => {\n return (u) => {\n applied(baseSrc, Boolean)(u);\n };\n};\n","import { DataType, DataUserType } from \"silentium\";\n\n/**\n * Represents object from json\n */\nexport const fromJson = <T = Record<string, unknown>>(\n jsonSrc: DataType<string>,\n errorOwner?: DataUserType,\n): DataType<T> => {\n return (u) => {\n jsonSrc((json) => {\n try {\n u(JSON.parse(json));\n } catch (error) {\n errorOwner?.(new Error(`Failed to parse JSON: ${error}`));\n }\n });\n };\n};\n","import { DataType, DataUserType } from \"silentium\";\n\n/**\n * Represents json from object\n */\nexport const toJson = (\n dataSrc: DataType,\n errorOwner?: DataUserType,\n): DataType<string> => {\n return (u) => {\n dataSrc((data: unknown) => {\n try {\n u(JSON.stringify(data));\n } catch {\n errorOwner?.(new Error(\"Failed to convert to JSON\"));\n }\n });\n };\n};\n","import { applied, DataType } from \"silentium\";\n\n/**\n * Represents the first element of an array.\n */\nexport const first = <T extends Array<unknown>>(\n baseSrc: DataType<T>,\n): DataType<T[0]> => {\n return (u) => {\n applied(baseSrc, (a) => a[0])(u);\n };\n};\n"],"names":["primitive","shared","filtered","isFilled","late","applied","all","executorApplied","of","vars","destructor","r"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"silentium-components.cjs","sources":["../src/behaviors/Branch.ts","../src/behaviors/Const.ts","../src/behaviors/Deadline.ts","../src/behaviors/Deferred.ts","../src/behaviors/Detached.ts","../src/behaviors/Dirty.ts","../src/behaviors/Loading.ts","../src/behaviors/Lock.ts","../src/behaviors/Memo.ts","../src/behaviors/OnlyChanged.ts","../src/behaviors/Part.ts","../src/behaviors/Path.ts","../src/behaviors/Polling.ts","../src/behaviors/Shot.ts","../src/behaviors/Task.ts","../src/behaviors/Tick.ts","../src/structures/HashTable.ts","../src/structures/RecordOf.ts","../src/strings/Concatenated.ts","../src/strings/Template.ts","../src/behaviors/BranchLazy.ts","../src/system/RegexpMatched.ts","../src/system/RegexpReplaced.ts","../src/system/RegexpMatch.ts","../src/system/Set.ts","../src/navigation/Router.ts","../src/boolean/And.ts","../src/boolean/Or.ts","../src/boolean/Not.ts","../src/boolean/Bool.ts","../src/formats/FromJson.ts","../src/formats/ToJson.ts","../src/lists/First.ts"],"sourcesContent":["import { EventType, primitive } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport const branch = <Then, Else>(\n conditionSrc: EventType<boolean>,\n leftSrc: EventType<Then>,\n rightSrc?: EventType<Else>,\n): EventType<Then | Else> => {\n return (u) => {\n const leftSync = primitive(leftSrc);\n let rightSync: ReturnType<typeof primitive<Else>>;\n\n if (rightSrc !== undefined) {\n rightSync = primitive(rightSrc);\n }\n\n conditionSrc((v) => {\n let result: Then | Else | null = null;\n if (v) {\n result = leftSync.primitive();\n } else if (rightSync) {\n result = rightSync.primitive();\n }\n\n if (result !== null) {\n u(result);\n }\n });\n };\n};\n","import { EventType } from \"silentium\";\n\nexport const constant = <T>(\n permanentValue: T,\n triggerSrc: EventType,\n): EventType<T> => {\n return (u) => {\n triggerSrc(() => {\n u(permanentValue);\n });\n };\n};\n","import { EventType, filtered, shared, EventUserType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport const deadline = <T>(\n error: EventUserType<Error>,\n baseSrc: EventType<T>,\n timeoutSrc: EventType<number>,\n): EventType<T> => {\n return (u) => {\n let timerHead: unknown = null;\n\n const s = shared(baseSrc, true);\n\n timeoutSrc((timeout) => {\n if (timerHead) {\n clearTimeout(timerHead as number);\n }\n let timeoutReached = false;\n\n timerHead = setTimeout(() => {\n if (timeoutReached) {\n return;\n }\n timeoutReached = true;\n error(new Error(\"Timeout reached in Deadline class\"));\n }, timeout);\n\n const f = filtered(s.event, () => !timeoutReached);\n f(u);\n\n s.event(() => {\n timeoutReached = true;\n });\n });\n };\n};\n","import { EventType, isFilled, primitive } from \"silentium\";\n\n/**\n * Defer one source after another, gives values of baseSrc only when triggerSrc responds\n * https://silentium-lab.github.io/silentium-components/#/behaviors/deferred\n */\nexport const deferred = <T>(\n baseSrc: EventType<T>,\n triggerSrc: EventType<unknown>,\n): EventType<T> => {\n return (u) => {\n const baseSync = primitive(baseSrc);\n triggerSrc(() => {\n const value = baseSync.primitive();\n if (isFilled(value)) {\n u(value);\n }\n });\n };\n};\n","import { EventType, isFilled, primitive } from \"silentium\";\n\nexport const detached = <T>(baseSrc: EventType<T>): EventType<T> => {\n const p = primitive(baseSrc);\n let v = p.primitive();\n return function Detached(user) {\n if (isFilled(v)) {\n user(v);\n } else {\n v = p.primitive();\n Detached(user);\n }\n };\n};\n","import { all, applied, EventType, late, SourceType } from \"silentium\";\n\n/**\n * Takes source and remember it first value\n * returns new record, what will contain only fields what was changed\n * https://silentium-lab.github.io/silentium-components/#/behaviors/dirty\n */\nexport const dirty = <T>(\n baseEntitySource: EventType<T>,\n alwaysKeep: string[] = [],\n excludeKeys: string[] = [],\n cloneFn?: (v: T) => T,\n): SourceType<T> => {\n const comparingSrc = late<T>();\n\n if (cloneFn === undefined) {\n cloneFn = (value) => JSON.parse(JSON.stringify(value));\n }\n\n return {\n event: (u) => {\n const comparingDetached = applied(comparingSrc.event, cloneFn);\n\n all(\n comparingDetached,\n baseEntitySource,\n )(([comparing, base]) => {\n if (!comparing) {\n return;\n }\n\n u(\n Object.fromEntries(\n Object.entries(comparing).filter(([key, value]) => {\n if (alwaysKeep.includes(key)) {\n return true;\n }\n if (excludeKeys.includes(key)) {\n return false;\n }\n return value !== (base as any)[key];\n }),\n ) as T,\n );\n });\n },\n use: (v) => {\n comparingSrc.use(v);\n },\n };\n};\n","import { EventType } from \"silentium\";\n\n/**\n * Representation of loading process\n * first informatin source begins loading\n * second information source stops loading\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport const loading = (\n loadingStartSrc: EventType<unknown>,\n loadingFinishSrc: EventType<unknown>,\n): EventType<boolean> => {\n return (u) => {\n loadingStartSrc(() => u(true));\n loadingFinishSrc(() => u(false));\n };\n};\n","import { EventType, filtered } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport const lock = <T>(\n baseSrc: EventType<T>,\n lockSrc: EventType<boolean>,\n): EventType<T> => {\n return (u) => {\n let locked = false;\n lockSrc((newLock) => {\n locked = newLock;\n });\n const i = filtered(baseSrc, () => !locked);\n i(u);\n };\n};\n","import { EventType } from \"silentium\";\n\n/**\n * Didn't respond if new value of baseSrc equals to old value\n * https://silentium-lab.github.io/silentium-components/#/behaviors/memo\n */\nexport const memo = <T>(baseSrc: EventType<T>): EventType<T> => {\n return (u) => {\n let lastValue: T | null = null;\n\n baseSrc((v) => {\n if (v !== lastValue) {\n u(v);\n lastValue = v;\n }\n });\n };\n};\n","import { EventType } from \"silentium\";\n\n/**\n * Represents source what was changed at least once\n * https://silentium-lab.github.io/silentium-components/#/behaviors/only-changed\n */\nexport const onlyChanged = <T>(baseSrc: EventType<T>): EventType<T> => {\n return (u) => {\n let firstValue = false;\n\n baseSrc((v) => {\n if (firstValue === false) {\n firstValue = true;\n } else {\n u(v);\n }\n });\n };\n};\n","import { all, EventType, isFilled, primitive, SourceType } from \"silentium\";\n\n/**\n * Return source of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport const part = <\n R,\n T extends Record<string, unknown> | Array<unknown> = any,\n K extends string = any,\n>(\n baseSrc: SourceType<T>,\n keySrc: EventType<K>,\n): SourceType<R> => {\n const baseSync = primitive(baseSrc.event);\n const keySync = primitive(keySrc);\n return {\n event: (u) => {\n all(\n baseSrc.event,\n keySrc,\n )(([base, key]) => {\n const keyChunks = key.split(\".\");\n let value: unknown = base;\n keyChunks.forEach((keyChunk) => {\n value = (value as Record<string, unknown>)[keyChunk];\n });\n\n if (value !== undefined && value !== base) {\n u(value as R);\n }\n });\n },\n use: (value: R) => {\n const key = keySync.primitive();\n if (isFilled(key)) {\n baseSrc.use({\n ...baseSync.primitive(),\n [key]: value,\n } as T);\n }\n },\n };\n};\n","import { all, EventType } from \"silentium\";\n\n/**\n * Return source of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport const path = <\n R,\n T extends Record<string, unknown> | Array<unknown> = any,\n K extends string = any,\n>(\n baseSrc: EventType<T>,\n keySrc: EventType<K>,\n): EventType<R> => {\n return (u) => {\n all(\n baseSrc,\n keySrc,\n )(([base, key]) => {\n const keyChunks = key.split(\".\");\n let value: unknown = base;\n keyChunks.forEach((keyChunk) => {\n value = (value as Record<string, unknown>)[keyChunk];\n });\n\n if (value !== undefined && value !== base) {\n u(value as R);\n }\n });\n };\n};\n","import { EventType } from \"silentium\";\n\nexport const polling = <T>(\n baseSrc: EventType<T>,\n triggerSrc: EventType<T>,\n): EventType<T> => {\n return (u) => {\n triggerSrc(() => {\n baseSrc(u);\n });\n };\n};\n","import { EventType, isFilled, primitive } from \"silentium\";\n\n/**\n * Helps to represent only last fresh value of some source, refreshing controls by shotSrc\n * https://silentium-lab.github.io/silentium-components/#/behaviors/shot\n */\nexport const shot = <T>(\n targetSrc: EventType<T>,\n triggerSrc: EventType,\n): EventType<T> => {\n return (u) => {\n const targetSync = primitive(targetSrc);\n\n triggerSrc(() => {\n const value = targetSync.primitive();\n if (isFilled(value)) {\n u(value);\n }\n });\n };\n};\n","import { EventType, executorApplied } from \"silentium\";\n\nexport const task = <T>(\n baseSrc: EventType<T>,\n delay: number = 0,\n): EventType<T> => {\n return (u) => {\n let prevTimer: unknown | null = null;\n executorApplied(baseSrc, (fn) => {\n return (v) => {\n if (prevTimer) {\n clearTimeout(prevTimer as number);\n }\n prevTimer = setTimeout(() => {\n fn(v);\n }, delay);\n };\n })(u);\n };\n};\n","import { EventType } from \"silentium\";\n\n/**\n * Accumulates the last value of the source and returns one result once per tick\n * https://silentium-lab.github.io/silentium-components/#/behaviors/tick\n */\nexport const tick = <T>(baseSrc: EventType<T>): EventType<T> => {\n return (u) => {\n let microtaskScheduled = false;\n let lastValue: T | null = null;\n\n const scheduleMicrotask = () => {\n microtaskScheduled = true;\n queueMicrotask(() => {\n microtaskScheduled = false;\n if (lastValue !== null) {\n u(lastValue);\n lastValue = null;\n }\n });\n };\n\n baseSrc((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n });\n };\n};\n","import { EventType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport const hashTable = <T>(\n baseSrc: EventType<[string, unknown]>,\n): EventType<T> => {\n return (u) => {\n const record: Record<string, unknown> = {};\n\n baseSrc(([key, value]) => {\n record[key] = value;\n u(record as T);\n });\n };\n};\n","import { all, EventType } from \"silentium\";\n\ntype UnInformation<T> = T extends EventType<infer U> ? U : never;\n\n/**\n * Returns record of data from record of sources\n * https://silentium-lab.github.io/silentium-components/#/structures/record\n */\nexport const recordOf = <T extends EventType>(\n recordSrc: Record<string, T>,\n): EventType<Record<string, UnInformation<T>>> => {\n return (u) => {\n const keys = Object.keys(recordSrc);\n all(...Object.values(recordSrc))((entries) => {\n const record: Record<string, any> = {};\n entries.forEach((entry, index) => {\n record[keys[index]] = entry;\n });\n u(record);\n });\n };\n};\n","import { all, EventType, of } from \"silentium\";\n\n/**\n * Join sources of strings to one source\n * https://silentium-lab.github.io/silentium-components/#/string/concatenated\n */\nexport const concatenated = (\n sources: EventType<string>[],\n joinPartSrc: EventType<string> = of(\"\"),\n): EventType<string> => {\n return (u) => {\n all(\n joinPartSrc,\n ...sources,\n )(([joinPart, ...strings]) => {\n u(strings.join(joinPart));\n });\n };\n};\n","import {\n all,\n applied,\n EventType,\n destructor,\n DestructorType,\n of,\n} from \"silentium\";\nimport { recordOf } from \"../structures\";\n\nexport const template = (\n theSrc: EventType<string> = of(\"\"),\n placesSrc: EventType<Record<string, unknown>> = of({}),\n) => {\n let placesCounter = 0;\n const vars: Record<string, EventType> = {\n $TPL: of(\"$TPL\"),\n };\n const destructors: DestructorType[] = [];\n return {\n value: <EventType<string>>((u) => {\n const varsSrc = recordOf(vars);\n applied(all(theSrc, placesSrc, varsSrc), ([base, rules, vars]) => {\n Object.entries(rules).forEach(([ph, val]) => {\n base = base.replaceAll(ph, String(val));\n });\n Object.entries(vars).forEach(([ph, val]) => {\n base = base.replaceAll(ph, String(val));\n });\n\n return base;\n })(u);\n }),\n template: (value: string) => {\n theSrc = of(value);\n },\n /**\n * Ability to register variable\n * in concrete place of template\n */\n var: (src: EventType<string>) => {\n const varName = `$var${placesCounter}`;\n placesCounter += 1;\n vars[varName] = destructor(src, (d: DestructorType) => {\n destructors.push(d);\n }).value;\n return varName;\n },\n destroy() {\n destructors.forEach((d) => d());\n },\n };\n};\n","import { EventType, DestructorType, ConstructorType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport const branchLazy = <Then, Else>(\n conditionSrc: EventType<boolean>,\n leftSrc: ConstructorType<[], EventType<Then>>,\n rightSrc?: ConstructorType<[], EventType<Else>>,\n): EventType<Then | Else> => {\n return (u) => {\n let destructor: DestructorType | void;\n conditionSrc((v) => {\n if (destructor !== undefined && typeof destructor === \"function\") {\n destructor();\n }\n let instance: EventType<Then | Else> | null = null;\n if (v) {\n instance = leftSrc();\n } else if (rightSrc) {\n instance = rightSrc();\n }\n if (instance) {\n destructor = instance(u);\n }\n });\n\n return () => {\n destructor?.();\n };\n };\n};\n","import { all, EventType, of } from \"silentium\";\n\n/**\n * Boolean source what checks what string matches pattern\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport const regexpMatched = (\n patternSrc: EventType<string>,\n valueSrc: EventType<string>,\n flagsSrc: EventType<string> = of(\"\"),\n): EventType<boolean> => {\n return (u) => {\n all(\n patternSrc,\n valueSrc,\n flagsSrc,\n )(([pattern, value, flags]) => {\n u(new RegExp(pattern, flags).test(value));\n });\n };\n};\n","import { all, EventType, of } from \"silentium\";\n\n/**\n * Returns string replaced by regular expression pattern\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-replaced\n */\nexport const regexpReplaced = (\n valueSrc: EventType<string>,\n patternSrc: EventType<string>,\n replaceValueSrc: EventType<string>,\n flagsSrc: EventType<string> = of(\"\"),\n): EventType<string> => {\n return (u) => {\n all(\n patternSrc,\n valueSrc,\n replaceValueSrc,\n flagsSrc,\n )(([pattern, value, replaceValue, flags]) => {\n u(String(value).replace(new RegExp(pattern, flags), replaceValue));\n });\n };\n};\n","import { all, EventType, of } from \"silentium\";\n\n/**\n * First match of regexp\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport const regexpMatch = (\n patternSrc: EventType<string>,\n valueSrc: EventType<string>,\n flagsSrc: EventType<string> = of(\"\"),\n): EventType<string[]> => {\n return (u) => {\n all(\n patternSrc,\n valueSrc,\n flagsSrc,\n )(([pattern, value, flags]) => {\n const result = new RegExp(pattern, flags).exec(value);\n u(result ?? []);\n });\n };\n};\n","import { all, EventType } from \"silentium\";\n\n/**\n * Ability to mutate some object, helpful when integrate to procedure systems\n * https://silentium-lab.github.io/silentium-components/#/system/set\n */\nexport const set = <T extends Record<string, unknown>>(\n baseSrc: EventType<T>,\n keySrc: EventType<string>,\n valueSrc: EventType<unknown>,\n): EventType<T> => {\n return (u) => {\n all(\n baseSrc,\n keySrc,\n valueSrc,\n )(([base, key, value]) => {\n (base as Record<string, unknown>)[key] = value;\n u(base);\n });\n };\n};\n","import {\n all,\n applied,\n EventType,\n destructor,\n DestructorType,\n of,\n ConstructorType,\n} from \"silentium\";\nimport { branchLazy } from \"../behaviors/BranchLazy\";\nimport { regexpMatched } from \"../system\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n template: ConstructorType<[], EventType<T>>;\n}\n\nconst emptySrc = () => of(false);\n\n/**\n * Router component what will return template if url matches pattern\n * https://silentium-lab.github.io/silentium-components/#/navigation/router\n */\nexport const router = <T = \"string\">(\n urlSrc: EventType<string>,\n routesSrc: EventType<Route<T>[]>,\n defaultSrc: ConstructorType<[], EventType<T>>,\n): EventType<T> => {\n return (u) => {\n const destructors: DestructorType[] = [];\n const destroyAllData = () => {\n destructors.forEach((d) => d());\n destructors.length = 0;\n };\n all(\n routesSrc,\n urlSrc,\n )(([routes, url]) => {\n destroyAllData();\n const instance = all(\n defaultSrc(),\n all(\n ...routes.map(\n (r) =>\n destructor(\n branchLazy(\n regexpMatched(\n of(r.pattern),\n of(url),\n r.patternFlags ? of(r.patternFlags) : undefined,\n ),\n r.template,\n emptySrc,\n ),\n (d: DestructorType) => destructors.push(d),\n ).value,\n ),\n ),\n );\n\n // Return first not false or default\n applied(instance, (r) => {\n const firstReal = r[1].find((r) => r !== false);\n\n if (firstReal) {\n return firstReal as T;\n }\n\n return r[0];\n })(u);\n });\n\n return destroyAllData;\n };\n};\n","import { all, EventType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport const and = (\n oneSrc: EventType<boolean>,\n twoSrc: EventType<boolean>,\n): EventType<boolean> => {\n return (u) => {\n all(\n oneSrc,\n twoSrc,\n )(([one, two]) => {\n u(one && two);\n });\n };\n};\n","import { all, EventType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport const or = (\n oneSrc: EventType<boolean>,\n twoSrc: EventType<boolean>,\n): EventType<boolean> => {\n return (u) => {\n all(\n oneSrc,\n twoSrc,\n )(([one, two]) => {\n u(one || two);\n });\n };\n};\n","import { EventType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport const not = (baseSrc: EventType<boolean>): EventType<boolean> => {\n return (u) => {\n baseSrc((v) => {\n u(!v);\n });\n };\n};\n","import { applied, EventType } from \"silentium\";\n\n/**\n * Convert any source to boolean source\n * https://silentium-lab.github.io/silentium-components/#/boolean/bool\n */\nexport const bool = (baseSrc: EventType): EventType<boolean> => {\n return (u) => {\n applied(baseSrc, Boolean)(u);\n };\n};\n","import { EventType, EventUserType } from \"silentium\";\n\n/**\n * Represents object from json\n */\nexport const fromJson = <T = Record<string, unknown>>(\n jsonSrc: EventType<string>,\n errorOwner?: EventUserType,\n): EventType<T> => {\n return (u) => {\n jsonSrc((json) => {\n try {\n u(JSON.parse(json));\n } catch (error) {\n errorOwner?.(new Error(`Failed to parse JSON: ${error}`));\n }\n });\n };\n};\n","import { EventType, EventUserType } from \"silentium\";\n\n/**\n * Represents json from object\n */\nexport const toJson = (\n dataSrc: EventType,\n errorOwner?: EventUserType,\n): EventType<string> => {\n return (u) => {\n dataSrc((data: unknown) => {\n try {\n u(JSON.stringify(data));\n } catch {\n errorOwner?.(new Error(\"Failed to convert to JSON\"));\n }\n });\n };\n};\n","import { applied, EventType } from \"silentium\";\n\n/**\n * Represents the first element of an array.\n */\nexport const first = <T extends Array<unknown>>(\n baseSrc: EventType<T>,\n): EventType<T[0]> => {\n return (u) => {\n applied(baseSrc, (a) => a[0])(u);\n };\n};\n"],"names":["primitive","shared","filtered","isFilled","late","applied","all","executorApplied","of","vars","destructor","r"],"mappings":"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"}
|
|
@@ -1,29 +1,31 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EventType, EventUserType, SourceType, ConstructorType } from 'silentium';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/branch
|
|
5
5
|
*/
|
|
6
|
-
declare const branch: <Then, Else>(conditionSrc:
|
|
6
|
+
declare const branch: <Then, Else>(conditionSrc: EventType<boolean>, leftSrc: EventType<Then>, rightSrc?: EventType<Else>) => EventType<Then | Else>;
|
|
7
7
|
|
|
8
|
-
declare const constant: <T>(permanentValue: T, triggerSrc:
|
|
8
|
+
declare const constant: <T>(permanentValue: T, triggerSrc: EventType) => EventType<T>;
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/path
|
|
12
12
|
*/
|
|
13
|
-
declare const deadline: <T>(error:
|
|
13
|
+
declare const deadline: <T>(error: EventUserType<Error>, baseSrc: EventType<T>, timeoutSrc: EventType<number>) => EventType<T>;
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Defer one source after another, gives values of baseSrc only when triggerSrc responds
|
|
17
17
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/deferred
|
|
18
18
|
*/
|
|
19
|
-
declare const deferred: <T>(baseSrc:
|
|
19
|
+
declare const deferred: <T>(baseSrc: EventType<T>, triggerSrc: EventType<unknown>) => EventType<T>;
|
|
20
|
+
|
|
21
|
+
declare const detached: <T>(baseSrc: EventType<T>) => EventType<T>;
|
|
20
22
|
|
|
21
23
|
/**
|
|
22
24
|
* Takes source and remember it first value
|
|
23
25
|
* returns new record, what will contain only fields what was changed
|
|
24
26
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/dirty
|
|
25
27
|
*/
|
|
26
|
-
declare const dirty: <T>(baseEntitySource:
|
|
28
|
+
declare const dirty: <T>(baseEntitySource: EventType<T>, alwaysKeep?: string[], excludeKeys?: string[], cloneFn?: (v: T) => T) => SourceType<T>;
|
|
27
29
|
|
|
28
30
|
/**
|
|
29
31
|
* Representation of loading process
|
|
@@ -31,152 +33,152 @@ declare const dirty: <T>(baseEntitySource: DataType<T>, alwaysKeep?: string[], e
|
|
|
31
33
|
* second information source stops loading
|
|
32
34
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/loading
|
|
33
35
|
*/
|
|
34
|
-
declare const loading: (loadingStartSrc:
|
|
36
|
+
declare const loading: (loadingStartSrc: EventType<unknown>, loadingFinishSrc: EventType<unknown>) => EventType<boolean>;
|
|
35
37
|
|
|
36
38
|
/**
|
|
37
39
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/lock
|
|
38
40
|
*/
|
|
39
|
-
declare const lock: <T>(baseSrc:
|
|
41
|
+
declare const lock: <T>(baseSrc: EventType<T>, lockSrc: EventType<boolean>) => EventType<T>;
|
|
40
42
|
|
|
41
43
|
/**
|
|
42
44
|
* Didn't respond if new value of baseSrc equals to old value
|
|
43
45
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/memo
|
|
44
46
|
*/
|
|
45
|
-
declare const memo: <T>(baseSrc:
|
|
47
|
+
declare const memo: <T>(baseSrc: EventType<T>) => EventType<T>;
|
|
46
48
|
|
|
47
49
|
/**
|
|
48
50
|
* Represents source what was changed at least once
|
|
49
51
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/only-changed
|
|
50
52
|
*/
|
|
51
|
-
declare const onlyChanged: <T>(baseSrc:
|
|
53
|
+
declare const onlyChanged: <T>(baseSrc: EventType<T>) => EventType<T>;
|
|
52
54
|
|
|
53
55
|
/**
|
|
54
56
|
* Return source of record path
|
|
55
57
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/path
|
|
56
58
|
*/
|
|
57
|
-
declare const part: <R, T extends Record<string, unknown> | Array<unknown> = any, K extends string = any>(baseSrc: SourceType<T>, keySrc:
|
|
59
|
+
declare const part: <R, T extends Record<string, unknown> | Array<unknown> = any, K extends string = any>(baseSrc: SourceType<T>, keySrc: EventType<K>) => SourceType<R>;
|
|
58
60
|
|
|
59
61
|
/**
|
|
60
62
|
* Return source of record path
|
|
61
63
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/path
|
|
62
64
|
*/
|
|
63
|
-
declare const path: <R, T extends Record<string, unknown> | Array<unknown> = any, K extends string = any>(baseSrc:
|
|
65
|
+
declare const path: <R, T extends Record<string, unknown> | Array<unknown> = any, K extends string = any>(baseSrc: EventType<T>, keySrc: EventType<K>) => EventType<R>;
|
|
64
66
|
|
|
65
|
-
declare const polling: <T>(baseSrc:
|
|
67
|
+
declare const polling: <T>(baseSrc: EventType<T>, triggerSrc: EventType<T>) => EventType<T>;
|
|
66
68
|
|
|
67
69
|
/**
|
|
68
70
|
* Helps to represent only last fresh value of some source, refreshing controls by shotSrc
|
|
69
71
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/shot
|
|
70
72
|
*/
|
|
71
|
-
declare const shot: <T>(targetSrc:
|
|
73
|
+
declare const shot: <T>(targetSrc: EventType<T>, triggerSrc: EventType) => EventType<T>;
|
|
74
|
+
|
|
75
|
+
declare const task: <T>(baseSrc: EventType<T>, delay?: number) => EventType<T>;
|
|
72
76
|
|
|
73
77
|
/**
|
|
74
78
|
* Accumulates the last value of the source and returns one result once per tick
|
|
75
79
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/tick
|
|
76
80
|
*/
|
|
77
|
-
declare const tick: <T>(baseSrc:
|
|
78
|
-
|
|
79
|
-
declare const task: <T>(baseSrc: DataType<T>, delay?: number) => DataType<T>;
|
|
81
|
+
declare const tick: <T>(baseSrc: EventType<T>) => EventType<T>;
|
|
80
82
|
|
|
81
83
|
/**
|
|
82
84
|
* https://silentium-lab.github.io/silentium-components/#/structures/hash-table
|
|
83
85
|
*/
|
|
84
|
-
declare const hashTable: <T>(baseSrc:
|
|
86
|
+
declare const hashTable: <T>(baseSrc: EventType<[string, unknown]>) => EventType<T>;
|
|
85
87
|
|
|
86
|
-
type UnInformation<T> = T extends
|
|
88
|
+
type UnInformation<T> = T extends EventType<infer U> ? U : never;
|
|
87
89
|
/**
|
|
88
90
|
* Returns record of data from record of sources
|
|
89
91
|
* https://silentium-lab.github.io/silentium-components/#/structures/record
|
|
90
92
|
*/
|
|
91
|
-
declare const recordOf: <T extends
|
|
93
|
+
declare const recordOf: <T extends EventType>(recordSrc: Record<string, T>) => EventType<Record<string, UnInformation<T>>>;
|
|
92
94
|
|
|
93
95
|
/**
|
|
94
96
|
* Join sources of strings to one source
|
|
95
97
|
* https://silentium-lab.github.io/silentium-components/#/string/concatenated
|
|
96
98
|
*/
|
|
97
|
-
declare const concatenated: (sources:
|
|
99
|
+
declare const concatenated: (sources: EventType<string>[], joinPartSrc?: EventType<string>) => EventType<string>;
|
|
98
100
|
|
|
99
|
-
declare const template: (theSrc?:
|
|
100
|
-
value:
|
|
101
|
+
declare const template: (theSrc?: EventType<string>, placesSrc?: EventType<Record<string, unknown>>) => {
|
|
102
|
+
value: EventType<string>;
|
|
101
103
|
template: (value: string) => void;
|
|
102
104
|
/**
|
|
103
105
|
* Ability to register variable
|
|
104
106
|
* in concrete place of template
|
|
105
107
|
*/
|
|
106
|
-
var: (src:
|
|
108
|
+
var: (src: EventType<string>) => string;
|
|
107
109
|
destroy(): void;
|
|
108
110
|
};
|
|
109
111
|
|
|
110
112
|
interface Route<T> {
|
|
111
113
|
pattern: string;
|
|
112
114
|
patternFlags?: string;
|
|
113
|
-
template:
|
|
115
|
+
template: ConstructorType<[], EventType<T>>;
|
|
114
116
|
}
|
|
115
117
|
/**
|
|
116
118
|
* Router component what will return template if url matches pattern
|
|
117
119
|
* https://silentium-lab.github.io/silentium-components/#/navigation/router
|
|
118
120
|
*/
|
|
119
|
-
declare const router: <T = "string">(urlSrc:
|
|
121
|
+
declare const router: <T = "string">(urlSrc: EventType<string>, routesSrc: EventType<Route<T>[]>, defaultSrc: ConstructorType<[], EventType<T>>) => EventType<T>;
|
|
120
122
|
|
|
121
123
|
/**
|
|
122
124
|
* Boolean source what checks what string matches pattern
|
|
123
125
|
* https://silentium-lab.github.io/silentium-components/#/system/regexp-matched
|
|
124
126
|
*/
|
|
125
|
-
declare const regexpMatched: (patternSrc:
|
|
127
|
+
declare const regexpMatched: (patternSrc: EventType<string>, valueSrc: EventType<string>, flagsSrc?: EventType<string>) => EventType<boolean>;
|
|
126
128
|
|
|
127
129
|
/**
|
|
128
130
|
* Returns string replaced by regular expression pattern
|
|
129
131
|
* https://silentium-lab.github.io/silentium-components/#/system/regexp-replaced
|
|
130
132
|
*/
|
|
131
|
-
declare const regexpReplaced: (valueSrc:
|
|
133
|
+
declare const regexpReplaced: (valueSrc: EventType<string>, patternSrc: EventType<string>, replaceValueSrc: EventType<string>, flagsSrc?: EventType<string>) => EventType<string>;
|
|
132
134
|
|
|
133
135
|
/**
|
|
134
136
|
* First match of regexp
|
|
135
137
|
* https://silentium-lab.github.io/silentium-components/#/system/regexp-matched
|
|
136
138
|
*/
|
|
137
|
-
declare const regexpMatch: (patternSrc:
|
|
139
|
+
declare const regexpMatch: (patternSrc: EventType<string>, valueSrc: EventType<string>, flagsSrc?: EventType<string>) => EventType<string[]>;
|
|
138
140
|
|
|
139
141
|
/**
|
|
140
142
|
* Ability to mutate some object, helpful when integrate to procedure systems
|
|
141
143
|
* https://silentium-lab.github.io/silentium-components/#/system/set
|
|
142
144
|
*/
|
|
143
|
-
declare const set: <T extends Record<string, unknown>>(baseSrc:
|
|
145
|
+
declare const set: <T extends Record<string, unknown>>(baseSrc: EventType<T>, keySrc: EventType<string>, valueSrc: EventType<unknown>) => EventType<T>;
|
|
144
146
|
|
|
145
147
|
/**
|
|
146
148
|
* https://silentium-lab.github.io/silentium-components/#/boolean/and
|
|
147
149
|
*/
|
|
148
|
-
declare const and: (oneSrc:
|
|
150
|
+
declare const and: (oneSrc: EventType<boolean>, twoSrc: EventType<boolean>) => EventType<boolean>;
|
|
149
151
|
|
|
150
152
|
/**
|
|
151
153
|
* https://silentium-lab.github.io/silentium-components/#/boolean/or
|
|
152
154
|
*/
|
|
153
|
-
declare const or: (oneSrc:
|
|
155
|
+
declare const or: (oneSrc: EventType<boolean>, twoSrc: EventType<boolean>) => EventType<boolean>;
|
|
154
156
|
|
|
155
157
|
/**
|
|
156
158
|
* https://silentium-lab.github.io/silentium-components/#/boolean/not
|
|
157
159
|
*/
|
|
158
|
-
declare const not: (baseSrc:
|
|
160
|
+
declare const not: (baseSrc: EventType<boolean>) => EventType<boolean>;
|
|
159
161
|
|
|
160
162
|
/**
|
|
161
163
|
* Convert any source to boolean source
|
|
162
164
|
* https://silentium-lab.github.io/silentium-components/#/boolean/bool
|
|
163
165
|
*/
|
|
164
|
-
declare const bool: (baseSrc:
|
|
166
|
+
declare const bool: (baseSrc: EventType) => EventType<boolean>;
|
|
165
167
|
|
|
166
168
|
/**
|
|
167
169
|
* Represents object from json
|
|
168
170
|
*/
|
|
169
|
-
declare const fromJson: <T = Record<string, unknown>>(jsonSrc:
|
|
171
|
+
declare const fromJson: <T = Record<string, unknown>>(jsonSrc: EventType<string>, errorOwner?: EventUserType) => EventType<T>;
|
|
170
172
|
|
|
171
173
|
/**
|
|
172
174
|
* Represents json from object
|
|
173
175
|
*/
|
|
174
|
-
declare const toJson: (dataSrc:
|
|
176
|
+
declare const toJson: (dataSrc: EventType, errorOwner?: EventUserType) => EventType<string>;
|
|
175
177
|
|
|
176
178
|
/**
|
|
177
179
|
* Represents the first element of an array.
|
|
178
180
|
*/
|
|
179
|
-
declare const first: <T extends Array<unknown>>(baseSrc:
|
|
181
|
+
declare const first: <T extends Array<unknown>>(baseSrc: EventType<T>) => EventType<T[0]>;
|
|
180
182
|
|
|
181
|
-
export { and, bool, branch, concatenated, constant, deadline, deferred, dirty, first, fromJson, hashTable, loading, lock, memo, not, onlyChanged, or, part, path, polling, recordOf, regexpMatch, regexpMatched, regexpReplaced, router, set, shot, task, template, tick, toJson };
|
|
183
|
+
export { and, bool, branch, concatenated, constant, deadline, deferred, detached, dirty, first, fromJson, hashTable, loading, lock, memo, not, onlyChanged, or, part, path, polling, recordOf, regexpMatch, regexpMatched, regexpReplaced, router, set, shot, task, template, tick, toJson };
|
|
182
184
|
export type { Route };
|