silentium-components 0.0.70 → 0.0.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/silentium-components.cjs +491 -436
- package/dist/silentium-components.cjs.map +1 -1
- package/dist/silentium-components.d.ts +42 -36
- package/dist/silentium-components.js +493 -438
- package/dist/silentium-components.js.map +1 -1
- package/dist/silentium-components.min.js +1 -1
- package/dist/silentium-components.min.mjs +1 -1
- package/dist/silentium-components.min.mjs.map +1 -1
- package/dist/silentium-components.mjs +493 -438
- package/dist/silentium-components.mjs.map +1 -1
- package/package.json +2 -2
- package/src/behaviors/Branch._main.test.ts +3 -3
- package/src/behaviors/Branch.branchesDontAffectResult.test.ts +4 -4
- package/src/behaviors/Branch.dontRespondAfterRespond.test.ts +6 -6
- package/src/behaviors/Branch.ts +23 -24
- package/src/behaviors/BranchLazy._main.test.ts +5 -5
- package/src/behaviors/BranchLazy.ts +31 -23
- package/src/behaviors/Const.test.ts +10 -8
- package/src/behaviors/Const.ts +9 -10
- package/src/behaviors/Deadline._main.test.ts +4 -4
- package/src/behaviors/Deadline._value.test.ts +5 -5
- package/src/behaviors/Deadline.ts +37 -28
- package/src/behaviors/Deferred.test.ts +10 -10
- package/src/behaviors/Deferred.ts +14 -12
- package/src/behaviors/Detached.test.ts +4 -4
- package/src/behaviors/Detached.ts +6 -6
- package/src/behaviors/Dirty.test.ts +3 -3
- package/src/behaviors/Dirty.ts +46 -26
- package/src/behaviors/Loading.test.ts +7 -10
- package/src/behaviors/Loading.ts +9 -9
- package/src/behaviors/Lock.test.ts +3 -3
- package/src/behaviors/Lock.ts +12 -10
- package/src/behaviors/Memo.test.ts +8 -6
- package/src/behaviors/Memo.ts +13 -12
- package/src/behaviors/OnlyChanged.test.ts +4 -4
- package/src/behaviors/OnlyChanged.ts +14 -13
- package/src/behaviors/Part.test.ts +6 -6
- package/src/behaviors/Part.ts +53 -30
- package/src/behaviors/Path._main.test.ts +2 -2
- package/src/behaviors/Path.index.test.ts +2 -2
- package/src/behaviors/Path.nested.test.ts +2 -2
- package/src/behaviors/Path.ts +20 -21
- package/src/behaviors/Polling.test.ts +10 -10
- package/src/behaviors/Polling.ts +10 -8
- package/src/behaviors/Shot._main.test.ts +10 -10
- package/src/behaviors/Shot._onlyChanged.test.ts +13 -11
- package/src/behaviors/Shot.ts +15 -12
- package/src/behaviors/Task.ts +4 -4
- package/src/behaviors/Tick.test.ts +7 -7
- package/src/behaviors/Tick.ts +13 -11
- package/src/behaviors/Transaction.test.ts +3 -3
- package/src/behaviors/Transaction.ts +13 -12
- package/src/boolean/And.test.ts +11 -11
- package/src/boolean/And.ts +10 -11
- package/src/boolean/Bool.test.ts +2 -2
- package/src/boolean/Bool.ts +5 -5
- package/src/boolean/Not.test.ts +3 -3
- package/src/boolean/Not.ts +9 -7
- package/src/boolean/Or.test.ts +3 -3
- package/src/boolean/Or.ts +10 -11
- package/src/formats/FromJson.ts +14 -12
- package/src/formats/ToJson.ts +14 -12
- package/src/lists/First.test.ts +2 -2
- package/src/lists/First.ts +5 -5
- package/src/navigation/Router._main.test.ts +20 -13
- package/src/navigation/Router._nested.test.ts +41 -33
- package/src/navigation/Router.ts +48 -50
- package/src/strings/Concatenated.test.ts +3 -3
- package/src/strings/Concatenated.ts +8 -9
- package/src/strings/Template._main.test.ts +3 -3
- package/src/strings/Template._place.test.ts +2 -2
- package/src/strings/Template.ts +54 -40
- package/src/structures/HashTable.test.ts +6 -6
- package/src/structures/HashTable.ts +10 -8
- package/src/structures/Record._main.test.ts +6 -6
- package/src/structures/Record.concatenated.test.ts +12 -10
- package/src/structures/Record.nested.test.ts +5 -5
- package/src/structures/RecordOf.ts +14 -12
- package/src/system/RegexpMatch._group.test.ts +4 -4
- package/src/system/RegexpMatch._main.test.ts +4 -4
- package/src/system/RegexpMatch.ts +9 -11
- package/src/system/RegexpMatched.test.ts +5 -5
- package/src/system/RegexpMatched.ts +8 -10
- package/src/system/RegexpReplaced.test.ts +5 -5
- package/src/system/RegexpReplaced.ts +10 -11
- package/src/system/Set.test.ts +5 -5
- package/src/system/Set.ts +9 -11
|
@@ -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/behaviors/Transaction.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 {\n ConstructorType,\n DestroyableType,\n Destructor,\n EventType,\n LateShared,\n Of,\n} from \"silentium\";\nimport { Detached } from \"../behaviors/Detached\";\n\n/**\n * Do something on event value.\n * Each event value will create new eventBuilder instance\n */\nexport function Transaction<T, R = unknown>(\n $base: EventType<T>,\n eventBuilder: ConstructorType<\n [EventType<T>, ...EventType<any>[]],\n EventType<R>\n >,\n ...args: EventType[]\n): EventType<R> {\n return (user) => {\n const $res = LateShared<R>();\n const destructors: DestroyableType[] = [];\n\n $base((v) => {\n const $event = Destructor(\n eventBuilder(Of(v), ...args.map((a) => Detached(a))),\n );\n destructors.push($event);\n $event.event($res.use);\n });\n $res.event(user);\n\n return () => {\n destructors.forEach((d) => d.destroy());\n destructors.length = 0;\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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"}
|
|
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/behaviors/Transaction.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 { Event, EventType, Primitive, Transport } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport function Branch<Then, Else>(\n $condition: EventType<boolean>,\n $left: EventType<Then>,\n $right?: EventType<Else>,\n): EventType<Then | Else> {\n return Event((transport) => {\n const left = Primitive($left);\n let right: ReturnType<typeof Primitive<Else>>;\n if ($right !== undefined) {\n right = Primitive($right);\n }\n $condition.event(\n Transport((v) => {\n let result: Then | Else | null = null;\n if (v) {\n result = left.primitive();\n } else if (right) {\n result = right.primitive();\n }\n if (result !== null) {\n transport.use(result);\n }\n }),\n );\n });\n}\n","import {\n DestroyableType,\n Event,\n EventType,\n Transport,\n TransportType,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport function BranchLazy<Then, Else>(\n $condition: EventType<boolean>,\n $left: TransportType<void, EventType<Then>>,\n $right?: TransportType<void, EventType<Else>>,\n): EventType<Then | Else> {\n return Event((transport) => {\n let destructor: () => void | void;\n $condition.event(\n Transport((v) => {\n if (destructor !== undefined && typeof destructor === \"function\") {\n destructor();\n }\n let instance: EventType<Then | Else> | null = null;\n if (v) {\n instance = $left.use();\n } else if ($right) {\n instance = $right.use();\n }\n if (instance) {\n instance.event(transport);\n destructor = (instance as unknown as DestroyableType).destroy;\n }\n }),\n );\n return () => {\n destructor?.();\n };\n });\n}\n","import { Event, EventType, Transport } from \"silentium\";\n\nexport function Constant<T>(permanent: T, $trigger: EventType): EventType<T> {\n return Event((transport) => {\n $trigger.event(\n Transport(() => {\n transport.use(permanent);\n }),\n );\n });\n}\n","import {\n Event,\n EventType,\n TransportType,\n Filtered,\n Shared,\n Transport,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport function Deadline<T>(\n error: TransportType<Error>,\n $base: EventType<T>,\n $timeout: EventType<number>,\n): EventType<T> {\n return Event((transport) => {\n let timer: unknown = null;\n const base = Shared($base, true);\n $timeout.event(\n Transport((timeout) => {\n if (timer) {\n clearTimeout(timer as number);\n }\n let timeoutReached = false;\n\n timer = setTimeout(() => {\n if (timeoutReached) {\n return;\n }\n timeoutReached = true;\n error.use(new Error(\"Timeout reached in Deadline class\"));\n }, timeout);\n\n const f = Filtered(base, () => !timeoutReached);\n f.event(transport);\n\n base.event(\n Transport(() => {\n timeoutReached = true;\n }),\n );\n }),\n );\n });\n}\n","import { Event, EventType, isFilled, Primitive, Transport } 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 $base: EventType<T>,\n $trigger: EventType<unknown>,\n): EventType<T> {\n return Event((transport) => {\n const base = Primitive($base);\n $trigger.event(\n Transport(() => {\n const value = base.primitive();\n if (isFilled(value)) {\n transport.use(value);\n }\n }),\n );\n });\n}\n","import { Event, EventType, isFilled, Primitive } from \"silentium\";\n\nexport function Detached<T>($base: EventType<T>): EventType<T> {\n return Event((transport) => {\n const v = Primitive($base).primitive();\n if (isFilled(v)) {\n transport.use(v);\n }\n });\n}\n","import {\n All,\n Applied,\n EventType,\n Late,\n SourceType,\n Transport,\n TransportType,\n} 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 $base: EventType<T>,\n keep: string[] = [],\n exclude: string[] = [],\n cloner?: (v: T) => T,\n): SourceType<T> {\n return new DirtySource($base, keep, exclude, cloner);\n}\n\nclass DirtySource<T> implements SourceType<T> {\n private $comparing = Late<T>();\n private cloner: (v: T) => T;\n\n public constructor(\n private $base: EventType<T>,\n private keep: string[] = [],\n private exclude: string[] = [],\n cloner?: (v: T) => T,\n ) {\n if (cloner === undefined) {\n this.cloner = (value) => JSON.parse(JSON.stringify(value));\n } else {\n this.cloner = cloner;\n }\n }\n\n public event(transport: TransportType<T>) {\n const $comparing = Applied(this.$comparing, this.cloner);\n All($comparing, this.$base).event(\n Transport(([comparing, base]) => {\n if (!comparing) {\n return;\n }\n transport.use(\n Object.fromEntries(\n Object.entries(comparing).filter(([key, value]) => {\n if (this.keep.includes(key)) {\n return true;\n }\n if (this.exclude.includes(key)) {\n return false;\n }\n return value !== (base as any)[key];\n }),\n ) as T,\n );\n }),\n );\n return this;\n }\n\n public use(v: T) {\n this.$comparing.use(v);\n return this;\n }\n}\n","import { Event, EventType, Transport } from \"silentium\";\n\n/**\n * Representation Of loading process\n * first event begins loading\n * second event stops loading\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport function Loading(\n $loadingStart: EventType<unknown>,\n $loadingFinish: EventType<unknown>,\n): EventType<boolean> {\n return Event((transport) => {\n $loadingStart.event(Transport(() => transport.use(true)));\n $loadingFinish.event(Transport(() => transport.use(false)));\n });\n}\n","import { Event, EventType, Filtered, Transport } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport function Lock<T>(\n $base: EventType<T>,\n $lock: EventType<boolean>,\n): EventType<T> {\n return Event((transport) => {\n let locked = false;\n $lock.event(\n Transport((newLock) => {\n locked = newLock;\n }),\n );\n const i = Filtered($base, () => !locked);\n i.event(transport);\n });\n}\n","import { Event, EventType, Transport } 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>($base: EventType<T>): EventType<T> {\n return Event((transport) => {\n let last: T | null = null;\n $base.event(\n Transport((v) => {\n if (v !== last) {\n transport.use(v);\n last = v;\n }\n }),\n );\n });\n}\n","import { Event, EventType, Transport } 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>($base: EventType<T>): EventType<T> {\n return Event((transport) => {\n let first = false;\n $base.event(\n Transport((v) => {\n if (first === false) {\n first = true;\n } else {\n transport.use(v);\n }\n }),\n );\n });\n}\n","import {\n All,\n EventType,\n isFilled,\n Primitive,\n Shared,\n SharedSource,\n SourceType,\n Transport,\n TransportType,\n} from \"silentium\";\n\n/**\n * Return source Of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport function Part<\n R,\n T extends object | Array<any> = any,\n K extends string = any,\n>($base: SourceType<T>, $key: EventType<K>): SourceType<R> {\n return new PartEvent($base, $key);\n}\n\nclass PartEvent<R, T extends object | Array<any>, K extends string = any>\n implements SourceType<R>\n{\n private $base: SourceType<T>;\n private $keyed: EventType<K>;\n\n public constructor($base: SourceType<T>, $key: EventType<K>) {\n this.$base = SharedSource($base);\n this.$keyed = Shared($key);\n }\n\n public event(transport: TransportType<R, null>): this {\n All(this.$base, this.$keyed).event(\n Transport(([base, keyed]) => {\n const keys = keyed.split(\".\");\n let value: unknown = base;\n keys.forEach((key) => {\n value = (value as Record<string, unknown>)[key];\n });\n if (value !== undefined && value !== base) {\n transport.use(value as R);\n }\n }),\n );\n return this;\n }\n\n public use(value: R): this {\n const key = Primitive(this.$keyed);\n if (isFilled(key)) {\n const base = Primitive(this.$base);\n this.$base.use({\n ...base.primitiveWithException(),\n [key.primitiveWithException()]: value,\n } as T);\n }\n return this;\n }\n}\n","import { All, Event, EventType, Transport } from \"silentium\";\n\n/**\n * Return source Of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport function Path<\n R,\n T extends object | Array<any> = any,\n K extends string = any,\n>($base: EventType<T>, $keyed: EventType<K>): EventType<R> {\n return Event((transport) => {\n All($base, $keyed).event(\n Transport(([base, keyed]) => {\n const keys = keyed.split(\".\");\n let value: unknown = base;\n keys.forEach((key) => {\n value = (value as Record<string, unknown>)[key];\n });\n if (value !== undefined && value !== base) {\n transport.use(value as R);\n }\n }),\n );\n });\n}\n","import { Event, EventType, Transport } from \"silentium\";\n\nexport function Polling<T>(\n $base: EventType<T>,\n $trigger: EventType<T>,\n): EventType<T> {\n return Event((transport) => {\n $trigger.event(\n Transport(() => {\n $base.event(transport);\n }),\n );\n });\n}\n","import { Event, EventType, isFilled, Primitive, Transport } 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 $target: EventType<T>,\n $trigger: EventType,\n): EventType<T> {\n return Event((transport) => {\n const targetSync = Primitive($target);\n targetSync.primitive();\n\n $trigger.event(\n Transport(() => {\n const value = targetSync.primitive();\n if (isFilled(value)) {\n transport.use(value);\n }\n }),\n );\n });\n}\n","import { Event, EventType, ExecutorApplied } from \"silentium\";\n\nexport function Task<T>(\n baseSrc: EventType<T>,\n delay: number = 0,\n): EventType<T> {\n return Event((transport) => {\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 }).event(transport);\n });\n}\n","import { Event, EventType, Transport } 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>($base: EventType<T>): EventType<T> {\n return Event((transport) => {\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 transport.use(lastValue);\n lastValue = null;\n }\n });\n };\n\n $base.event(\n Transport((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n }),\n );\n });\n}\n","import {\n ConstructorType,\n DestroyableType,\n Event,\n EventType,\n LateShared,\n Of,\n Transport,\n} from \"silentium\";\nimport { Detached } from \"../behaviors/Detached\";\n\n/**\n * Do something on event value.\n * Each event value will create new eventBuilder instance\n */\nexport function Transaction<T, R = unknown>(\n $base: EventType<T>,\n eventBuilder: ConstructorType<\n [EventType<T>, ...EventType<any>[]],\n EventType<R>\n >,\n ...args: EventType[]\n): EventType<R> {\n return Event((transport) => {\n const $res = LateShared<R>();\n const destructors: DestroyableType[] = [];\n\n $base.event(\n Transport((v) => {\n const $event = eventBuilder(Of(v), ...args.map((a) => Detached(a)));\n destructors.push($event as unknown as DestroyableType);\n $event.event($res);\n }),\n );\n $res.event(transport);\n\n return () => {\n destructors.forEach((d) => d?.destroy());\n destructors.length = 0;\n };\n });\n}\n","import { Event, EventType, Transport } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport function HashTable<T>(\n $base: EventType<[string, unknown]>,\n): EventType<T> {\n return Event((transport) => {\n const record: Record<string, unknown> = {};\n\n $base.event(\n Transport(([key, value]) => {\n record[key] = value;\n transport.use(record as T);\n }),\n );\n });\n}\n","import { All, Event, EventType, Transport } 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 record: Record<string, T>,\n): EventType<Record<string, UnInformation<T>>> {\n return Event((transport) => {\n const keys = Object.keys(record);\n All(...Object.values(record)).event(\n Transport((entries) => {\n const record: Record<string, any> = {};\n entries.forEach((entry, index) => {\n record[keys[index]] = entry;\n });\n transport.use(record);\n }),\n );\n });\n}\n","import { All, Event, EventType, Of, Transport } 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 Event((transport) => {\n All(joinPartSrc, ...sources).event(\n Transport(([joinPart, ...strings]) => {\n transport.use(strings.join(joinPart));\n }),\n );\n });\n}\n","import {\n All,\n Applied,\n DestroyableType,\n DestroyContainer,\n EventType,\n isDestroyable,\n Of,\n TransportType,\n} from \"silentium\";\nimport { RecordOf } from \"../structures\";\n\nexport function Template(\n $src: EventType<string> = Of(\"\"),\n $places: EventType<Record<string, unknown>> = Of({}),\n) {\n return new TemplateEvent($src, $places);\n}\n\nclass TemplateEvent implements EventType<string>, DestroyableType {\n private dc = DestroyContainer();\n private vars: Record<string, EventType> = {\n $TPL: Of(\"$TPL\"),\n };\n\n public constructor(\n private $src: EventType<string> = Of(\"\"),\n private $places: EventType<Record<string, unknown>> = Of({}),\n ) {}\n\n public event(transport: TransportType<string, null>): this {\n const $vars = RecordOf(this.vars);\n Applied(All(this.$src, this.$places, $vars), ([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 }).event(transport);\n return this;\n }\n\n public template(value: string) {\n this.$src = Of(value);\n }\n\n /**\n * Ability to register variable\n * in concrete place Of template\n */\n public var(src: EventType<string>) {\n const places = Object.keys(this.vars).length;\n const varName = `$var${places}`;\n if (isDestroyable(src)) {\n this.dc.add(src);\n }\n this.vars[varName] = src;\n return varName;\n }\n\n public destroy(): this {\n return this;\n }\n}\n","import { All, Event, EventType, Of, Transport } 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 Event((transport) => {\n All(patternSrc, valueSrc, flagsSrc).event(\n Transport(([pattern, value, flags]) => {\n transport.use(new RegExp(pattern, flags).test(value));\n }),\n );\n });\n}\n","import { All, Event, EventType, Of, Transport } 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 Event((transport) => {\n All(patternSrc, valueSrc, replaceValueSrc, flagsSrc).event(\n Transport(([pattern, value, replaceValue, flags]) => {\n transport.use(\n String(value).replace(new RegExp(pattern, flags), replaceValue),\n );\n }),\n );\n });\n}\n","import { All, Event, EventType, Of, Transport } 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 Event((transport) => {\n All(patternSrc, valueSrc, flagsSrc).event(\n Transport(([pattern, value, flags]) => {\n const result = new RegExp(pattern, flags).exec(value);\n transport.use(result ?? []);\n }),\n );\n });\n}\n","import { All, Event, EventType, Transport } 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 Event((transport) => {\n All(baseSrc, keySrc, valueSrc).event(\n Transport(([base, key, value]) => {\n (base as Record<string, unknown>)[key] = value;\n transport.use(base);\n }),\n );\n });\n}\n","import {\n All,\n Applied,\n DestroyableType,\n Event,\n EventType,\n Of,\n Transport,\n TransportDestroyable,\n TransportEvent,\n TransportType,\n} from \"silentium\";\nimport { BranchLazy } from \"../behaviors\";\nimport { RegexpMatched } from \"../system\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n event: TransportType<[], EventType<T>>;\n}\n\nconst $empty = TransportEvent(() => 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 $url: EventType<string>,\n $routes: EventType<Route<T>[]>,\n $default: TransportType<void, EventType<T>>,\n): EventType<T> & DestroyableType {\n return Event<T>((transport) => {\n const destructors: DestroyableType[] = [];\n const destructor = () => {\n destructors.forEach((d) => d.destroy());\n destructors.length = 0;\n };\n All($routes, $url).event(\n Transport(([routes, url]) => {\n destructor();\n const instance = All(\n $default.use(),\n All(\n ...routes.map((r) => {\n const $template = TransportDestroyable(r.event);\n destructors.push($template);\n return BranchLazy(\n RegexpMatched(\n Of(r.pattern),\n Of(url),\n r.patternFlags ? Of(r.patternFlags) : undefined,\n ),\n $template,\n $empty,\n );\n }),\n ),\n );\n\n // Return first not false or default\n Applied(instance, (r) => {\n const first = r[1].find((r: unknown) => r !== false);\n if (first) {\n return first as T;\n }\n return r[0];\n }).event(transport);\n }),\n );\n\n return destructor;\n });\n}\n","import { All, Event, EventType, Transport } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport function And(\n $one: EventType<boolean>,\n $two: EventType<boolean>,\n): EventType<boolean> {\n return Event((transport) => {\n All($one, $two).event(\n Transport(([one, two]) => {\n transport.use(one && two);\n }),\n );\n });\n}\n","import { All, Event, EventType, Transport } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport function Or(\n $one: EventType<boolean>,\n $two: EventType<boolean>,\n): EventType<boolean> {\n return Event((transport) => {\n All($one, $two).event(\n Transport(([one, two]) => {\n transport.use(one || two);\n }),\n );\n });\n}\n","import { Event, EventType, Transport } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport function Not($base: EventType<boolean>): EventType<boolean> {\n return Event((transport) => {\n $base.event(\n Transport((v) => {\n transport.use(!v);\n }),\n );\n });\n}\n","import { Applied, Event, 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($base: EventType): EventType<boolean> {\n return Event((transport) => {\n Applied($base, Boolean).event(transport);\n });\n}\n","import { Event, EventType, Transport, TransportType } from \"silentium\";\n\n/**\n * Represents object from json\n */\nexport function FromJson<T = Record<string, unknown>>(\n $json: EventType<string>,\n error?: TransportType,\n): EventType<T> {\n return Event((transport) => {\n $json.event(\n Transport((json) => {\n try {\n transport.use(JSON.parse(json));\n } catch (e) {\n error?.use(new Error(`Failed to parse JSON: ${e}`));\n }\n }),\n );\n });\n}\n","import { Event, EventType, Transport, TransportType } from \"silentium\";\n\n/**\n * Represents json from object\n */\nexport function ToJson(\n $data: EventType,\n error?: TransportType,\n): EventType<string> {\n return Event((transport) => {\n $data.event(\n Transport((data: unknown) => {\n try {\n transport.use(JSON.stringify(data));\n } catch {\n error?.use(new Error(\"Failed to convert to JSON\"));\n }\n }),\n );\n });\n}\n","import { Applied, Event, EventType } from \"silentium\";\n\n/**\n * Represents the first element Of an array.\n */\nexport function First<T extends Array<unknown>>(\n $base: EventType<T>,\n): EventType<T[0]> {\n return Event((transport) => {\n Applied($base, (a) => a[0]).event(transport);\n });\n}\n"],"names":["__publicField","record","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.
|
|
3
|
+
"version": "0.0.71",
|
|
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.
|
|
63
|
+
"silentium": "0.0.116"
|
|
64
64
|
}
|
|
65
65
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Applied, Late, Of } from "silentium";
|
|
1
|
+
import { Applied, Late, Of, Transport } from "silentium";
|
|
2
2
|
import { Branch } from "../behaviors/Branch";
|
|
3
3
|
import { expect, test, vi } from "vitest";
|
|
4
4
|
|
|
5
5
|
test("Branch._main.test", () => {
|
|
6
6
|
const l = Late<number>(2);
|
|
7
7
|
const res = Branch(
|
|
8
|
-
Applied(l
|
|
8
|
+
Applied(l, (t) => {
|
|
9
9
|
return t === 2;
|
|
10
10
|
}),
|
|
11
11
|
Of("Then ветка"),
|
|
@@ -13,7 +13,7 @@ test("Branch._main.test", () => {
|
|
|
13
13
|
);
|
|
14
14
|
|
|
15
15
|
const g = vi.fn();
|
|
16
|
-
res(g);
|
|
16
|
+
res.event(Transport(g));
|
|
17
17
|
expect(g).toBeCalledWith("Then ветка");
|
|
18
18
|
|
|
19
19
|
l.use(1);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Applied, Late, Of } from "silentium";
|
|
1
|
+
import { Applied, Late, Of, Transport } from "silentium";
|
|
2
2
|
import { Branch } from "../behaviors/Branch";
|
|
3
3
|
import { expect, test, vi } from "vitest";
|
|
4
4
|
|
|
@@ -6,12 +6,12 @@ test("Branch.branchesDontAffectResult.test", () => {
|
|
|
6
6
|
const l = Late<number>(2);
|
|
7
7
|
const el = Late<string>("else");
|
|
8
8
|
const boolSync = Branch(
|
|
9
|
-
Applied(l
|
|
9
|
+
Applied(l, (t) => t === 2),
|
|
10
10
|
Of("then"),
|
|
11
|
-
el
|
|
11
|
+
el,
|
|
12
12
|
);
|
|
13
13
|
const g = vi.fn();
|
|
14
|
-
boolSync(g);
|
|
14
|
+
boolSync.event(Transport(g));
|
|
15
15
|
|
|
16
16
|
l.use(1);
|
|
17
17
|
expect(g).toHaveBeenLastCalledWith("else");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Applied, Late, Of, Shared } from "silentium";
|
|
1
|
+
import { Applied, Late, Of, Shared, Transport } from "silentium";
|
|
2
2
|
import { expect, test, vi } from "vitest";
|
|
3
3
|
import { Branch } from "../behaviors/Branch";
|
|
4
4
|
|
|
@@ -7,29 +7,29 @@ test("Branch.dontRespondAfterRespond.test", () => {
|
|
|
7
7
|
const ti = Of<any>("then");
|
|
8
8
|
const branchI = Shared(
|
|
9
9
|
Branch(
|
|
10
|
-
Applied(l
|
|
10
|
+
Applied(l, (t) => t === 2),
|
|
11
11
|
ti,
|
|
12
12
|
),
|
|
13
13
|
true,
|
|
14
14
|
);
|
|
15
15
|
const g = vi.fn();
|
|
16
|
-
branchI.event(g);
|
|
16
|
+
branchI.event(Transport(g));
|
|
17
17
|
|
|
18
18
|
l.use(2);
|
|
19
19
|
expect(g).toHaveBeenLastCalledWith("then");
|
|
20
20
|
|
|
21
21
|
const g2 = vi.fn();
|
|
22
|
-
branchI.event(g2);
|
|
22
|
+
branchI.event(Transport(g2));
|
|
23
23
|
l.use(1);
|
|
24
24
|
expect(g2).not.toHaveBeenCalled();
|
|
25
25
|
|
|
26
26
|
const g3 = vi.fn();
|
|
27
|
-
branchI.event(g3);
|
|
27
|
+
branchI.event(Transport(g3));
|
|
28
28
|
l.use(2);
|
|
29
29
|
expect(g3).toHaveBeenLastCalledWith("then");
|
|
30
30
|
|
|
31
31
|
const g4 = vi.fn();
|
|
32
|
-
branchI.event(g4);
|
|
32
|
+
branchI.event(Transport(g4));
|
|
33
33
|
l.use(3);
|
|
34
34
|
expect(g4).not.toHaveBeenCalled();
|
|
35
35
|
});
|
package/src/behaviors/Branch.ts
CHANGED
|
@@ -1,32 +1,31 @@
|
|
|
1
|
-
import { EventType, Primitive } from "silentium";
|
|
1
|
+
import { Event, EventType, Primitive, Transport } from "silentium";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/branch
|
|
5
5
|
*/
|
|
6
6
|
export function Branch<Then, Else>(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
$condition: EventType<boolean>,
|
|
8
|
+
$left: EventType<Then>,
|
|
9
|
+
$right?: EventType<Else>,
|
|
10
10
|
): EventType<Then | Else> {
|
|
11
|
-
return (
|
|
12
|
-
const
|
|
13
|
-
let
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
rightSync = Primitive(rightSrc);
|
|
11
|
+
return Event((transport) => {
|
|
12
|
+
const left = Primitive($left);
|
|
13
|
+
let right: ReturnType<typeof Primitive<Else>>;
|
|
14
|
+
if ($right !== undefined) {
|
|
15
|
+
right = Primitive($right);
|
|
17
16
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
};
|
|
17
|
+
$condition.event(
|
|
18
|
+
Transport((v) => {
|
|
19
|
+
let result: Then | Else | null = null;
|
|
20
|
+
if (v) {
|
|
21
|
+
result = left.primitive();
|
|
22
|
+
} else if (right) {
|
|
23
|
+
result = right.primitive();
|
|
24
|
+
}
|
|
25
|
+
if (result !== null) {
|
|
26
|
+
transport.use(result);
|
|
27
|
+
}
|
|
28
|
+
}),
|
|
29
|
+
);
|
|
30
|
+
});
|
|
32
31
|
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { Applied, Late, Of } from "silentium";
|
|
1
|
+
import { Applied, Late, Of, Transport, TransportEvent } from "silentium";
|
|
2
2
|
import { BranchLazy } from "../behaviors/BranchLazy";
|
|
3
3
|
import { expect, test, vi } from "vitest";
|
|
4
4
|
|
|
5
5
|
test("BranchLazy._main.test", () => {
|
|
6
6
|
const l = Late<number>(2);
|
|
7
7
|
const res = BranchLazy(
|
|
8
|
-
Applied(l
|
|
8
|
+
Applied(l, (t) => {
|
|
9
9
|
return t === 2;
|
|
10
10
|
}),
|
|
11
|
-
() => Of("Then branch"),
|
|
12
|
-
() => Of("Else branch"),
|
|
11
|
+
TransportEvent(() => Of("Then branch")),
|
|
12
|
+
TransportEvent(() => Of("Else branch")),
|
|
13
13
|
);
|
|
14
14
|
|
|
15
15
|
const g = vi.fn();
|
|
16
|
-
res(g);
|
|
16
|
+
res.event(Transport(g));
|
|
17
17
|
expect(g).toBeCalledWith("Then branch");
|
|
18
18
|
|
|
19
19
|
l.use(1);
|
|
@@ -1,32 +1,40 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
DestroyableType,
|
|
3
|
+
Event,
|
|
4
|
+
EventType,
|
|
5
|
+
Transport,
|
|
6
|
+
TransportType,
|
|
7
|
+
} from "silentium";
|
|
2
8
|
|
|
3
9
|
/**
|
|
4
10
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/branch
|
|
5
11
|
*/
|
|
6
12
|
export function BranchLazy<Then, Else>(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
13
|
+
$condition: EventType<boolean>,
|
|
14
|
+
$left: TransportType<void, EventType<Then>>,
|
|
15
|
+
$right?: TransportType<void, EventType<Else>>,
|
|
10
16
|
): EventType<Then | Else> {
|
|
11
|
-
return (
|
|
12
|
-
let
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
17
|
+
return Event((transport) => {
|
|
18
|
+
let destructor: () => void | void;
|
|
19
|
+
$condition.event(
|
|
20
|
+
Transport((v) => {
|
|
21
|
+
if (destructor !== undefined && typeof destructor === "function") {
|
|
22
|
+
destructor();
|
|
23
|
+
}
|
|
24
|
+
let instance: EventType<Then | Else> | null = null;
|
|
25
|
+
if (v) {
|
|
26
|
+
instance = $left.use();
|
|
27
|
+
} else if ($right) {
|
|
28
|
+
instance = $right.use();
|
|
29
|
+
}
|
|
30
|
+
if (instance) {
|
|
31
|
+
instance.event(transport);
|
|
32
|
+
destructor = (instance as unknown as DestroyableType).destroy;
|
|
33
|
+
}
|
|
34
|
+
}),
|
|
35
|
+
);
|
|
28
36
|
return () => {
|
|
29
|
-
|
|
37
|
+
destructor?.();
|
|
30
38
|
};
|
|
31
|
-
};
|
|
39
|
+
});
|
|
32
40
|
}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
import { Late } from "silentium";
|
|
1
|
+
import { Late, Transport } from "silentium";
|
|
2
2
|
import { Constant } from "../behaviors/Const";
|
|
3
3
|
import { expect, test } from "vitest";
|
|
4
4
|
|
|
5
5
|
test("Const.test", () => {
|
|
6
|
-
const
|
|
7
|
-
const src = Constant("val",
|
|
6
|
+
const $trigger = Late(1);
|
|
7
|
+
const src = Constant("val", $trigger);
|
|
8
8
|
const data: string[] = [];
|
|
9
|
-
src(
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
src.event(
|
|
10
|
+
Transport((v) => {
|
|
11
|
+
data.push(v);
|
|
12
|
+
}),
|
|
13
|
+
);
|
|
12
14
|
|
|
13
15
|
expect(data).toStrictEqual(["val"]);
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
+
$trigger.use(1);
|
|
18
|
+
$trigger.use(1);
|
|
17
19
|
|
|
18
20
|
expect(data).toStrictEqual(["val", "val", "val"]);
|
|
19
21
|
});
|
package/src/behaviors/Const.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { EventType } from "silentium";
|
|
1
|
+
import { Event, EventType, Transport } from "silentium";
|
|
2
2
|
|
|
3
|
-
export function Constant<T>(
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
};
|
|
3
|
+
export function Constant<T>(permanent: T, $trigger: EventType): EventType<T> {
|
|
4
|
+
return Event((transport) => {
|
|
5
|
+
$trigger.event(
|
|
6
|
+
Transport(() => {
|
|
7
|
+
transport.use(permanent);
|
|
8
|
+
}),
|
|
9
|
+
);
|
|
10
|
+
});
|
|
12
11
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Late, Of } from "silentium";
|
|
1
|
+
import { Late, Of, Transport } from "silentium";
|
|
2
2
|
import { Deadline } from "../behaviors/Deadline";
|
|
3
3
|
import { afterEach, beforeEach, expect, test, vi } from "vitest";
|
|
4
4
|
|
|
@@ -13,12 +13,12 @@ afterEach(() => {
|
|
|
13
13
|
|
|
14
14
|
test("Deadline._main.test", () => {
|
|
15
15
|
const l = Late();
|
|
16
|
-
const
|
|
16
|
+
const error = vi.fn();
|
|
17
17
|
const g = vi.fn();
|
|
18
|
-
Deadline(
|
|
18
|
+
Deadline(Transport(error), l, Of(20)).event(Transport(g));
|
|
19
19
|
|
|
20
20
|
vi.runAllTimers();
|
|
21
21
|
|
|
22
|
-
expect(
|
|
22
|
+
expect(error).toHaveBeenCalledOnce();
|
|
23
23
|
expect(g).not.toHaveBeenCalled();
|
|
24
24
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Late, Of } from "silentium";
|
|
1
|
+
import { Late, Of, Transport } from "silentium";
|
|
2
2
|
import { afterEach, beforeEach, expect, test, vi } from "vitest";
|
|
3
3
|
import { Deadline } from "../behaviors/Deadline";
|
|
4
4
|
|
|
@@ -12,19 +12,19 @@ afterEach(() => {
|
|
|
12
12
|
});
|
|
13
13
|
|
|
14
14
|
test("Deadline._value.test", () => {
|
|
15
|
-
const
|
|
15
|
+
const error = vi.fn();
|
|
16
16
|
const l = Late<number>();
|
|
17
17
|
|
|
18
18
|
setTimeout(() => {
|
|
19
19
|
l.use(11);
|
|
20
20
|
}, 10);
|
|
21
21
|
|
|
22
|
-
const dl = Deadline(
|
|
22
|
+
const dl = Deadline(Transport(error), l, Of(200));
|
|
23
23
|
const g = vi.fn();
|
|
24
|
-
dl(g);
|
|
24
|
+
dl.event(Transport(g));
|
|
25
25
|
|
|
26
26
|
vi.runAllTimers();
|
|
27
27
|
|
|
28
|
-
expect(
|
|
28
|
+
expect(error).not.toHaveBeenCalled();
|
|
29
29
|
expect(g).toHaveBeenCalledWith(11);
|
|
30
30
|
});
|
|
@@ -1,38 +1,47 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
Event,
|
|
3
|
+
EventType,
|
|
4
|
+
TransportType,
|
|
5
|
+
Filtered,
|
|
6
|
+
Shared,
|
|
7
|
+
Transport,
|
|
8
|
+
} from "silentium";
|
|
2
9
|
|
|
3
10
|
/**
|
|
4
11
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/path
|
|
5
12
|
*/
|
|
6
13
|
export function Deadline<T>(
|
|
7
|
-
error:
|
|
8
|
-
|
|
9
|
-
|
|
14
|
+
error: TransportType<Error>,
|
|
15
|
+
$base: EventType<T>,
|
|
16
|
+
$timeout: EventType<number>,
|
|
10
17
|
): EventType<T> {
|
|
11
|
-
return (
|
|
12
|
-
let
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
clearTimeout(timerHead as number);
|
|
19
|
-
}
|
|
20
|
-
let timeoutReached = false;
|
|
21
|
-
|
|
22
|
-
timerHead = setTimeout(() => {
|
|
23
|
-
if (timeoutReached) {
|
|
24
|
-
return;
|
|
18
|
+
return Event((transport) => {
|
|
19
|
+
let timer: unknown = null;
|
|
20
|
+
const base = Shared($base, true);
|
|
21
|
+
$timeout.event(
|
|
22
|
+
Transport((timeout) => {
|
|
23
|
+
if (timer) {
|
|
24
|
+
clearTimeout(timer as number);
|
|
25
25
|
}
|
|
26
|
-
timeoutReached =
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
let timeoutReached = false;
|
|
27
|
+
|
|
28
|
+
timer = setTimeout(() => {
|
|
29
|
+
if (timeoutReached) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
timeoutReached = true;
|
|
33
|
+
error.use(new Error("Timeout reached in Deadline class"));
|
|
34
|
+
}, timeout);
|
|
29
35
|
|
|
30
|
-
|
|
31
|
-
|
|
36
|
+
const f = Filtered(base, () => !timeoutReached);
|
|
37
|
+
f.event(transport);
|
|
32
38
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
39
|
+
base.event(
|
|
40
|
+
Transport(() => {
|
|
41
|
+
timeoutReached = true;
|
|
42
|
+
}),
|
|
43
|
+
);
|
|
44
|
+
}),
|
|
45
|
+
);
|
|
46
|
+
});
|
|
38
47
|
}
|