silentium-components 0.0.71 → 0.0.73

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 CHANGED
@@ -2,6 +2,21 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.0.73](https://github.com/silentium-lab/silentium-components/compare/v0.0.72...v0.0.73) (2025-11-01)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **main:** branch lazy has destructor ([fe07e98](https://github.com/silentium-lab/silentium-components/commit/fe07e9831d4d3360b04f0e4d5cc8d7d300a18ab6))
11
+
12
+ ### [0.0.72](https://github.com/silentium-lab/silentium-components/compare/v0.0.71...v0.0.72) (2025-11-01)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * **main:** silentium next version and npm audit fixes ([8156363](https://github.com/silentium-lab/silentium-components/commit/815636321cfeb5d189830514877ddf7066fcaa27))
18
+ * **main:** small fixes ([cf3ba24](https://github.com/silentium-lab/silentium-components/commit/cf3ba242ef6920e1fe39e9e7b988f3ba93689036))
19
+
5
20
  ### [0.0.71](https://github.com/silentium-lab/silentium-components/compare/v0.0.70...v0.0.71) (2025-10-31)
6
21
 
7
22
 
@@ -33,13 +33,13 @@ function BranchLazy($condition, $left, $right) {
33
33
  if (destructor !== void 0 && typeof destructor === "function") {
34
34
  destructor();
35
35
  }
36
- let instance = null;
36
+ let instance;
37
37
  if (v) {
38
38
  instance = $left.use();
39
39
  } else if ($right) {
40
40
  instance = $right.use();
41
41
  }
42
- if (instance) {
42
+ if (instance !== void 0) {
43
43
  instance.event(transport);
44
44
  destructor = instance.destroy;
45
45
  }
@@ -63,7 +63,7 @@ function Constant(permanent, $trigger) {
63
63
 
64
64
  function Deadline(error, $base, $timeout) {
65
65
  return silentium.Event((transport) => {
66
- let timer = null;
66
+ let timer = 0;
67
67
  const base = silentium.Shared($base, true);
68
68
  $timeout.event(
69
69
  silentium.Transport((timeout) => {
@@ -76,7 +76,7 @@ function Deadline(error, $base, $timeout) {
76
76
  return;
77
77
  }
78
78
  timeoutReached = true;
79
- error.use(new Error("Timeout reached in Deadline class"));
79
+ error.use(new Error("Timeout reached in Deadline"));
80
80
  }, timeout);
81
81
  const f = silentium.Filtered(base, () => !timeoutReached);
82
82
  f.event(transport);
@@ -187,7 +187,7 @@ function Memo($base) {
187
187
  let last = null;
188
188
  $base.event(
189
189
  silentium.Transport((v) => {
190
- if (v !== last) {
190
+ if (v !== last && silentium.isFilled(v)) {
191
191
  transport.use(v);
192
192
  last = v;
193
193
  }
@@ -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/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":["Event","Primitive","Transport","Shared","Filtered","isFilled","__publicField","Late","Applied","All","SharedSource","ExecutorApplied","LateShared","Of","record","DestroyContainer","isDestroyable","TransportEvent","TransportDestroyable","r"],"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/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\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> & DestroyableType {\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> | undefined;\n if (v) {\n instance = $left.use();\n } else if ($right) {\n instance = $right.use();\n }\n if (instance !== undefined) {\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\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: ReturnType<typeof setTimeout> | number = 0;\n const base = Shared($base, true);\n $timeout.event(\n Transport((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.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 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 { 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, isFilled, 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 && isFilled(v)) {\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":["Event","Primitive","Transport","Shared","Filtered","isFilled","__publicField","Late","Applied","All","SharedSource","ExecutorApplied","LateShared","Of","record","DestroyContainer","isDestroyable","TransportEvent","TransportDestroyable","r"],"mappings":"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"}
@@ -1,20 +1,14 @@
1
- import { EventType, TransportType, SourceType, ConstructorType, DestroyableType } from 'silentium';
1
+ import { EventType, TransportType, DestroyableType, SourceType, ConstructorType } from 'silentium';
2
2
 
3
3
  /**
4
4
  * https://silentium-lab.github.io/silentium-components/#/behaviors/branch
5
5
  */
6
6
  declare function Branch<Then, Else>($condition: EventType<boolean>, $left: EventType<Then>, $right?: EventType<Else>): EventType<Then | Else>;
7
7
 
8
- /**
9
- * https://silentium-lab.github.io/silentium-components/#/behaviors/branch
10
- */
11
- declare function BranchLazy<Then, Else>($condition: EventType<boolean>, $left: TransportType<void, EventType<Then>>, $right?: TransportType<void, EventType<Else>>): EventType<Then | Else>;
8
+ declare function BranchLazy<Then, Else>($condition: EventType<boolean>, $left: TransportType<void, EventType<Then>>, $right?: TransportType<void, EventType<Else>>): EventType<Then | Else> & DestroyableType;
12
9
 
13
10
  declare function Constant<T>(permanent: T, $trigger: EventType): EventType<T>;
14
11
 
15
- /**
16
- * https://silentium-lab.github.io/silentium-components/#/behaviors/path
17
- */
18
12
  declare function Deadline<T>(error: TransportType<Error>, $base: EventType<T>, $timeout: EventType<number>): EventType<T>;
19
13
 
20
14
  /**
@@ -31,13 +31,13 @@ function BranchLazy($condition, $left, $right) {
31
31
  if (destructor !== void 0 && typeof destructor === "function") {
32
32
  destructor();
33
33
  }
34
- let instance = null;
34
+ let instance;
35
35
  if (v) {
36
36
  instance = $left.use();
37
37
  } else if ($right) {
38
38
  instance = $right.use();
39
39
  }
40
- if (instance) {
40
+ if (instance !== void 0) {
41
41
  instance.event(transport);
42
42
  destructor = instance.destroy;
43
43
  }
@@ -61,7 +61,7 @@ function Constant(permanent, $trigger) {
61
61
 
62
62
  function Deadline(error, $base, $timeout) {
63
63
  return Event((transport) => {
64
- let timer = null;
64
+ let timer = 0;
65
65
  const base = Shared($base, true);
66
66
  $timeout.event(
67
67
  Transport((timeout) => {
@@ -74,7 +74,7 @@ function Deadline(error, $base, $timeout) {
74
74
  return;
75
75
  }
76
76
  timeoutReached = true;
77
- error.use(new Error("Timeout reached in Deadline class"));
77
+ error.use(new Error("Timeout reached in Deadline"));
78
78
  }, timeout);
79
79
  const f = Filtered(base, () => !timeoutReached);
80
80
  f.event(transport);
@@ -185,7 +185,7 @@ function Memo($base) {
185
185
  let last = null;
186
186
  $base.event(
187
187
  Transport((v) => {
188
- if (v !== last) {
188
+ if (v !== last && isFilled(v)) {
189
189
  transport.use(v);
190
190
  last = v;
191
191
  }
@@ -1 +1 @@
1
- {"version":3,"file":"silentium-components.js","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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"}
1
+ {"version":3,"file":"silentium-components.js","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\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> & DestroyableType {\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> | undefined;\n if (v) {\n instance = $left.use();\n } else if ($right) {\n instance = $right.use();\n }\n if (instance !== undefined) {\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\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: ReturnType<typeof setTimeout> | number = 0;\n const base = Shared($base, true);\n $timeout.event(\n Transport((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.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 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 { 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, isFilled, 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 && isFilled(v)) {\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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"}
@@ -1 +1 @@
1
- !function(e,t){"use strict";function n(e,n,r){return t.Event((s=>{let i;return e.event(t.Transport((e=>{void 0!==i&&"function"==typeof i&&i();let t=null;e?t=n.use():r&&(t=r.use()),t&&(t.event(s),i=t.destroy)}))),()=>{i?.()}}))}function r(e){return t.Event((n=>{const r=t.Primitive(e).primitive();t.isFilled(r)&&n.use(r)}))}var s=Object.defineProperty,i=(e,t,n)=>((e,t,n)=>t in e?s(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n);class o{constructor(e,n=[],r=[],s){this.$base=e,this.keep=n,this.exclude=r,i(this,"$comparing",t.Late()),i(this,"cloner"),this.cloner=void 0===s?e=>JSON.parse(JSON.stringify(e)):s}event(e){const n=t.Applied(this.$comparing,this.cloner);return t.All(n,this.$base).event(t.Transport((([t,n])=>{t&&e.use(Object.fromEntries(Object.entries(t).filter((([e,t])=>!!this.keep.includes(e)||!this.exclude.includes(e)&&t!==n[e]))))}))),this}use(e){return this.$comparing.use(e),this}}var u=Object.defineProperty,l=(e,t,n)=>((e,t,n)=>t in e?u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n);class c{constructor(e,n){l(this,"$base"),l(this,"$keyed"),this.$base=t.SharedSource(e),this.$keyed=t.Shared(n)}event(e){return t.All(this.$base,this.$keyed).event(t.Transport((([t,n])=>{const r=n.split(".");let s=t;r.forEach((e=>{s=s[e]})),void 0!==s&&s!==t&&e.use(s)}))),this}use(e){const n=t.Primitive(this.$keyed);if(t.isFilled(n)){const r=t.Primitive(this.$base);this.$base.use({...r.primitiveWithException(),[n.primitiveWithException()]:e})}return this}}function a(e){return t.Event((n=>{const r=Object.keys(e);t.All(...Object.values(e)).event(t.Transport((e=>{const t={};e.forEach(((e,n)=>{t[r[n]]=e})),n.use(t)})))}))}var v=Object.defineProperty,p=(e,t,n)=>((e,t,n)=>t in e?v(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n);class f{constructor(e=t.Of(""),n=t.Of({})){this.$src=e,this.$places=n,p(this,"dc",t.DestroyContainer()),p(this,"vars",{$TPL:t.Of("$TPL")})}event(e){const n=a(this.vars);return t.Applied(t.All(this.$src,this.$places,n),(([e,t,n])=>(Object.entries(t).forEach((([t,n])=>{e=e.replaceAll(t,String(n))})),Object.entries(n).forEach((([t,n])=>{e=e.replaceAll(t,String(n))})),e))).event(e),this}template(e){this.$src=t.Of(e)}var(e){const n=`$var${Object.keys(this.vars).length}`;return t.isDestroyable(e)&&this.dc.add(e),this.vars[n]=e,n}destroy(){return this}}function h(e,n,r=t.Of("")){return t.Event((s=>{t.All(e,n,r).event(t.Transport((([e,t,n])=>{s.use(new RegExp(e,n).test(t))})))}))}const d=t.TransportEvent((()=>t.Of(!1)));e.And=function(e,n){return t.Event((r=>{t.All(e,n).event(t.Transport((([e,t])=>{r.use(e&&t)})))}))},e.Bool=function(e){return t.Event((n=>{t.Applied(e,Boolean).event(n)}))},e.Branch=function(e,n,r){return t.Event((s=>{const i=t.Primitive(n);let o;void 0!==r&&(o=t.Primitive(r)),e.event(t.Transport((e=>{let t=null;e?t=i.primitive():o&&(t=o.primitive()),null!==t&&s.use(t)})))}))},e.BranchLazy=n,e.Concatenated=function(e,n=t.Of("")){return t.Event((r=>{t.All(n,...e).event(t.Transport((([e,...t])=>{r.use(t.join(e))})))}))},e.Constant=function(e,n){return t.Event((r=>{n.event(t.Transport((()=>{r.use(e)})))}))},e.Deadline=function(e,n,r){return t.Event((s=>{let i=null;const o=t.Shared(n,!0);r.event(t.Transport((n=>{i&&clearTimeout(i);let r=!1;i=setTimeout((()=>{r||(r=!0,e.use(new Error("Timeout reached in Deadline class")))}),n);t.Filtered(o,(()=>!r)).event(s),o.event(t.Transport((()=>{r=!0})))})))}))},e.Deferred=function(e,n){return t.Event((r=>{const s=t.Primitive(e);n.event(t.Transport((()=>{const e=s.primitive();t.isFilled(e)&&r.use(e)})))}))},e.Detached=r,e.Dirty=function(e,t=[],n=[],r){return new o(e,t,n,r)},e.First=function(e){return t.Event((n=>{t.Applied(e,(e=>e[0])).event(n)}))},e.FromJson=function(e,n){return t.Event((r=>{e.event(t.Transport((e=>{try{r.use(JSON.parse(e))}catch(e){n?.use(new Error(`Failed to parse JSON: ${e}`))}})))}))},e.HashTable=function(e){return t.Event((n=>{const r={};e.event(t.Transport((([e,t])=>{r[e]=t,n.use(r)})))}))},e.Loading=function(e,n){return t.Event((r=>{e.event(t.Transport((()=>r.use(!0)))),n.event(t.Transport((()=>r.use(!1))))}))},e.Lock=function(e,n){return t.Event((r=>{let s=!1;n.event(t.Transport((e=>{s=e})));t.Filtered(e,(()=>!s)).event(r)}))},e.Memo=function(e){return t.Event((n=>{let r=null;e.event(t.Transport((e=>{e!==r&&(n.use(e),r=e)})))}))},e.Not=function(e){return t.Event((n=>{e.event(t.Transport((e=>{n.use(!e)})))}))},e.OnlyChanged=function(e){return t.Event((n=>{let r=!1;e.event(t.Transport((e=>{!1===r?r=!0:n.use(e)})))}))},e.Or=function(e,n){return t.Event((r=>{t.All(e,n).event(t.Transport((([e,t])=>{r.use(e||t)})))}))},e.Part=function(e,t){return new c(e,t)},e.Path=function(e,n){return t.Event((r=>{t.All(e,n).event(t.Transport((([e,t])=>{const n=t.split(".");let s=e;n.forEach((e=>{s=s[e]})),void 0!==s&&s!==e&&r.use(s)})))}))},e.Polling=function(e,n){return t.Event((r=>{n.event(t.Transport((()=>{e.event(r)})))}))},e.RecordOf=a,e.RegexpMatch=function(e,n,r=t.Of("")){return t.Event((s=>{t.All(e,n,r).event(t.Transport((([e,t,n])=>{const r=new RegExp(e,n).exec(t);s.use(r??[])})))}))},e.RegexpMatched=h,e.RegexpReplaced=function(e,n,r,s=t.Of("")){return t.Event((i=>{t.All(n,e,r,s).event(t.Transport((([e,t,n,r])=>{i.use(String(t).replace(new RegExp(e,r),n))})))}))},e.Router=function(e,r,s){return t.Event((i=>{const o=[],u=()=>{o.forEach((e=>e.destroy())),o.length=0};return t.All(r,e).event(t.Transport((([e,r])=>{u();const l=t.All(s.use(),t.All(...e.map((e=>{const s=t.TransportDestroyable(e.event);return o.push(s),n(h(t.Of(e.pattern),t.Of(r),e.patternFlags?t.Of(e.patternFlags):void 0),s,d)}))));t.Applied(l,(e=>{const t=e[1].find((e=>!1!==e));return t||e[0]})).event(i)}))),u}))},e.Set=function(e,n,r){return t.Event((s=>{t.All(e,n,r).event(t.Transport((([e,t,n])=>{e[t]=n,s.use(e)})))}))},e.Shot=function(e,n){return t.Event((r=>{const s=t.Primitive(e);s.primitive(),n.event(t.Transport((()=>{const e=s.primitive();t.isFilled(e)&&r.use(e)})))}))},e.Task=function(e,n=0){return t.Event((r=>{let s=null;t.ExecutorApplied(e,(e=>t=>{s&&clearTimeout(s),s=setTimeout((()=>{e(t)}),n)})).event(r)}))},e.Template=function(e=t.Of(""),n=t.Of({})){return new f(e,n)},e.Tick=function(e){return t.Event((n=>{let r=!1,s=null;e.event(t.Transport((e=>{s=e,r||(r=!0,queueMicrotask((()=>{r=!1,null!==s&&(n.use(s),s=null)})))})))}))},e.ToJson=function(e,n){return t.Event((r=>{e.event(t.Transport((e=>{try{r.use(JSON.stringify(e))}catch{n?.use(new Error("Failed to convert to JSON"))}})))}))},e.Transaction=function(e,n,...s){return t.Event((i=>{const o=t.LateShared(),u=[];return e.event(t.Transport((e=>{const i=n(t.Of(e),...s.map((e=>r(e))));u.push(i),i.event(o)}))),o.event(i),()=>{u.forEach((e=>e?.destroy())),u.length=0}}))}}({},silentium);
1
+ !function(e,t){"use strict";function n(e,n,r){return t.Event((s=>{let i;return e.event(t.Transport((e=>{let t;void 0!==i&&"function"==typeof i&&i(),e?t=n.use():r&&(t=r.use()),void 0!==t&&(t.event(s),i=t.destroy)}))),()=>{i?.()}}))}function r(e){return t.Event((n=>{const r=t.Primitive(e).primitive();t.isFilled(r)&&n.use(r)}))}var s=Object.defineProperty,i=(e,t,n)=>((e,t,n)=>t in e?s(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n);class o{constructor(e,n=[],r=[],s){this.$base=e,this.keep=n,this.exclude=r,i(this,"$comparing",t.Late()),i(this,"cloner"),this.cloner=void 0===s?e=>JSON.parse(JSON.stringify(e)):s}event(e){const n=t.Applied(this.$comparing,this.cloner);return t.All(n,this.$base).event(t.Transport((([t,n])=>{t&&e.use(Object.fromEntries(Object.entries(t).filter((([e,t])=>!!this.keep.includes(e)||!this.exclude.includes(e)&&t!==n[e]))))}))),this}use(e){return this.$comparing.use(e),this}}var u=Object.defineProperty,c=(e,t,n)=>((e,t,n)=>t in e?u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n);class l{constructor(e,n){c(this,"$base"),c(this,"$keyed"),this.$base=t.SharedSource(e),this.$keyed=t.Shared(n)}event(e){return t.All(this.$base,this.$keyed).event(t.Transport((([t,n])=>{const r=n.split(".");let s=t;r.forEach((e=>{s=s[e]})),void 0!==s&&s!==t&&e.use(s)}))),this}use(e){const n=t.Primitive(this.$keyed);if(t.isFilled(n)){const r=t.Primitive(this.$base);this.$base.use({...r.primitiveWithException(),[n.primitiveWithException()]:e})}return this}}function a(e){return t.Event((n=>{const r=Object.keys(e);t.All(...Object.values(e)).event(t.Transport((e=>{const t={};e.forEach(((e,n)=>{t[r[n]]=e})),n.use(t)})))}))}var v=Object.defineProperty,p=(e,t,n)=>((e,t,n)=>t in e?v(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n);class f{constructor(e=t.Of(""),n=t.Of({})){this.$src=e,this.$places=n,p(this,"dc",t.DestroyContainer()),p(this,"vars",{$TPL:t.Of("$TPL")})}event(e){const n=a(this.vars);return t.Applied(t.All(this.$src,this.$places,n),(([e,t,n])=>(Object.entries(t).forEach((([t,n])=>{e=e.replaceAll(t,String(n))})),Object.entries(n).forEach((([t,n])=>{e=e.replaceAll(t,String(n))})),e))).event(e),this}template(e){this.$src=t.Of(e)}var(e){const n=`$var${Object.keys(this.vars).length}`;return t.isDestroyable(e)&&this.dc.add(e),this.vars[n]=e,n}destroy(){return this}}function h(e,n,r=t.Of("")){return t.Event((s=>{t.All(e,n,r).event(t.Transport((([e,t,n])=>{s.use(new RegExp(e,n).test(t))})))}))}const d=t.TransportEvent((()=>t.Of(!1)));e.And=function(e,n){return t.Event((r=>{t.All(e,n).event(t.Transport((([e,t])=>{r.use(e&&t)})))}))},e.Bool=function(e){return t.Event((n=>{t.Applied(e,Boolean).event(n)}))},e.Branch=function(e,n,r){return t.Event((s=>{const i=t.Primitive(n);let o;void 0!==r&&(o=t.Primitive(r)),e.event(t.Transport((e=>{let t=null;e?t=i.primitive():o&&(t=o.primitive()),null!==t&&s.use(t)})))}))},e.BranchLazy=n,e.Concatenated=function(e,n=t.Of("")){return t.Event((r=>{t.All(n,...e).event(t.Transport((([e,...t])=>{r.use(t.join(e))})))}))},e.Constant=function(e,n){return t.Event((r=>{n.event(t.Transport((()=>{r.use(e)})))}))},e.Deadline=function(e,n,r){return t.Event((s=>{let i=0;const o=t.Shared(n,!0);r.event(t.Transport((n=>{i&&clearTimeout(i);let r=!1;i=setTimeout((()=>{r||(r=!0,e.use(new Error("Timeout reached in Deadline")))}),n);t.Filtered(o,(()=>!r)).event(s),o.event(t.Transport((()=>{r=!0})))})))}))},e.Deferred=function(e,n){return t.Event((r=>{const s=t.Primitive(e);n.event(t.Transport((()=>{const e=s.primitive();t.isFilled(e)&&r.use(e)})))}))},e.Detached=r,e.Dirty=function(e,t=[],n=[],r){return new o(e,t,n,r)},e.First=function(e){return t.Event((n=>{t.Applied(e,(e=>e[0])).event(n)}))},e.FromJson=function(e,n){return t.Event((r=>{e.event(t.Transport((e=>{try{r.use(JSON.parse(e))}catch(e){n?.use(new Error(`Failed to parse JSON: ${e}`))}})))}))},e.HashTable=function(e){return t.Event((n=>{const r={};e.event(t.Transport((([e,t])=>{r[e]=t,n.use(r)})))}))},e.Loading=function(e,n){return t.Event((r=>{e.event(t.Transport((()=>r.use(!0)))),n.event(t.Transport((()=>r.use(!1))))}))},e.Lock=function(e,n){return t.Event((r=>{let s=!1;n.event(t.Transport((e=>{s=e})));t.Filtered(e,(()=>!s)).event(r)}))},e.Memo=function(e){return t.Event((n=>{let r=null;e.event(t.Transport((e=>{e!==r&&t.isFilled(e)&&(n.use(e),r=e)})))}))},e.Not=function(e){return t.Event((n=>{e.event(t.Transport((e=>{n.use(!e)})))}))},e.OnlyChanged=function(e){return t.Event((n=>{let r=!1;e.event(t.Transport((e=>{!1===r?r=!0:n.use(e)})))}))},e.Or=function(e,n){return t.Event((r=>{t.All(e,n).event(t.Transport((([e,t])=>{r.use(e||t)})))}))},e.Part=function(e,t){return new l(e,t)},e.Path=function(e,n){return t.Event((r=>{t.All(e,n).event(t.Transport((([e,t])=>{const n=t.split(".");let s=e;n.forEach((e=>{s=s[e]})),void 0!==s&&s!==e&&r.use(s)})))}))},e.Polling=function(e,n){return t.Event((r=>{n.event(t.Transport((()=>{e.event(r)})))}))},e.RecordOf=a,e.RegexpMatch=function(e,n,r=t.Of("")){return t.Event((s=>{t.All(e,n,r).event(t.Transport((([e,t,n])=>{const r=new RegExp(e,n).exec(t);s.use(r??[])})))}))},e.RegexpMatched=h,e.RegexpReplaced=function(e,n,r,s=t.Of("")){return t.Event((i=>{t.All(n,e,r,s).event(t.Transport((([e,t,n,r])=>{i.use(String(t).replace(new RegExp(e,r),n))})))}))},e.Router=function(e,r,s){return t.Event((i=>{const o=[],u=()=>{o.forEach((e=>e.destroy())),o.length=0};return t.All(r,e).event(t.Transport((([e,r])=>{u();const c=t.All(s.use(),t.All(...e.map((e=>{const s=t.TransportDestroyable(e.event);return o.push(s),n(h(t.Of(e.pattern),t.Of(r),e.patternFlags?t.Of(e.patternFlags):void 0),s,d)}))));t.Applied(c,(e=>{const t=e[1].find((e=>!1!==e));return t||e[0]})).event(i)}))),u}))},e.Set=function(e,n,r){return t.Event((s=>{t.All(e,n,r).event(t.Transport((([e,t,n])=>{e[t]=n,s.use(e)})))}))},e.Shot=function(e,n){return t.Event((r=>{const s=t.Primitive(e);s.primitive(),n.event(t.Transport((()=>{const e=s.primitive();t.isFilled(e)&&r.use(e)})))}))},e.Task=function(e,n=0){return t.Event((r=>{let s=null;t.ExecutorApplied(e,(e=>t=>{s&&clearTimeout(s),s=setTimeout((()=>{e(t)}),n)})).event(r)}))},e.Template=function(e=t.Of(""),n=t.Of({})){return new f(e,n)},e.Tick=function(e){return t.Event((n=>{let r=!1,s=null;e.event(t.Transport((e=>{s=e,r||(r=!0,queueMicrotask((()=>{r=!1,null!==s&&(n.use(s),s=null)})))})))}))},e.ToJson=function(e,n){return t.Event((r=>{e.event(t.Transport((e=>{try{r.use(JSON.stringify(e))}catch{n?.use(new Error("Failed to convert to JSON"))}})))}))},e.Transaction=function(e,n,...s){return t.Event((i=>{const o=t.LateShared(),u=[];return e.event(t.Transport((e=>{const i=n(t.Of(e),...s.map((e=>r(e))));u.push(i),i.event(o)}))),o.event(i),()=>{u.forEach((e=>e?.destroy())),u.length=0}}))}}({},silentium);