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.
Files changed (76) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/silentium-components.cjs +41 -27
  3. package/dist/silentium-components.cjs.map +1 -1
  4. package/dist/silentium-components.d.ts +40 -38
  5. package/dist/silentium-components.js +41 -28
  6. package/dist/silentium-components.js.map +1 -1
  7. package/dist/silentium-components.min.js +1 -1
  8. package/dist/silentium-components.min.mjs +1 -1
  9. package/dist/silentium-components.min.mjs.map +1 -1
  10. package/dist/silentium-components.mjs +41 -28
  11. package/dist/silentium-components.mjs.map +1 -1
  12. package/package.json +2 -2
  13. package/src/behaviors/Branch._main.test.ts +2 -2
  14. package/src/behaviors/Branch.branchesDontAffectResult.test.ts +4 -4
  15. package/src/behaviors/Branch.dontRespondAfterRespond.test.ts +9 -9
  16. package/src/behaviors/Branch.ts +5 -5
  17. package/src/behaviors/BranchLazy._main.test.ts +2 -2
  18. package/src/behaviors/BranchLazy.ts +6 -6
  19. package/src/behaviors/Const.test.ts +3 -3
  20. package/src/behaviors/Const.ts +3 -3
  21. package/src/behaviors/Deadline._main.test.ts +1 -1
  22. package/src/behaviors/Deadline._value.test.ts +2 -2
  23. package/src/behaviors/Deadline.ts +7 -7
  24. package/src/behaviors/Deferred.test.ts +7 -7
  25. package/src/behaviors/Deferred.ts +4 -4
  26. package/src/behaviors/Detached.test.ts +20 -0
  27. package/src/behaviors/Detached.ts +14 -0
  28. package/src/behaviors/Dirty.test.ts +3 -3
  29. package/src/behaviors/Dirty.ts +6 -6
  30. package/src/behaviors/Loading.test.ts +4 -4
  31. package/src/behaviors/Loading.ts +4 -4
  32. package/src/behaviors/Lock.test.ts +9 -9
  33. package/src/behaviors/Lock.ts +4 -4
  34. package/src/behaviors/Memo.test.ts +9 -9
  35. package/src/behaviors/Memo.ts +2 -2
  36. package/src/behaviors/OnlyChanged.test.ts +4 -4
  37. package/src/behaviors/OnlyChanged.ts +2 -2
  38. package/src/behaviors/Part.test.ts +2 -2
  39. package/src/behaviors/Part.ts +7 -7
  40. package/src/behaviors/Path.ts +4 -4
  41. package/src/behaviors/Polling.test.ts +7 -7
  42. package/src/behaviors/Polling.ts +4 -4
  43. package/src/behaviors/Shot._main.test.ts +7 -7
  44. package/src/behaviors/Shot._onlyChanged.test.ts +6 -6
  45. package/src/behaviors/Shot.ts +4 -4
  46. package/src/behaviors/Task.ts +3 -3
  47. package/src/behaviors/Tick.test.ts +4 -4
  48. package/src/behaviors/Tick.ts +2 -2
  49. package/src/behaviors/index.ts +2 -1
  50. package/src/boolean/And.test.ts +7 -7
  51. package/src/boolean/And.ts +4 -4
  52. package/src/boolean/Bool.ts +2 -2
  53. package/src/boolean/Not.test.ts +2 -2
  54. package/src/boolean/Not.ts +2 -2
  55. package/src/boolean/Or.test.ts +7 -7
  56. package/src/boolean/Or.ts +4 -4
  57. package/src/formats/FromJson.ts +4 -4
  58. package/src/formats/ToJson.ts +4 -4
  59. package/src/lists/First.ts +3 -3
  60. package/src/navigation/Router._main.test.ts +6 -6
  61. package/src/navigation/Router._nested.test.ts +93 -0
  62. package/src/navigation/Router.ts +7 -7
  63. package/src/strings/Concatenated.ts +4 -4
  64. package/src/strings/Template.ts +6 -6
  65. package/src/structures/HashTable.test.ts +3 -3
  66. package/src/structures/HashTable.ts +3 -3
  67. package/src/structures/Record._main.test.ts +2 -2
  68. package/src/structures/Record.concatenated.test.ts +4 -4
  69. package/src/structures/RecordOf.ts +4 -4
  70. package/src/system/RegexpMatch.ts +5 -5
  71. package/src/system/RegexpMatched.test.ts +2 -2
  72. package/src/system/RegexpMatched.ts +5 -5
  73. package/src/system/RegexpReplaced.test.ts +2 -2
  74. package/src/system/RegexpReplaced.ts +6 -6
  75. package/src/system/Set.test.ts +2 -2
  76. 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.value, () => !timeoutReached);
50
+ const f = silentium.filtered(s.event, () => !timeoutReached);
51
51
  f(u);
52
- s.value(() => {
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
- value: (u) => {
78
- const comparingDetached = silentium.applied(comparingSrc.value, cloneFn);
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
- give: (v) => {
102
- comparingSrc.give(v);
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.value);
164
+ const baseSync = silentium.primitive(baseSrc.event);
152
165
  const keySync = silentium.primitive(keySrc);
153
166
  return {
154
- value: (u) => {
167
+ event: (u) => {
155
168
  silentium.all(
156
- baseSrc.value,
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
- give: (value) => {
182
+ use: (value) => {
170
183
  const key = keySync.primitive();
171
184
  if (silentium.isFilled(key)) {
172
- baseSrc.give({
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 { DataType, DataUserType, SourceType, ValueType } from 'silentium';
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: DataType<boolean>, leftSrc: DataType<Then>, rightSrc?: DataType<Else>) => DataType<Then | Else>;
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: DataType) => DataType<T>;
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: DataUserType<Error>, baseSrc: DataType<T>, timeoutSrc: DataType<number>) => DataType<T>;
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: DataType<T>, triggerSrc: DataType<unknown>) => DataType<T>;
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: DataType<T>, alwaysKeep?: string[], excludeKeys?: string[], cloneFn?: (v: T) => T) => SourceType<T>;
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: DataType<unknown>, loadingFinishSrc: DataType<unknown>) => DataType<boolean>;
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: DataType<T>, lockSrc: DataType<boolean>) => DataType<T>;
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: DataType<T>) => DataType<T>;
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: DataType<T>) => DataType<T>;
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: DataType<K>) => SourceType<R>;
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: DataType<T>, keySrc: DataType<K>) => DataType<R>;
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: DataType<T>, triggerSrc: DataType<T>) => DataType<T>;
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: DataType<T>, triggerSrc: DataType) => DataType<T>;
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: DataType<T>) => DataType<T>;
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: DataType<[string, unknown]>) => DataType<T>;
86
+ declare const hashTable: <T>(baseSrc: EventType<[string, unknown]>) => EventType<T>;
85
87
 
86
- type UnInformation<T> = T extends DataType<infer U> ? U : never;
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 DataType>(recordSrc: Record<string, T>) => DataType<Record<string, UnInformation<T>>>;
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: DataType<string>[], joinPartSrc?: DataType<string>) => DataType<string>;
99
+ declare const concatenated: (sources: EventType<string>[], joinPartSrc?: EventType<string>) => EventType<string>;
98
100
 
99
- declare const template: (theSrc?: DataType<string>, placesSrc?: DataType<Record<string, unknown>>) => {
100
- value: DataType<string>;
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: DataType<string>) => string;
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: ValueType<[], DataType<T>>;
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: DataType<string>, routesSrc: DataType<Route<T>[]>, defaultSrc: ValueType<[], DataType<T>>) => DataType<T>;
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: DataType<string>, valueSrc: DataType<string>, flagsSrc?: DataType<string>) => DataType<boolean>;
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: DataType<string>, patternSrc: DataType<string>, replaceValueSrc: DataType<string>, flagsSrc?: DataType<string>) => DataType<string>;
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: DataType<string>, valueSrc: DataType<string>, flagsSrc?: DataType<string>) => DataType<string[]>;
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: DataType<T>, keySrc: DataType<string>, valueSrc: DataType<unknown>) => DataType<T>;
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: DataType<boolean>, twoSrc: DataType<boolean>) => DataType<boolean>;
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: DataType<boolean>, twoSrc: DataType<boolean>) => DataType<boolean>;
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: DataType<boolean>) => DataType<boolean>;
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: DataType) => DataType<boolean>;
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: DataType<string>, errorOwner?: DataUserType) => DataType<T>;
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: DataType, errorOwner?: DataUserType) => DataType<string>;
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: DataType<T>) => DataType<T[0]>;
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 };