silentium-components 0.0.65 → 0.0.67

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 (92) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/silentium-components.cjs +215 -215
  3. package/dist/silentium-components.cjs.map +1 -1
  4. package/dist/silentium-components.d.ts +47 -47
  5. package/dist/silentium-components.js +181 -181
  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 +181 -181
  11. package/dist/silentium-components.mjs.map +1 -1
  12. package/package.json +2 -2
  13. package/src/behaviors/Branch._main.test.ts +7 -7
  14. package/src/behaviors/Branch.branchesDontAffectResult.test.ts +7 -7
  15. package/src/behaviors/Branch.dontRespondAfterRespond.test.ts +7 -7
  16. package/src/behaviors/Branch.ts +9 -9
  17. package/src/behaviors/BranchLazy._main.test.ts +7 -7
  18. package/src/behaviors/BranchLazy.ts +9 -9
  19. package/src/behaviors/Const.test.ts +4 -4
  20. package/src/behaviors/Const.ts +5 -5
  21. package/src/behaviors/Deadline._main.test.ts +4 -4
  22. package/src/behaviors/Deadline._value.test.ts +4 -4
  23. package/src/behaviors/Deadline.ts +8 -8
  24. package/src/behaviors/Deferred.test.ts +6 -6
  25. package/src/behaviors/Deferred.ts +8 -8
  26. package/src/behaviors/Detached.test.ts +4 -4
  27. package/src/behaviors/Detached.ts +4 -4
  28. package/src/behaviors/Dirty.test.ts +4 -4
  29. package/src/behaviors/Dirty.ts +9 -9
  30. package/src/behaviors/Loading.test.ts +5 -5
  31. package/src/behaviors/Loading.ts +7 -7
  32. package/src/behaviors/Lock.test.ts +6 -6
  33. package/src/behaviors/Lock.ts +7 -7
  34. package/src/behaviors/Memo.test.ts +4 -4
  35. package/src/behaviors/Memo.ts +5 -5
  36. package/src/behaviors/OnlyChanged.test.ts +4 -4
  37. package/src/behaviors/OnlyChanged.ts +4 -4
  38. package/src/behaviors/Part.test.ts +5 -5
  39. package/src/behaviors/Part.ts +10 -14
  40. package/src/behaviors/Path._main.test.ts +3 -3
  41. package/src/behaviors/Path.index.test.ts +3 -3
  42. package/src/behaviors/Path.nested.test.ts +3 -3
  43. package/src/behaviors/Path.ts +8 -12
  44. package/src/behaviors/Polling.test.ts +4 -4
  45. package/src/behaviors/Polling.ts +5 -5
  46. package/src/behaviors/Shot._main.test.ts +5 -5
  47. package/src/behaviors/Shot._onlyChanged.test.ts +6 -6
  48. package/src/behaviors/Shot.ts +8 -8
  49. package/src/behaviors/Task.ts +7 -7
  50. package/src/behaviors/Tick.test.ts +5 -5
  51. package/src/behaviors/Tick.ts +5 -5
  52. package/src/boolean/And.test.ts +5 -5
  53. package/src/boolean/And.ts +7 -7
  54. package/src/boolean/Bool.test.ts +3 -3
  55. package/src/boolean/Bool.ts +6 -6
  56. package/src/boolean/Not.test.ts +4 -4
  57. package/src/boolean/Not.ts +4 -4
  58. package/src/boolean/Or.test.ts +5 -5
  59. package/src/boolean/Or.ts +7 -7
  60. package/src/formats/FromJson.test.ts +4 -4
  61. package/src/formats/FromJson.ts +5 -5
  62. package/src/formats/ToJson.test.ts +4 -4
  63. package/src/formats/ToJson.ts +5 -5
  64. package/src/lists/First.test.ts +3 -3
  65. package/src/lists/First.ts +7 -7
  66. package/src/navigation/Router._main.test.ts +9 -9
  67. package/src/navigation/Router._nested.test.ts +20 -20
  68. package/src/navigation/Router.ts +23 -23
  69. package/src/strings/Concatenated.test.ts +5 -5
  70. package/src/strings/Concatenated.ts +9 -9
  71. package/src/strings/Template._main.test.ts +11 -11
  72. package/src/strings/Template._place.test.ts +4 -4
  73. package/src/strings/Template.ts +19 -19
  74. package/src/structures/HashTable.test.ts +4 -4
  75. package/src/structures/HashTable.ts +5 -5
  76. package/src/structures/Record._main.test.ts +6 -6
  77. package/src/structures/Record.concatenated.test.ts +10 -10
  78. package/src/structures/Record.nested.test.ts +9 -9
  79. package/src/structures/RecordOf.ts +8 -8
  80. package/src/system/RegexpMatch._group.test.ts +5 -5
  81. package/src/system/RegexpMatch._main.test.ts +5 -5
  82. package/src/system/RegexpMatch.ts +9 -9
  83. package/src/system/RegexpMatched.test.ts +4 -4
  84. package/src/system/RegexpMatched.ts +8 -8
  85. package/src/system/RegexpReplaced.test.ts +4 -4
  86. package/src/system/RegexpReplaced.ts +8 -8
  87. package/src/system/Set.test.ts +4 -4
  88. package/src/system/Set.ts +7 -7
  89. package/docs/assets/js/components/linkDynamic.mjs +0 -14
  90. package/docs/assets/js/components/linkReloadable.mjs +0 -17
  91. package/docs/assets/js/components.mjs +0 -2
  92. package/docs/assets/js/index.mjs +0 -271
@@ -1 +1 @@
1
- {"version":3,"file":"silentium-components.mjs","sources":["../src/behaviors/Branch.ts","../src/behaviors/BranchLazy.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/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, 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 { 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 return function Detached(user) {\n const v = primitive(baseSrc).primitive();\n if (isFilled(v)) {\n user(v);\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 { 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 { regexpMatched } from \"../system\";\nimport { branchLazy } from \"../behaviors\";\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":["vars","r"],"mappings":"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"}
1
+ {"version":3,"file":"silentium-components.mjs","sources":["../src/behaviors/Branch.ts","../src/behaviors/BranchLazy.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/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 function Branch<Then, Else>(\n conditionSrc: EventType<boolean>,\n leftSrc: EventType<Then>,\n rightSrc?: EventType<Else>,\n): EventType<Then | Else> {\n return (user) => {\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 user(result);\n }\n });\n };\n}\n","import { EventType, DestructorType, ConstructorType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport function BranchLazy<Then, Else>(\n conditionSrc: EventType<boolean>,\n leftSrc: ConstructorType<[], EventType<Then>>,\n rightSrc?: ConstructorType<[], EventType<Else>>,\n): EventType<Then | Else> {\n return (user) => {\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(user);\n }\n });\n\n return () => {\n Destructor?.();\n };\n };\n}\n","import { EventType } from \"silentium\";\n\nexport function Constant<T>(\n permanentValue: T,\n triggerSrc: EventType,\n): EventType<T> {\n return (user) => {\n triggerSrc(() => {\n user(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 function Deadline<T>(\n error: EventUserType<Error>,\n baseSrc: EventType<T>,\n timeoutSrc: EventType<number>,\n): EventType<T> {\n return (user) => {\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(user);\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 function Deferred<T>(\n baseSrc: EventType<T>,\n triggerSrc: EventType<unknown>,\n): EventType<T> {\n return (user) => {\n const baseSync = Primitive(baseSrc);\n triggerSrc(() => {\n const value = baseSync.primitive();\n if (isFilled(value)) {\n user(value);\n }\n });\n };\n}\n","import { EventType, isFilled, Primitive } from \"silentium\";\n\nexport function Detached<T>(baseSrc: EventType<T>): EventType<T> {\n return function Detached(user) {\n const v = Primitive(baseSrc).primitive();\n if (isFilled(v)) {\n user(v);\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 function 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: (user) => {\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 user(\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 function Loading(\n loadingStartSrc: EventType<unknown>,\n loadingFinishSrc: EventType<unknown>,\n): EventType<boolean> {\n return (user) => {\n loadingStartSrc(() => user(true));\n loadingFinishSrc(() => user(false));\n };\n}\n","import { EventType, Filtered } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport function Lock<T>(\n baseSrc: EventType<T>,\n lockSrc: EventType<boolean>,\n): EventType<T> {\n return (user) => {\n let locked = false;\n lockSrc((newLock) => {\n locked = newLock;\n });\n const i = Filtered(baseSrc, () => !locked);\n i(user);\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 function Memo<T>(baseSrc: EventType<T>): EventType<T> {\n return (user) => {\n let lastValue: T | null = null;\n\n baseSrc((v) => {\n if (v !== lastValue) {\n user(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 function OnlyChanged<T>(baseSrc: EventType<T>): EventType<T> {\n return (user) => {\n let firstValue = false;\n\n baseSrc((v) => {\n if (firstValue === false) {\n firstValue = true;\n } else {\n user(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 function Part<R, T extends object | Array<any>, K extends string = any>(\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: (user) => {\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 user(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 function Path<R, T extends object | Array<any>, K extends string = any>(\n baseSrc: EventType<T>,\n keySrc: EventType<K>,\n): EventType<R> {\n return (user) => {\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 user(value as R);\n }\n });\n };\n}\n","import { EventType } from \"silentium\";\n\nexport function Polling<T>(\n baseSrc: EventType<T>,\n triggerSrc: EventType<T>,\n): EventType<T> {\n return (user) => {\n triggerSrc(() => {\n baseSrc(user);\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 function Shot<T>(\n targetSrc: EventType<T>,\n triggerSrc: EventType,\n): EventType<T> {\n return (user) => {\n const targetSync = Primitive(targetSrc);\n\n triggerSrc(() => {\n const value = targetSync.primitive();\n if (isFilled(value)) {\n user(value);\n }\n });\n };\n}\n","import { EventType, ExecutorApplied } from \"silentium\";\n\nexport function Task<T>(\n baseSrc: EventType<T>,\n delay: number = 0,\n): EventType<T> {\n return (user) => {\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 })(user);\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 function Tick<T>(baseSrc: EventType<T>): EventType<T> {\n return (user) => {\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 user(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 function HashTable<T>(\n baseSrc: EventType<[string, unknown]>,\n): EventType<T> {\n return (user) => {\n const record: Record<string, unknown> = {};\n\n baseSrc(([key, value]) => {\n record[key] = value;\n user(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 function RecordOf<T extends EventType>(\n recordSrc: Record<string, T>,\n): EventType<Record<string, UnInformation<T>>> {\n return (user) => {\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 user(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 function Concatenated(\n sources: EventType<string>[],\n joinPartSrc: EventType<string> = Of(\"\"),\n): EventType<string> {\n return (user) => {\n All(\n joinPartSrc,\n ...sources,\n )(([joinPart, ...strings]) => {\n user(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 function 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>>((user) => {\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 })(user);\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 }).event;\n return varName;\n },\n destroy() {\n destructors.forEach((d) => d());\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 function RegexpMatched(\n patternSrc: EventType<string>,\n valueSrc: EventType<string>,\n flagsSrc: EventType<string> = Of(\"\"),\n): EventType<boolean> {\n return (user) => {\n All(\n patternSrc,\n valueSrc,\n flagsSrc,\n )(([pattern, value, flags]) => {\n user(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 function RegexpReplaced(\n valueSrc: EventType<string>,\n patternSrc: EventType<string>,\n replaceValueSrc: EventType<string>,\n flagsSrc: EventType<string> = Of(\"\"),\n): EventType<string> {\n return (user) => {\n All(\n patternSrc,\n valueSrc,\n replaceValueSrc,\n flagsSrc,\n )(([pattern, value, replaceValue, flags]) => {\n user(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 function RegexpMatch(\n patternSrc: EventType<string>,\n valueSrc: EventType<string>,\n flagsSrc: EventType<string> = Of(\"\"),\n): EventType<string[]> {\n return (user) => {\n All(\n patternSrc,\n valueSrc,\n flagsSrc,\n )(([pattern, value, flags]) => {\n const result = new RegExp(pattern, flags).exec(value);\n user(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 function Set<T extends Record<string, unknown>>(\n baseSrc: EventType<T>,\n keySrc: EventType<string>,\n valueSrc: EventType<unknown>,\n): EventType<T> {\n return (user) => {\n All(\n baseSrc,\n keySrc,\n valueSrc,\n )(([base, key, value]) => {\n (base as Record<string, unknown>)[key] = value;\n user(base);\n });\n };\n}\n","import {\n All,\n Applied,\n EventType,\n Destructor,\n DestructorType,\n Of,\n ConstructorType,\n} from \"silentium\";\nimport { RegexpMatched } from \"../system\";\nimport { BranchLazy } from \"../behaviors\";\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 function Router<T = \"string\">(\n urlSrc: EventType<string>,\n routesSrc: EventType<Route<T>[]>,\n defaultSrc: ConstructorType<[], EventType<T>>,\n): EventType<T> {\n return (user) => {\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 ).event,\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 })(user);\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 function And(\n oneSrc: EventType<boolean>,\n twoSrc: EventType<boolean>,\n): EventType<boolean> {\n return (user) => {\n All(\n oneSrc,\n twoSrc,\n )(([one, two]) => {\n user(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 function Or(\n oneSrc: EventType<boolean>,\n twoSrc: EventType<boolean>,\n): EventType<boolean> {\n return (user) => {\n All(\n oneSrc,\n twoSrc,\n )(([one, two]) => {\n user(one || two);\n });\n };\n}\n","import { EventType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport function Not(baseSrc: EventType<boolean>): EventType<boolean> {\n return (user) => {\n baseSrc((v) => {\n user(!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 function Bool(baseSrc: EventType): EventType<boolean> {\n return (user) => {\n Applied(baseSrc, Boolean)(user);\n };\n}\n","import { EventType, EventUserType } from \"silentium\";\n\n/**\n * Represents object from json\n */\nexport function FromJson<T = Record<string, unknown>>(\n jsonSrc: EventType<string>,\n errorOwner?: EventUserType,\n): EventType<T> {\n return (user) => {\n jsonSrc((json) => {\n try {\n user(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 function ToJson(\n dataSrc: EventType,\n errorOwner?: EventUserType,\n): EventType<string> {\n return (user) => {\n dataSrc((data: unknown) => {\n try {\n user(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 function First<T extends Array<unknown>>(\n baseSrc: EventType<T>,\n): EventType<T[0]> {\n return (user) => {\n Applied(baseSrc, (a) => a[0])(user);\n };\n}\n"],"names":["Detached","vars","r"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "silentium-components",
3
- "version": "0.0.65",
3
+ "version": "0.0.67",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "dist/silentium-components.js",
@@ -60,6 +60,6 @@
60
60
  }
61
61
  },
62
62
  "dependencies": {
63
- "silentium": "0.0.101"
63
+ "silentium": "0.0.106"
64
64
  }
65
65
  }
@@ -1,15 +1,15 @@
1
- import { applied, late, of } from "silentium";
2
- import { branch } from "../behaviors/Branch";
1
+ import { Applied, Late, Of } from "silentium";
2
+ import { Branch } from "../behaviors/Branch";
3
3
  import { expect, test, vi } from "vitest";
4
4
 
5
5
  test("Branch._main.test", () => {
6
- const l = late<number>(2);
7
- const res = branch(
8
- applied(l.event, (t) => {
6
+ const l = Late<number>(2);
7
+ const res = Branch(
8
+ Applied(l.event, (t) => {
9
9
  return t === 2;
10
10
  }),
11
- of("Then ветка"),
12
- of("Else ветка"),
11
+ Of("Then ветка"),
12
+ Of("Else ветка"),
13
13
  );
14
14
 
15
15
  const g = vi.fn();
@@ -1,13 +1,13 @@
1
- import { applied, late, of } from "silentium";
2
- import { branch } from "../behaviors/Branch";
1
+ import { Applied, Late, Of } from "silentium";
2
+ import { Branch } from "../behaviors/Branch";
3
3
  import { expect, test, vi } from "vitest";
4
4
 
5
5
  test("Branch.branchesDontAffectResult.test", () => {
6
- const l = late<number>(2);
7
- const el = late<string>("else");
8
- const boolSync = branch(
9
- applied(l.event, (t) => t === 2),
10
- of("then"),
6
+ const l = Late<number>(2);
7
+ const el = Late<string>("else");
8
+ const boolSync = Branch(
9
+ Applied(l.event, (t) => t === 2),
10
+ Of("then"),
11
11
  el.event,
12
12
  );
13
13
  const g = vi.fn();
@@ -1,13 +1,13 @@
1
- import { applied, late, of, shared } from "silentium";
1
+ import { Applied, Late, Of, Shared } from "silentium";
2
2
  import { expect, test, vi } from "vitest";
3
- import { branch } from "../behaviors/Branch";
3
+ import { Branch } from "../behaviors/Branch";
4
4
 
5
5
  test("Branch.dontRespondAfterRespond.test", () => {
6
- const l = late<number>(1);
7
- const ti = of<any>("then");
8
- const branchI = shared(
9
- branch(
10
- applied(l.event, (t) => t === 2),
6
+ const l = Late<number>(1);
7
+ const ti = Of<any>("then");
8
+ const branchI = Shared(
9
+ Branch(
10
+ Applied(l.event, (t) => t === 2),
11
11
  ti,
12
12
  ),
13
13
  true,
@@ -1,19 +1,19 @@
1
- import { EventType, primitive } from "silentium";
1
+ import { EventType, Primitive } from "silentium";
2
2
 
3
3
  /**
4
4
  * https://silentium-lab.github.io/silentium-components/#/behaviors/branch
5
5
  */
6
- export const branch = <Then, Else>(
6
+ export function Branch<Then, Else>(
7
7
  conditionSrc: EventType<boolean>,
8
8
  leftSrc: EventType<Then>,
9
9
  rightSrc?: EventType<Else>,
10
- ): EventType<Then | Else> => {
11
- return (u) => {
12
- const leftSync = primitive(leftSrc);
13
- let rightSync: ReturnType<typeof primitive<Else>>;
10
+ ): EventType<Then | Else> {
11
+ return (user) => {
12
+ const leftSync = Primitive(leftSrc);
13
+ let rightSync: ReturnType<typeof Primitive<Else>>;
14
14
 
15
15
  if (rightSrc !== undefined) {
16
- rightSync = primitive(rightSrc);
16
+ rightSync = Primitive(rightSrc);
17
17
  }
18
18
 
19
19
  conditionSrc((v) => {
@@ -25,8 +25,8 @@ export const branch = <Then, Else>(
25
25
  }
26
26
 
27
27
  if (result !== null) {
28
- u(result);
28
+ user(result);
29
29
  }
30
30
  });
31
31
  };
32
- };
32
+ }
@@ -1,15 +1,15 @@
1
- import { applied, late, of } from "silentium";
2
- import { branchLazy } from "../behaviors/BranchLazy";
1
+ import { Applied, Late, Of } from "silentium";
2
+ import { BranchLazy } from "../behaviors/BranchLazy";
3
3
  import { expect, test, vi } from "vitest";
4
4
 
5
5
  test("BranchLazy._main.test", () => {
6
- const l = late<number>(2);
7
- const res = branchLazy(
8
- applied(l.event, (t) => {
6
+ const l = Late<number>(2);
7
+ const res = BranchLazy(
8
+ Applied(l.event, (t) => {
9
9
  return t === 2;
10
10
  }),
11
- () => of("Then branch"),
12
- () => of("Else branch"),
11
+ () => Of("Then branch"),
12
+ () => Of("Else branch"),
13
13
  );
14
14
 
15
15
  const g = vi.fn();
@@ -3,16 +3,16 @@ import { EventType, DestructorType, ConstructorType } from "silentium";
3
3
  /**
4
4
  * https://silentium-lab.github.io/silentium-components/#/behaviors/branch
5
5
  */
6
- export const branchLazy = <Then, Else>(
6
+ export function BranchLazy<Then, Else>(
7
7
  conditionSrc: EventType<boolean>,
8
8
  leftSrc: ConstructorType<[], EventType<Then>>,
9
9
  rightSrc?: ConstructorType<[], EventType<Else>>,
10
- ): EventType<Then | Else> => {
11
- return (u) => {
12
- let destructor: DestructorType | void;
10
+ ): EventType<Then | Else> {
11
+ return (user) => {
12
+ let Destructor: DestructorType | void;
13
13
  conditionSrc((v) => {
14
- if (destructor !== undefined && typeof destructor === "function") {
15
- destructor();
14
+ if (Destructor !== undefined && typeof Destructor === "function") {
15
+ Destructor();
16
16
  }
17
17
  let instance: EventType<Then | Else> | null = null;
18
18
  if (v) {
@@ -21,12 +21,12 @@ export const branchLazy = <Then, Else>(
21
21
  instance = rightSrc();
22
22
  }
23
23
  if (instance) {
24
- destructor = instance(u);
24
+ Destructor = instance(user);
25
25
  }
26
26
  });
27
27
 
28
28
  return () => {
29
- destructor?.();
29
+ Destructor?.();
30
30
  };
31
31
  };
32
- };
32
+ }
@@ -1,10 +1,10 @@
1
- import { late } from "silentium";
2
- import { constant } from "../behaviors/Const";
1
+ import { Late } from "silentium";
2
+ import { Constant } from "../behaviors/Const";
3
3
  import { expect, test } from "vitest";
4
4
 
5
5
  test("Const.test", () => {
6
- const triggerSrc = late(1);
7
- const src = constant("val", triggerSrc.event);
6
+ const triggerSrc = Late(1);
7
+ const src = Constant("val", triggerSrc.event);
8
8
  const data: string[] = [];
9
9
  src((v) => {
10
10
  data.push(v);
@@ -1,12 +1,12 @@
1
1
  import { EventType } from "silentium";
2
2
 
3
- export const constant = <T>(
3
+ export function Constant<T>(
4
4
  permanentValue: T,
5
5
  triggerSrc: EventType,
6
- ): EventType<T> => {
7
- return (u) => {
6
+ ): EventType<T> {
7
+ return (user) => {
8
8
  triggerSrc(() => {
9
- u(permanentValue);
9
+ user(permanentValue);
10
10
  });
11
11
  };
12
- };
12
+ }
@@ -1,5 +1,5 @@
1
- import { late, of } from "silentium";
2
- import { deadline } from "../behaviors/Deadline";
1
+ import { Late, Of } from "silentium";
2
+ import { Deadline } from "../behaviors/Deadline";
3
3
  import { afterEach, beforeEach, expect, test, vi } from "vitest";
4
4
 
5
5
  beforeEach(() => {
@@ -12,10 +12,10 @@ afterEach(() => {
12
12
  });
13
13
 
14
14
  test("Deadline._main.test", () => {
15
- const l = late();
15
+ const l = Late();
16
16
  const errorGuest = vi.fn();
17
17
  const g = vi.fn();
18
- deadline(errorGuest, l.event, of(20))(g);
18
+ Deadline(errorGuest, l.event, Of(20))(g);
19
19
 
20
20
  vi.runAllTimers();
21
21
 
@@ -1,6 +1,6 @@
1
- import { late, of } from "silentium";
1
+ import { Late, Of } from "silentium";
2
2
  import { afterEach, beforeEach, expect, test, vi } from "vitest";
3
- import { deadline } from "../behaviors/Deadline";
3
+ import { Deadline } from "../behaviors/Deadline";
4
4
 
5
5
  beforeEach(() => {
6
6
  vi.useFakeTimers({ shouldAdvanceTime: true });
@@ -13,13 +13,13 @@ afterEach(() => {
13
13
 
14
14
  test("Deadline._value.test", () => {
15
15
  const errorGuest = vi.fn();
16
- const l = late<number>();
16
+ const l = Late<number>();
17
17
 
18
18
  setTimeout(() => {
19
19
  l.use(11);
20
20
  }, 10);
21
21
 
22
- const dl = deadline(errorGuest, l.event, of(200));
22
+ const dl = Deadline(errorGuest, l.event, Of(200));
23
23
  const g = vi.fn();
24
24
  dl(g);
25
25
 
@@ -1,17 +1,17 @@
1
- import { EventType, filtered, shared, EventUserType } from "silentium";
1
+ import { EventType, Filtered, Shared, EventUserType } from "silentium";
2
2
 
3
3
  /**
4
4
  * https://silentium-lab.github.io/silentium-components/#/behaviors/path
5
5
  */
6
- export const deadline = <T>(
6
+ export function Deadline<T>(
7
7
  error: EventUserType<Error>,
8
8
  baseSrc: EventType<T>,
9
9
  timeoutSrc: EventType<number>,
10
- ): EventType<T> => {
11
- return (u) => {
10
+ ): EventType<T> {
11
+ return (user) => {
12
12
  let timerHead: unknown = null;
13
13
 
14
- const s = shared(baseSrc, true);
14
+ const s = Shared(baseSrc, true);
15
15
 
16
16
  timeoutSrc((timeout) => {
17
17
  if (timerHead) {
@@ -27,12 +27,12 @@ export const deadline = <T>(
27
27
  error(new Error("Timeout reached in Deadline class"));
28
28
  }, timeout);
29
29
 
30
- const f = filtered(s.event, () => !timeoutReached);
31
- f(u);
30
+ const f = Filtered(s.event, () => !timeoutReached);
31
+ f(user);
32
32
 
33
33
  s.event(() => {
34
34
  timeoutReached = true;
35
35
  });
36
36
  });
37
37
  };
38
- };
38
+ }
@@ -1,12 +1,12 @@
1
- import { late, primitive, shared } from "silentium";
2
- import { deferred } from "../behaviors/Deferred";
1
+ import { Late, Primitive, Shared } from "silentium";
2
+ import { Deferred } from "../behaviors/Deferred";
3
3
  import { expect, test, vi } from "vitest";
4
4
 
5
5
  test("Deferred.test", () => {
6
- const urlSrc = late<string>("http://hello.com");
7
- const layoutSrc = late<string>();
6
+ const urlSrc = Late<string>("http://hello.com");
7
+ const layoutSrc = Late<string>();
8
8
 
9
- const urlWithLayoutSrc = shared(deferred(urlSrc.event, layoutSrc.event));
9
+ const urlWithLayoutSrc = Shared(Deferred(urlSrc.event, layoutSrc.event));
10
10
 
11
11
  const g1 = vi.fn();
12
12
  urlWithLayoutSrc.event(g1);
@@ -19,7 +19,7 @@ test("Deferred.test", () => {
19
19
  urlSrc.use("http://new.com");
20
20
  expect(g2).toHaveBeenCalledWith("http://hello.com");
21
21
 
22
- const urlSync = primitive(urlWithLayoutSrc.event);
22
+ const urlSync = Primitive(urlWithLayoutSrc.event);
23
23
 
24
24
  expect(urlSync.primitive()).toBe("http://hello.com");
25
25
 
@@ -1,20 +1,20 @@
1
- import { EventType, isFilled, primitive } from "silentium";
1
+ import { EventType, isFilled, Primitive } from "silentium";
2
2
 
3
3
  /**
4
- * Defer one source after another, gives values of baseSrc only when triggerSrc responds
4
+ * Defer one source after another, gives values Of baseSrc only when triggerSrc responds
5
5
  * https://silentium-lab.github.io/silentium-components/#/behaviors/deferred
6
6
  */
7
- export const deferred = <T>(
7
+ export function Deferred<T>(
8
8
  baseSrc: EventType<T>,
9
9
  triggerSrc: EventType<unknown>,
10
- ): EventType<T> => {
11
- return (u) => {
12
- const baseSync = primitive(baseSrc);
10
+ ): EventType<T> {
11
+ return (user) => {
12
+ const baseSync = Primitive(baseSrc);
13
13
  triggerSrc(() => {
14
14
  const value = baseSync.primitive();
15
15
  if (isFilled(value)) {
16
- u(value);
16
+ user(value);
17
17
  }
18
18
  });
19
19
  };
20
- };
20
+ }
@@ -1,10 +1,10 @@
1
- import { lateShared } from "silentium";
1
+ import { LateShared } from "silentium";
2
2
  import { expect, test, vi } from "vitest";
3
- import { detached } from "../behaviors/Detached";
3
+ import { Detached } from "../behaviors/Detached";
4
4
 
5
5
  test("Detached.test.ts", function DetachedTest() {
6
- const l = lateShared(1);
7
- const l2 = detached(l.event);
6
+ const l = LateShared(1);
7
+ const l2 = Detached(l.event);
8
8
 
9
9
  const g1 = vi.fn();
10
10
  l2(g1);
@@ -1,10 +1,10 @@
1
- import { EventType, isFilled, primitive } from "silentium";
1
+ import { EventType, isFilled, Primitive } from "silentium";
2
2
 
3
- export const detached = <T>(baseSrc: EventType<T>): EventType<T> => {
3
+ export function Detached<T>(baseSrc: EventType<T>): EventType<T> {
4
4
  return function Detached(user) {
5
- const v = primitive(baseSrc).primitive();
5
+ const v = Primitive(baseSrc).primitive();
6
6
  if (isFilled(v)) {
7
7
  user(v);
8
8
  }
9
9
  };
10
- };
10
+ }
@@ -1,13 +1,13 @@
1
- import { late } from "silentium";
2
- import { dirty } from "../behaviors/Dirty";
1
+ import { Late } from "silentium";
2
+ import { Dirty } from "../behaviors/Dirty";
3
3
  import { expect, test, vi } from "vitest";
4
4
 
5
5
  test("Dirty.test", () => {
6
- const form = late({
6
+ const form = Late({
7
7
  name: "one",
8
8
  surname: "two",
9
9
  });
10
- const d = dirty(form.event);
10
+ const d = Dirty(form.event);
11
11
  const g = vi.fn();
12
12
  d.event(g);
13
13