silentium-components 0.0.83 → 0.0.85
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 +14 -0
- package/dist/silentium-components.cjs +326 -411
- package/dist/silentium-components.cjs.map +1 -1
- package/dist/silentium-components.d.ts +80 -87
- package/dist/silentium-components.js +328 -412
- 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 +328 -412
- package/dist/silentium-components.mjs.map +1 -1
- package/eslint.config.mjs +26 -12
- package/package.json +4 -2
- package/rollup.config.js +2 -1
- package/src/behaviors/Branch._main.test.ts +4 -3
- package/src/behaviors/Branch._values.test.ts +3 -2
- package/src/behaviors/Branch.branchesDontAffectResult.test.ts +4 -3
- package/src/behaviors/Branch.ts +13 -21
- package/src/behaviors/BranchLazy._main.test.ts +5 -4
- package/src/behaviors/BranchLazy.ts +17 -20
- package/src/behaviors/Const.test.ts +6 -7
- package/src/behaviors/Const.ts +5 -7
- package/src/behaviors/Deadline._main.test.ts +5 -4
- package/src/behaviors/Deadline._value.test.ts +4 -3
- package/src/behaviors/Deadline.ts +20 -27
- package/src/behaviors/Deferred.test.ts +5 -4
- package/src/behaviors/Deferred.ts +8 -10
- package/src/behaviors/Detached.test.ts +4 -3
- package/src/behaviors/Detached.ts +2 -2
- package/src/behaviors/Dirty.test.ts +4 -3
- package/src/behaviors/Dirty.ts +18 -45
- package/src/behaviors/Loading.test.ts +4 -3
- package/src/behaviors/Loading.ts +4 -4
- package/src/behaviors/Lock.test.ts +4 -3
- package/src/behaviors/Lock.ts +6 -8
- package/src/behaviors/Memo.test.ts +7 -8
- package/src/behaviors/Memo.ts +8 -10
- package/src/behaviors/OnlyChanged.test.ts +5 -4
- package/src/behaviors/OnlyChanged.ts +9 -11
- package/src/behaviors/Part.test.ts +12 -15
- package/src/behaviors/Part.ts +23 -40
- package/src/behaviors/Path._keyRaw.test.ts +3 -2
- package/src/behaviors/Path._main.test.ts +3 -2
- package/src/behaviors/Path.index.test.ts +3 -2
- package/src/behaviors/Path.nested.test.ts +4 -3
- package/src/behaviors/Path.ts +11 -14
- package/src/behaviors/Polling.test.ts +3 -2
- package/src/behaviors/Polling.ts +5 -7
- package/src/behaviors/Shot._main.test.ts +5 -4
- package/src/behaviors/Shot._onlyChanged.test.ts +9 -10
- package/src/behaviors/Shot.ts +8 -10
- package/src/behaviors/Task.test.ts +9 -12
- package/src/behaviors/Task.ts +11 -5
- package/src/behaviors/Tick.test.ts +5 -4
- package/src/behaviors/Tick.ts +9 -11
- package/src/behaviors/index.ts +0 -1
- package/src/boolean/And.test.ts +3 -2
- package/src/boolean/And.ts +5 -7
- package/src/boolean/Bool.test.ts +4 -3
- package/src/boolean/Bool.ts +2 -2
- package/src/boolean/Not.test.ts +4 -3
- package/src/boolean/Not.ts +5 -7
- package/src/boolean/Or.test.ts +4 -3
- package/src/boolean/Or.ts +5 -7
- package/src/boolean/index.ts +2 -2
- package/src/formats/FromJson.test.ts +2 -1
- package/src/formats/FromJson.ts +9 -12
- package/src/formats/ToJson.test.ts +1 -0
- package/src/formats/ToJson.ts +10 -12
- package/src/index.ts +4 -4
- package/src/lists/First.test.ts +3 -2
- package/src/lists/First.ts +2 -2
- package/src/navigation/Router._destroy.test.ts +14 -24
- package/src/navigation/Router._firstMatch.test.ts +7 -13
- package/src/navigation/Router._main.test.ts +7 -13
- package/src/navigation/Router._nested.test.ts +19 -30
- package/src/navigation/Router.ts +30 -34
- package/src/strings/Concatenated.test.ts +4 -3
- package/src/strings/Concatenated.ts +5 -7
- package/src/strings/Template._main.test.ts +5 -4
- package/src/strings/Template._place.test.ts +4 -3
- package/src/strings/Template.ts +21 -9
- package/src/structures/HashTable.test.ts +4 -3
- package/src/structures/HashTable.ts +6 -8
- package/src/structures/Record._main.test.ts +3 -2
- package/src/structures/Record._mixed.test.ts +3 -2
- package/src/structures/Record.concatenated.test.ts +7 -8
- package/src/structures/Record.nested.test.ts +3 -2
- package/src/structures/Record.ts +10 -14
- package/src/system/RegexpMatch._group.test.ts +3 -2
- package/src/system/RegexpMatch._main.test.ts +3 -2
- package/src/system/RegexpMatch.ts +12 -11
- package/src/system/RegexpMatched.test.ts +4 -3
- package/src/system/RegexpMatched.ts +11 -10
- package/src/system/RegexpReplaced.test.ts +4 -3
- package/src/system/RegexpReplaced.ts +6 -8
- package/src/system/Set.test.ts +4 -3
- package/src/system/Set.ts +9 -8
- package/src/system/index.ts +1 -1
- package/src/behaviors/Branch.dontRespondAfterRespond.test.ts +0 -35
- package/src/behaviors/Transaction.test.ts +0 -44
- package/src/behaviors/Transaction.ts +0 -42
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silentium-components.cjs","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/Record.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 {\n ActualMessage,\n MaybeMessage,\n Message,\n Primitive,\n Tap,\n} from \"silentium\";\n\n/**\n * Allows switching between left and right messages depending on condition\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport function Branch<Then, Else>(\n _condition: MaybeMessage<boolean>,\n _left: MaybeMessage<Then>,\n _right?: MaybeMessage<Else>,\n) {\n const $condition = ActualMessage(_condition);\n const $left = ActualMessage(_left);\n const $right = _right && ActualMessage(_right);\n return Message<Then | Else>(function () {\n const left = Primitive($left);\n let right: ReturnType<typeof Primitive<Else>>;\n if ($right !== undefined) {\n right = Primitive($right);\n }\n $condition.pipe(\n Tap((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 this.use(result);\n }\n }),\n );\n });\n}\n","import {\n DestroyableType,\n DestroyContainer,\n Message,\n MessageType,\n Tap,\n TapType,\n} from \"silentium\";\n\n/**\n * Depending on the $condition message,\n * creates a new left or right message.\n * When condition changes, old messages are destroyed\n * and new ones are created.\n */\nexport function BranchLazy<Then, Else>(\n $condition: MessageType<boolean>,\n $left: TapType<void, MessageType<Then>>,\n $right?: TapType<void, MessageType<Else>>,\n): MessageType<Then | Else> & DestroyableType {\n return Message(function () {\n const dc = DestroyContainer();\n const destructor = () => {\n dc.destroy();\n };\n $condition.pipe(\n Tap((v) => {\n destructor();\n let instance: MessageType<Then | Else> | undefined;\n if (v) {\n instance = $left.use();\n } else if ($right) {\n instance = $right.use();\n }\n if (instance !== undefined) {\n instance.pipe(this);\n dc.add(instance);\n }\n }),\n );\n return destructor;\n });\n}\n","import { Message, MessageType, Tap } from \"silentium\";\n\n/**\n * Constant value that will be\n * returned on each value from\n * the $trigger message\n */\nexport function Constant<T>(\n permanent: T,\n $trigger: MessageType,\n): MessageType<T> {\n return Message(function () {\n $trigger.pipe(\n Tap(() => {\n this.use(permanent);\n }),\n );\n });\n}\n","import {\n ActualMessage,\n Filtered,\n MaybeMessage,\n Message,\n MessageType,\n Shared,\n Tap,\n TapType,\n} from \"silentium\";\n\n/**\n * Will return an error via error transport if\n * time runs out from $timeout; if $base manages to\n * respond before $timeout then the value from base will be returned\n */\nexport function Deadline<T>(\n error: TapType<Error>,\n $base: MessageType<T>,\n _timeout: MaybeMessage<number>,\n) {\n const $timeout = ActualMessage(_timeout);\n return Message<T>(function () {\n let timer: ReturnType<typeof setTimeout> | number = 0;\n const base = Shared($base, true);\n $timeout.pipe(\n Tap((timeout) => {\n if (timer) {\n clearTimeout(timer);\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\"));\n }, timeout);\n\n const f = Filtered(base, () => !timeoutReached);\n f.pipe(this);\n\n base.pipe(\n Tap(() => {\n timeoutReached = true;\n }),\n );\n }),\n );\n });\n}\n","import { isFilled, Message, MessageType, Primitive, Tap } 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: MessageType<T>,\n $trigger: MessageType<unknown>,\n) {\n return Message(function () {\n const base = Primitive($base);\n $trigger.pipe(\n Tap(() => {\n const value = base.primitive();\n if (isFilled(value)) {\n this.use(value);\n }\n }),\n );\n });\n}\n","import { isFilled, Message, MessageType, Primitive } from \"silentium\";\n\n/**\n * Message separate from the base\n * allows to take one value from the base\n * but not react to new values of the base message\n */\nexport function Detached<T>($base: MessageType<T>): MessageType<T> {\n return Message(function () {\n const v = Primitive($base).primitive();\n if (isFilled(v)) {\n this.use(v);\n }\n });\n}\n","import {\n All,\n Applied,\n Late,\n MessageType,\n SourceType,\n Tap,\n TapType,\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: MessageType<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: MessageType<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 pipe(transport: TapType<T>) {\n const $comparing = Applied(this.$comparing, this.cloner);\n All($comparing, this.$base).pipe(\n Tap(([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 Record<string, unknown>)[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 { Message, MessageType, Tap } from \"silentium\";\n\n/**\n * Representation Of loading process\n * first message begins loading\n * second message stops loading\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport function Loading(\n $start: MessageType<unknown>,\n $finish: MessageType<unknown>,\n) {\n return Message<boolean>(function () {\n $start.pipe(Tap(() => this.use(true)));\n $finish.pipe(Tap(() => this.use(false)));\n });\n}\n","import { Filtered, Message, MessageType, Tap } from \"silentium\";\n\n/**\n * Allows locking messages\n * if a $lock message arrives\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport function Lock<T>($base: MessageType<T>, $lock: MessageType<boolean>) {\n return Message<T>(function () {\n let locked = false;\n $lock.pipe(\n Tap((newLock) => {\n locked = newLock;\n }),\n );\n const i = Filtered($base, () => !locked);\n i.pipe(this);\n });\n}\n","import { isFilled, Message, MessageType, Tap } 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: MessageType<T>) {\n return Message<T>(function () {\n let last: T | null = null;\n $base.pipe(\n Tap((v) => {\n if (v !== last && isFilled(v)) {\n this.use(v);\n last = v;\n }\n }),\n );\n });\n}\n","import { Message, MessageType, Tap } 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: MessageType<T>) {\n return Message<T>(function () {\n let first = false;\n $base.pipe(\n Tap((v) => {\n if (first === false) {\n first = true;\n } else {\n this.use(v);\n }\n }),\n );\n });\n}\n","import {\n ActualMessage,\n All,\n isFilled,\n MaybeMessage,\n MessageType,\n Primitive,\n Shared,\n SharedSource,\n SourceType,\n Tap,\n TapType,\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: MaybeMessage<K>): SourceType<R> {\n return new PartImpl($base, ActualMessage($key));\n}\n\nclass PartImpl<R, T extends object | Array<any>, K extends string = any>\n implements SourceType<R>\n{\n private $base: SourceType<T>;\n private $keyed: MessageType<K>;\n\n public constructor($base: SourceType<T>, $key: MessageType<K>) {\n this.$base = SharedSource($base);\n this.$keyed = Shared($key);\n }\n\n public pipe(transport: TapType<R, null>): this {\n All(this.$base, this.$keyed).pipe(\n Tap(([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 {\n ActualMessage,\n All,\n MaybeMessage,\n Message,\n MessageType,\n Tap,\n} 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: MessageType<T>, _keyed: MaybeMessage<K>) {\n const $keyed = ActualMessage(_keyed);\n return Message<R>(function () {\n All($base, $keyed).pipe(\n Tap(([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 this.use(value as R);\n }\n }),\n );\n });\n}\n","import { Message, MessageType, Tap } from \"silentium\";\n\n/**\n * Active polling of $base message\n * synchronized with $trigger message\n */\nexport function Polling<T>($base: MessageType<T>, $trigger: MessageType<T>) {\n return Message<T>(function () {\n $trigger.pipe(\n Tap(() => {\n $base.pipe(this);\n }),\n );\n });\n}\n","import { isFilled, Message, MessageType, Primitive, Tap } 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>($target: MessageType<T>, $trigger: MessageType) {\n return Message<T>(function () {\n const targetSync = Primitive($target);\n targetSync.primitive();\n $trigger.pipe(\n Tap(() => {\n const value = targetSync.primitive();\n if (isFilled(value)) {\n this.use(value);\n }\n }),\n );\n });\n}\n","import { ExecutorApplied, Message, MessageType } from \"silentium\";\n\n/**\n * Defer a message to the event loop\n * so that it executes once within\n * a certain timer firing interval\n */\nexport function Task<T>(baseSrc: MessageType<T>, delay: number = 0) {\n return Message<T>(function () {\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 }).pipe(this);\n });\n}\n","import { Message, MessageType, Tap } 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: MessageType<T>) {\n return Message(function () {\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 this.use(lastValue);\n lastValue = null;\n }\n });\n };\n\n $base.pipe(\n Tap((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n }),\n );\n });\n}\n","import {\n ConstructorType,\n DestroyableType,\n LateShared,\n Message,\n MessageType,\n Of,\n Tap,\n} from \"silentium\";\nimport { Detached } from \"../behaviors/Detached\";\n\n/**\n * Do something on message value.\n * Each message value will create new builder instance\n */\nexport function Transaction<T, R = unknown>(\n $base: MessageType<T>,\n builder: ConstructorType<\n [MessageType<T>, ...MessageType<any>[]],\n MessageType<R>\n >,\n ...args: MessageType[]\n) {\n return Message<R>(function () {\n const $res = LateShared<R>();\n const destructors: DestroyableType[] = [];\n\n $base.pipe(\n Tap((v) => {\n const $msg = builder(Of(v), ...args.map((a) => Detached(a)));\n destructors.push($msg as unknown as DestroyableType);\n $msg.pipe($res);\n }),\n );\n $res.pipe(this);\n\n return () => {\n destructors.forEach((d) => d?.destroy());\n destructors.length = 0;\n };\n });\n}\n","import { Message, MessageType, Tap } from \"silentium\";\n\n/**\n * By receiving a message with a key and value, collects a table\n * of all previously received messages in the form of a structure\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport function HashTable<T>($base: MessageType<[string, unknown]>) {\n return Message<T>(function () {\n const record: Record<string, unknown> = {};\n\n $base.pipe(\n Tap(([key, value]) => {\n record[key] = value;\n this.use(record as T);\n }),\n );\n });\n}\n","import { All, isMessage, Message, MessageType, Of, Tap } from \"silentium\";\n\ntype UnWrap<T> = T extends MessageType<infer U> ? U : T;\n\n/**\n * Returns record Of data from record Of sources\n * https://silentium-lab.github.io/silentium-components/#/structures/record\n */\nexport function Record<T>(record: Record<string, T>) {\n return Message<Record<string, UnWrap<T>>>(function () {\n const keys = Object.keys(record);\n keys.forEach((key) => {\n if (!isMessage(record[key])) {\n record[key] = Of(record[key]) as any;\n }\n });\n All(...(Object.values(record) as any)).pipe(\n Tap((entries) => {\n const record: Record<string, any> = {};\n entries.forEach((entry, index) => {\n record[keys[index]] = entry;\n });\n this.use(record);\n }),\n );\n });\n}\n","import { All, Message, MessageType, Of, Tap } 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: MessageType<string>[],\n joinPartSrc: MessageType<string> = Of(\"\"),\n) {\n return Message<string>(function () {\n All(joinPartSrc, ...sources).pipe(\n Tap(([joinPart, ...strings]) => {\n this.use(strings.join(joinPart));\n }),\n );\n });\n}\n","import {\n All,\n Applied,\n DestroyableType,\n DestroyContainer,\n isDestroyable,\n MessageType,\n Of,\n TapType,\n} from \"silentium\";\nimport { Record } from \"../structures\";\n\n/**\n * Allows creating a string template with\n * variables inserted into it; when variables change,\n * the template value will change\n */\nexport function Template(\n $src: MessageType<string> = Of(\"\"),\n $places: MessageType<Record<string, unknown>> = Of({}),\n) {\n return new TemplateImpl($src, $places);\n}\n\nclass TemplateImpl implements MessageType<string>, DestroyableType {\n private dc = DestroyContainer();\n private vars: Record<string, MessageType> = {\n $TPL: Of(\"$TPL\"),\n };\n\n public constructor(\n private $src: MessageType<string> = Of(\"\"),\n private $places: MessageType<Record<string, unknown>> = Of({}),\n ) {}\n\n public pipe(transport: TapType<string>): this {\n const $vars = Record(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 }).pipe(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: MessageType<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 this.dc.destroy();\n return this;\n }\n}\n","import { All, Message, MessageType, Of, Tap } 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: MessageType<string>,\n valueSrc: MessageType<string>,\n flagsSrc: MessageType<string> = Of(\"\"),\n) {\n return Message<boolean>(function () {\n All(patternSrc, valueSrc, flagsSrc).pipe(\n Tap(([pattern, value, flags]) => {\n this.use(new RegExp(pattern, flags).test(value));\n }),\n );\n });\n}\n","import { All, Message, MessageType, Of, Tap } 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: MessageType<string>,\n patternSrc: MessageType<string>,\n replaceValueSrc: MessageType<string>,\n flagsSrc: MessageType<string> = Of(\"\"),\n) {\n return Message<string>(function () {\n All(patternSrc, valueSrc, replaceValueSrc, flagsSrc).pipe(\n Tap(([pattern, value, replaceValue, flags]) => {\n this.use(\n String(value).replace(new RegExp(pattern, flags), replaceValue),\n );\n }),\n );\n });\n}\n","import { All, Message, MessageType, Of, Tap } 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: MessageType<string>,\n valueSrc: MessageType<string>,\n flagsSrc: MessageType<string> = Of(\"\"),\n) {\n return Message<string[]>(function () {\n All(patternSrc, valueSrc, flagsSrc).pipe(\n Tap(([pattern, value, flags]) => {\n const result = new RegExp(pattern, flags).exec(value);\n this.use(result ?? []);\n }),\n );\n });\n}\n","import { All, Message, MessageType, Tap } 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: MessageType<T>,\n keySrc: MessageType<string>,\n valueSrc: MessageType<unknown>,\n) {\n return Message<T>(function () {\n All(baseSrc, keySrc, valueSrc).pipe(\n Tap(([base, key, value]) => {\n (base as Record<string, unknown>)[key] = value;\n this.use(base);\n }),\n );\n });\n}\n","import {\n All,\n DestroyableType,\n DestroyContainer,\n Message,\n MessageType,\n Of,\n Tap,\n TapType,\n} from \"silentium\";\nimport { RegexpMatched } from \"../system\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n message: TapType<void, MessageType<T>>;\n}\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: MessageType<string>,\n $routes: MessageType<Route<T>[]>,\n $default: TapType<void, MessageType<T>>,\n): MessageType<T> & DestroyableType {\n return Message<T>(function () {\n const dc = DestroyContainer();\n const destructor = () => {\n dc.destroy();\n };\n All($routes, $url).pipe(\n Tap(([routes, url]) => {\n destructor();\n const $matches = All(\n ...routes.map((r) =>\n RegexpMatched(\n Of(r.pattern),\n Of(url),\n r.patternFlags ? Of(r.patternFlags) : undefined,\n ),\n ),\n );\n $matches.pipe(\n Tap((matches) => {\n const index = matches.findIndex((v) => v === true);\n\n if (index === -1) {\n const instance = $default.use();\n dc.add(instance);\n instance.pipe(this);\n }\n\n if (index > -1) {\n const instance = routes[index].message.use();\n dc.add(instance);\n instance.pipe(this);\n }\n }),\n );\n }),\n );\n\n return destructor;\n });\n}\n","import { All, Message, MessageType, Tap } from \"silentium\";\n\n/**\n * Logical AND over two messages\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport function And($one: MessageType<boolean>, $two: MessageType<boolean>) {\n return Message<boolean>(function () {\n All($one, $two).pipe(\n Tap(([one, two]) => {\n this.use(!!(one && two));\n }),\n );\n });\n}\n","import { All, Message, MessageType, Tap } from \"silentium\";\n\n/**\n * Logical OR over two messages\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport function Or($one: MessageType<boolean>, $two: MessageType<boolean>) {\n return Message<boolean>(function () {\n All($one, $two).pipe(\n Tap(([one, two]) => {\n this.use(!!(one || two));\n }),\n );\n });\n}\n","import { Message, MessageType, Tap } from \"silentium\";\n\n/**\n * Logical negation of message\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport function Not($base: MessageType<boolean>) {\n return Message<boolean>(function () {\n $base.pipe(\n Tap((v) => {\n this.use(!v);\n }),\n );\n });\n}\n","import { Applied, Message, MessageType } 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: MessageType) {\n return Message<boolean>(function () {\n Applied($base, Boolean).pipe(this);\n });\n}\n","import { Message, MessageType, Tap, TapType } from \"silentium\";\n\n/**\n * Represents object from json\n */\nexport function FromJson<T = Record<string, unknown>>(\n $json: MessageType<string>,\n error?: TapType,\n) {\n return Message<T>(function () {\n $json.pipe(\n Tap((json) => {\n try {\n this.use(JSON.parse(json));\n } catch (e) {\n error?.use(new Error(`Failed to parse JSON: ${e}`));\n }\n }),\n );\n });\n}\n","import { Message, MessageType, Tap, TapType } from \"silentium\";\n\n/**\n * Represents json from object\n */\nexport function ToJson($data: MessageType, error?: TapType) {\n return Message<string>(function () {\n $data.pipe(\n Tap((data: unknown) => {\n try {\n this.use(JSON.stringify(data));\n } catch {\n error?.use(new Error(\"Failed to convert to JSON\"));\n }\n }),\n );\n });\n}\n","import { Applied, Message, MessageType } from \"silentium\";\n\n/**\n * Represents the first element Of an array.\n */\nexport function First<T extends Array<unknown>>($base: MessageType<T>) {\n return Message<T[0]>(function () {\n Applied($base, (a) => a[0]).pipe(this);\n });\n}\n"],"names":["ActualMessage","Message","Primitive","Tap","DestroyContainer","Shared","Filtered","isFilled","__publicField","Late","Applied","All","SharedSource","ExecutorApplied","LateShared","Of","isMessage","record","isDestroyable"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"silentium-components.cjs","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/boolean/And.ts","../src/boolean/Bool.ts","../src/boolean/Not.ts","../src/boolean/Or.ts","../src/formats/FromJson.ts","../src/formats/ToJson.ts","../src/lists/First.ts","../src/system/RegexpMatch.ts","../src/system/RegexpMatched.ts","../src/system/RegexpReplaced.ts","../src/system/Set.ts","../src/navigation/Router.ts","../src/strings/Concatenated.ts","../src/structures/HashTable.ts","../src/structures/Record.ts","../src/strings/Template.ts"],"sourcesContent":["import { ActualMessage, MaybeMessage, Message, Primitive } from \"silentium\";\n\n/**\n * Allows switching between left and right messages depending on condition\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport function Branch<Then, Else>(\n _condition: MaybeMessage<boolean>,\n _left: MaybeMessage<Then>,\n _right?: MaybeMessage<Else>,\n) {\n const $condition = ActualMessage(_condition);\n const $left = ActualMessage(_left);\n const $right = _right && ActualMessage(_right);\n return Message<Then | Else>(function BranchImpl(r) {\n const left = Primitive($left);\n let right: ReturnType<typeof Primitive<Else>>;\n if ($right !== undefined) {\n right = Primitive($right);\n }\n $condition.then((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 r(result);\n }\n });\n });\n}\n","import {\n ConstructorType,\n DestroyableType,\n DestroyContainer,\n Message,\n MessageType,\n} from \"silentium\";\n\n/**\n * Depending on the $condition message,\n * creates a new left or right message.\n * When condition changes, old messages are destroyed\n * and new ones are created.\n */\nexport function BranchLazy<Then, Else>(\n $condition: MessageType<boolean>,\n $left: ConstructorType<[], MessageType<Then>>,\n $right?: ConstructorType<[], MessageType<Else>>,\n): MessageType<Then | Else> & DestroyableType {\n return Message(function BranchLazyImpl(r) {\n const dc = DestroyContainer();\n const destructor = () => {\n dc.destroy();\n };\n $condition.then((v) => {\n destructor();\n let instance: MessageType<Then | Else> | undefined;\n if (v) {\n instance = $left();\n } else if ($right) {\n instance = $right();\n }\n if (instance !== undefined) {\n instance.then(r);\n dc.add(instance);\n }\n });\n return destructor;\n });\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * Constant value that will be\n * returned on each value from\n * the $trigger message\n */\nexport function Constant<T>(\n permanent: T,\n $trigger: MessageType,\n): MessageType<T> {\n return Message<T>(function ConstantImpl(r) {\n $trigger.then(() => {\n r(permanent);\n });\n });\n}\n","import {\n ActualMessage,\n Filtered,\n MaybeMessage,\n Message,\n MessageType,\n Shared,\n} from \"silentium\";\n\n/**\n * Will return an error via error transport if\n * time runs out from $timeout; if $base manages to\n * respond before $timeout then the value from base will be returned\n */\nexport function Deadline<T>(\n $base: MessageType<T>,\n _timeout: MaybeMessage<number>,\n) {\n const $timeout = ActualMessage(_timeout);\n return Message<T>(function DeadlineImpl(resolve, reject) {\n let timer: ReturnType<typeof setTimeout> | number = 0;\n const base = Shared($base);\n $timeout.then((timeout) => {\n if (timer) {\n clearTimeout(timer);\n }\n let timeoutReached = false;\n\n timer = setTimeout(() => {\n if (timeoutReached) {\n return;\n }\n timeoutReached = true;\n reject(new Error(\"Timeout reached in Deadline\"));\n }, timeout);\n\n const f = Filtered(base, () => !timeoutReached);\n f.then(resolve);\n\n base.then(() => {\n timeoutReached = true;\n });\n });\n });\n}\n","import { isFilled, Message, MessageType, 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 $base: MessageType<T>,\n $trigger: MessageType<unknown>,\n) {\n return Message<T>(function DeferredImpl(r) {\n const base = Primitive($base);\n $trigger.then(() => {\n const value = base.primitive();\n if (isFilled(value)) {\n r(value);\n }\n });\n });\n}\n","import { isFilled, Message, MessageType, Primitive } from \"silentium\";\n\n/**\n * Message separate from the base\n * allows to take one value from the base\n * but not react to new values of the base message\n */\nexport function Detached<T>($base: MessageType<T>): MessageType<T> {\n return Message<T>(function DetachedImpl(r) {\n const v = Primitive($base).primitive();\n if (isFilled(v)) {\n r(v);\n }\n });\n}\n","import { All, Applied, Late, MessageSource, MessageType } 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: MessageType<T>,\n keep: string[] = [],\n exclude: string[] = [],\n cloner?: (v: T) => T,\n) {\n const $comparing = Late<T>();\n if (cloner === undefined) {\n cloner = (value) => JSON.parse(JSON.stringify(value));\n }\n return MessageSource<T>(\n function DirtyImpl(r) {\n const $comparingClone = Applied($comparing, cloner);\n All($comparingClone, $base).then(([comparing, base]) => {\n if (!comparing) {\n return;\n }\n r(\n Object.fromEntries(\n Object.entries(comparing).filter(([key, value]) => {\n if (keep.includes(key)) {\n return true;\n }\n if (exclude.includes(key)) {\n return false;\n }\n return value !== (base as Record<string, unknown>)[key];\n }),\n ) as T,\n );\n });\n },\n (v) => {\n $comparing.use(v);\n },\n );\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * Representation Of loading process\n * first message begins loading\n * second message stops loading\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport function Loading(\n $start: MessageType<unknown>,\n $finish: MessageType<unknown>,\n) {\n return Message<boolean>(function LoadingImpl(r) {\n $start.then(() => r(true));\n $finish.then(() => r(false));\n });\n}\n","import { Filtered, Message, MessageType } from \"silentium\";\n\n/**\n * Allows locking messages\n * if a $lock message arrives\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport function Lock<T>($base: MessageType<T>, $lock: MessageType<boolean>) {\n return Message<T>(function LockImpl(r) {\n let locked = false;\n $lock.then((newLock) => {\n locked = newLock;\n });\n const i = Filtered($base, () => !locked);\n i.then(r);\n });\n}\n","import { isFilled, Message, MessageType } 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: MessageType<T>) {\n return Message<T>(function MemoImpl(r) {\n let last: T | null = null;\n $base.then((v) => {\n if (v !== last && isFilled(v)) {\n r(v);\n last = v;\n }\n });\n });\n}\n","import { Message, MessageType } 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: MessageType<T>) {\n return Message<T>(function OnlyChangedImpl(r) {\n let first = false;\n $base.then((v) => {\n if (first === false) {\n first = true;\n } else {\n r(v);\n }\n });\n });\n}\n","import {\n ActualMessage,\n All,\n isFilled,\n MaybeMessage,\n MessageSource,\n MessageSourceType,\n Primitive,\n Shared,\n SourceType,\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: MessageSourceType<T>, key: MaybeMessage<K>): SourceType<R> {\n const $baseShared = Shared($base);\n const $keyedShared = Shared(ActualMessage(key));\n return MessageSource(\n function PartImpl(r) {\n All($baseShared, $keyedShared).then(([base, keyed]) => {\n const keys = keyed.split(\".\");\n let value: unknown = base;\n keys.forEach((key: string) => {\n value = (value as Record<string, unknown>)[key];\n });\n if (value !== undefined && value !== base) {\n r(value as R);\n }\n });\n },\n (value) => {\n const key = Primitive($keyedShared);\n if (isFilled(key)) {\n const base = Primitive($base);\n $base.use({\n ...base.primitiveWithException(),\n [key.primitiveWithException()]: value,\n } as T);\n }\n },\n );\n}\n","import {\n ActualMessage,\n All,\n MaybeMessage,\n Message,\n MessageType,\n} 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: MessageType<T>, _keyed: MaybeMessage<K>) {\n const $keyed = ActualMessage(_keyed);\n return Message<R>(function PathImpl(r) {\n All($base, $keyed).then(([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 r(value as R);\n }\n });\n });\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * Active polling of $base message\n * synchronized with $trigger message\n */\nexport function Polling<T>($base: MessageType<T>, $trigger: MessageType<T>) {\n return Message<T>(function PollingImpl(r) {\n $trigger.then(() => {\n $base.then(r);\n });\n });\n}\n","import { isFilled, Message, MessageType, 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>($target: MessageType<T>, $trigger: MessageType) {\n return Message<T>(function ShotImpl(r) {\n const targetSync = Primitive($target);\n targetSync.primitive();\n $trigger.then(() => {\n const value = targetSync.primitive();\n if (isFilled(value)) {\n r(value);\n }\n });\n });\n}\n","import {\n ActualMessage,\n ExecutorApplied,\n MaybeMessage,\n Message,\n} from \"silentium\";\n\n/**\n * Defer a message to the event loop\n * so that it executes once within\n * a certain timer firing interval\n */\nexport function Task<T>(baseSrc: MaybeMessage<T>, delay: number = 0) {\n const $base = ActualMessage(baseSrc);\n return Message<T>(function TaskImpl(r) {\n let prevTimer: unknown | null = null;\n ExecutorApplied($base, (fn) => {\n return (v) => {\n if (prevTimer) {\n clearTimeout(prevTimer as number);\n }\n prevTimer = setTimeout(() => {\n fn(v);\n }, delay);\n };\n }).then(r);\n });\n}\n","import { Message, MessageType } 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: MessageType<T>) {\n return Message<T>(function TickImpl(r) {\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 r(lastValue);\n lastValue = null;\n }\n });\n };\n\n $base.then((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n });\n });\n}\n","import { All, Message, MessageType } from \"silentium\";\n\n/**\n * Logical AND over two messages\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport function And($one: MessageType<boolean>, $two: MessageType<boolean>) {\n return Message<boolean>(function AndImpl(r) {\n All($one, $two).then(([one, two]) => {\n r(!!(one && two));\n });\n });\n}\n","import { Applied, Message, MessageType } 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: MessageType) {\n return Message<boolean>(function BoolImpl(r) {\n Applied($base, Boolean).then(r);\n });\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * Logical negation of message\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport function Not($base: MessageType<boolean>) {\n return Message<boolean>(function NotImpl(r) {\n $base.then((v) => {\n r(!v);\n });\n });\n}\n","import { All, Message, MessageType } from \"silentium\";\n\n/**\n * Logical OR over two messages\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport function Or($one: MessageType<boolean>, $two: MessageType<boolean>) {\n return Message<boolean>(function OrImpl(r) {\n All($one, $two).then(([one, two]) => {\n r(!!(one || two));\n });\n });\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * Represents object from json\n */\nexport function FromJson<T = Record<string, unknown>>(\n $json: MessageType<string>,\n) {\n return Message<T>(function FromJsonImpl(resolve, reject) {\n $json.then((json) => {\n try {\n resolve(JSON.parse(json));\n } catch (e) {\n reject(new Error(`Failed to parse JSON: ${e}`));\n }\n });\n });\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * Represents json from object\n */\nexport function ToJson($data: MessageType) {\n return Message<string>(function ToJsonImpl(resolve, reject) {\n $data.then((data: unknown) => {\n try {\n resolve(JSON.stringify(data));\n } catch {\n reject(new Error(\"Failed to convert to JSON\"));\n }\n });\n });\n}\n","import { Applied, Message, MessageType } from \"silentium\";\n\n/**\n * Represents the first element Of an array.\n */\nexport function First<T extends Array<unknown>>($base: MessageType<T>) {\n return Message<T[0]>(function FirstImpl(r) {\n Applied($base, (a) => a[0]).then(r);\n });\n}\n","import { ActualMessage, All, MaybeMessage, Message, 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: MaybeMessage<string>,\n valueSrc: MaybeMessage<string>,\n flagsSrc: MaybeMessage<string> = Of(\"\"),\n) {\n const $pattern = ActualMessage(patternSrc);\n const $value = ActualMessage(valueSrc);\n const $flags = ActualMessage(flagsSrc);\n return Message<string[]>(function RegexpMatchImpl(r) {\n All($pattern, $value, $flags).then(([pattern, value, flags]) => {\n const result = new RegExp(pattern, flags).exec(value);\n r(result ?? []);\n });\n });\n}\n","import { ActualMessage, All, MaybeMessage, Message, 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: MaybeMessage<string>,\n valueSrc: MaybeMessage<string>,\n flagsSrc: MaybeMessage<string> = Of(\"\"),\n) {\n const $pattern = ActualMessage(patternSrc);\n const $value = ActualMessage(valueSrc);\n const $flags = ActualMessage(flagsSrc);\n return Message<boolean>(function RegexpMatchedImpl(r) {\n All($pattern, $value, $flags).then(([pattern, value, flags]) => {\n r(new RegExp(pattern, flags).test(value));\n });\n });\n}\n","import { All, Message, MessageType, 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: MessageType<string>,\n patternSrc: MessageType<string>,\n replaceValueSrc: MessageType<string>,\n flagsSrc: MessageType<string> = Of(\"\"),\n) {\n return Message<string>(function RegexpReplacedImpl(r) {\n All(patternSrc, valueSrc, replaceValueSrc, flagsSrc).then(\n ([pattern, value, replaceValue, flags]) => {\n r(String(value).replace(new RegExp(pattern, flags), replaceValue));\n },\n );\n });\n}\n","import { ActualMessage, All, Message, MessageType } 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: MessageType<T>,\n keySrc: MessageType<string>,\n valueSrc: MessageType<unknown>,\n) {\n const $base = ActualMessage(baseSrc);\n const $key = ActualMessage(keySrc);\n const $value = ActualMessage(valueSrc);\n return Message<T>(function SetImpl(r) {\n All($base, $key, $value).then(([base, key, value]) => {\n (base as Record<string, unknown>)[key] = value;\n r(base);\n });\n });\n}\n","import {\n All,\n ConstructorType,\n DestroyableType,\n DestroyContainer,\n Message,\n MessageType,\n Of,\n} from \"silentium\";\n\nimport { RegexpMatched } from \"../system\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n message: ConstructorType<[], MessageType<T>>;\n}\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: MessageType<string>,\n $routes: MessageType<Route<T>[]>,\n $default: ConstructorType<[], MessageType<T>>,\n): MessageType<T> & DestroyableType {\n return Message<T>(function RouterImpl(r) {\n const dc = DestroyContainer();\n const destructor = () => {\n dc.destroy();\n };\n All($routes, $url).then(([routes, url]) => {\n destructor();\n const $matches = All(\n ...routes.map((r) =>\n RegexpMatched(\n Of(r.pattern),\n Of(url),\n r.patternFlags ? Of(r.patternFlags) : undefined,\n ),\n ),\n );\n $matches.then((matches) => {\n const index = matches.findIndex((v) => v === true);\n\n if (index === -1) {\n const instance = $default();\n dc.add(instance);\n instance.then(r);\n }\n\n if (index > -1) {\n const instance = routes[index].message();\n dc.add(instance);\n instance.then(r);\n }\n });\n });\n\n return destructor;\n });\n}\n","import { All, Message, MessageType, 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: MessageType<string>[],\n joinPartSrc: MessageType<string> = Of(\"\"),\n) {\n return Message<string>(function ConcatenatedImpl(r) {\n All(joinPartSrc, ...sources).then(([joinPart, ...strings]) => {\n r(strings.join(joinPart));\n });\n });\n}\n","import { Message, MessageType } from \"silentium\";\n\n/**\n * By receiving a message with a key and value, collects a table\n * of all previously received messages in the form of a structure\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport function HashTable<T>($base: MessageType<[string, unknown]>) {\n return Message<T>(function HashTableImpl(r) {\n const record: Record<string, unknown> = {};\n\n $base.then(([key, value]) => {\n record[key] = value;\n r(record as T);\n });\n });\n}\n","import { ActualMessage, All, Message, MessageType } from \"silentium\";\n\ntype UnWrap<T> = T extends MessageType<infer U> ? U : T;\n\n/**\n * Returns record Of data from record Of sources\n * https://silentium-lab.github.io/silentium-components/#/structures/record\n */\nexport function Record<T>(record: Record<string, T>) {\n return Message<Record<string, UnWrap<T>>>(function RecordImpl(r) {\n const keys = Object.keys(record);\n keys.forEach((key) => {\n record[key] = ActualMessage(record[key]) as any;\n });\n All(...(Object.values(record) as any)).then((entries) => {\n const record: Record<string, any> = {};\n entries.forEach((entry, index) => {\n record[keys[index]] = entry;\n });\n r(record);\n });\n });\n}\n","import {\n All,\n Applied,\n ConstructorType,\n DestroyableType,\n DestroyContainer,\n isDestroyable,\n MessageType,\n Of,\n Rejections,\n} from \"silentium\";\n\nimport { Record } from \"../structures\";\n\n/**\n * Allows creating a string template with\n * variables inserted into it; when variables change,\n * the template value will change\n */\nexport function Template(\n $src: MessageType<string> = Of(\"\"),\n $places: MessageType<Record<string, unknown>> = Of({}),\n) {\n return new TemplateImpl($src, $places);\n}\n\nclass TemplateImpl implements MessageType<string>, DestroyableType {\n private dc = DestroyContainer();\n private rejections = new Rejections();\n private vars: Record<string, MessageType> = {\n $TPL: Of(\"$TPL\"),\n };\n\n public constructor(\n private $src: MessageType<string> = Of(\"\"),\n private $places: MessageType<Record<string, unknown>> = Of({}),\n ) {}\n\n public then(transport: ConstructorType<[string]>): this {\n const $vars = Record(this.vars);\n Applied(All(this.$src, this.$places, $vars), ([base, rules, vars]) => {\n try {\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 } catch (e) {\n this.rejections.reject(e);\n }\n\n return base;\n }).then(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: MessageType<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 catch(rejected: ConstructorType<[unknown]>): this {\n this.rejections.catch(rejected);\n return this;\n }\n\n public destroy(): this {\n this.dc.destroy();\n return this;\n }\n}\n"],"names":["ActualMessage","Message","Primitive","DestroyContainer","Shared","Filtered","isFilled","Late","MessageSource","Applied","All","key","ExecutorApplied","Of","r","record","Rejections","isDestroyable"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as silentium from 'silentium';
|
|
2
|
-
import { MaybeMessage, MessageType,
|
|
2
|
+
import { MaybeMessage, MessageType, ConstructorType, DestroyableType, MessageSourceType, SourceType } from 'silentium';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Allows switching between left and right messages depending on condition
|
|
6
6
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/branch
|
|
7
7
|
*/
|
|
8
|
-
declare function Branch<Then, Else>(_condition: MaybeMessage<boolean>, _left: MaybeMessage<Then>, _right?: MaybeMessage<Else>): silentium.
|
|
8
|
+
declare function Branch<Then, Else>(_condition: MaybeMessage<boolean>, _left: MaybeMessage<Then>, _right?: MaybeMessage<Else>): silentium.MessageRx<Then | Else>;
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Depending on the $condition message,
|
|
@@ -13,7 +13,7 @@ declare function Branch<Then, Else>(_condition: MaybeMessage<boolean>, _left: Ma
|
|
|
13
13
|
* When condition changes, old messages are destroyed
|
|
14
14
|
* and new ones are created.
|
|
15
15
|
*/
|
|
16
|
-
declare function BranchLazy<Then, Else>($condition: MessageType<boolean>, $left:
|
|
16
|
+
declare function BranchLazy<Then, Else>($condition: MessageType<boolean>, $left: ConstructorType<[], MessageType<Then>>, $right?: ConstructorType<[], MessageType<Else>>): MessageType<Then | Else> & DestroyableType;
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* Constant value that will be
|
|
@@ -27,13 +27,13 @@ declare function Constant<T>(permanent: T, $trigger: MessageType): MessageType<T
|
|
|
27
27
|
* time runs out from $timeout; if $base manages to
|
|
28
28
|
* respond before $timeout then the value from base will be returned
|
|
29
29
|
*/
|
|
30
|
-
declare function Deadline<T>(
|
|
30
|
+
declare function Deadline<T>($base: MessageType<T>, _timeout: MaybeMessage<number>): silentium.MessageRx<T>;
|
|
31
31
|
|
|
32
32
|
/**
|
|
33
33
|
* Defer one source after another, gives values Of baseSrc only when triggerSrc responds
|
|
34
34
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/deferred
|
|
35
35
|
*/
|
|
36
|
-
declare function Deferred<T>($base: MessageType<T>, $trigger: MessageType<unknown>): silentium.
|
|
36
|
+
declare function Deferred<T>($base: MessageType<T>, $trigger: MessageType<unknown>): silentium.MessageRx<T>;
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
39
|
* Message separate from the base
|
|
@@ -47,7 +47,7 @@ declare function Detached<T>($base: MessageType<T>): MessageType<T>;
|
|
|
47
47
|
* returns new record, what will contain only fields what was changed
|
|
48
48
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/dirty
|
|
49
49
|
*/
|
|
50
|
-
declare function Dirty<T>($base: MessageType<T>, keep?: string[], exclude?: string[], cloner?: (v: T) => T):
|
|
50
|
+
declare function Dirty<T>($base: MessageType<T>, keep?: string[], exclude?: string[], cloner?: (v: T) => T): silentium.MessageSourceImpl<T>;
|
|
51
51
|
|
|
52
52
|
/**
|
|
53
53
|
* Representation Of loading process
|
|
@@ -55,92 +55,119 @@ declare function Dirty<T>($base: MessageType<T>, keep?: string[], exclude?: stri
|
|
|
55
55
|
* second message stops loading
|
|
56
56
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/loading
|
|
57
57
|
*/
|
|
58
|
-
declare function Loading($start: MessageType<unknown>, $finish: MessageType<unknown>): silentium.
|
|
58
|
+
declare function Loading($start: MessageType<unknown>, $finish: MessageType<unknown>): silentium.MessageRx<boolean>;
|
|
59
59
|
|
|
60
60
|
/**
|
|
61
61
|
* Allows locking messages
|
|
62
62
|
* if a $lock message arrives
|
|
63
63
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/lock
|
|
64
64
|
*/
|
|
65
|
-
declare function Lock<T>($base: MessageType<T>, $lock: MessageType<boolean>): silentium.
|
|
65
|
+
declare function Lock<T>($base: MessageType<T>, $lock: MessageType<boolean>): silentium.MessageRx<T>;
|
|
66
66
|
|
|
67
67
|
/**
|
|
68
68
|
* Didn't respond if new value Of baseSrc equals to old value
|
|
69
69
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/memo
|
|
70
70
|
*/
|
|
71
|
-
declare function Memo<T>($base: MessageType<T>): silentium.
|
|
71
|
+
declare function Memo<T>($base: MessageType<T>): silentium.MessageRx<T>;
|
|
72
72
|
|
|
73
73
|
/**
|
|
74
74
|
* Represents source what was changed at least once
|
|
75
75
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/only-changed
|
|
76
76
|
*/
|
|
77
|
-
declare function OnlyChanged<T>($base: MessageType<T>): silentium.
|
|
77
|
+
declare function OnlyChanged<T>($base: MessageType<T>): silentium.MessageRx<T>;
|
|
78
78
|
|
|
79
79
|
/**
|
|
80
80
|
* Return source Of record path
|
|
81
81
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/path
|
|
82
82
|
*/
|
|
83
|
-
declare function Part<R, T extends object | Array<any> = any, K extends string = any>($base:
|
|
83
|
+
declare function Part<R, T extends object | Array<any> = any, K extends string = any>($base: MessageSourceType<T>, key: MaybeMessage<K>): SourceType<R>;
|
|
84
84
|
|
|
85
85
|
/**
|
|
86
86
|
* Return source Of record path
|
|
87
87
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/path
|
|
88
88
|
*/
|
|
89
|
-
declare function Path<R, T extends object | Array<any> = any, K extends string = any>($base: MessageType<T>, _keyed: MaybeMessage<K>): silentium.
|
|
89
|
+
declare function Path<R, T extends object | Array<any> = any, K extends string = any>($base: MessageType<T>, _keyed: MaybeMessage<K>): silentium.MessageRx<R>;
|
|
90
90
|
|
|
91
91
|
/**
|
|
92
92
|
* Active polling of $base message
|
|
93
93
|
* synchronized with $trigger message
|
|
94
94
|
*/
|
|
95
|
-
declare function Polling<T>($base: MessageType<T>, $trigger: MessageType<T>): silentium.
|
|
95
|
+
declare function Polling<T>($base: MessageType<T>, $trigger: MessageType<T>): silentium.MessageRx<T>;
|
|
96
96
|
|
|
97
97
|
/**
|
|
98
98
|
* Helps to represent only last fresh value Of some source, refreshing controls by shotSrc
|
|
99
99
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/shot
|
|
100
100
|
*/
|
|
101
|
-
declare function Shot<T>($target: MessageType<T>, $trigger: MessageType): silentium.
|
|
101
|
+
declare function Shot<T>($target: MessageType<T>, $trigger: MessageType): silentium.MessageRx<T>;
|
|
102
102
|
|
|
103
103
|
/**
|
|
104
104
|
* Defer a message to the event loop
|
|
105
105
|
* so that it executes once within
|
|
106
106
|
* a certain timer firing interval
|
|
107
107
|
*/
|
|
108
|
-
declare function Task<T>(baseSrc:
|
|
108
|
+
declare function Task<T>(baseSrc: MaybeMessage<T>, delay?: number): silentium.MessageRx<T>;
|
|
109
109
|
|
|
110
110
|
/**
|
|
111
111
|
* Accumulates the last value Of the source and returns one result once per tick
|
|
112
112
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/tick
|
|
113
113
|
*/
|
|
114
|
-
declare function Tick<T>($base: MessageType<T>): silentium.
|
|
114
|
+
declare function Tick<T>($base: MessageType<T>): silentium.MessageRx<T>;
|
|
115
115
|
|
|
116
116
|
/**
|
|
117
|
-
*
|
|
118
|
-
*
|
|
117
|
+
* Logical AND over two messages
|
|
118
|
+
* https://silentium-lab.github.io/silentium-components/#/boolean/and
|
|
119
119
|
*/
|
|
120
|
-
declare function
|
|
121
|
-
MessageType<T>,
|
|
122
|
-
...MessageType<any>[]
|
|
123
|
-
], MessageType<R>>, ...args: MessageType[]): silentium.MessageImpl<R>;
|
|
120
|
+
declare function And($one: MessageType<boolean>, $two: MessageType<boolean>): silentium.MessageRx<boolean>;
|
|
124
121
|
|
|
125
122
|
/**
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
* https://silentium-lab.github.io/silentium-components/#/structures/hash-table
|
|
123
|
+
* Convert Any source to boolean source
|
|
124
|
+
* https://silentium-lab.github.io/silentium-components/#/boolean/bool
|
|
129
125
|
*/
|
|
130
|
-
declare function
|
|
126
|
+
declare function Bool($base: MessageType): silentium.MessageRx<boolean>;
|
|
131
127
|
|
|
132
|
-
type UnWrap<T> = T extends MessageType<infer U> ? U : T;
|
|
133
128
|
/**
|
|
134
|
-
*
|
|
135
|
-
* https://silentium-lab.github.io/silentium-components/#/
|
|
129
|
+
* Logical negation of message
|
|
130
|
+
* https://silentium-lab.github.io/silentium-components/#/boolean/not
|
|
131
|
+
*/
|
|
132
|
+
declare function Not($base: MessageType<boolean>): silentium.MessageRx<boolean>;
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Logical OR over two messages
|
|
136
|
+
* https://silentium-lab.github.io/silentium-components/#/boolean/or
|
|
137
|
+
*/
|
|
138
|
+
declare function Or($one: MessageType<boolean>, $two: MessageType<boolean>): silentium.MessageRx<boolean>;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Represents object from json
|
|
142
|
+
*/
|
|
143
|
+
declare function FromJson<T = Record<string, unknown>>($json: MessageType<string>): silentium.MessageRx<T>;
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Represents json from object
|
|
147
|
+
*/
|
|
148
|
+
declare function ToJson($data: MessageType): silentium.MessageRx<string>;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Represents the first element Of an array.
|
|
136
152
|
*/
|
|
137
|
-
declare function
|
|
153
|
+
declare function First<T extends Array<unknown>>($base: MessageType<T>): silentium.MessageRx<T[0]>;
|
|
154
|
+
|
|
155
|
+
interface Route<T> {
|
|
156
|
+
pattern: string;
|
|
157
|
+
patternFlags?: string;
|
|
158
|
+
message: ConstructorType<[], MessageType<T>>;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Router component what will return template if url matches pattern
|
|
162
|
+
* https://silentium-lab.github.io/silentium-components/#/navigation/router
|
|
163
|
+
*/
|
|
164
|
+
declare function Router<T = string>($url: MessageType<string>, $routes: MessageType<Route<T>[]>, $default: ConstructorType<[], MessageType<T>>): MessageType<T> & DestroyableType;
|
|
138
165
|
|
|
139
166
|
/**
|
|
140
167
|
* Join sources Of strings to one source
|
|
141
168
|
* https://silentium-lab.github.io/silentium-components/#/string/concatenated
|
|
142
169
|
*/
|
|
143
|
-
declare function Concatenated(sources: MessageType<string>[], joinPartSrc?: MessageType<string>): silentium.
|
|
170
|
+
declare function Concatenated(sources: MessageType<string>[], joinPartSrc?: MessageType<string>): silentium.MessageRx<string>;
|
|
144
171
|
|
|
145
172
|
/**
|
|
146
173
|
* Allows creating a string template with
|
|
@@ -152,91 +179,57 @@ declare class TemplateImpl implements MessageType<string>, DestroyableType {
|
|
|
152
179
|
private $src;
|
|
153
180
|
private $places;
|
|
154
181
|
private dc;
|
|
182
|
+
private rejections;
|
|
155
183
|
private vars;
|
|
156
184
|
constructor($src?: MessageType<string>, $places?: MessageType<Record<string, unknown>>);
|
|
157
|
-
|
|
185
|
+
then(transport: ConstructorType<[string]>): this;
|
|
158
186
|
template(value: string): void;
|
|
159
187
|
/**
|
|
160
188
|
* Ability to register variable
|
|
161
189
|
* in concrete place Of template
|
|
162
190
|
*/
|
|
163
191
|
var(src: MessageType<string>): string;
|
|
192
|
+
catch(rejected: ConstructorType<[unknown]>): this;
|
|
164
193
|
destroy(): this;
|
|
165
194
|
}
|
|
166
195
|
|
|
167
|
-
interface Route<T> {
|
|
168
|
-
pattern: string;
|
|
169
|
-
patternFlags?: string;
|
|
170
|
-
message: TapType<void, MessageType<T>>;
|
|
171
|
-
}
|
|
172
196
|
/**
|
|
173
|
-
*
|
|
174
|
-
*
|
|
175
|
-
|
|
176
|
-
declare function Router<T = "string">($url: MessageType<string>, $routes: MessageType<Route<T>[]>, $default: TapType<void, MessageType<T>>): MessageType<T> & DestroyableType;
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Boolean source what checks what string matches pattern
|
|
180
|
-
* https://silentium-lab.github.io/silentium-components/#/system/regexp-matched
|
|
197
|
+
* By receiving a message with a key and value, collects a table
|
|
198
|
+
* of all previously received messages in the form of a structure
|
|
199
|
+
* https://silentium-lab.github.io/silentium-components/#/structures/hash-table
|
|
181
200
|
*/
|
|
182
|
-
declare function
|
|
201
|
+
declare function HashTable<T>($base: MessageType<[string, unknown]>): silentium.MessageRx<T>;
|
|
183
202
|
|
|
203
|
+
type UnWrap<T> = T extends MessageType<infer U> ? U : T;
|
|
184
204
|
/**
|
|
185
|
-
* Returns
|
|
186
|
-
* https://silentium-lab.github.io/silentium-components/#/
|
|
205
|
+
* Returns record Of data from record Of sources
|
|
206
|
+
* https://silentium-lab.github.io/silentium-components/#/structures/record
|
|
187
207
|
*/
|
|
188
|
-
declare function
|
|
208
|
+
declare function Record$1<T>(record: Record$1<string, T>): silentium.MessageRx<Record$1<string, UnWrap<T>>>;
|
|
189
209
|
|
|
190
210
|
/**
|
|
191
211
|
* First match Of regexp
|
|
192
212
|
* https://silentium-lab.github.io/silentium-components/#/system/regexp-matched
|
|
193
213
|
*/
|
|
194
|
-
declare function RegexpMatch(patternSrc:
|
|
214
|
+
declare function RegexpMatch(patternSrc: MaybeMessage<string>, valueSrc: MaybeMessage<string>, flagsSrc?: MaybeMessage<string>): silentium.MessageRx<string[]>;
|
|
195
215
|
|
|
196
216
|
/**
|
|
197
|
-
*
|
|
198
|
-
* https://silentium-lab.github.io/silentium-components/#/system/
|
|
199
|
-
*/
|
|
200
|
-
declare function Set<T extends Record<string, unknown>>(baseSrc: MessageType<T>, keySrc: MessageType<string>, valueSrc: MessageType<unknown>): silentium.MessageImpl<T>;
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
* Logical AND over two messages
|
|
204
|
-
* https://silentium-lab.github.io/silentium-components/#/boolean/and
|
|
205
|
-
*/
|
|
206
|
-
declare function And($one: MessageType<boolean>, $two: MessageType<boolean>): silentium.MessageImpl<boolean>;
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* Logical OR over two messages
|
|
210
|
-
* https://silentium-lab.github.io/silentium-components/#/boolean/or
|
|
211
|
-
*/
|
|
212
|
-
declare function Or($one: MessageType<boolean>, $two: MessageType<boolean>): silentium.MessageImpl<boolean>;
|
|
213
|
-
|
|
214
|
-
/**
|
|
215
|
-
* Logical negation of message
|
|
216
|
-
* https://silentium-lab.github.io/silentium-components/#/boolean/not
|
|
217
|
-
*/
|
|
218
|
-
declare function Not($base: MessageType<boolean>): silentium.MessageImpl<boolean>;
|
|
219
|
-
|
|
220
|
-
/**
|
|
221
|
-
* Convert Any source to boolean source
|
|
222
|
-
* https://silentium-lab.github.io/silentium-components/#/boolean/bool
|
|
223
|
-
*/
|
|
224
|
-
declare function Bool($base: MessageType): silentium.MessageImpl<boolean>;
|
|
225
|
-
|
|
226
|
-
/**
|
|
227
|
-
* Represents object from json
|
|
217
|
+
* Boolean source what checks what string matches pattern
|
|
218
|
+
* https://silentium-lab.github.io/silentium-components/#/system/regexp-matched
|
|
228
219
|
*/
|
|
229
|
-
declare function
|
|
220
|
+
declare function RegexpMatched(patternSrc: MaybeMessage<string>, valueSrc: MaybeMessage<string>, flagsSrc?: MaybeMessage<string>): silentium.MessageRx<boolean>;
|
|
230
221
|
|
|
231
222
|
/**
|
|
232
|
-
*
|
|
223
|
+
* Returns string replaced by regular expression pattern
|
|
224
|
+
* https://silentium-lab.github.io/silentium-components/#/system/regexp-replaced
|
|
233
225
|
*/
|
|
234
|
-
declare function
|
|
226
|
+
declare function RegexpReplaced(valueSrc: MessageType<string>, patternSrc: MessageType<string>, replaceValueSrc: MessageType<string>, flagsSrc?: MessageType<string>): silentium.MessageRx<string>;
|
|
235
227
|
|
|
236
228
|
/**
|
|
237
|
-
*
|
|
229
|
+
* Ability to mutate some object, helpful when integrate to procedure systems
|
|
230
|
+
* https://silentium-lab.github.io/silentium-components/#/system/set
|
|
238
231
|
*/
|
|
239
|
-
declare function
|
|
232
|
+
declare function Set<T extends Record<string, unknown>>(baseSrc: MessageType<T>, keySrc: MessageType<string>, valueSrc: MessageType<unknown>): silentium.MessageRx<T>;
|
|
240
233
|
|
|
241
|
-
export { And, Bool, Branch, BranchLazy, Concatenated, Constant, Deadline, Deferred, Detached, Dirty, First, FromJson, HashTable, Loading, Lock, Memo, Not, OnlyChanged, Or, Part, Path, Polling, Record$1 as Record, RegexpMatch, RegexpMatched, RegexpReplaced, Router, Set, Shot, Task, Template, Tick, ToJson
|
|
234
|
+
export { And, Bool, Branch, BranchLazy, Concatenated, Constant, Deadline, Deferred, Detached, Dirty, First, FromJson, HashTable, Loading, Lock, Memo, Not, OnlyChanged, Or, Part, Path, Polling, Record$1 as Record, RegexpMatch, RegexpMatched, RegexpReplaced, Router, Set, Shot, Task, Template, Tick, ToJson };
|
|
242
235
|
export type { Route };
|