silentium-components 0.0.77 → 0.0.78
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 +7 -0
- package/dist/silentium-components.cjs +30 -27
- package/dist/silentium-components.cjs.map +1 -1
- package/dist/silentium-components.d.ts +1 -1
- package/dist/silentium-components.js +31 -28
- package/dist/silentium-components.js.map +1 -1
- package/dist/silentium-components.min.js +1 -1
- package/dist/silentium-components.min.mjs +1 -1
- package/dist/silentium-components.min.mjs.map +1 -1
- package/dist/silentium-components.mjs +31 -28
- package/dist/silentium-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/navigation/Router._firstMatch.test.ts +54 -0
- package/src/navigation/Router.ts +33 -34
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
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.78](https://github.com/silentium-lab/silentium-components/compare/v0.0.77...v0.0.78) (2025-11-08)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **main:** router fixed route sequence is predicatable now ([bfd19a1](https://github.com/silentium-lab/silentium-components/commit/bfd19a190accfc3cd82a5afe55e9413a8e5cbe77))
|
|
11
|
+
|
|
5
12
|
### [0.0.77](https://github.com/silentium-lab/silentium-components/compare/v0.0.76...v0.0.77) (2025-11-03)
|
|
6
13
|
|
|
7
14
|
|
|
@@ -489,42 +489,45 @@ function Set(baseSrc, keySrc, valueSrc) {
|
|
|
489
489
|
});
|
|
490
490
|
}
|
|
491
491
|
|
|
492
|
-
const $empty = silentium.TransportEvent(() => silentium.Of(false));
|
|
493
492
|
function Router($url, $routes, $default) {
|
|
494
493
|
return silentium.Event((transport) => {
|
|
495
|
-
const
|
|
494
|
+
const destroyableList = [];
|
|
495
|
+
const checkDestroyable = (instance) => {
|
|
496
|
+
if (silentium.isDestroyable(instance)) {
|
|
497
|
+
destroyableList.push(instance);
|
|
498
|
+
}
|
|
499
|
+
};
|
|
496
500
|
const destructor = () => {
|
|
497
|
-
|
|
498
|
-
|
|
501
|
+
destroyableList.forEach((d) => d.destroy());
|
|
502
|
+
destroyableList.length = 0;
|
|
499
503
|
};
|
|
500
504
|
silentium.All($routes, $url).event(
|
|
501
505
|
silentium.Transport(([routes, url]) => {
|
|
502
506
|
destructor();
|
|
503
|
-
const
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
RegexpMatched(
|
|
511
|
-
silentium.Of(r.pattern),
|
|
512
|
-
silentium.Of(url),
|
|
513
|
-
r.patternFlags ? silentium.Of(r.patternFlags) : void 0
|
|
514
|
-
),
|
|
515
|
-
$template,
|
|
516
|
-
$empty
|
|
517
|
-
);
|
|
518
|
-
})
|
|
507
|
+
const $matches = silentium.All(
|
|
508
|
+
...routes.map(
|
|
509
|
+
(r) => RegexpMatched(
|
|
510
|
+
silentium.Of(r.pattern),
|
|
511
|
+
silentium.Of(url),
|
|
512
|
+
r.patternFlags ? silentium.Of(r.patternFlags) : void 0
|
|
513
|
+
)
|
|
519
514
|
)
|
|
520
515
|
);
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
516
|
+
$matches.event(
|
|
517
|
+
silentium.Transport((matches) => {
|
|
518
|
+
const index = matches.findIndex((v) => v === true);
|
|
519
|
+
if (index === -1) {
|
|
520
|
+
const instance = $default.use();
|
|
521
|
+
checkDestroyable(instance);
|
|
522
|
+
instance.event(transport);
|
|
523
|
+
}
|
|
524
|
+
if (index > -1) {
|
|
525
|
+
const instance = routes[index].event.use();
|
|
526
|
+
checkDestroyable(instance);
|
|
527
|
+
instance.event(transport);
|
|
528
|
+
}
|
|
529
|
+
})
|
|
530
|
+
);
|
|
528
531
|
})
|
|
529
532
|
);
|
|
530
533
|
return destructor;
|
|
@@ -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 isDestroyable,\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 destroyable: DestroyableType | undefined;\n const destructor = () => {\n if (destroyable !== undefined) {\n destroyable.destroy();\n destroyable = undefined;\n }\n };\n $condition.event(\n Transport((v) => {\n destructor();\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 if (isDestroyable(instance)) {\n destroyable = instance;\n }\n }\n }),\n );\n return destructor;\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 this.dc.destroy();\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","isDestroyable","Shared","Filtered","isFilled","__publicField","Late","Applied","All","SharedSource","ExecutorApplied","LateShared","Of","record","DestroyContainer","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 isDestroyable,\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 destroyable: DestroyableType | undefined;\n const destructor = () => {\n if (destroyable !== undefined) {\n destroyable.destroy();\n destroyable = undefined;\n }\n };\n $condition.event(\n Transport((v) => {\n destructor();\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 if (isDestroyable(instance)) {\n destroyable = instance;\n }\n }\n }),\n );\n return destructor;\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 this.dc.destroy();\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 DestroyableType,\n Event,\n EventType,\n isDestroyable,\n Of,\n Transport,\n TransportType,\n} from \"silentium\";\nimport { RegexpMatched } from \"../system\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n event: TransportType<void, EventType<T>>;\n}\n\n/**\n * Router component what will return template if url matches pattern\n * https://silentium-lab.github.io/silentium-components/#/navigation/router\n */\nexport function Router<T = \"string\">(\n $url: EventType<string>,\n $routes: EventType<Route<T>[]>,\n $default: TransportType<void, EventType<T>>,\n): EventType<T> & DestroyableType {\n return Event<T>((transport) => {\n const destroyableList: DestroyableType[] = [];\n const checkDestroyable = (instance: unknown) => {\n if (isDestroyable(instance)) {\n destroyableList.push(instance);\n }\n };\n const destructor = () => {\n destroyableList.forEach((d) => d.destroy());\n destroyableList.length = 0;\n };\n All($routes, $url).event(\n Transport(([routes, url]) => {\n destructor();\n const $matches = All(\n ...routes.map((r) =>\n RegexpMatched(\n Of(r.pattern),\n Of(url),\n r.patternFlags ? Of(r.patternFlags) : undefined,\n ),\n ),\n );\n $matches.event(\n Transport((matches) => {\n const index = matches.findIndex((v) => v === true);\n\n if (index === -1) {\n const instance = $default.use();\n checkDestroyable(instance);\n instance.event(transport);\n }\n\n if (index > -1) {\n const instance = routes[index].event.use();\n checkDestroyable(instance);\n instance.event(transport);\n }\n }),\n );\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","isDestroyable","Shared","Filtered","isFilled","__publicField","Late","Applied","All","SharedSource","ExecutorApplied","LateShared","Of","record","DestroyContainer"],"mappings":"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"}
|
|
@@ -126,7 +126,7 @@ declare class TemplateEvent implements EventType<string>, DestroyableType {
|
|
|
126
126
|
interface Route<T> {
|
|
127
127
|
pattern: string;
|
|
128
128
|
patternFlags?: string;
|
|
129
|
-
event: TransportType<
|
|
129
|
+
event: TransportType<void, EventType<T>>;
|
|
130
130
|
}
|
|
131
131
|
/**
|
|
132
132
|
* Router component what will return template if url matches pattern
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Event, Primitive, Transport, isDestroyable, Shared, Filtered, isFilled, Late, Applied, All, SharedSource, ExecutorApplied, LateShared, Of, DestroyContainer
|
|
1
|
+
import { Event, Primitive, Transport, isDestroyable, Shared, Filtered, isFilled, Late, Applied, All, SharedSource, ExecutorApplied, LateShared, Of, DestroyContainer } from 'silentium';
|
|
2
2
|
|
|
3
3
|
function Branch($condition, $left, $right) {
|
|
4
4
|
return Event((transport) => {
|
|
@@ -487,42 +487,45 @@ function Set(baseSrc, keySrc, valueSrc) {
|
|
|
487
487
|
});
|
|
488
488
|
}
|
|
489
489
|
|
|
490
|
-
const $empty = TransportEvent(() => Of(false));
|
|
491
490
|
function Router($url, $routes, $default) {
|
|
492
491
|
return Event((transport) => {
|
|
493
|
-
const
|
|
492
|
+
const destroyableList = [];
|
|
493
|
+
const checkDestroyable = (instance) => {
|
|
494
|
+
if (isDestroyable(instance)) {
|
|
495
|
+
destroyableList.push(instance);
|
|
496
|
+
}
|
|
497
|
+
};
|
|
494
498
|
const destructor = () => {
|
|
495
|
-
|
|
496
|
-
|
|
499
|
+
destroyableList.forEach((d) => d.destroy());
|
|
500
|
+
destroyableList.length = 0;
|
|
497
501
|
};
|
|
498
502
|
All($routes, $url).event(
|
|
499
503
|
Transport(([routes, url]) => {
|
|
500
504
|
destructor();
|
|
501
|
-
const
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
RegexpMatched(
|
|
509
|
-
Of(r.pattern),
|
|
510
|
-
Of(url),
|
|
511
|
-
r.patternFlags ? Of(r.patternFlags) : void 0
|
|
512
|
-
),
|
|
513
|
-
$template,
|
|
514
|
-
$empty
|
|
515
|
-
);
|
|
516
|
-
})
|
|
505
|
+
const $matches = All(
|
|
506
|
+
...routes.map(
|
|
507
|
+
(r) => RegexpMatched(
|
|
508
|
+
Of(r.pattern),
|
|
509
|
+
Of(url),
|
|
510
|
+
r.patternFlags ? Of(r.patternFlags) : void 0
|
|
511
|
+
)
|
|
517
512
|
)
|
|
518
513
|
);
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
514
|
+
$matches.event(
|
|
515
|
+
Transport((matches) => {
|
|
516
|
+
const index = matches.findIndex((v) => v === true);
|
|
517
|
+
if (index === -1) {
|
|
518
|
+
const instance = $default.use();
|
|
519
|
+
checkDestroyable(instance);
|
|
520
|
+
instance.event(transport);
|
|
521
|
+
}
|
|
522
|
+
if (index > -1) {
|
|
523
|
+
const instance = routes[index].event.use();
|
|
524
|
+
checkDestroyable(instance);
|
|
525
|
+
instance.event(transport);
|
|
526
|
+
}
|
|
527
|
+
})
|
|
528
|
+
);
|
|
526
529
|
})
|
|
527
530
|
);
|
|
528
531
|
return destructor;
|
|
@@ -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 isDestroyable,\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 destroyable: DestroyableType | undefined;\n const destructor = () => {\n if (destroyable !== undefined) {\n destroyable.destroy();\n destroyable = undefined;\n }\n };\n $condition.event(\n Transport((v) => {\n destructor();\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 if (isDestroyable(instance)) {\n destroyable = instance;\n }\n }\n }),\n );\n return destructor;\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 this.dc.destroy();\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 isDestroyable,\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 destroyable: DestroyableType | undefined;\n const destructor = () => {\n if (destroyable !== undefined) {\n destroyable.destroy();\n destroyable = undefined;\n }\n };\n $condition.event(\n Transport((v) => {\n destructor();\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 if (isDestroyable(instance)) {\n destroyable = instance;\n }\n }\n }),\n );\n return destructor;\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 this.dc.destroy();\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 DestroyableType,\n Event,\n EventType,\n isDestroyable,\n Of,\n Transport,\n TransportType,\n} from \"silentium\";\nimport { RegexpMatched } from \"../system\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n event: TransportType<void, EventType<T>>;\n}\n\n/**\n * Router component what will return template if url matches pattern\n * https://silentium-lab.github.io/silentium-components/#/navigation/router\n */\nexport function Router<T = \"string\">(\n $url: EventType<string>,\n $routes: EventType<Route<T>[]>,\n $default: TransportType<void, EventType<T>>,\n): EventType<T> & DestroyableType {\n return Event<T>((transport) => {\n const destroyableList: DestroyableType[] = [];\n const checkDestroyable = (instance: unknown) => {\n if (isDestroyable(instance)) {\n destroyableList.push(instance);\n }\n };\n const destructor = () => {\n destroyableList.forEach((d) => d.destroy());\n destroyableList.length = 0;\n };\n All($routes, $url).event(\n Transport(([routes, url]) => {\n destructor();\n const $matches = All(\n ...routes.map((r) =>\n RegexpMatched(\n Of(r.pattern),\n Of(url),\n r.patternFlags ? Of(r.patternFlags) : undefined,\n ),\n ),\n );\n $matches.event(\n Transport((matches) => {\n const index = matches.findIndex((v) => v === true);\n\n if (index === -1) {\n const instance = $default.use();\n checkDestroyable(instance);\n instance.event(transport);\n }\n\n if (index > -1) {\n const instance = routes[index].event.use();\n checkDestroyable(instance);\n instance.event(transport);\n }\n }),\n );\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"],"mappings":"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"}
|