silentium-components 0.0.32 → 0.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/silentium-components.cjs +1 -1
- package/dist/silentium-components.cjs.map +1 -1
- package/dist/silentium-components.d.ts +1 -1
- package/dist/silentium-components.js +1 -1
- 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 +1 -1
- package/dist/silentium-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/navigation/Router.ts +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
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.34](https://github.com/silentium-lab/silentium-components/compare/v0.0.33...v0.0.34) (2025-08-27)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **main:** router check ([6551335](https://github.com/silentium-lab/silentium-components/commit/6551335cb9e29693443273e9efe6e5305f5c0ade))
|
|
11
|
+
|
|
12
|
+
### [0.0.33](https://github.com/silentium-lab/silentium-components/compare/v0.0.32...v0.0.33) (2025-08-27)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* **main:** information type in router ([4016905](https://github.com/silentium-lab/silentium-components/commit/401690511be398aa34d7925ec89de7d444312c0e))
|
|
18
|
+
|
|
5
19
|
### [0.0.32](https://github.com/silentium-lab/silentium-components/compare/v0.0.31...v0.0.32) (2025-08-27)
|
|
6
20
|
|
|
7
21
|
### [0.0.31](https://github.com/silentium-lab/silentium-components/compare/v0.0.30...v0.0.31) (2025-08-27)
|
|
@@ -491,7 +491,7 @@ class Router extends silentium.TheInformation {
|
|
|
491
491
|
this.urlSrc,
|
|
492
492
|
r.patternFlags ? new silentium.Of(r.patternFlags) : void 0
|
|
493
493
|
),
|
|
494
|
-
r.template
|
|
494
|
+
"value" in r.template ? r.template : new silentium.Of(r.template)
|
|
495
495
|
);
|
|
496
496
|
})
|
|
497
497
|
).value(o);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silentium-components.cjs","sources":["../src/behaviors/Sync.ts","../src/behaviors/Branch.ts","../src/behaviors/Deadline.ts","../src/behaviors/Deferred.ts","../src/behaviors/Dirty.ts","../src/behaviors/Loading.ts","../src/behaviors/Lock.ts","../src/behaviors/Memo.ts","../src/behaviors/OnlyChanged.ts","../src/behaviors/Path.ts","../src/behaviors/Shot.ts","../src/behaviors/Tick.ts","../src/structures/HashTable.ts","../src/structures/RecordOf.ts","../src/strings/Concatenated.ts","../src/strings/Template.ts","../src/system/RegexpMatched.ts","../src/system/RegexpReplaced.ts","../src/system/RegexpMatch.ts","../src/system/Set.ts","../src/navigation/Router.ts","../src/boolean/And.ts","../src/boolean/Or.ts","../src/boolean/Not.ts","../src/boolean/Bool.ts","../src/formats/FromJson.ts","../src/formats/ToJson.ts","../src/lists/First.ts"],"sourcesContent":["import {\n From,\n InformationType,\n isFilled,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\nexport class Sync<T> extends TheInformation<T> {\n private theValue: T | undefined;\n private isInit = false;\n\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(o);\n return this;\n }\n\n public valueExisted() {\n this.initOwner();\n return isFilled(this.theValue);\n }\n\n public valueSync(): T {\n this.initOwner();\n\n if (!isFilled(this.theValue)) {\n throw new Error(\"no value in sync\");\n }\n\n return this.theValue;\n }\n\n public initOwner() {\n if (!this.isInit) {\n this.isInit = true;\n this.value(\n new From((v) => {\n this.theValue = v;\n }),\n );\n }\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\nimport { Sync } from \"./Sync\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport class Branch<Then, Else> extends TheInformation<Then | Else> {\n public constructor(\n private conditionSrc: InformationType<boolean>,\n private leftSrc: InformationType<Then>,\n private rightSrc?: InformationType<Else>,\n ) {\n super([conditionSrc, leftSrc, rightSrc]);\n }\n public value(o: OwnerType<Then | Else>): this {\n const leftSync = new Sync(this.leftSrc).initOwner();\n let rightSync: Sync<Else>;\n\n if (this.rightSrc !== undefined) {\n rightSync = new Sync(this.rightSrc).initOwner();\n }\n\n this.conditionSrc.value(\n new From((v) => {\n if (v) {\n o.give(leftSync.valueSync());\n } else if (rightSync) {\n o.give(rightSync.valueSync());\n }\n }),\n );\n\n return this;\n }\n}\n","import {\n Filtered,\n From,\n InformationType,\n OwnerType,\n Shared,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport class Deadline<T> extends TheInformation<T> {\n public constructor(\n private error: OwnerType<Error>,\n private baseSrc: InformationType<T>,\n private timeoutSrc: InformationType<number>,\n ) {\n super([error, baseSrc, timeoutSrc]);\n }\n\n public value(o: OwnerType<T>) {\n let timerHead: unknown = null;\n\n const s = new Shared(this.baseSrc, true);\n this.addDep(s);\n\n this.timeoutSrc.value(\n new From((timeout) => {\n if (timerHead) {\n clearTimeout(timerHead as number);\n }\n let timeoutReached = false;\n\n timerHead = setTimeout(() => {\n if (timeoutReached) {\n return;\n }\n timeoutReached = true;\n this.error.give(new Error(\"Timeout reached in Deadline class\"));\n }, timeout);\n\n const f = new Filtered(s, () => !timeoutReached);\n this.addDep(f);\n f.value(o);\n\n s.value(\n new From(() => {\n timeoutReached = true;\n }),\n );\n }),\n );\n\n return this;\n }\n}\n","import {\n From,\n InformationType,\n isFilled,\n OwnerType,\n TheInformation,\n} from \"silentium\";\nimport { Sync } from \"./Sync\";\n\n/**\n * Defer one source after another, gives values of baseSrc only once when triggerSrc responds\n * https://silentium-lab.github.io/silentium-components/#/behaviors/deferred\n */\nexport class Deferred<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private triggerSrc: InformationType<unknown>,\n ) {\n super();\n }\n\n public value(o: OwnerType<T>): this {\n const baseSync = new Sync(this.baseSrc).initOwner();\n this.triggerSrc.value(\n new From(() => {\n if (isFilled(baseSync.valueSync())) {\n o.give(baseSync.valueSync());\n }\n }),\n );\n return this;\n }\n}\n","import {\n All,\n Applied,\n From,\n InformationType,\n Late,\n OwnerType,\n TheInformation,\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 class Dirty<T> extends TheInformation<T> {\n private comparingSrc = new Late<T>();\n\n public constructor(\n private baseEntitySource: InformationType<T>,\n private alwaysKeep: string[] = [],\n private excludeKeys: string[] = [],\n ) {\n super([baseEntitySource]);\n }\n\n public value(o: OwnerType<T>): this {\n const comparingDetached = new Applied(this.comparingSrc, (value) =>\n JSON.parse(JSON.stringify(value)),\n );\n\n const allSrc = new All(comparingDetached, this.baseEntitySource).value(\n new From(([comparing, base]) => {\n if (!comparing) {\n return;\n }\n\n o.give(\n Object.fromEntries(\n Object.entries(comparing).filter(([key, value]) => {\n if (this.alwaysKeep.includes(key)) {\n return true;\n }\n if (this.excludeKeys.includes(key)) {\n return false;\n }\n return value !== (base as any)[key];\n }),\n ) as T,\n );\n }),\n );\n this.addDep(allSrc);\n\n return this;\n }\n\n public owner() {\n return this.comparingSrc.owner();\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Representation of loading process\n * first informatin source begins loading\n * second information source stops loading\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport class Loading extends TheInformation<boolean> {\n public constructor(\n private loadingStartSrc: InformationType<unknown>,\n private loadingFinishSrc: InformationType<unknown>,\n ) {\n super(loadingFinishSrc, loadingStartSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n this.loadingStartSrc.value(\n new From(() => {\n o.give(true);\n }),\n );\n\n this.loadingFinishSrc.value(\n new From(() => {\n o.give(false);\n }),\n );\n\n return this;\n }\n}\n","import {\n Filtered,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport class Lock<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private lockSrc: InformationType<boolean>,\n ) {\n super(baseSrc, lockSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let locked = false;\n this.lockSrc.value(\n new From((newLock) => {\n locked = newLock;\n }),\n );\n const i = new Filtered(this.baseSrc, () => !locked);\n this.addDep(i);\n i.value(o);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class Memo<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let lastValue: T | null = null;\n\n this.baseSrc.value(\n new From((v) => {\n if (v !== lastValue) {\n o.give(v);\n lastValue = v;\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class OnlyChanged<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let firstValue = false;\n\n this.baseSrc.value(\n new From((v) => {\n if (firstValue === false) {\n firstValue = true;\n } else {\n o.give(v);\n }\n }),\n );\n\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * Return source of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport class Path<\n R,\n T extends Record<string, unknown> | Array<unknown> = any,\n K extends string = any,\n> extends TheInformation<R> {\n public constructor(\n private baseSrc: InformationType<T>,\n private keySrc: InformationType<K>,\n ) {\n super(baseSrc, keySrc);\n }\n\n public value(o: OwnerType<R>): this {\n const allSrc = new All(this.baseSrc, this.keySrc).value(\n new From(([base, key]) => {\n const keyChunks = key.split(\".\");\n let value: unknown = base;\n keyChunks.forEach((keyChunk) => {\n value = (value as Record<string, unknown>)[keyChunk];\n });\n\n if (value !== undefined && value !== base) {\n o.give(value as R);\n }\n }),\n );\n this.addDep(allSrc);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\nimport { Sync } from \"./Sync\";\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 class Shot<T> extends TheInformation<T> {\n public constructor(\n private targetSrc: InformationType<T>,\n private triggerSrc: InformationType,\n ) {\n super(targetSrc, triggerSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const targetSync = new Sync(this.targetSrc);\n targetSync.initOwner();\n\n this.triggerSrc.value(\n new From(() => {\n if (targetSync.valueExisted()) {\n o.give(targetSync.valueSync());\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class Tick<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\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 o.give(lastValue);\n lastValue = null;\n }\n });\n };\n\n this.baseSrc.value(\n new From((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport class HashTable<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<[string, unknown]>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const record: Record<string, unknown> = {};\n\n this.baseSrc.value(\n new From(([key, value]) => {\n record[key] = value;\n o.give(record as T);\n }),\n );\n\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\ntype UnInformation<T> = T extends InformationType<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 class RecordOf<T extends InformationType> extends TheInformation<\n Record<string, UnInformation<T>>\n> {\n public constructor(private recordSrc: Record<string, T>) {\n super(...Object.values(recordSrc));\n }\n\n public value(o: OwnerType<Record<string, UnInformation<T>>>): this {\n const keys = Object.keys(this.recordSrc);\n new All(...Object.values(this.recordSrc)).value(\n new From((entries) => {\n const record: Record<string, any> = {};\n entries.forEach((entry, index) => {\n record[keys[index]] = entry;\n });\n o.give(record);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * Join sources of strings to one source\n * https://silentium-lab.github.io/silentium-components/#/string/concatenated\n */\nexport class Concatenated extends TheInformation<string> {\n public constructor(\n private sources: InformationType<string>[],\n private joinPartSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(...sources, joinPartSrc);\n }\n\n public value(o: OwnerType<string>): this {\n new All(this.joinPartSrc, ...this.sources).value(\n new From(([joinPart, ...strings]) => {\n o.give(strings.join(joinPart));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n Applied,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\nexport class Template extends TheInformation<string> {\n private source: InformationType<string>;\n\n public constructor(\n theSrc: InformationType<string> | string,\n private rules: InformationType<Record<string, unknown>>,\n ) {\n const source = typeof theSrc === \"string\" ? new Of(theSrc) : theSrc;\n super(source, rules);\n this.source = source;\n }\n\n public value(guest: OwnerType<string>) {\n new Applied(new All(this.source, this.rules), ([base, rules]) => {\n Object.entries(rules).forEach(([ph, val]) => {\n base = base.replaceAll(ph, String(val));\n });\n\n return base;\n }).value(guest);\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} 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 class RegexpMatched extends TheInformation<boolean> {\n public constructor(\n private patternSrc: InformationType<string>,\n private valueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(patternSrc, valueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.patternSrc, this.valueSrc, this.flagsSrc).value(\n new From(([pattern, value, flags]) => {\n o.give(new RegExp(pattern, flags).test(value));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} 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 class RegexpReplaced extends TheInformation<string> {\n public constructor(\n private valueSrc: InformationType<string>,\n private patternSrc: InformationType<string>,\n private replaceValueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(valueSrc, patternSrc, replaceValueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<string>): this {\n new All(\n this.patternSrc,\n this.valueSrc,\n this.replaceValueSrc,\n this.flagsSrc,\n ).value(\n new From(([pattern, value, replaceValue, flags]) => {\n o.give(String(value).replace(new RegExp(pattern, flags), replaceValue));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * First match of regexp\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport class RegexpMatch extends TheInformation<string[]> {\n public constructor(\n private patternSrc: InformationType<string>,\n private valueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(patternSrc, valueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<string[]>): this {\n new All(this.patternSrc, this.valueSrc, this.flagsSrc).value(\n new From(([pattern, value, flags]) => {\n const result = new RegExp(pattern, flags).exec(value);\n o.give(result ?? []);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} 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 class Set<T extends Record<string, unknown>> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private keySrc: InformationType<string>,\n private valueSrc: InformationType<unknown>,\n ) {\n super(baseSrc, keySrc, valueSrc);\n }\n\n public value(o: OwnerType<T>): this {\n new All(this.baseSrc, this.keySrc, this.valueSrc).value(\n new From(([base, key, value]) => {\n (base as Record<string, unknown>)[key] = value;\n o.give(base);\n }),\n );\n return this;\n }\n}\n","import {\n Any,\n Chain,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n TheOwner,\n} from \"silentium\";\nimport { Branch } from \"../behaviors\";\nimport { RegexpMatched } from \"../system\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n template: T | TheInformation<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 class Router<T = \"string\"> extends TheInformation<T> {\n public constructor(\n private urlSrc: InformationType<string>,\n private routesSrc: InformationType<Route<T>[]>,\n private defaultSrc: InformationType<T>,\n ) {\n super(urlSrc, routesSrc, defaultSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.routesSrc.value(\n new From((routes) => {\n new Any(\n new Chain(this.urlSrc, this.defaultSrc),\n ...routes.map((r) => {\n return new Branch(\n new RegexpMatched(\n new Of(r.pattern),\n this.urlSrc,\n r.patternFlags ? new Of(r.patternFlags) : undefined,\n ),\n (r.template instanceof TheInformation\n ? r.template\n : new Of(r.template)) as TheInformation,\n );\n }),\n ).value(o as TheOwner);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport class And extends TheInformation<boolean> {\n public constructor(\n private oneSrc: InformationType<boolean>,\n private twoSrc: InformationType<boolean>,\n ) {\n super(oneSrc, twoSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.oneSrc, this.twoSrc).value(\n new From(([one, two]) => {\n o.give(one && two);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport class Or extends TheInformation<boolean> {\n public constructor(\n private oneSrc: InformationType<boolean>,\n private twoSrc: InformationType<boolean>,\n ) {\n super(oneSrc, twoSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.oneSrc, this.twoSrc).value(\n new From(([one, two]) => {\n o.give(one || two);\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport class Not extends TheInformation<boolean> {\n public constructor(private baseSrc: InformationType<boolean>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n this.baseSrc.value(\n new From((v) => {\n o.give(!v);\n }),\n );\n return this;\n }\n}\n","import { Applied, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Convert any source to boolean source\n * https://silentium-lab.github.io/silentium-components/#/boolean/bool\n */\nexport class Bool extends TheInformation<boolean> {\n public constructor(private baseSrc: InformationType) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new Applied(this.baseSrc, Boolean).value(o);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents object from json\n */\nexport class FromJson<T> extends TheInformation<T> {\n public constructor(\n private jsonSrc: InformationType<string>,\n private errorOwner?: OwnerType,\n ) {\n super(jsonSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.jsonSrc.value(\n new From((json) => {\n try {\n o.give(JSON.parse(json));\n } catch (error) {\n this.errorOwner?.give(new Error(`Failed to parse JSON: ${error}`));\n }\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents json from object\n */\nexport class ToJson extends TheInformation<string> {\n public constructor(\n private dataSrc: InformationType,\n private errorOwner?: OwnerType,\n ) {\n super(dataSrc);\n }\n\n public value(o: OwnerType<string>): this {\n this.dataSrc.value(\n new From((data: unknown) => {\n try {\n o.give(JSON.stringify(data));\n } catch {\n this.errorOwner?.give(new Error(\"Failed to convert to JSON\"));\n }\n }),\n );\n return this;\n }\n}\n","import { Applied, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents the first element of an array.\n */\nexport class First<T extends Array<unknown>> extends TheInformation<T[0]> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T[0]>): this {\n new Applied(this.baseSrc, (a) => a[0]).value(o);\n return this;\n }\n}\n"],"names":["TheInformation","__publicField","isFilled","From","Shared","Filtered","Late","Applied","All","Of","Any","Chain"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"silentium-components.cjs","sources":["../src/behaviors/Sync.ts","../src/behaviors/Branch.ts","../src/behaviors/Deadline.ts","../src/behaviors/Deferred.ts","../src/behaviors/Dirty.ts","../src/behaviors/Loading.ts","../src/behaviors/Lock.ts","../src/behaviors/Memo.ts","../src/behaviors/OnlyChanged.ts","../src/behaviors/Path.ts","../src/behaviors/Shot.ts","../src/behaviors/Tick.ts","../src/structures/HashTable.ts","../src/structures/RecordOf.ts","../src/strings/Concatenated.ts","../src/strings/Template.ts","../src/system/RegexpMatched.ts","../src/system/RegexpReplaced.ts","../src/system/RegexpMatch.ts","../src/system/Set.ts","../src/navigation/Router.ts","../src/boolean/And.ts","../src/boolean/Or.ts","../src/boolean/Not.ts","../src/boolean/Bool.ts","../src/formats/FromJson.ts","../src/formats/ToJson.ts","../src/lists/First.ts"],"sourcesContent":["import {\n From,\n InformationType,\n isFilled,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\nexport class Sync<T> extends TheInformation<T> {\n private theValue: T | undefined;\n private isInit = false;\n\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(o);\n return this;\n }\n\n public valueExisted() {\n this.initOwner();\n return isFilled(this.theValue);\n }\n\n public valueSync(): T {\n this.initOwner();\n\n if (!isFilled(this.theValue)) {\n throw new Error(\"no value in sync\");\n }\n\n return this.theValue;\n }\n\n public initOwner() {\n if (!this.isInit) {\n this.isInit = true;\n this.value(\n new From((v) => {\n this.theValue = v;\n }),\n );\n }\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\nimport { Sync } from \"./Sync\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport class Branch<Then, Else> extends TheInformation<Then | Else> {\n public constructor(\n private conditionSrc: InformationType<boolean>,\n private leftSrc: InformationType<Then>,\n private rightSrc?: InformationType<Else>,\n ) {\n super([conditionSrc, leftSrc, rightSrc]);\n }\n public value(o: OwnerType<Then | Else>): this {\n const leftSync = new Sync(this.leftSrc).initOwner();\n let rightSync: Sync<Else>;\n\n if (this.rightSrc !== undefined) {\n rightSync = new Sync(this.rightSrc).initOwner();\n }\n\n this.conditionSrc.value(\n new From((v) => {\n if (v) {\n o.give(leftSync.valueSync());\n } else if (rightSync) {\n o.give(rightSync.valueSync());\n }\n }),\n );\n\n return this;\n }\n}\n","import {\n Filtered,\n From,\n InformationType,\n OwnerType,\n Shared,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport class Deadline<T> extends TheInformation<T> {\n public constructor(\n private error: OwnerType<Error>,\n private baseSrc: InformationType<T>,\n private timeoutSrc: InformationType<number>,\n ) {\n super([error, baseSrc, timeoutSrc]);\n }\n\n public value(o: OwnerType<T>) {\n let timerHead: unknown = null;\n\n const s = new Shared(this.baseSrc, true);\n this.addDep(s);\n\n this.timeoutSrc.value(\n new From((timeout) => {\n if (timerHead) {\n clearTimeout(timerHead as number);\n }\n let timeoutReached = false;\n\n timerHead = setTimeout(() => {\n if (timeoutReached) {\n return;\n }\n timeoutReached = true;\n this.error.give(new Error(\"Timeout reached in Deadline class\"));\n }, timeout);\n\n const f = new Filtered(s, () => !timeoutReached);\n this.addDep(f);\n f.value(o);\n\n s.value(\n new From(() => {\n timeoutReached = true;\n }),\n );\n }),\n );\n\n return this;\n }\n}\n","import {\n From,\n InformationType,\n isFilled,\n OwnerType,\n TheInformation,\n} from \"silentium\";\nimport { Sync } from \"./Sync\";\n\n/**\n * Defer one source after another, gives values of baseSrc only once when triggerSrc responds\n * https://silentium-lab.github.io/silentium-components/#/behaviors/deferred\n */\nexport class Deferred<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private triggerSrc: InformationType<unknown>,\n ) {\n super();\n }\n\n public value(o: OwnerType<T>): this {\n const baseSync = new Sync(this.baseSrc).initOwner();\n this.triggerSrc.value(\n new From(() => {\n if (isFilled(baseSync.valueSync())) {\n o.give(baseSync.valueSync());\n }\n }),\n );\n return this;\n }\n}\n","import {\n All,\n Applied,\n From,\n InformationType,\n Late,\n OwnerType,\n TheInformation,\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 class Dirty<T> extends TheInformation<T> {\n private comparingSrc = new Late<T>();\n\n public constructor(\n private baseEntitySource: InformationType<T>,\n private alwaysKeep: string[] = [],\n private excludeKeys: string[] = [],\n ) {\n super([baseEntitySource]);\n }\n\n public value(o: OwnerType<T>): this {\n const comparingDetached = new Applied(this.comparingSrc, (value) =>\n JSON.parse(JSON.stringify(value)),\n );\n\n const allSrc = new All(comparingDetached, this.baseEntitySource).value(\n new From(([comparing, base]) => {\n if (!comparing) {\n return;\n }\n\n o.give(\n Object.fromEntries(\n Object.entries(comparing).filter(([key, value]) => {\n if (this.alwaysKeep.includes(key)) {\n return true;\n }\n if (this.excludeKeys.includes(key)) {\n return false;\n }\n return value !== (base as any)[key];\n }),\n ) as T,\n );\n }),\n );\n this.addDep(allSrc);\n\n return this;\n }\n\n public owner() {\n return this.comparingSrc.owner();\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Representation of loading process\n * first informatin source begins loading\n * second information source stops loading\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport class Loading extends TheInformation<boolean> {\n public constructor(\n private loadingStartSrc: InformationType<unknown>,\n private loadingFinishSrc: InformationType<unknown>,\n ) {\n super(loadingFinishSrc, loadingStartSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n this.loadingStartSrc.value(\n new From(() => {\n o.give(true);\n }),\n );\n\n this.loadingFinishSrc.value(\n new From(() => {\n o.give(false);\n }),\n );\n\n return this;\n }\n}\n","import {\n Filtered,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport class Lock<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private lockSrc: InformationType<boolean>,\n ) {\n super(baseSrc, lockSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let locked = false;\n this.lockSrc.value(\n new From((newLock) => {\n locked = newLock;\n }),\n );\n const i = new Filtered(this.baseSrc, () => !locked);\n this.addDep(i);\n i.value(o);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class Memo<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let lastValue: T | null = null;\n\n this.baseSrc.value(\n new From((v) => {\n if (v !== lastValue) {\n o.give(v);\n lastValue = v;\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class OnlyChanged<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let firstValue = false;\n\n this.baseSrc.value(\n new From((v) => {\n if (firstValue === false) {\n firstValue = true;\n } else {\n o.give(v);\n }\n }),\n );\n\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * Return source of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport class Path<\n R,\n T extends Record<string, unknown> | Array<unknown> = any,\n K extends string = any,\n> extends TheInformation<R> {\n public constructor(\n private baseSrc: InformationType<T>,\n private keySrc: InformationType<K>,\n ) {\n super(baseSrc, keySrc);\n }\n\n public value(o: OwnerType<R>): this {\n const allSrc = new All(this.baseSrc, this.keySrc).value(\n new From(([base, key]) => {\n const keyChunks = key.split(\".\");\n let value: unknown = base;\n keyChunks.forEach((keyChunk) => {\n value = (value as Record<string, unknown>)[keyChunk];\n });\n\n if (value !== undefined && value !== base) {\n o.give(value as R);\n }\n }),\n );\n this.addDep(allSrc);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\nimport { Sync } from \"./Sync\";\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 class Shot<T> extends TheInformation<T> {\n public constructor(\n private targetSrc: InformationType<T>,\n private triggerSrc: InformationType,\n ) {\n super(targetSrc, triggerSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const targetSync = new Sync(this.targetSrc);\n targetSync.initOwner();\n\n this.triggerSrc.value(\n new From(() => {\n if (targetSync.valueExisted()) {\n o.give(targetSync.valueSync());\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class Tick<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\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 o.give(lastValue);\n lastValue = null;\n }\n });\n };\n\n this.baseSrc.value(\n new From((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport class HashTable<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<[string, unknown]>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const record: Record<string, unknown> = {};\n\n this.baseSrc.value(\n new From(([key, value]) => {\n record[key] = value;\n o.give(record as T);\n }),\n );\n\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\ntype UnInformation<T> = T extends InformationType<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 class RecordOf<T extends InformationType> extends TheInformation<\n Record<string, UnInformation<T>>\n> {\n public constructor(private recordSrc: Record<string, T>) {\n super(...Object.values(recordSrc));\n }\n\n public value(o: OwnerType<Record<string, UnInformation<T>>>): this {\n const keys = Object.keys(this.recordSrc);\n new All(...Object.values(this.recordSrc)).value(\n new From((entries) => {\n const record: Record<string, any> = {};\n entries.forEach((entry, index) => {\n record[keys[index]] = entry;\n });\n o.give(record);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * Join sources of strings to one source\n * https://silentium-lab.github.io/silentium-components/#/string/concatenated\n */\nexport class Concatenated extends TheInformation<string> {\n public constructor(\n private sources: InformationType<string>[],\n private joinPartSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(...sources, joinPartSrc);\n }\n\n public value(o: OwnerType<string>): this {\n new All(this.joinPartSrc, ...this.sources).value(\n new From(([joinPart, ...strings]) => {\n o.give(strings.join(joinPart));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n Applied,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\nexport class Template extends TheInformation<string> {\n private source: InformationType<string>;\n\n public constructor(\n theSrc: InformationType<string> | string,\n private rules: InformationType<Record<string, unknown>>,\n ) {\n const source = typeof theSrc === \"string\" ? new Of(theSrc) : theSrc;\n super(source, rules);\n this.source = source;\n }\n\n public value(guest: OwnerType<string>) {\n new Applied(new All(this.source, this.rules), ([base, rules]) => {\n Object.entries(rules).forEach(([ph, val]) => {\n base = base.replaceAll(ph, String(val));\n });\n\n return base;\n }).value(guest);\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} 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 class RegexpMatched extends TheInformation<boolean> {\n public constructor(\n private patternSrc: InformationType<string>,\n private valueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(patternSrc, valueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.patternSrc, this.valueSrc, this.flagsSrc).value(\n new From(([pattern, value, flags]) => {\n o.give(new RegExp(pattern, flags).test(value));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} 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 class RegexpReplaced extends TheInformation<string> {\n public constructor(\n private valueSrc: InformationType<string>,\n private patternSrc: InformationType<string>,\n private replaceValueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(valueSrc, patternSrc, replaceValueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<string>): this {\n new All(\n this.patternSrc,\n this.valueSrc,\n this.replaceValueSrc,\n this.flagsSrc,\n ).value(\n new From(([pattern, value, replaceValue, flags]) => {\n o.give(String(value).replace(new RegExp(pattern, flags), replaceValue));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * First match of regexp\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport class RegexpMatch extends TheInformation<string[]> {\n public constructor(\n private patternSrc: InformationType<string>,\n private valueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(patternSrc, valueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<string[]>): this {\n new All(this.patternSrc, this.valueSrc, this.flagsSrc).value(\n new From(([pattern, value, flags]) => {\n const result = new RegExp(pattern, flags).exec(value);\n o.give(result ?? []);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} 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 class Set<T extends Record<string, unknown>> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private keySrc: InformationType<string>,\n private valueSrc: InformationType<unknown>,\n ) {\n super(baseSrc, keySrc, valueSrc);\n }\n\n public value(o: OwnerType<T>): this {\n new All(this.baseSrc, this.keySrc, this.valueSrc).value(\n new From(([base, key, value]) => {\n (base as Record<string, unknown>)[key] = value;\n o.give(base);\n }),\n );\n return this;\n }\n}\n","import {\n Any,\n Chain,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n TheOwner,\n} from \"silentium\";\nimport { Branch } from \"../behaviors\";\nimport { RegexpMatched } from \"../system\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n template: T | InformationType<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 class Router<T = \"string\"> extends TheInformation<T> {\n public constructor(\n private urlSrc: InformationType<string>,\n private routesSrc: InformationType<Route<T>[]>,\n private defaultSrc: InformationType<T>,\n ) {\n super(urlSrc, routesSrc, defaultSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.routesSrc.value(\n new From((routes) => {\n new Any(\n new Chain(this.urlSrc, this.defaultSrc),\n ...routes.map((r) => {\n return new Branch(\n new RegexpMatched(\n new Of(r.pattern),\n this.urlSrc,\n r.patternFlags ? new Of(r.patternFlags) : undefined,\n ),\n (\"value\" in (r.template as InformationType)\n ? r.template\n : new Of(r.template)) as TheInformation,\n );\n }),\n ).value(o as TheOwner);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport class And extends TheInformation<boolean> {\n public constructor(\n private oneSrc: InformationType<boolean>,\n private twoSrc: InformationType<boolean>,\n ) {\n super(oneSrc, twoSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.oneSrc, this.twoSrc).value(\n new From(([one, two]) => {\n o.give(one && two);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport class Or extends TheInformation<boolean> {\n public constructor(\n private oneSrc: InformationType<boolean>,\n private twoSrc: InformationType<boolean>,\n ) {\n super(oneSrc, twoSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.oneSrc, this.twoSrc).value(\n new From(([one, two]) => {\n o.give(one || two);\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport class Not extends TheInformation<boolean> {\n public constructor(private baseSrc: InformationType<boolean>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n this.baseSrc.value(\n new From((v) => {\n o.give(!v);\n }),\n );\n return this;\n }\n}\n","import { Applied, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Convert any source to boolean source\n * https://silentium-lab.github.io/silentium-components/#/boolean/bool\n */\nexport class Bool extends TheInformation<boolean> {\n public constructor(private baseSrc: InformationType) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new Applied(this.baseSrc, Boolean).value(o);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents object from json\n */\nexport class FromJson<T> extends TheInformation<T> {\n public constructor(\n private jsonSrc: InformationType<string>,\n private errorOwner?: OwnerType,\n ) {\n super(jsonSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.jsonSrc.value(\n new From((json) => {\n try {\n o.give(JSON.parse(json));\n } catch (error) {\n this.errorOwner?.give(new Error(`Failed to parse JSON: ${error}`));\n }\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents json from object\n */\nexport class ToJson extends TheInformation<string> {\n public constructor(\n private dataSrc: InformationType,\n private errorOwner?: OwnerType,\n ) {\n super(dataSrc);\n }\n\n public value(o: OwnerType<string>): this {\n this.dataSrc.value(\n new From((data: unknown) => {\n try {\n o.give(JSON.stringify(data));\n } catch {\n this.errorOwner?.give(new Error(\"Failed to convert to JSON\"));\n }\n }),\n );\n return this;\n }\n}\n","import { Applied, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents the first element of an array.\n */\nexport class First<T extends Array<unknown>> extends TheInformation<T[0]> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T[0]>): this {\n new Applied(this.baseSrc, (a) => a[0]).value(o);\n return this;\n }\n}\n"],"names":["TheInformation","__publicField","isFilled","From","Shared","Filtered","Late","Applied","All","Of","Any","Chain"],"mappings":"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"}
|
|
@@ -175,7 +175,7 @@ declare class Template extends TheInformation<string> {
|
|
|
175
175
|
interface Route<T> {
|
|
176
176
|
pattern: string;
|
|
177
177
|
patternFlags?: string;
|
|
178
|
-
template: T |
|
|
178
|
+
template: T | InformationType<T>;
|
|
179
179
|
}
|
|
180
180
|
/**
|
|
181
181
|
* Router component what will return template if url matches pattern
|
|
@@ -489,7 +489,7 @@ class Router extends TheInformation {
|
|
|
489
489
|
this.urlSrc,
|
|
490
490
|
r.patternFlags ? new Of(r.patternFlags) : void 0
|
|
491
491
|
),
|
|
492
|
-
r.template
|
|
492
|
+
"value" in r.template ? r.template : new Of(r.template)
|
|
493
493
|
);
|
|
494
494
|
})
|
|
495
495
|
).value(o);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silentium-components.js","sources":["../src/behaviors/Sync.ts","../src/behaviors/Branch.ts","../src/behaviors/Deadline.ts","../src/behaviors/Deferred.ts","../src/behaviors/Dirty.ts","../src/behaviors/Loading.ts","../src/behaviors/Lock.ts","../src/behaviors/Memo.ts","../src/behaviors/OnlyChanged.ts","../src/behaviors/Path.ts","../src/behaviors/Shot.ts","../src/behaviors/Tick.ts","../src/structures/HashTable.ts","../src/structures/RecordOf.ts","../src/strings/Concatenated.ts","../src/strings/Template.ts","../src/system/RegexpMatched.ts","../src/system/RegexpReplaced.ts","../src/system/RegexpMatch.ts","../src/system/Set.ts","../src/navigation/Router.ts","../src/boolean/And.ts","../src/boolean/Or.ts","../src/boolean/Not.ts","../src/boolean/Bool.ts","../src/formats/FromJson.ts","../src/formats/ToJson.ts","../src/lists/First.ts"],"sourcesContent":["import {\n From,\n InformationType,\n isFilled,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\nexport class Sync<T> extends TheInformation<T> {\n private theValue: T | undefined;\n private isInit = false;\n\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(o);\n return this;\n }\n\n public valueExisted() {\n this.initOwner();\n return isFilled(this.theValue);\n }\n\n public valueSync(): T {\n this.initOwner();\n\n if (!isFilled(this.theValue)) {\n throw new Error(\"no value in sync\");\n }\n\n return this.theValue;\n }\n\n public initOwner() {\n if (!this.isInit) {\n this.isInit = true;\n this.value(\n new From((v) => {\n this.theValue = v;\n }),\n );\n }\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\nimport { Sync } from \"./Sync\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport class Branch<Then, Else> extends TheInformation<Then | Else> {\n public constructor(\n private conditionSrc: InformationType<boolean>,\n private leftSrc: InformationType<Then>,\n private rightSrc?: InformationType<Else>,\n ) {\n super([conditionSrc, leftSrc, rightSrc]);\n }\n public value(o: OwnerType<Then | Else>): this {\n const leftSync = new Sync(this.leftSrc).initOwner();\n let rightSync: Sync<Else>;\n\n if (this.rightSrc !== undefined) {\n rightSync = new Sync(this.rightSrc).initOwner();\n }\n\n this.conditionSrc.value(\n new From((v) => {\n if (v) {\n o.give(leftSync.valueSync());\n } else if (rightSync) {\n o.give(rightSync.valueSync());\n }\n }),\n );\n\n return this;\n }\n}\n","import {\n Filtered,\n From,\n InformationType,\n OwnerType,\n Shared,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport class Deadline<T> extends TheInformation<T> {\n public constructor(\n private error: OwnerType<Error>,\n private baseSrc: InformationType<T>,\n private timeoutSrc: InformationType<number>,\n ) {\n super([error, baseSrc, timeoutSrc]);\n }\n\n public value(o: OwnerType<T>) {\n let timerHead: unknown = null;\n\n const s = new Shared(this.baseSrc, true);\n this.addDep(s);\n\n this.timeoutSrc.value(\n new From((timeout) => {\n if (timerHead) {\n clearTimeout(timerHead as number);\n }\n let timeoutReached = false;\n\n timerHead = setTimeout(() => {\n if (timeoutReached) {\n return;\n }\n timeoutReached = true;\n this.error.give(new Error(\"Timeout reached in Deadline class\"));\n }, timeout);\n\n const f = new Filtered(s, () => !timeoutReached);\n this.addDep(f);\n f.value(o);\n\n s.value(\n new From(() => {\n timeoutReached = true;\n }),\n );\n }),\n );\n\n return this;\n }\n}\n","import {\n From,\n InformationType,\n isFilled,\n OwnerType,\n TheInformation,\n} from \"silentium\";\nimport { Sync } from \"./Sync\";\n\n/**\n * Defer one source after another, gives values of baseSrc only once when triggerSrc responds\n * https://silentium-lab.github.io/silentium-components/#/behaviors/deferred\n */\nexport class Deferred<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private triggerSrc: InformationType<unknown>,\n ) {\n super();\n }\n\n public value(o: OwnerType<T>): this {\n const baseSync = new Sync(this.baseSrc).initOwner();\n this.triggerSrc.value(\n new From(() => {\n if (isFilled(baseSync.valueSync())) {\n o.give(baseSync.valueSync());\n }\n }),\n );\n return this;\n }\n}\n","import {\n All,\n Applied,\n From,\n InformationType,\n Late,\n OwnerType,\n TheInformation,\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 class Dirty<T> extends TheInformation<T> {\n private comparingSrc = new Late<T>();\n\n public constructor(\n private baseEntitySource: InformationType<T>,\n private alwaysKeep: string[] = [],\n private excludeKeys: string[] = [],\n ) {\n super([baseEntitySource]);\n }\n\n public value(o: OwnerType<T>): this {\n const comparingDetached = new Applied(this.comparingSrc, (value) =>\n JSON.parse(JSON.stringify(value)),\n );\n\n const allSrc = new All(comparingDetached, this.baseEntitySource).value(\n new From(([comparing, base]) => {\n if (!comparing) {\n return;\n }\n\n o.give(\n Object.fromEntries(\n Object.entries(comparing).filter(([key, value]) => {\n if (this.alwaysKeep.includes(key)) {\n return true;\n }\n if (this.excludeKeys.includes(key)) {\n return false;\n }\n return value !== (base as any)[key];\n }),\n ) as T,\n );\n }),\n );\n this.addDep(allSrc);\n\n return this;\n }\n\n public owner() {\n return this.comparingSrc.owner();\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Representation of loading process\n * first informatin source begins loading\n * second information source stops loading\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport class Loading extends TheInformation<boolean> {\n public constructor(\n private loadingStartSrc: InformationType<unknown>,\n private loadingFinishSrc: InformationType<unknown>,\n ) {\n super(loadingFinishSrc, loadingStartSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n this.loadingStartSrc.value(\n new From(() => {\n o.give(true);\n }),\n );\n\n this.loadingFinishSrc.value(\n new From(() => {\n o.give(false);\n }),\n );\n\n return this;\n }\n}\n","import {\n Filtered,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport class Lock<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private lockSrc: InformationType<boolean>,\n ) {\n super(baseSrc, lockSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let locked = false;\n this.lockSrc.value(\n new From((newLock) => {\n locked = newLock;\n }),\n );\n const i = new Filtered(this.baseSrc, () => !locked);\n this.addDep(i);\n i.value(o);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class Memo<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let lastValue: T | null = null;\n\n this.baseSrc.value(\n new From((v) => {\n if (v !== lastValue) {\n o.give(v);\n lastValue = v;\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class OnlyChanged<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let firstValue = false;\n\n this.baseSrc.value(\n new From((v) => {\n if (firstValue === false) {\n firstValue = true;\n } else {\n o.give(v);\n }\n }),\n );\n\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * Return source of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport class Path<\n R,\n T extends Record<string, unknown> | Array<unknown> = any,\n K extends string = any,\n> extends TheInformation<R> {\n public constructor(\n private baseSrc: InformationType<T>,\n private keySrc: InformationType<K>,\n ) {\n super(baseSrc, keySrc);\n }\n\n public value(o: OwnerType<R>): this {\n const allSrc = new All(this.baseSrc, this.keySrc).value(\n new From(([base, key]) => {\n const keyChunks = key.split(\".\");\n let value: unknown = base;\n keyChunks.forEach((keyChunk) => {\n value = (value as Record<string, unknown>)[keyChunk];\n });\n\n if (value !== undefined && value !== base) {\n o.give(value as R);\n }\n }),\n );\n this.addDep(allSrc);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\nimport { Sync } from \"./Sync\";\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 class Shot<T> extends TheInformation<T> {\n public constructor(\n private targetSrc: InformationType<T>,\n private triggerSrc: InformationType,\n ) {\n super(targetSrc, triggerSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const targetSync = new Sync(this.targetSrc);\n targetSync.initOwner();\n\n this.triggerSrc.value(\n new From(() => {\n if (targetSync.valueExisted()) {\n o.give(targetSync.valueSync());\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class Tick<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\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 o.give(lastValue);\n lastValue = null;\n }\n });\n };\n\n this.baseSrc.value(\n new From((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport class HashTable<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<[string, unknown]>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const record: Record<string, unknown> = {};\n\n this.baseSrc.value(\n new From(([key, value]) => {\n record[key] = value;\n o.give(record as T);\n }),\n );\n\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\ntype UnInformation<T> = T extends InformationType<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 class RecordOf<T extends InformationType> extends TheInformation<\n Record<string, UnInformation<T>>\n> {\n public constructor(private recordSrc: Record<string, T>) {\n super(...Object.values(recordSrc));\n }\n\n public value(o: OwnerType<Record<string, UnInformation<T>>>): this {\n const keys = Object.keys(this.recordSrc);\n new All(...Object.values(this.recordSrc)).value(\n new From((entries) => {\n const record: Record<string, any> = {};\n entries.forEach((entry, index) => {\n record[keys[index]] = entry;\n });\n o.give(record);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * Join sources of strings to one source\n * https://silentium-lab.github.io/silentium-components/#/string/concatenated\n */\nexport class Concatenated extends TheInformation<string> {\n public constructor(\n private sources: InformationType<string>[],\n private joinPartSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(...sources, joinPartSrc);\n }\n\n public value(o: OwnerType<string>): this {\n new All(this.joinPartSrc, ...this.sources).value(\n new From(([joinPart, ...strings]) => {\n o.give(strings.join(joinPart));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n Applied,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\nexport class Template extends TheInformation<string> {\n private source: InformationType<string>;\n\n public constructor(\n theSrc: InformationType<string> | string,\n private rules: InformationType<Record<string, unknown>>,\n ) {\n const source = typeof theSrc === \"string\" ? new Of(theSrc) : theSrc;\n super(source, rules);\n this.source = source;\n }\n\n public value(guest: OwnerType<string>) {\n new Applied(new All(this.source, this.rules), ([base, rules]) => {\n Object.entries(rules).forEach(([ph, val]) => {\n base = base.replaceAll(ph, String(val));\n });\n\n return base;\n }).value(guest);\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} 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 class RegexpMatched extends TheInformation<boolean> {\n public constructor(\n private patternSrc: InformationType<string>,\n private valueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(patternSrc, valueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.patternSrc, this.valueSrc, this.flagsSrc).value(\n new From(([pattern, value, flags]) => {\n o.give(new RegExp(pattern, flags).test(value));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} 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 class RegexpReplaced extends TheInformation<string> {\n public constructor(\n private valueSrc: InformationType<string>,\n private patternSrc: InformationType<string>,\n private replaceValueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(valueSrc, patternSrc, replaceValueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<string>): this {\n new All(\n this.patternSrc,\n this.valueSrc,\n this.replaceValueSrc,\n this.flagsSrc,\n ).value(\n new From(([pattern, value, replaceValue, flags]) => {\n o.give(String(value).replace(new RegExp(pattern, flags), replaceValue));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * First match of regexp\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport class RegexpMatch extends TheInformation<string[]> {\n public constructor(\n private patternSrc: InformationType<string>,\n private valueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(patternSrc, valueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<string[]>): this {\n new All(this.patternSrc, this.valueSrc, this.flagsSrc).value(\n new From(([pattern, value, flags]) => {\n const result = new RegExp(pattern, flags).exec(value);\n o.give(result ?? []);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} 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 class Set<T extends Record<string, unknown>> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private keySrc: InformationType<string>,\n private valueSrc: InformationType<unknown>,\n ) {\n super(baseSrc, keySrc, valueSrc);\n }\n\n public value(o: OwnerType<T>): this {\n new All(this.baseSrc, this.keySrc, this.valueSrc).value(\n new From(([base, key, value]) => {\n (base as Record<string, unknown>)[key] = value;\n o.give(base);\n }),\n );\n return this;\n }\n}\n","import {\n Any,\n Chain,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n TheOwner,\n} from \"silentium\";\nimport { Branch } from \"../behaviors\";\nimport { RegexpMatched } from \"../system\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n template: T | TheInformation<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 class Router<T = \"string\"> extends TheInformation<T> {\n public constructor(\n private urlSrc: InformationType<string>,\n private routesSrc: InformationType<Route<T>[]>,\n private defaultSrc: InformationType<T>,\n ) {\n super(urlSrc, routesSrc, defaultSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.routesSrc.value(\n new From((routes) => {\n new Any(\n new Chain(this.urlSrc, this.defaultSrc),\n ...routes.map((r) => {\n return new Branch(\n new RegexpMatched(\n new Of(r.pattern),\n this.urlSrc,\n r.patternFlags ? new Of(r.patternFlags) : undefined,\n ),\n (r.template instanceof TheInformation\n ? r.template\n : new Of(r.template)) as TheInformation,\n );\n }),\n ).value(o as TheOwner);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport class And extends TheInformation<boolean> {\n public constructor(\n private oneSrc: InformationType<boolean>,\n private twoSrc: InformationType<boolean>,\n ) {\n super(oneSrc, twoSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.oneSrc, this.twoSrc).value(\n new From(([one, two]) => {\n o.give(one && two);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport class Or extends TheInformation<boolean> {\n public constructor(\n private oneSrc: InformationType<boolean>,\n private twoSrc: InformationType<boolean>,\n ) {\n super(oneSrc, twoSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.oneSrc, this.twoSrc).value(\n new From(([one, two]) => {\n o.give(one || two);\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport class Not extends TheInformation<boolean> {\n public constructor(private baseSrc: InformationType<boolean>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n this.baseSrc.value(\n new From((v) => {\n o.give(!v);\n }),\n );\n return this;\n }\n}\n","import { Applied, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Convert any source to boolean source\n * https://silentium-lab.github.io/silentium-components/#/boolean/bool\n */\nexport class Bool extends TheInformation<boolean> {\n public constructor(private baseSrc: InformationType) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new Applied(this.baseSrc, Boolean).value(o);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents object from json\n */\nexport class FromJson<T> extends TheInformation<T> {\n public constructor(\n private jsonSrc: InformationType<string>,\n private errorOwner?: OwnerType,\n ) {\n super(jsonSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.jsonSrc.value(\n new From((json) => {\n try {\n o.give(JSON.parse(json));\n } catch (error) {\n this.errorOwner?.give(new Error(`Failed to parse JSON: ${error}`));\n }\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents json from object\n */\nexport class ToJson extends TheInformation<string> {\n public constructor(\n private dataSrc: InformationType,\n private errorOwner?: OwnerType,\n ) {\n super(dataSrc);\n }\n\n public value(o: OwnerType<string>): this {\n this.dataSrc.value(\n new From((data: unknown) => {\n try {\n o.give(JSON.stringify(data));\n } catch {\n this.errorOwner?.give(new Error(\"Failed to convert to JSON\"));\n }\n }),\n );\n return this;\n }\n}\n","import { Applied, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents the first element of an array.\n */\nexport class First<T extends Array<unknown>> extends TheInformation<T[0]> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T[0]>): this {\n new Applied(this.baseSrc, (a) => a[0]).value(o);\n return this;\n }\n}\n"],"names":["__publicField"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"silentium-components.js","sources":["../src/behaviors/Sync.ts","../src/behaviors/Branch.ts","../src/behaviors/Deadline.ts","../src/behaviors/Deferred.ts","../src/behaviors/Dirty.ts","../src/behaviors/Loading.ts","../src/behaviors/Lock.ts","../src/behaviors/Memo.ts","../src/behaviors/OnlyChanged.ts","../src/behaviors/Path.ts","../src/behaviors/Shot.ts","../src/behaviors/Tick.ts","../src/structures/HashTable.ts","../src/structures/RecordOf.ts","../src/strings/Concatenated.ts","../src/strings/Template.ts","../src/system/RegexpMatched.ts","../src/system/RegexpReplaced.ts","../src/system/RegexpMatch.ts","../src/system/Set.ts","../src/navigation/Router.ts","../src/boolean/And.ts","../src/boolean/Or.ts","../src/boolean/Not.ts","../src/boolean/Bool.ts","../src/formats/FromJson.ts","../src/formats/ToJson.ts","../src/lists/First.ts"],"sourcesContent":["import {\n From,\n InformationType,\n isFilled,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\nexport class Sync<T> extends TheInformation<T> {\n private theValue: T | undefined;\n private isInit = false;\n\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(o);\n return this;\n }\n\n public valueExisted() {\n this.initOwner();\n return isFilled(this.theValue);\n }\n\n public valueSync(): T {\n this.initOwner();\n\n if (!isFilled(this.theValue)) {\n throw new Error(\"no value in sync\");\n }\n\n return this.theValue;\n }\n\n public initOwner() {\n if (!this.isInit) {\n this.isInit = true;\n this.value(\n new From((v) => {\n this.theValue = v;\n }),\n );\n }\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\nimport { Sync } from \"./Sync\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport class Branch<Then, Else> extends TheInformation<Then | Else> {\n public constructor(\n private conditionSrc: InformationType<boolean>,\n private leftSrc: InformationType<Then>,\n private rightSrc?: InformationType<Else>,\n ) {\n super([conditionSrc, leftSrc, rightSrc]);\n }\n public value(o: OwnerType<Then | Else>): this {\n const leftSync = new Sync(this.leftSrc).initOwner();\n let rightSync: Sync<Else>;\n\n if (this.rightSrc !== undefined) {\n rightSync = new Sync(this.rightSrc).initOwner();\n }\n\n this.conditionSrc.value(\n new From((v) => {\n if (v) {\n o.give(leftSync.valueSync());\n } else if (rightSync) {\n o.give(rightSync.valueSync());\n }\n }),\n );\n\n return this;\n }\n}\n","import {\n Filtered,\n From,\n InformationType,\n OwnerType,\n Shared,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport class Deadline<T> extends TheInformation<T> {\n public constructor(\n private error: OwnerType<Error>,\n private baseSrc: InformationType<T>,\n private timeoutSrc: InformationType<number>,\n ) {\n super([error, baseSrc, timeoutSrc]);\n }\n\n public value(o: OwnerType<T>) {\n let timerHead: unknown = null;\n\n const s = new Shared(this.baseSrc, true);\n this.addDep(s);\n\n this.timeoutSrc.value(\n new From((timeout) => {\n if (timerHead) {\n clearTimeout(timerHead as number);\n }\n let timeoutReached = false;\n\n timerHead = setTimeout(() => {\n if (timeoutReached) {\n return;\n }\n timeoutReached = true;\n this.error.give(new Error(\"Timeout reached in Deadline class\"));\n }, timeout);\n\n const f = new Filtered(s, () => !timeoutReached);\n this.addDep(f);\n f.value(o);\n\n s.value(\n new From(() => {\n timeoutReached = true;\n }),\n );\n }),\n );\n\n return this;\n }\n}\n","import {\n From,\n InformationType,\n isFilled,\n OwnerType,\n TheInformation,\n} from \"silentium\";\nimport { Sync } from \"./Sync\";\n\n/**\n * Defer one source after another, gives values of baseSrc only once when triggerSrc responds\n * https://silentium-lab.github.io/silentium-components/#/behaviors/deferred\n */\nexport class Deferred<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private triggerSrc: InformationType<unknown>,\n ) {\n super();\n }\n\n public value(o: OwnerType<T>): this {\n const baseSync = new Sync(this.baseSrc).initOwner();\n this.triggerSrc.value(\n new From(() => {\n if (isFilled(baseSync.valueSync())) {\n o.give(baseSync.valueSync());\n }\n }),\n );\n return this;\n }\n}\n","import {\n All,\n Applied,\n From,\n InformationType,\n Late,\n OwnerType,\n TheInformation,\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 class Dirty<T> extends TheInformation<T> {\n private comparingSrc = new Late<T>();\n\n public constructor(\n private baseEntitySource: InformationType<T>,\n private alwaysKeep: string[] = [],\n private excludeKeys: string[] = [],\n ) {\n super([baseEntitySource]);\n }\n\n public value(o: OwnerType<T>): this {\n const comparingDetached = new Applied(this.comparingSrc, (value) =>\n JSON.parse(JSON.stringify(value)),\n );\n\n const allSrc = new All(comparingDetached, this.baseEntitySource).value(\n new From(([comparing, base]) => {\n if (!comparing) {\n return;\n }\n\n o.give(\n Object.fromEntries(\n Object.entries(comparing).filter(([key, value]) => {\n if (this.alwaysKeep.includes(key)) {\n return true;\n }\n if (this.excludeKeys.includes(key)) {\n return false;\n }\n return value !== (base as any)[key];\n }),\n ) as T,\n );\n }),\n );\n this.addDep(allSrc);\n\n return this;\n }\n\n public owner() {\n return this.comparingSrc.owner();\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Representation of loading process\n * first informatin source begins loading\n * second information source stops loading\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport class Loading extends TheInformation<boolean> {\n public constructor(\n private loadingStartSrc: InformationType<unknown>,\n private loadingFinishSrc: InformationType<unknown>,\n ) {\n super(loadingFinishSrc, loadingStartSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n this.loadingStartSrc.value(\n new From(() => {\n o.give(true);\n }),\n );\n\n this.loadingFinishSrc.value(\n new From(() => {\n o.give(false);\n }),\n );\n\n return this;\n }\n}\n","import {\n Filtered,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport class Lock<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private lockSrc: InformationType<boolean>,\n ) {\n super(baseSrc, lockSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let locked = false;\n this.lockSrc.value(\n new From((newLock) => {\n locked = newLock;\n }),\n );\n const i = new Filtered(this.baseSrc, () => !locked);\n this.addDep(i);\n i.value(o);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class Memo<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let lastValue: T | null = null;\n\n this.baseSrc.value(\n new From((v) => {\n if (v !== lastValue) {\n o.give(v);\n lastValue = v;\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class OnlyChanged<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let firstValue = false;\n\n this.baseSrc.value(\n new From((v) => {\n if (firstValue === false) {\n firstValue = true;\n } else {\n o.give(v);\n }\n }),\n );\n\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * Return source of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport class Path<\n R,\n T extends Record<string, unknown> | Array<unknown> = any,\n K extends string = any,\n> extends TheInformation<R> {\n public constructor(\n private baseSrc: InformationType<T>,\n private keySrc: InformationType<K>,\n ) {\n super(baseSrc, keySrc);\n }\n\n public value(o: OwnerType<R>): this {\n const allSrc = new All(this.baseSrc, this.keySrc).value(\n new From(([base, key]) => {\n const keyChunks = key.split(\".\");\n let value: unknown = base;\n keyChunks.forEach((keyChunk) => {\n value = (value as Record<string, unknown>)[keyChunk];\n });\n\n if (value !== undefined && value !== base) {\n o.give(value as R);\n }\n }),\n );\n this.addDep(allSrc);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\nimport { Sync } from \"./Sync\";\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 class Shot<T> extends TheInformation<T> {\n public constructor(\n private targetSrc: InformationType<T>,\n private triggerSrc: InformationType,\n ) {\n super(targetSrc, triggerSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const targetSync = new Sync(this.targetSrc);\n targetSync.initOwner();\n\n this.triggerSrc.value(\n new From(() => {\n if (targetSync.valueExisted()) {\n o.give(targetSync.valueSync());\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class Tick<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\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 o.give(lastValue);\n lastValue = null;\n }\n });\n };\n\n this.baseSrc.value(\n new From((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport class HashTable<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<[string, unknown]>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const record: Record<string, unknown> = {};\n\n this.baseSrc.value(\n new From(([key, value]) => {\n record[key] = value;\n o.give(record as T);\n }),\n );\n\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\ntype UnInformation<T> = T extends InformationType<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 class RecordOf<T extends InformationType> extends TheInformation<\n Record<string, UnInformation<T>>\n> {\n public constructor(private recordSrc: Record<string, T>) {\n super(...Object.values(recordSrc));\n }\n\n public value(o: OwnerType<Record<string, UnInformation<T>>>): this {\n const keys = Object.keys(this.recordSrc);\n new All(...Object.values(this.recordSrc)).value(\n new From((entries) => {\n const record: Record<string, any> = {};\n entries.forEach((entry, index) => {\n record[keys[index]] = entry;\n });\n o.give(record);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * Join sources of strings to one source\n * https://silentium-lab.github.io/silentium-components/#/string/concatenated\n */\nexport class Concatenated extends TheInformation<string> {\n public constructor(\n private sources: InformationType<string>[],\n private joinPartSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(...sources, joinPartSrc);\n }\n\n public value(o: OwnerType<string>): this {\n new All(this.joinPartSrc, ...this.sources).value(\n new From(([joinPart, ...strings]) => {\n o.give(strings.join(joinPart));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n Applied,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\nexport class Template extends TheInformation<string> {\n private source: InformationType<string>;\n\n public constructor(\n theSrc: InformationType<string> | string,\n private rules: InformationType<Record<string, unknown>>,\n ) {\n const source = typeof theSrc === \"string\" ? new Of(theSrc) : theSrc;\n super(source, rules);\n this.source = source;\n }\n\n public value(guest: OwnerType<string>) {\n new Applied(new All(this.source, this.rules), ([base, rules]) => {\n Object.entries(rules).forEach(([ph, val]) => {\n base = base.replaceAll(ph, String(val));\n });\n\n return base;\n }).value(guest);\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} 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 class RegexpMatched extends TheInformation<boolean> {\n public constructor(\n private patternSrc: InformationType<string>,\n private valueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(patternSrc, valueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.patternSrc, this.valueSrc, this.flagsSrc).value(\n new From(([pattern, value, flags]) => {\n o.give(new RegExp(pattern, flags).test(value));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} 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 class RegexpReplaced extends TheInformation<string> {\n public constructor(\n private valueSrc: InformationType<string>,\n private patternSrc: InformationType<string>,\n private replaceValueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(valueSrc, patternSrc, replaceValueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<string>): this {\n new All(\n this.patternSrc,\n this.valueSrc,\n this.replaceValueSrc,\n this.flagsSrc,\n ).value(\n new From(([pattern, value, replaceValue, flags]) => {\n o.give(String(value).replace(new RegExp(pattern, flags), replaceValue));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * First match of regexp\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport class RegexpMatch extends TheInformation<string[]> {\n public constructor(\n private patternSrc: InformationType<string>,\n private valueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(patternSrc, valueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<string[]>): this {\n new All(this.patternSrc, this.valueSrc, this.flagsSrc).value(\n new From(([pattern, value, flags]) => {\n const result = new RegExp(pattern, flags).exec(value);\n o.give(result ?? []);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} 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 class Set<T extends Record<string, unknown>> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private keySrc: InformationType<string>,\n private valueSrc: InformationType<unknown>,\n ) {\n super(baseSrc, keySrc, valueSrc);\n }\n\n public value(o: OwnerType<T>): this {\n new All(this.baseSrc, this.keySrc, this.valueSrc).value(\n new From(([base, key, value]) => {\n (base as Record<string, unknown>)[key] = value;\n o.give(base);\n }),\n );\n return this;\n }\n}\n","import {\n Any,\n Chain,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n TheOwner,\n} from \"silentium\";\nimport { Branch } from \"../behaviors\";\nimport { RegexpMatched } from \"../system\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n template: T | InformationType<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 class Router<T = \"string\"> extends TheInformation<T> {\n public constructor(\n private urlSrc: InformationType<string>,\n private routesSrc: InformationType<Route<T>[]>,\n private defaultSrc: InformationType<T>,\n ) {\n super(urlSrc, routesSrc, defaultSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.routesSrc.value(\n new From((routes) => {\n new Any(\n new Chain(this.urlSrc, this.defaultSrc),\n ...routes.map((r) => {\n return new Branch(\n new RegexpMatched(\n new Of(r.pattern),\n this.urlSrc,\n r.patternFlags ? new Of(r.patternFlags) : undefined,\n ),\n (\"value\" in (r.template as InformationType)\n ? r.template\n : new Of(r.template)) as TheInformation,\n );\n }),\n ).value(o as TheOwner);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport class And extends TheInformation<boolean> {\n public constructor(\n private oneSrc: InformationType<boolean>,\n private twoSrc: InformationType<boolean>,\n ) {\n super(oneSrc, twoSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.oneSrc, this.twoSrc).value(\n new From(([one, two]) => {\n o.give(one && two);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport class Or extends TheInformation<boolean> {\n public constructor(\n private oneSrc: InformationType<boolean>,\n private twoSrc: InformationType<boolean>,\n ) {\n super(oneSrc, twoSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.oneSrc, this.twoSrc).value(\n new From(([one, two]) => {\n o.give(one || two);\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport class Not extends TheInformation<boolean> {\n public constructor(private baseSrc: InformationType<boolean>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n this.baseSrc.value(\n new From((v) => {\n o.give(!v);\n }),\n );\n return this;\n }\n}\n","import { Applied, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Convert any source to boolean source\n * https://silentium-lab.github.io/silentium-components/#/boolean/bool\n */\nexport class Bool extends TheInformation<boolean> {\n public constructor(private baseSrc: InformationType) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new Applied(this.baseSrc, Boolean).value(o);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents object from json\n */\nexport class FromJson<T> extends TheInformation<T> {\n public constructor(\n private jsonSrc: InformationType<string>,\n private errorOwner?: OwnerType,\n ) {\n super(jsonSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.jsonSrc.value(\n new From((json) => {\n try {\n o.give(JSON.parse(json));\n } catch (error) {\n this.errorOwner?.give(new Error(`Failed to parse JSON: ${error}`));\n }\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents json from object\n */\nexport class ToJson extends TheInformation<string> {\n public constructor(\n private dataSrc: InformationType,\n private errorOwner?: OwnerType,\n ) {\n super(dataSrc);\n }\n\n public value(o: OwnerType<string>): this {\n this.dataSrc.value(\n new From((data: unknown) => {\n try {\n o.give(JSON.stringify(data));\n } catch {\n this.errorOwner?.give(new Error(\"Failed to convert to JSON\"));\n }\n }),\n );\n return this;\n }\n}\n","import { Applied, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents the first element of an array.\n */\nexport class First<T extends Array<unknown>> extends TheInformation<T[0]> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T[0]>): this {\n new Applied(this.baseSrc, (a) => a[0]).value(o);\n return this;\n }\n}\n"],"names":["__publicField"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"use strict";var r=Object.defineProperty,s=(e,t,s)=>((e,t,s)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,"symbol"!=typeof t?t+"":t,s);class n extends t.TheInformation{constructor(e){super(e),this.baseSrc=e,s(this,"theValue"),s(this,"isInit",!1)}value(e){return this.baseSrc.value(e),this}valueExisted(){return this.initOwner(),t.isFilled(this.theValue)}valueSync(){if(this.initOwner(),!t.isFilled(this.theValue))throw new Error("no value in sync");return this.theValue}initOwner(){return this.isInit||(this.isInit=!0,this.value(new t.From((e=>{this.theValue=e})))),this}}class i extends t.TheInformation{constructor(e,t,r){super([e,t,r]),this.conditionSrc=e,this.leftSrc=t,this.rightSrc=r}value(e){const r=new n(this.leftSrc).initOwner();let s;return void 0!==this.rightSrc&&(s=new n(this.rightSrc).initOwner()),this.conditionSrc.value(new t.From((t=>{t?e.give(r.valueSync()):s&&e.give(s.valueSync())}))),this}}class a extends t.TheInformation{constructor(e,t,r){super([e,t,r]),this.error=e,this.baseSrc=t,this.timeoutSrc=r}value(e){let r=null;const s=new t.Shared(this.baseSrc,!0);return this.addDep(s),this.timeoutSrc.value(new t.From((n=>{r&&clearTimeout(r);let i=!1;r=setTimeout((()=>{i||(i=!0,this.error.give(new Error("Timeout reached in Deadline class")))}),n);const a=new t.Filtered(s,(()=>!i));this.addDep(a),a.value(e),s.value(new t.From((()=>{i=!0})))}))),this}}class c extends t.TheInformation{constructor(e,t){super(),this.baseSrc=e,this.triggerSrc=t}value(e){const r=new n(this.baseSrc).initOwner();return this.triggerSrc.value(new t.From((()=>{t.isFilled(r.valueSync())&&e.give(r.valueSync())}))),this}}var o=Object.defineProperty,l=(e,t,r)=>((e,t,r)=>t in e?o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class u extends t.TheInformation{constructor(e,r=[],s=[]){super([e]),this.baseEntitySource=e,this.alwaysKeep=r,this.excludeKeys=s,l(this,"comparingSrc",new t.Late)}value(e){const r=new t.Applied(this.comparingSrc,(e=>JSON.parse(JSON.stringify(e)))),s=new t.All(r,this.baseEntitySource).value(new t.From((([t,r])=>{t&&e.give(Object.fromEntries(Object.entries(t).filter((([e,t])=>!!this.alwaysKeep.includes(e)||!this.excludeKeys.includes(e)&&t!==r[e]))))})));return this.addDep(s),this}owner(){return this.comparingSrc.owner()}}class h extends t.TheInformation{constructor(e,t){super(t,e),this.loadingStartSrc=e,this.loadingFinishSrc=t}value(e){return this.loadingStartSrc.value(new t.From((()=>{e.give(!0)}))),this.loadingFinishSrc.value(new t.From((()=>{e.give(!1)}))),this}}class S extends t.TheInformation{constructor(e,t){super(e,t),this.baseSrc=e,this.lockSrc=t}value(e){let r=!1;this.lockSrc.value(new t.From((e=>{r=e})));const s=new t.Filtered(this.baseSrc,(()=>!r));return this.addDep(s),s.value(e),this}}class v extends t.TheInformation{constructor(e){super(e),this.baseSrc=e}value(e){let r=null;return this.baseSrc.value(new t.From((t=>{t!==r&&(e.give(t),r=t)}))),this}}class w extends t.TheInformation{constructor(e){super(e),this.baseSrc=e}value(e){let r=!1;return this.baseSrc.value(new t.From((t=>{!1===r?r=!0:e.give(t)}))),this}}class d extends t.TheInformation{constructor(e,t){super(e,t),this.baseSrc=e,this.keySrc=t}value(e){const r=new t.All(this.baseSrc,this.keySrc).value(new t.From((([t,r])=>{const s=r.split(".");let n=t;s.forEach((e=>{n=n[e]})),void 0!==n&&n!==t&&e.give(n)})));return this.addDep(r),this}}class p extends t.TheInformation{constructor(e,t){super(e,t),this.targetSrc=e,this.triggerSrc=t}value(e){const r=new n(this.targetSrc);return r.initOwner(),this.triggerSrc.value(new t.From((()=>{r.valueExisted()&&e.give(r.valueSync())}))),this}}class m extends t.TheInformation{constructor(e){super(e),this.baseSrc=e}value(e){let r=!1,s=null;return this.baseSrc.value(new t.From((t=>{s=t,r||(r=!0,queueMicrotask((()=>{r=!1,null!==s&&(e.give(s),s=null)})))}))),this}}class g extends t.TheInformation{constructor(e){super(e),this.baseSrc=e}value(e){const r={};return this.baseSrc.value(new t.From((([t,s])=>{r[t]=s,e.give(r)}))),this}}class f extends t.TheInformation{constructor(e){super(...Object.values(e)),this.recordSrc=e}value(e){const r=Object.keys(this.recordSrc);return new t.All(...Object.values(this.recordSrc)).value(new t.From((t=>{const s={};t.forEach(((e,t)=>{s[r[t]]=e})),e.give(s)}))),this}}class b extends t.TheInformation{constructor(e,r=new t.Of("")){super(...e,r),this.sources=e,this.joinPartSrc=r}value(e){return new t.All(this.joinPartSrc,...this.sources).value(new t.From((([t,...r])=>{e.give(r.join(t))}))),this}}var F=Object.defineProperty,x=(e,t,r)=>((e,t,r)=>t in e?F(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class O extends t.TheInformation{constructor(e,r){const s="string"==typeof e?new t.Of(e):e;super(s,r),this.rules=r,x(this,"source"),this.source=s}value(e){return new t.Applied(new t.All(this.source,this.rules),(([e,t])=>(Object.entries(t).forEach((([t,r])=>{e=e.replaceAll(t,String(r))})),e))).value(e),this}}class T extends t.TheInformation{constructor(e,r,s=new t.Of("")){super(e,r,s),this.patternSrc=e,this.valueSrc=r,this.flagsSrc=s}value(e){return new t.All(this.patternSrc,this.valueSrc,this.flagsSrc).value(new t.From((([t,r,s])=>{e.give(new RegExp(t,s).test(r))}))),this}}class y extends t.TheInformation{constructor(e,r,s,n=new t.Of("")){super(e,r,s,n),this.valueSrc=e,this.patternSrc=r,this.replaceValueSrc=s,this.flagsSrc=n}value(e){return new t.All(this.patternSrc,this.valueSrc,this.replaceValueSrc,this.flagsSrc).value(new t.From((([t,r,s,n])=>{e.give(String(r).replace(new RegExp(t,n),s))}))),this}}class I extends t.TheInformation{constructor(e,r,s=new t.Of("")){super(e,r,s),this.patternSrc=e,this.valueSrc=r,this.flagsSrc=s}value(e){return new t.All(this.patternSrc,this.valueSrc,this.flagsSrc).value(new t.From((([t,r,s])=>{const n=new RegExp(t,s).exec(r);e.give(n??[])}))),this}}class A extends t.TheInformation{constructor(e,t,r){super(e,t,r),this.baseSrc=e,this.keySrc=t,this.valueSrc=r}value(e){return new t.All(this.baseSrc,this.keySrc,this.valueSrc).value(new t.From((([t,r,s])=>{t[r]=s,e.give(t)}))),this}}class E extends t.TheInformation{constructor(e,t,r){super(e,t,r),this.urlSrc=e,this.routesSrc=t,this.defaultSrc=r}value(e){return this.routesSrc.value(new t.From((r=>{new t.Any(new t.Chain(this.urlSrc,this.defaultSrc),...r.map((e=>new i(new T(new t.Of(e.pattern),this.urlSrc,e.patternFlags?new t.Of(e.patternFlags):void 0),e.template
|
|
1
|
+
!function(e,t){"use strict";var r=Object.defineProperty,s=(e,t,s)=>((e,t,s)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,"symbol"!=typeof t?t+"":t,s);class n extends t.TheInformation{constructor(e){super(e),this.baseSrc=e,s(this,"theValue"),s(this,"isInit",!1)}value(e){return this.baseSrc.value(e),this}valueExisted(){return this.initOwner(),t.isFilled(this.theValue)}valueSync(){if(this.initOwner(),!t.isFilled(this.theValue))throw new Error("no value in sync");return this.theValue}initOwner(){return this.isInit||(this.isInit=!0,this.value(new t.From((e=>{this.theValue=e})))),this}}class i extends t.TheInformation{constructor(e,t,r){super([e,t,r]),this.conditionSrc=e,this.leftSrc=t,this.rightSrc=r}value(e){const r=new n(this.leftSrc).initOwner();let s;return void 0!==this.rightSrc&&(s=new n(this.rightSrc).initOwner()),this.conditionSrc.value(new t.From((t=>{t?e.give(r.valueSync()):s&&e.give(s.valueSync())}))),this}}class a extends t.TheInformation{constructor(e,t,r){super([e,t,r]),this.error=e,this.baseSrc=t,this.timeoutSrc=r}value(e){let r=null;const s=new t.Shared(this.baseSrc,!0);return this.addDep(s),this.timeoutSrc.value(new t.From((n=>{r&&clearTimeout(r);let i=!1;r=setTimeout((()=>{i||(i=!0,this.error.give(new Error("Timeout reached in Deadline class")))}),n);const a=new t.Filtered(s,(()=>!i));this.addDep(a),a.value(e),s.value(new t.From((()=>{i=!0})))}))),this}}class c extends t.TheInformation{constructor(e,t){super(),this.baseSrc=e,this.triggerSrc=t}value(e){const r=new n(this.baseSrc).initOwner();return this.triggerSrc.value(new t.From((()=>{t.isFilled(r.valueSync())&&e.give(r.valueSync())}))),this}}var o=Object.defineProperty,l=(e,t,r)=>((e,t,r)=>t in e?o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class u extends t.TheInformation{constructor(e,r=[],s=[]){super([e]),this.baseEntitySource=e,this.alwaysKeep=r,this.excludeKeys=s,l(this,"comparingSrc",new t.Late)}value(e){const r=new t.Applied(this.comparingSrc,(e=>JSON.parse(JSON.stringify(e)))),s=new t.All(r,this.baseEntitySource).value(new t.From((([t,r])=>{t&&e.give(Object.fromEntries(Object.entries(t).filter((([e,t])=>!!this.alwaysKeep.includes(e)||!this.excludeKeys.includes(e)&&t!==r[e]))))})));return this.addDep(s),this}owner(){return this.comparingSrc.owner()}}class h extends t.TheInformation{constructor(e,t){super(t,e),this.loadingStartSrc=e,this.loadingFinishSrc=t}value(e){return this.loadingStartSrc.value(new t.From((()=>{e.give(!0)}))),this.loadingFinishSrc.value(new t.From((()=>{e.give(!1)}))),this}}class S extends t.TheInformation{constructor(e,t){super(e,t),this.baseSrc=e,this.lockSrc=t}value(e){let r=!1;this.lockSrc.value(new t.From((e=>{r=e})));const s=new t.Filtered(this.baseSrc,(()=>!r));return this.addDep(s),s.value(e),this}}class v extends t.TheInformation{constructor(e){super(e),this.baseSrc=e}value(e){let r=null;return this.baseSrc.value(new t.From((t=>{t!==r&&(e.give(t),r=t)}))),this}}class w extends t.TheInformation{constructor(e){super(e),this.baseSrc=e}value(e){let r=!1;return this.baseSrc.value(new t.From((t=>{!1===r?r=!0:e.give(t)}))),this}}class d extends t.TheInformation{constructor(e,t){super(e,t),this.baseSrc=e,this.keySrc=t}value(e){const r=new t.All(this.baseSrc,this.keySrc).value(new t.From((([t,r])=>{const s=r.split(".");let n=t;s.forEach((e=>{n=n[e]})),void 0!==n&&n!==t&&e.give(n)})));return this.addDep(r),this}}class p extends t.TheInformation{constructor(e,t){super(e,t),this.targetSrc=e,this.triggerSrc=t}value(e){const r=new n(this.targetSrc);return r.initOwner(),this.triggerSrc.value(new t.From((()=>{r.valueExisted()&&e.give(r.valueSync())}))),this}}class m extends t.TheInformation{constructor(e){super(e),this.baseSrc=e}value(e){let r=!1,s=null;return this.baseSrc.value(new t.From((t=>{s=t,r||(r=!0,queueMicrotask((()=>{r=!1,null!==s&&(e.give(s),s=null)})))}))),this}}class g extends t.TheInformation{constructor(e){super(e),this.baseSrc=e}value(e){const r={};return this.baseSrc.value(new t.From((([t,s])=>{r[t]=s,e.give(r)}))),this}}class f extends t.TheInformation{constructor(e){super(...Object.values(e)),this.recordSrc=e}value(e){const r=Object.keys(this.recordSrc);return new t.All(...Object.values(this.recordSrc)).value(new t.From((t=>{const s={};t.forEach(((e,t)=>{s[r[t]]=e})),e.give(s)}))),this}}class b extends t.TheInformation{constructor(e,r=new t.Of("")){super(...e,r),this.sources=e,this.joinPartSrc=r}value(e){return new t.All(this.joinPartSrc,...this.sources).value(new t.From((([t,...r])=>{e.give(r.join(t))}))),this}}var F=Object.defineProperty,x=(e,t,r)=>((e,t,r)=>t in e?F(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class O extends t.TheInformation{constructor(e,r){const s="string"==typeof e?new t.Of(e):e;super(s,r),this.rules=r,x(this,"source"),this.source=s}value(e){return new t.Applied(new t.All(this.source,this.rules),(([e,t])=>(Object.entries(t).forEach((([t,r])=>{e=e.replaceAll(t,String(r))})),e))).value(e),this}}class T extends t.TheInformation{constructor(e,r,s=new t.Of("")){super(e,r,s),this.patternSrc=e,this.valueSrc=r,this.flagsSrc=s}value(e){return new t.All(this.patternSrc,this.valueSrc,this.flagsSrc).value(new t.From((([t,r,s])=>{e.give(new RegExp(t,s).test(r))}))),this}}class y extends t.TheInformation{constructor(e,r,s,n=new t.Of("")){super(e,r,s,n),this.valueSrc=e,this.patternSrc=r,this.replaceValueSrc=s,this.flagsSrc=n}value(e){return new t.All(this.patternSrc,this.valueSrc,this.replaceValueSrc,this.flagsSrc).value(new t.From((([t,r,s,n])=>{e.give(String(r).replace(new RegExp(t,n),s))}))),this}}class I extends t.TheInformation{constructor(e,r,s=new t.Of("")){super(e,r,s),this.patternSrc=e,this.valueSrc=r,this.flagsSrc=s}value(e){return new t.All(this.patternSrc,this.valueSrc,this.flagsSrc).value(new t.From((([t,r,s])=>{const n=new RegExp(t,s).exec(r);e.give(n??[])}))),this}}class A extends t.TheInformation{constructor(e,t,r){super(e,t,r),this.baseSrc=e,this.keySrc=t,this.valueSrc=r}value(e){return new t.All(this.baseSrc,this.keySrc,this.valueSrc).value(new t.From((([t,r,s])=>{t[r]=s,e.give(t)}))),this}}class E extends t.TheInformation{constructor(e,t,r){super(e,t,r),this.urlSrc=e,this.routesSrc=t,this.defaultSrc=r}value(e){return this.routesSrc.value(new t.From((r=>{new t.Any(new t.Chain(this.urlSrc,this.defaultSrc),...r.map((e=>new i(new T(new t.Of(e.pattern),this.urlSrc,e.patternFlags?new t.Of(e.patternFlags):void 0),"value"in e.template?e.template:new t.Of(e.template))))).value(e)}))),this}}class j extends t.TheInformation{constructor(e,t){super(e,t),this.oneSrc=e,this.twoSrc=t}value(e){return new t.All(this.oneSrc,this.twoSrc).value(new t.From((([t,r])=>{e.give(t&&r)}))),this}}class k extends t.TheInformation{constructor(e,t){super(e,t),this.oneSrc=e,this.twoSrc=t}value(e){return new t.All(this.oneSrc,this.twoSrc).value(new t.From((([t,r])=>{e.give(t||r)}))),this}}class D extends t.TheInformation{constructor(e){super(e),this.baseSrc=e}value(e){return this.baseSrc.value(new t.From((t=>{e.give(!t)}))),this}}class R extends t.TheInformation{constructor(e){super(e),this.baseSrc=e}value(e){return new t.Applied(this.baseSrc,Boolean).value(e),this}}class J extends t.TheInformation{constructor(e,t){super(e),this.jsonSrc=e,this.errorOwner=t}value(e){return this.jsonSrc.value(new t.From((t=>{try{e.give(JSON.parse(t))}catch(e){this.errorOwner?.give(new Error(`Failed to parse JSON: ${e}`))}}))),this}}class N extends t.TheInformation{constructor(e,t){super(e),this.dataSrc=e,this.errorOwner=t}value(e){return this.dataSrc.value(new t.From((t=>{try{e.give(JSON.stringify(t))}catch{this.errorOwner?.give(new Error("Failed to convert to JSON"))}}))),this}}class V extends t.TheInformation{constructor(e){super(e),this.baseSrc=e}value(e){return new t.Applied(this.baseSrc,(e=>e[0])).value(e),this}}e.And=j,e.Bool=R,e.Branch=i,e.Concatenated=b,e.Deadline=a,e.Deferred=c,e.Dirty=u,e.First=V,e.FromJson=J,e.HashTable=g,e.Loading=h,e.Lock=S,e.Memo=v,e.Not=D,e.OnlyChanged=w,e.Or=k,e.Path=d,e.RecordOf=f,e.RegexpMatch=I,e.RegexpMatched=T,e.RegexpReplaced=y,e.Router=E,e.Set=A,e.Shot=p,e.Sync=n,e.Template=O,e.Tick=m,e.ToJson=N}({},silentium);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{TheInformation as e,isFilled as t,From as s,Shared as r,Filtered as i,Late as n,Applied as c,All as a,Of as u,Any as l,Chain as h}from"silentium";var o=Object.defineProperty,
|
|
1
|
+
import{TheInformation as e,isFilled as t,From as s,Shared as r,Filtered as i,Late as n,Applied as c,All as a,Of as u,Any as l,Chain as h}from"silentium";var o=Object.defineProperty,v=(e,t,s)=>((e,t,s)=>t in e?o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,"symbol"!=typeof t?t+"":t,s);class S extends e{constructor(e){super(e),this.baseSrc=e,v(this,"theValue"),v(this,"isInit",!1)}value(e){return this.baseSrc.value(e),this}valueExisted(){return this.initOwner(),t(this.theValue)}valueSync(){if(this.initOwner(),!t(this.theValue))throw new Error("no value in sync");return this.theValue}initOwner(){return this.isInit||(this.isInit=!0,this.value(new s((e=>{this.theValue=e})))),this}}class w extends e{constructor(e,t,s){super([e,t,s]),this.conditionSrc=e,this.leftSrc=t,this.rightSrc=s}value(e){const t=new S(this.leftSrc).initOwner();let r;return void 0!==this.rightSrc&&(r=new S(this.rightSrc).initOwner()),this.conditionSrc.value(new s((s=>{s?e.give(t.valueSync()):r&&e.give(r.valueSync())}))),this}}class p extends e{constructor(e,t,s){super([e,t,s]),this.error=e,this.baseSrc=t,this.timeoutSrc=s}value(e){let t=null;const n=new r(this.baseSrc,!0);return this.addDep(n),this.timeoutSrc.value(new s((r=>{t&&clearTimeout(t);let c=!1;t=setTimeout((()=>{c||(c=!0,this.error.give(new Error("Timeout reached in Deadline class")))}),r);const a=new i(n,(()=>!c));this.addDep(a),a.value(e),n.value(new s((()=>{c=!0})))}))),this}}class d extends e{constructor(e,t){super(),this.baseSrc=e,this.triggerSrc=t}value(e){const r=new S(this.baseSrc).initOwner();return this.triggerSrc.value(new s((()=>{t(r.valueSync())&&e.give(r.valueSync())}))),this}}var g=Object.defineProperty,b=(e,t,s)=>((e,t,s)=>t in e?g(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,t+"",s);class x extends e{constructor(e,t=[],s=[]){super([e]),this.baseEntitySource=e,this.alwaysKeep=t,this.excludeKeys=s,b(this,"comparingSrc",new n)}value(e){const t=new c(this.comparingSrc,(e=>JSON.parse(JSON.stringify(e)))),r=new a(t,this.baseEntitySource).value(new s((([t,s])=>{t&&e.give(Object.fromEntries(Object.entries(t).filter((([e,t])=>!!this.alwaysKeep.includes(e)||!this.excludeKeys.includes(e)&&t!==s[e]))))})));return this.addDep(r),this}owner(){return this.comparingSrc.owner()}}class y extends e{constructor(e,t){super(t,e),this.loadingStartSrc=e,this.loadingFinishSrc=t}value(e){return this.loadingStartSrc.value(new s((()=>{e.give(!0)}))),this.loadingFinishSrc.value(new s((()=>{e.give(!1)}))),this}}class f extends e{constructor(e,t){super(e,t),this.baseSrc=e,this.lockSrc=t}value(e){let t=!1;this.lockSrc.value(new s((e=>{t=e})));const r=new i(this.baseSrc,(()=>!t));return this.addDep(r),r.value(e),this}}class O extends e{constructor(e){super(e),this.baseSrc=e}value(e){let t=null;return this.baseSrc.value(new s((s=>{s!==t&&(e.give(s),t=s)}))),this}}class m extends e{constructor(e){super(e),this.baseSrc=e}value(e){let t=!1;return this.baseSrc.value(new s((s=>{!1===t?t=!0:e.give(s)}))),this}}class E extends e{constructor(e,t){super(e,t),this.baseSrc=e,this.keySrc=t}value(e){const t=new a(this.baseSrc,this.keySrc).value(new s((([t,s])=>{const r=s.split(".");let i=t;r.forEach((e=>{i=i[e]})),void 0!==i&&i!==t&&e.give(i)})));return this.addDep(t),this}}class j extends e{constructor(e,t){super(e,t),this.targetSrc=e,this.triggerSrc=t}value(e){const t=new S(this.targetSrc);return t.initOwner(),this.triggerSrc.value(new s((()=>{t.valueExisted()&&e.give(t.valueSync())}))),this}}class k extends e{constructor(e){super(e),this.baseSrc=e}value(e){let t=!1,r=null;return this.baseSrc.value(new s((s=>{r=s,t||(t=!0,queueMicrotask((()=>{t=!1,null!==r&&(e.give(r),r=null)})))}))),this}}class V extends e{constructor(e){super(e),this.baseSrc=e}value(e){const t={};return this.baseSrc.value(new s((([s,r])=>{t[s]=r,e.give(t)}))),this}}class D extends e{constructor(e){super(...Object.values(e)),this.recordSrc=e}value(e){const t=Object.keys(this.recordSrc);return new a(...Object.values(this.recordSrc)).value(new s((s=>{const r={};s.forEach(((e,s)=>{r[t[s]]=e})),e.give(r)}))),this}}class F extends e{constructor(e,t=new u("")){super(...e,t),this.sources=e,this.joinPartSrc=t}value(e){return new a(this.joinPartSrc,...this.sources).value(new s((([t,...s])=>{e.give(s.join(t))}))),this}}var J=Object.defineProperty,N=(e,t,s)=>((e,t,s)=>t in e?J(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,t+"",s);class P extends e{constructor(e,t){const s="string"==typeof e?new u(e):e;super(s,t),this.rules=t,N(this,"source"),this.source=s}value(e){return new c(new a(this.source,this.rules),(([e,t])=>(Object.entries(t).forEach((([t,s])=>{e=e.replaceAll(t,String(s))})),e))).value(e),this}}class K extends e{constructor(e,t,s=new u("")){super(e,t,s),this.patternSrc=e,this.valueSrc=t,this.flagsSrc=s}value(e){return new a(this.patternSrc,this.valueSrc,this.flagsSrc).value(new s((([t,s,r])=>{e.give(new RegExp(t,r).test(s))}))),this}}class I extends e{constructor(e,t,s,r=new u("")){super(e,t,s,r),this.valueSrc=e,this.patternSrc=t,this.replaceValueSrc=s,this.flagsSrc=r}value(e){return new a(this.patternSrc,this.valueSrc,this.replaceValueSrc,this.flagsSrc).value(new s((([t,s,r,i])=>{e.give(String(s).replace(new RegExp(t,i),r))}))),this}}class R extends e{constructor(e,t,s=new u("")){super(e,t,s),this.patternSrc=e,this.valueSrc=t,this.flagsSrc=s}value(e){return new a(this.patternSrc,this.valueSrc,this.flagsSrc).value(new s((([t,s,r])=>{const i=new RegExp(t,r).exec(s);e.give(i??[])}))),this}}class T extends e{constructor(e,t,s){super(e,t,s),this.baseSrc=e,this.keySrc=t,this.valueSrc=s}value(e){return new a(this.baseSrc,this.keySrc,this.valueSrc).value(new s((([t,s,r])=>{t[s]=r,e.give(t)}))),this}}class q extends e{constructor(e,t,s){super(e,t,s),this.urlSrc=e,this.routesSrc=t,this.defaultSrc=s}value(e){return this.routesSrc.value(new s((t=>{new l(new h(this.urlSrc,this.defaultSrc),...t.map((e=>new w(new K(new u(e.pattern),this.urlSrc,e.patternFlags?new u(e.patternFlags):void 0),"value"in e.template?e.template:new u(e.template))))).value(e)}))),this}}class A extends e{constructor(e,t){super(e,t),this.oneSrc=e,this.twoSrc=t}value(e){return new a(this.oneSrc,this.twoSrc).value(new s((([t,s])=>{e.give(t&&s)}))),this}}class B extends e{constructor(e,t){super(e,t),this.oneSrc=e,this.twoSrc=t}value(e){return new a(this.oneSrc,this.twoSrc).value(new s((([t,s])=>{e.give(t||s)}))),this}}class M extends e{constructor(e){super(e),this.baseSrc=e}value(e){return this.baseSrc.value(new s((t=>{e.give(!t)}))),this}}class $ extends e{constructor(e){super(e),this.baseSrc=e}value(e){return new c(this.baseSrc,Boolean).value(e),this}}class z extends e{constructor(e,t){super(e),this.jsonSrc=e,this.errorOwner=t}value(e){return this.jsonSrc.value(new s((t=>{try{e.give(JSON.parse(t))}catch(e){this.errorOwner?.give(new Error(`Failed to parse JSON: ${e}`))}}))),this}}class C extends e{constructor(e,t){super(e),this.dataSrc=e,this.errorOwner=t}value(e){return this.dataSrc.value(new s((t=>{try{e.give(JSON.stringify(t))}catch{this.errorOwner?.give(new Error("Failed to convert to JSON"))}}))),this}}class G extends e{constructor(e){super(e),this.baseSrc=e}value(e){return new c(this.baseSrc,(e=>e[0])).value(e),this}}export{A as And,$ as Bool,w as Branch,F as Concatenated,p as Deadline,d as Deferred,x as Dirty,G as First,z as FromJson,V as HashTable,y as Loading,f as Lock,O as Memo,M as Not,m as OnlyChanged,B as Or,E as Path,D as RecordOf,R as RegexpMatch,K as RegexpMatched,I as RegexpReplaced,q as Router,T as Set,j as Shot,S as Sync,P as Template,k as Tick,C as ToJson};
|
|
2
2
|
//# sourceMappingURL=silentium-components.min.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silentium-components.min.mjs","sources":["../src/behaviors/Sync.ts","../src/behaviors/Branch.ts","../src/behaviors/Deadline.ts","../src/behaviors/Deferred.ts","../src/behaviors/Dirty.ts","../src/behaviors/Loading.ts","../src/behaviors/Lock.ts","../src/behaviors/Memo.ts","../src/behaviors/OnlyChanged.ts","../src/behaviors/Path.ts","../src/behaviors/Shot.ts","../src/behaviors/Tick.ts","../src/structures/HashTable.ts","../src/structures/RecordOf.ts","../src/strings/Concatenated.ts","../src/strings/Template.ts","../src/system/RegexpMatched.ts","../src/system/RegexpReplaced.ts","../src/system/RegexpMatch.ts","../src/system/Set.ts","../src/navigation/Router.ts","../src/boolean/And.ts","../src/boolean/Or.ts","../src/boolean/Not.ts","../src/boolean/Bool.ts","../src/formats/FromJson.ts","../src/formats/ToJson.ts","../src/lists/First.ts"],"sourcesContent":["import {\n From,\n InformationType,\n isFilled,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\nexport class Sync<T> extends TheInformation<T> {\n private theValue: T | undefined;\n private isInit = false;\n\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(o);\n return this;\n }\n\n public valueExisted() {\n this.initOwner();\n return isFilled(this.theValue);\n }\n\n public valueSync(): T {\n this.initOwner();\n\n if (!isFilled(this.theValue)) {\n throw new Error(\"no value in sync\");\n }\n\n return this.theValue;\n }\n\n public initOwner() {\n if (!this.isInit) {\n this.isInit = true;\n this.value(\n new From((v) => {\n this.theValue = v;\n }),\n );\n }\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\nimport { Sync } from \"./Sync\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport class Branch<Then, Else> extends TheInformation<Then | Else> {\n public constructor(\n private conditionSrc: InformationType<boolean>,\n private leftSrc: InformationType<Then>,\n private rightSrc?: InformationType<Else>,\n ) {\n super([conditionSrc, leftSrc, rightSrc]);\n }\n public value(o: OwnerType<Then | Else>): this {\n const leftSync = new Sync(this.leftSrc).initOwner();\n let rightSync: Sync<Else>;\n\n if (this.rightSrc !== undefined) {\n rightSync = new Sync(this.rightSrc).initOwner();\n }\n\n this.conditionSrc.value(\n new From((v) => {\n if (v) {\n o.give(leftSync.valueSync());\n } else if (rightSync) {\n o.give(rightSync.valueSync());\n }\n }),\n );\n\n return this;\n }\n}\n","import {\n Filtered,\n From,\n InformationType,\n OwnerType,\n Shared,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport class Deadline<T> extends TheInformation<T> {\n public constructor(\n private error: OwnerType<Error>,\n private baseSrc: InformationType<T>,\n private timeoutSrc: InformationType<number>,\n ) {\n super([error, baseSrc, timeoutSrc]);\n }\n\n public value(o: OwnerType<T>) {\n let timerHead: unknown = null;\n\n const s = new Shared(this.baseSrc, true);\n this.addDep(s);\n\n this.timeoutSrc.value(\n new From((timeout) => {\n if (timerHead) {\n clearTimeout(timerHead as number);\n }\n let timeoutReached = false;\n\n timerHead = setTimeout(() => {\n if (timeoutReached) {\n return;\n }\n timeoutReached = true;\n this.error.give(new Error(\"Timeout reached in Deadline class\"));\n }, timeout);\n\n const f = new Filtered(s, () => !timeoutReached);\n this.addDep(f);\n f.value(o);\n\n s.value(\n new From(() => {\n timeoutReached = true;\n }),\n );\n }),\n );\n\n return this;\n }\n}\n","import {\n From,\n InformationType,\n isFilled,\n OwnerType,\n TheInformation,\n} from \"silentium\";\nimport { Sync } from \"./Sync\";\n\n/**\n * Defer one source after another, gives values of baseSrc only once when triggerSrc responds\n * https://silentium-lab.github.io/silentium-components/#/behaviors/deferred\n */\nexport class Deferred<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private triggerSrc: InformationType<unknown>,\n ) {\n super();\n }\n\n public value(o: OwnerType<T>): this {\n const baseSync = new Sync(this.baseSrc).initOwner();\n this.triggerSrc.value(\n new From(() => {\n if (isFilled(baseSync.valueSync())) {\n o.give(baseSync.valueSync());\n }\n }),\n );\n return this;\n }\n}\n","import {\n All,\n Applied,\n From,\n InformationType,\n Late,\n OwnerType,\n TheInformation,\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 class Dirty<T> extends TheInformation<T> {\n private comparingSrc = new Late<T>();\n\n public constructor(\n private baseEntitySource: InformationType<T>,\n private alwaysKeep: string[] = [],\n private excludeKeys: string[] = [],\n ) {\n super([baseEntitySource]);\n }\n\n public value(o: OwnerType<T>): this {\n const comparingDetached = new Applied(this.comparingSrc, (value) =>\n JSON.parse(JSON.stringify(value)),\n );\n\n const allSrc = new All(comparingDetached, this.baseEntitySource).value(\n new From(([comparing, base]) => {\n if (!comparing) {\n return;\n }\n\n o.give(\n Object.fromEntries(\n Object.entries(comparing).filter(([key, value]) => {\n if (this.alwaysKeep.includes(key)) {\n return true;\n }\n if (this.excludeKeys.includes(key)) {\n return false;\n }\n return value !== (base as any)[key];\n }),\n ) as T,\n );\n }),\n );\n this.addDep(allSrc);\n\n return this;\n }\n\n public owner() {\n return this.comparingSrc.owner();\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Representation of loading process\n * first informatin source begins loading\n * second information source stops loading\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport class Loading extends TheInformation<boolean> {\n public constructor(\n private loadingStartSrc: InformationType<unknown>,\n private loadingFinishSrc: InformationType<unknown>,\n ) {\n super(loadingFinishSrc, loadingStartSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n this.loadingStartSrc.value(\n new From(() => {\n o.give(true);\n }),\n );\n\n this.loadingFinishSrc.value(\n new From(() => {\n o.give(false);\n }),\n );\n\n return this;\n }\n}\n","import {\n Filtered,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport class Lock<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private lockSrc: InformationType<boolean>,\n ) {\n super(baseSrc, lockSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let locked = false;\n this.lockSrc.value(\n new From((newLock) => {\n locked = newLock;\n }),\n );\n const i = new Filtered(this.baseSrc, () => !locked);\n this.addDep(i);\n i.value(o);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class Memo<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let lastValue: T | null = null;\n\n this.baseSrc.value(\n new From((v) => {\n if (v !== lastValue) {\n o.give(v);\n lastValue = v;\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class OnlyChanged<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let firstValue = false;\n\n this.baseSrc.value(\n new From((v) => {\n if (firstValue === false) {\n firstValue = true;\n } else {\n o.give(v);\n }\n }),\n );\n\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * Return source of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport class Path<\n R,\n T extends Record<string, unknown> | Array<unknown> = any,\n K extends string = any,\n> extends TheInformation<R> {\n public constructor(\n private baseSrc: InformationType<T>,\n private keySrc: InformationType<K>,\n ) {\n super(baseSrc, keySrc);\n }\n\n public value(o: OwnerType<R>): this {\n const allSrc = new All(this.baseSrc, this.keySrc).value(\n new From(([base, key]) => {\n const keyChunks = key.split(\".\");\n let value: unknown = base;\n keyChunks.forEach((keyChunk) => {\n value = (value as Record<string, unknown>)[keyChunk];\n });\n\n if (value !== undefined && value !== base) {\n o.give(value as R);\n }\n }),\n );\n this.addDep(allSrc);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\nimport { Sync } from \"./Sync\";\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 class Shot<T> extends TheInformation<T> {\n public constructor(\n private targetSrc: InformationType<T>,\n private triggerSrc: InformationType,\n ) {\n super(targetSrc, triggerSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const targetSync = new Sync(this.targetSrc);\n targetSync.initOwner();\n\n this.triggerSrc.value(\n new From(() => {\n if (targetSync.valueExisted()) {\n o.give(targetSync.valueSync());\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class Tick<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\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 o.give(lastValue);\n lastValue = null;\n }\n });\n };\n\n this.baseSrc.value(\n new From((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport class HashTable<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<[string, unknown]>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const record: Record<string, unknown> = {};\n\n this.baseSrc.value(\n new From(([key, value]) => {\n record[key] = value;\n o.give(record as T);\n }),\n );\n\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\ntype UnInformation<T> = T extends InformationType<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 class RecordOf<T extends InformationType> extends TheInformation<\n Record<string, UnInformation<T>>\n> {\n public constructor(private recordSrc: Record<string, T>) {\n super(...Object.values(recordSrc));\n }\n\n public value(o: OwnerType<Record<string, UnInformation<T>>>): this {\n const keys = Object.keys(this.recordSrc);\n new All(...Object.values(this.recordSrc)).value(\n new From((entries) => {\n const record: Record<string, any> = {};\n entries.forEach((entry, index) => {\n record[keys[index]] = entry;\n });\n o.give(record);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * Join sources of strings to one source\n * https://silentium-lab.github.io/silentium-components/#/string/concatenated\n */\nexport class Concatenated extends TheInformation<string> {\n public constructor(\n private sources: InformationType<string>[],\n private joinPartSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(...sources, joinPartSrc);\n }\n\n public value(o: OwnerType<string>): this {\n new All(this.joinPartSrc, ...this.sources).value(\n new From(([joinPart, ...strings]) => {\n o.give(strings.join(joinPart));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n Applied,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\nexport class Template extends TheInformation<string> {\n private source: InformationType<string>;\n\n public constructor(\n theSrc: InformationType<string> | string,\n private rules: InformationType<Record<string, unknown>>,\n ) {\n const source = typeof theSrc === \"string\" ? new Of(theSrc) : theSrc;\n super(source, rules);\n this.source = source;\n }\n\n public value(guest: OwnerType<string>) {\n new Applied(new All(this.source, this.rules), ([base, rules]) => {\n Object.entries(rules).forEach(([ph, val]) => {\n base = base.replaceAll(ph, String(val));\n });\n\n return base;\n }).value(guest);\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} 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 class RegexpMatched extends TheInformation<boolean> {\n public constructor(\n private patternSrc: InformationType<string>,\n private valueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(patternSrc, valueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.patternSrc, this.valueSrc, this.flagsSrc).value(\n new From(([pattern, value, flags]) => {\n o.give(new RegExp(pattern, flags).test(value));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} 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 class RegexpReplaced extends TheInformation<string> {\n public constructor(\n private valueSrc: InformationType<string>,\n private patternSrc: InformationType<string>,\n private replaceValueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(valueSrc, patternSrc, replaceValueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<string>): this {\n new All(\n this.patternSrc,\n this.valueSrc,\n this.replaceValueSrc,\n this.flagsSrc,\n ).value(\n new From(([pattern, value, replaceValue, flags]) => {\n o.give(String(value).replace(new RegExp(pattern, flags), replaceValue));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * First match of regexp\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport class RegexpMatch extends TheInformation<string[]> {\n public constructor(\n private patternSrc: InformationType<string>,\n private valueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(patternSrc, valueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<string[]>): this {\n new All(this.patternSrc, this.valueSrc, this.flagsSrc).value(\n new From(([pattern, value, flags]) => {\n const result = new RegExp(pattern, flags).exec(value);\n o.give(result ?? []);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} 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 class Set<T extends Record<string, unknown>> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private keySrc: InformationType<string>,\n private valueSrc: InformationType<unknown>,\n ) {\n super(baseSrc, keySrc, valueSrc);\n }\n\n public value(o: OwnerType<T>): this {\n new All(this.baseSrc, this.keySrc, this.valueSrc).value(\n new From(([base, key, value]) => {\n (base as Record<string, unknown>)[key] = value;\n o.give(base);\n }),\n );\n return this;\n }\n}\n","import {\n Any,\n Chain,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n TheOwner,\n} from \"silentium\";\nimport { Branch } from \"../behaviors\";\nimport { RegexpMatched } from \"../system\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n template: T | TheInformation<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 class Router<T = \"string\"> extends TheInformation<T> {\n public constructor(\n private urlSrc: InformationType<string>,\n private routesSrc: InformationType<Route<T>[]>,\n private defaultSrc: InformationType<T>,\n ) {\n super(urlSrc, routesSrc, defaultSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.routesSrc.value(\n new From((routes) => {\n new Any(\n new Chain(this.urlSrc, this.defaultSrc),\n ...routes.map((r) => {\n return new Branch(\n new RegexpMatched(\n new Of(r.pattern),\n this.urlSrc,\n r.patternFlags ? new Of(r.patternFlags) : undefined,\n ),\n (r.template instanceof TheInformation\n ? r.template\n : new Of(r.template)) as TheInformation,\n );\n }),\n ).value(o as TheOwner);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport class And extends TheInformation<boolean> {\n public constructor(\n private oneSrc: InformationType<boolean>,\n private twoSrc: InformationType<boolean>,\n ) {\n super(oneSrc, twoSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.oneSrc, this.twoSrc).value(\n new From(([one, two]) => {\n o.give(one && two);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport class Or extends TheInformation<boolean> {\n public constructor(\n private oneSrc: InformationType<boolean>,\n private twoSrc: InformationType<boolean>,\n ) {\n super(oneSrc, twoSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.oneSrc, this.twoSrc).value(\n new From(([one, two]) => {\n o.give(one || two);\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport class Not extends TheInformation<boolean> {\n public constructor(private baseSrc: InformationType<boolean>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n this.baseSrc.value(\n new From((v) => {\n o.give(!v);\n }),\n );\n return this;\n }\n}\n","import { Applied, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Convert any source to boolean source\n * https://silentium-lab.github.io/silentium-components/#/boolean/bool\n */\nexport class Bool extends TheInformation<boolean> {\n public constructor(private baseSrc: InformationType) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new Applied(this.baseSrc, Boolean).value(o);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents object from json\n */\nexport class FromJson<T> extends TheInformation<T> {\n public constructor(\n private jsonSrc: InformationType<string>,\n private errorOwner?: OwnerType,\n ) {\n super(jsonSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.jsonSrc.value(\n new From((json) => {\n try {\n o.give(JSON.parse(json));\n } catch (error) {\n this.errorOwner?.give(new Error(`Failed to parse JSON: ${error}`));\n }\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents json from object\n */\nexport class ToJson extends TheInformation<string> {\n public constructor(\n private dataSrc: InformationType,\n private errorOwner?: OwnerType,\n ) {\n super(dataSrc);\n }\n\n public value(o: OwnerType<string>): this {\n this.dataSrc.value(\n new From((data: unknown) => {\n try {\n o.give(JSON.stringify(data));\n } catch {\n this.errorOwner?.give(new Error(\"Failed to convert to JSON\"));\n }\n }),\n );\n return this;\n }\n}\n","import { Applied, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents the first element of an array.\n */\nexport class First<T extends Array<unknown>> extends TheInformation<T[0]> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T[0]>): this {\n new Applied(this.baseSrc, (a) => a[0]).value(o);\n return this;\n }\n}\n"],"names":["Sync","TheInformation","constructor","baseSrc","super","this","__publicField","value","o","valueExisted","initOwner","isFilled","theValue","valueSync","Error","isInit","From","v","Branch","conditionSrc","leftSrc","rightSrc","leftSync","rightSync","give","Deadline","error","timeoutSrc","timerHead","s","Shared","addDep","timeout","clearTimeout","timeoutReached","setTimeout","f","Filtered","Deferred","triggerSrc","baseSync","Dirty","baseEntitySource","alwaysKeep","excludeKeys","Late","comparingDetached","Applied","comparingSrc","JSON","parse","stringify","allSrc","All","comparing","base","Object","fromEntries","entries","filter","key","includes","owner","Loading","loadingStartSrc","loadingFinishSrc","Lock","lockSrc","locked","newLock","i","Memo","lastValue","OnlyChanged","firstValue","Path","keySrc","keyChunks","split","forEach","keyChunk","Shot","targetSrc","targetSync","Tick","microtaskScheduled","queueMicrotask","HashTable","record","RecordOf","recordSrc","values","keys","entry","index","Concatenated","sources","joinPartSrc","Of","joinPart","strings","join","Template","theSrc","rules","source","guest","ph","val","replaceAll","String","RegexpMatched","patternSrc","valueSrc","flagsSrc","pattern","flags","RegExp","test","RegexpReplaced","replaceValueSrc","replaceValue","replace","RegexpMatch","result","exec","Set","Router","urlSrc","routesSrc","defaultSrc","routes","Any","Chain","map","r","patternFlags","template","And","oneSrc","twoSrc","one","two","Or","Not","Bool","Boolean","FromJson","jsonSrc","errorOwner","json","ToJson","dataSrc","data","First","a"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"silentium-components.min.mjs","sources":["../src/behaviors/Sync.ts","../src/behaviors/Branch.ts","../src/behaviors/Deadline.ts","../src/behaviors/Deferred.ts","../src/behaviors/Dirty.ts","../src/behaviors/Loading.ts","../src/behaviors/Lock.ts","../src/behaviors/Memo.ts","../src/behaviors/OnlyChanged.ts","../src/behaviors/Path.ts","../src/behaviors/Shot.ts","../src/behaviors/Tick.ts","../src/structures/HashTable.ts","../src/structures/RecordOf.ts","../src/strings/Concatenated.ts","../src/strings/Template.ts","../src/system/RegexpMatched.ts","../src/system/RegexpReplaced.ts","../src/system/RegexpMatch.ts","../src/system/Set.ts","../src/navigation/Router.ts","../src/boolean/And.ts","../src/boolean/Or.ts","../src/boolean/Not.ts","../src/boolean/Bool.ts","../src/formats/FromJson.ts","../src/formats/ToJson.ts","../src/lists/First.ts"],"sourcesContent":["import {\n From,\n InformationType,\n isFilled,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\nexport class Sync<T> extends TheInformation<T> {\n private theValue: T | undefined;\n private isInit = false;\n\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(o);\n return this;\n }\n\n public valueExisted() {\n this.initOwner();\n return isFilled(this.theValue);\n }\n\n public valueSync(): T {\n this.initOwner();\n\n if (!isFilled(this.theValue)) {\n throw new Error(\"no value in sync\");\n }\n\n return this.theValue;\n }\n\n public initOwner() {\n if (!this.isInit) {\n this.isInit = true;\n this.value(\n new From((v) => {\n this.theValue = v;\n }),\n );\n }\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\nimport { Sync } from \"./Sync\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport class Branch<Then, Else> extends TheInformation<Then | Else> {\n public constructor(\n private conditionSrc: InformationType<boolean>,\n private leftSrc: InformationType<Then>,\n private rightSrc?: InformationType<Else>,\n ) {\n super([conditionSrc, leftSrc, rightSrc]);\n }\n public value(o: OwnerType<Then | Else>): this {\n const leftSync = new Sync(this.leftSrc).initOwner();\n let rightSync: Sync<Else>;\n\n if (this.rightSrc !== undefined) {\n rightSync = new Sync(this.rightSrc).initOwner();\n }\n\n this.conditionSrc.value(\n new From((v) => {\n if (v) {\n o.give(leftSync.valueSync());\n } else if (rightSync) {\n o.give(rightSync.valueSync());\n }\n }),\n );\n\n return this;\n }\n}\n","import {\n Filtered,\n From,\n InformationType,\n OwnerType,\n Shared,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport class Deadline<T> extends TheInformation<T> {\n public constructor(\n private error: OwnerType<Error>,\n private baseSrc: InformationType<T>,\n private timeoutSrc: InformationType<number>,\n ) {\n super([error, baseSrc, timeoutSrc]);\n }\n\n public value(o: OwnerType<T>) {\n let timerHead: unknown = null;\n\n const s = new Shared(this.baseSrc, true);\n this.addDep(s);\n\n this.timeoutSrc.value(\n new From((timeout) => {\n if (timerHead) {\n clearTimeout(timerHead as number);\n }\n let timeoutReached = false;\n\n timerHead = setTimeout(() => {\n if (timeoutReached) {\n return;\n }\n timeoutReached = true;\n this.error.give(new Error(\"Timeout reached in Deadline class\"));\n }, timeout);\n\n const f = new Filtered(s, () => !timeoutReached);\n this.addDep(f);\n f.value(o);\n\n s.value(\n new From(() => {\n timeoutReached = true;\n }),\n );\n }),\n );\n\n return this;\n }\n}\n","import {\n From,\n InformationType,\n isFilled,\n OwnerType,\n TheInformation,\n} from \"silentium\";\nimport { Sync } from \"./Sync\";\n\n/**\n * Defer one source after another, gives values of baseSrc only once when triggerSrc responds\n * https://silentium-lab.github.io/silentium-components/#/behaviors/deferred\n */\nexport class Deferred<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private triggerSrc: InformationType<unknown>,\n ) {\n super();\n }\n\n public value(o: OwnerType<T>): this {\n const baseSync = new Sync(this.baseSrc).initOwner();\n this.triggerSrc.value(\n new From(() => {\n if (isFilled(baseSync.valueSync())) {\n o.give(baseSync.valueSync());\n }\n }),\n );\n return this;\n }\n}\n","import {\n All,\n Applied,\n From,\n InformationType,\n Late,\n OwnerType,\n TheInformation,\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 class Dirty<T> extends TheInformation<T> {\n private comparingSrc = new Late<T>();\n\n public constructor(\n private baseEntitySource: InformationType<T>,\n private alwaysKeep: string[] = [],\n private excludeKeys: string[] = [],\n ) {\n super([baseEntitySource]);\n }\n\n public value(o: OwnerType<T>): this {\n const comparingDetached = new Applied(this.comparingSrc, (value) =>\n JSON.parse(JSON.stringify(value)),\n );\n\n const allSrc = new All(comparingDetached, this.baseEntitySource).value(\n new From(([comparing, base]) => {\n if (!comparing) {\n return;\n }\n\n o.give(\n Object.fromEntries(\n Object.entries(comparing).filter(([key, value]) => {\n if (this.alwaysKeep.includes(key)) {\n return true;\n }\n if (this.excludeKeys.includes(key)) {\n return false;\n }\n return value !== (base as any)[key];\n }),\n ) as T,\n );\n }),\n );\n this.addDep(allSrc);\n\n return this;\n }\n\n public owner() {\n return this.comparingSrc.owner();\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Representation of loading process\n * first informatin source begins loading\n * second information source stops loading\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport class Loading extends TheInformation<boolean> {\n public constructor(\n private loadingStartSrc: InformationType<unknown>,\n private loadingFinishSrc: InformationType<unknown>,\n ) {\n super(loadingFinishSrc, loadingStartSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n this.loadingStartSrc.value(\n new From(() => {\n o.give(true);\n }),\n );\n\n this.loadingFinishSrc.value(\n new From(() => {\n o.give(false);\n }),\n );\n\n return this;\n }\n}\n","import {\n Filtered,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport class Lock<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private lockSrc: InformationType<boolean>,\n ) {\n super(baseSrc, lockSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let locked = false;\n this.lockSrc.value(\n new From((newLock) => {\n locked = newLock;\n }),\n );\n const i = new Filtered(this.baseSrc, () => !locked);\n this.addDep(i);\n i.value(o);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class Memo<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let lastValue: T | null = null;\n\n this.baseSrc.value(\n new From((v) => {\n if (v !== lastValue) {\n o.give(v);\n lastValue = v;\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class OnlyChanged<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let firstValue = false;\n\n this.baseSrc.value(\n new From((v) => {\n if (firstValue === false) {\n firstValue = true;\n } else {\n o.give(v);\n }\n }),\n );\n\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * Return source of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport class Path<\n R,\n T extends Record<string, unknown> | Array<unknown> = any,\n K extends string = any,\n> extends TheInformation<R> {\n public constructor(\n private baseSrc: InformationType<T>,\n private keySrc: InformationType<K>,\n ) {\n super(baseSrc, keySrc);\n }\n\n public value(o: OwnerType<R>): this {\n const allSrc = new All(this.baseSrc, this.keySrc).value(\n new From(([base, key]) => {\n const keyChunks = key.split(\".\");\n let value: unknown = base;\n keyChunks.forEach((keyChunk) => {\n value = (value as Record<string, unknown>)[keyChunk];\n });\n\n if (value !== undefined && value !== base) {\n o.give(value as R);\n }\n }),\n );\n this.addDep(allSrc);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\nimport { Sync } from \"./Sync\";\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 class Shot<T> extends TheInformation<T> {\n public constructor(\n private targetSrc: InformationType<T>,\n private triggerSrc: InformationType,\n ) {\n super(targetSrc, triggerSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const targetSync = new Sync(this.targetSrc);\n targetSync.initOwner();\n\n this.triggerSrc.value(\n new From(() => {\n if (targetSync.valueExisted()) {\n o.give(targetSync.valueSync());\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class Tick<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\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 o.give(lastValue);\n lastValue = null;\n }\n });\n };\n\n this.baseSrc.value(\n new From((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport class HashTable<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<[string, unknown]>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const record: Record<string, unknown> = {};\n\n this.baseSrc.value(\n new From(([key, value]) => {\n record[key] = value;\n o.give(record as T);\n }),\n );\n\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\ntype UnInformation<T> = T extends InformationType<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 class RecordOf<T extends InformationType> extends TheInformation<\n Record<string, UnInformation<T>>\n> {\n public constructor(private recordSrc: Record<string, T>) {\n super(...Object.values(recordSrc));\n }\n\n public value(o: OwnerType<Record<string, UnInformation<T>>>): this {\n const keys = Object.keys(this.recordSrc);\n new All(...Object.values(this.recordSrc)).value(\n new From((entries) => {\n const record: Record<string, any> = {};\n entries.forEach((entry, index) => {\n record[keys[index]] = entry;\n });\n o.give(record);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * Join sources of strings to one source\n * https://silentium-lab.github.io/silentium-components/#/string/concatenated\n */\nexport class Concatenated extends TheInformation<string> {\n public constructor(\n private sources: InformationType<string>[],\n private joinPartSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(...sources, joinPartSrc);\n }\n\n public value(o: OwnerType<string>): this {\n new All(this.joinPartSrc, ...this.sources).value(\n new From(([joinPart, ...strings]) => {\n o.give(strings.join(joinPart));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n Applied,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\nexport class Template extends TheInformation<string> {\n private source: InformationType<string>;\n\n public constructor(\n theSrc: InformationType<string> | string,\n private rules: InformationType<Record<string, unknown>>,\n ) {\n const source = typeof theSrc === \"string\" ? new Of(theSrc) : theSrc;\n super(source, rules);\n this.source = source;\n }\n\n public value(guest: OwnerType<string>) {\n new Applied(new All(this.source, this.rules), ([base, rules]) => {\n Object.entries(rules).forEach(([ph, val]) => {\n base = base.replaceAll(ph, String(val));\n });\n\n return base;\n }).value(guest);\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} 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 class RegexpMatched extends TheInformation<boolean> {\n public constructor(\n private patternSrc: InformationType<string>,\n private valueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(patternSrc, valueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.patternSrc, this.valueSrc, this.flagsSrc).value(\n new From(([pattern, value, flags]) => {\n o.give(new RegExp(pattern, flags).test(value));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} 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 class RegexpReplaced extends TheInformation<string> {\n public constructor(\n private valueSrc: InformationType<string>,\n private patternSrc: InformationType<string>,\n private replaceValueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(valueSrc, patternSrc, replaceValueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<string>): this {\n new All(\n this.patternSrc,\n this.valueSrc,\n this.replaceValueSrc,\n this.flagsSrc,\n ).value(\n new From(([pattern, value, replaceValue, flags]) => {\n o.give(String(value).replace(new RegExp(pattern, flags), replaceValue));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * First match of regexp\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport class RegexpMatch extends TheInformation<string[]> {\n public constructor(\n private patternSrc: InformationType<string>,\n private valueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(patternSrc, valueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<string[]>): this {\n new All(this.patternSrc, this.valueSrc, this.flagsSrc).value(\n new From(([pattern, value, flags]) => {\n const result = new RegExp(pattern, flags).exec(value);\n o.give(result ?? []);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} 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 class Set<T extends Record<string, unknown>> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private keySrc: InformationType<string>,\n private valueSrc: InformationType<unknown>,\n ) {\n super(baseSrc, keySrc, valueSrc);\n }\n\n public value(o: OwnerType<T>): this {\n new All(this.baseSrc, this.keySrc, this.valueSrc).value(\n new From(([base, key, value]) => {\n (base as Record<string, unknown>)[key] = value;\n o.give(base);\n }),\n );\n return this;\n }\n}\n","import {\n Any,\n Chain,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n TheOwner,\n} from \"silentium\";\nimport { Branch } from \"../behaviors\";\nimport { RegexpMatched } from \"../system\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n template: T | InformationType<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 class Router<T = \"string\"> extends TheInformation<T> {\n public constructor(\n private urlSrc: InformationType<string>,\n private routesSrc: InformationType<Route<T>[]>,\n private defaultSrc: InformationType<T>,\n ) {\n super(urlSrc, routesSrc, defaultSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.routesSrc.value(\n new From((routes) => {\n new Any(\n new Chain(this.urlSrc, this.defaultSrc),\n ...routes.map((r) => {\n return new Branch(\n new RegexpMatched(\n new Of(r.pattern),\n this.urlSrc,\n r.patternFlags ? new Of(r.patternFlags) : undefined,\n ),\n (\"value\" in (r.template as InformationType)\n ? r.template\n : new Of(r.template)) as TheInformation,\n );\n }),\n ).value(o as TheOwner);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport class And extends TheInformation<boolean> {\n public constructor(\n private oneSrc: InformationType<boolean>,\n private twoSrc: InformationType<boolean>,\n ) {\n super(oneSrc, twoSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.oneSrc, this.twoSrc).value(\n new From(([one, two]) => {\n o.give(one && two);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport class Or extends TheInformation<boolean> {\n public constructor(\n private oneSrc: InformationType<boolean>,\n private twoSrc: InformationType<boolean>,\n ) {\n super(oneSrc, twoSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.oneSrc, this.twoSrc).value(\n new From(([one, two]) => {\n o.give(one || two);\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport class Not extends TheInformation<boolean> {\n public constructor(private baseSrc: InformationType<boolean>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n this.baseSrc.value(\n new From((v) => {\n o.give(!v);\n }),\n );\n return this;\n }\n}\n","import { Applied, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Convert any source to boolean source\n * https://silentium-lab.github.io/silentium-components/#/boolean/bool\n */\nexport class Bool extends TheInformation<boolean> {\n public constructor(private baseSrc: InformationType) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new Applied(this.baseSrc, Boolean).value(o);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents object from json\n */\nexport class FromJson<T> extends TheInformation<T> {\n public constructor(\n private jsonSrc: InformationType<string>,\n private errorOwner?: OwnerType,\n ) {\n super(jsonSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.jsonSrc.value(\n new From((json) => {\n try {\n o.give(JSON.parse(json));\n } catch (error) {\n this.errorOwner?.give(new Error(`Failed to parse JSON: ${error}`));\n }\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents json from object\n */\nexport class ToJson extends TheInformation<string> {\n public constructor(\n private dataSrc: InformationType,\n private errorOwner?: OwnerType,\n ) {\n super(dataSrc);\n }\n\n public value(o: OwnerType<string>): this {\n this.dataSrc.value(\n new From((data: unknown) => {\n try {\n o.give(JSON.stringify(data));\n } catch {\n this.errorOwner?.give(new Error(\"Failed to convert to JSON\"));\n }\n }),\n );\n return this;\n }\n}\n","import { Applied, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents the first element of an array.\n */\nexport class First<T extends Array<unknown>> extends TheInformation<T[0]> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T[0]>): this {\n new Applied(this.baseSrc, (a) => a[0]).value(o);\n return this;\n }\n}\n"],"names":["Sync","TheInformation","constructor","baseSrc","super","this","__publicField","value","o","valueExisted","initOwner","isFilled","theValue","valueSync","Error","isInit","From","v","Branch","conditionSrc","leftSrc","rightSrc","leftSync","rightSync","give","Deadline","error","timeoutSrc","timerHead","s","Shared","addDep","timeout","clearTimeout","timeoutReached","setTimeout","f","Filtered","Deferred","triggerSrc","baseSync","Dirty","baseEntitySource","alwaysKeep","excludeKeys","Late","comparingDetached","Applied","comparingSrc","JSON","parse","stringify","allSrc","All","comparing","base","Object","fromEntries","entries","filter","key","includes","owner","Loading","loadingStartSrc","loadingFinishSrc","Lock","lockSrc","locked","newLock","i","Memo","lastValue","OnlyChanged","firstValue","Path","keySrc","keyChunks","split","forEach","keyChunk","Shot","targetSrc","targetSync","Tick","microtaskScheduled","queueMicrotask","HashTable","record","RecordOf","recordSrc","values","keys","entry","index","Concatenated","sources","joinPartSrc","Of","joinPart","strings","join","Template","theSrc","rules","source","guest","ph","val","replaceAll","String","RegexpMatched","patternSrc","valueSrc","flagsSrc","pattern","flags","RegExp","test","RegexpReplaced","replaceValueSrc","replaceValue","replace","RegexpMatch","result","exec","Set","Router","urlSrc","routesSrc","defaultSrc","routes","Any","Chain","map","r","patternFlags","template","And","oneSrc","twoSrc","one","two","Or","Not","Bool","Boolean","FromJson","jsonSrc","errorOwner","json","ToJson","dataSrc","data","First","a"],"mappings":"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"}
|
|
@@ -489,7 +489,7 @@ class Router extends TheInformation {
|
|
|
489
489
|
this.urlSrc,
|
|
490
490
|
r.patternFlags ? new Of(r.patternFlags) : void 0
|
|
491
491
|
),
|
|
492
|
-
r.template
|
|
492
|
+
"value" in r.template ? r.template : new Of(r.template)
|
|
493
493
|
);
|
|
494
494
|
})
|
|
495
495
|
).value(o);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silentium-components.mjs","sources":["../src/behaviors/Sync.ts","../src/behaviors/Branch.ts","../src/behaviors/Deadline.ts","../src/behaviors/Deferred.ts","../src/behaviors/Dirty.ts","../src/behaviors/Loading.ts","../src/behaviors/Lock.ts","../src/behaviors/Memo.ts","../src/behaviors/OnlyChanged.ts","../src/behaviors/Path.ts","../src/behaviors/Shot.ts","../src/behaviors/Tick.ts","../src/structures/HashTable.ts","../src/structures/RecordOf.ts","../src/strings/Concatenated.ts","../src/strings/Template.ts","../src/system/RegexpMatched.ts","../src/system/RegexpReplaced.ts","../src/system/RegexpMatch.ts","../src/system/Set.ts","../src/navigation/Router.ts","../src/boolean/And.ts","../src/boolean/Or.ts","../src/boolean/Not.ts","../src/boolean/Bool.ts","../src/formats/FromJson.ts","../src/formats/ToJson.ts","../src/lists/First.ts"],"sourcesContent":["import {\n From,\n InformationType,\n isFilled,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\nexport class Sync<T> extends TheInformation<T> {\n private theValue: T | undefined;\n private isInit = false;\n\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(o);\n return this;\n }\n\n public valueExisted() {\n this.initOwner();\n return isFilled(this.theValue);\n }\n\n public valueSync(): T {\n this.initOwner();\n\n if (!isFilled(this.theValue)) {\n throw new Error(\"no value in sync\");\n }\n\n return this.theValue;\n }\n\n public initOwner() {\n if (!this.isInit) {\n this.isInit = true;\n this.value(\n new From((v) => {\n this.theValue = v;\n }),\n );\n }\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\nimport { Sync } from \"./Sync\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport class Branch<Then, Else> extends TheInformation<Then | Else> {\n public constructor(\n private conditionSrc: InformationType<boolean>,\n private leftSrc: InformationType<Then>,\n private rightSrc?: InformationType<Else>,\n ) {\n super([conditionSrc, leftSrc, rightSrc]);\n }\n public value(o: OwnerType<Then | Else>): this {\n const leftSync = new Sync(this.leftSrc).initOwner();\n let rightSync: Sync<Else>;\n\n if (this.rightSrc !== undefined) {\n rightSync = new Sync(this.rightSrc).initOwner();\n }\n\n this.conditionSrc.value(\n new From((v) => {\n if (v) {\n o.give(leftSync.valueSync());\n } else if (rightSync) {\n o.give(rightSync.valueSync());\n }\n }),\n );\n\n return this;\n }\n}\n","import {\n Filtered,\n From,\n InformationType,\n OwnerType,\n Shared,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport class Deadline<T> extends TheInformation<T> {\n public constructor(\n private error: OwnerType<Error>,\n private baseSrc: InformationType<T>,\n private timeoutSrc: InformationType<number>,\n ) {\n super([error, baseSrc, timeoutSrc]);\n }\n\n public value(o: OwnerType<T>) {\n let timerHead: unknown = null;\n\n const s = new Shared(this.baseSrc, true);\n this.addDep(s);\n\n this.timeoutSrc.value(\n new From((timeout) => {\n if (timerHead) {\n clearTimeout(timerHead as number);\n }\n let timeoutReached = false;\n\n timerHead = setTimeout(() => {\n if (timeoutReached) {\n return;\n }\n timeoutReached = true;\n this.error.give(new Error(\"Timeout reached in Deadline class\"));\n }, timeout);\n\n const f = new Filtered(s, () => !timeoutReached);\n this.addDep(f);\n f.value(o);\n\n s.value(\n new From(() => {\n timeoutReached = true;\n }),\n );\n }),\n );\n\n return this;\n }\n}\n","import {\n From,\n InformationType,\n isFilled,\n OwnerType,\n TheInformation,\n} from \"silentium\";\nimport { Sync } from \"./Sync\";\n\n/**\n * Defer one source after another, gives values of baseSrc only once when triggerSrc responds\n * https://silentium-lab.github.io/silentium-components/#/behaviors/deferred\n */\nexport class Deferred<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private triggerSrc: InformationType<unknown>,\n ) {\n super();\n }\n\n public value(o: OwnerType<T>): this {\n const baseSync = new Sync(this.baseSrc).initOwner();\n this.triggerSrc.value(\n new From(() => {\n if (isFilled(baseSync.valueSync())) {\n o.give(baseSync.valueSync());\n }\n }),\n );\n return this;\n }\n}\n","import {\n All,\n Applied,\n From,\n InformationType,\n Late,\n OwnerType,\n TheInformation,\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 class Dirty<T> extends TheInformation<T> {\n private comparingSrc = new Late<T>();\n\n public constructor(\n private baseEntitySource: InformationType<T>,\n private alwaysKeep: string[] = [],\n private excludeKeys: string[] = [],\n ) {\n super([baseEntitySource]);\n }\n\n public value(o: OwnerType<T>): this {\n const comparingDetached = new Applied(this.comparingSrc, (value) =>\n JSON.parse(JSON.stringify(value)),\n );\n\n const allSrc = new All(comparingDetached, this.baseEntitySource).value(\n new From(([comparing, base]) => {\n if (!comparing) {\n return;\n }\n\n o.give(\n Object.fromEntries(\n Object.entries(comparing).filter(([key, value]) => {\n if (this.alwaysKeep.includes(key)) {\n return true;\n }\n if (this.excludeKeys.includes(key)) {\n return false;\n }\n return value !== (base as any)[key];\n }),\n ) as T,\n );\n }),\n );\n this.addDep(allSrc);\n\n return this;\n }\n\n public owner() {\n return this.comparingSrc.owner();\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Representation of loading process\n * first informatin source begins loading\n * second information source stops loading\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport class Loading extends TheInformation<boolean> {\n public constructor(\n private loadingStartSrc: InformationType<unknown>,\n private loadingFinishSrc: InformationType<unknown>,\n ) {\n super(loadingFinishSrc, loadingStartSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n this.loadingStartSrc.value(\n new From(() => {\n o.give(true);\n }),\n );\n\n this.loadingFinishSrc.value(\n new From(() => {\n o.give(false);\n }),\n );\n\n return this;\n }\n}\n","import {\n Filtered,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport class Lock<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private lockSrc: InformationType<boolean>,\n ) {\n super(baseSrc, lockSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let locked = false;\n this.lockSrc.value(\n new From((newLock) => {\n locked = newLock;\n }),\n );\n const i = new Filtered(this.baseSrc, () => !locked);\n this.addDep(i);\n i.value(o);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class Memo<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let lastValue: T | null = null;\n\n this.baseSrc.value(\n new From((v) => {\n if (v !== lastValue) {\n o.give(v);\n lastValue = v;\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class OnlyChanged<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let firstValue = false;\n\n this.baseSrc.value(\n new From((v) => {\n if (firstValue === false) {\n firstValue = true;\n } else {\n o.give(v);\n }\n }),\n );\n\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * Return source of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport class Path<\n R,\n T extends Record<string, unknown> | Array<unknown> = any,\n K extends string = any,\n> extends TheInformation<R> {\n public constructor(\n private baseSrc: InformationType<T>,\n private keySrc: InformationType<K>,\n ) {\n super(baseSrc, keySrc);\n }\n\n public value(o: OwnerType<R>): this {\n const allSrc = new All(this.baseSrc, this.keySrc).value(\n new From(([base, key]) => {\n const keyChunks = key.split(\".\");\n let value: unknown = base;\n keyChunks.forEach((keyChunk) => {\n value = (value as Record<string, unknown>)[keyChunk];\n });\n\n if (value !== undefined && value !== base) {\n o.give(value as R);\n }\n }),\n );\n this.addDep(allSrc);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\nimport { Sync } from \"./Sync\";\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 class Shot<T> extends TheInformation<T> {\n public constructor(\n private targetSrc: InformationType<T>,\n private triggerSrc: InformationType,\n ) {\n super(targetSrc, triggerSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const targetSync = new Sync(this.targetSrc);\n targetSync.initOwner();\n\n this.triggerSrc.value(\n new From(() => {\n if (targetSync.valueExisted()) {\n o.give(targetSync.valueSync());\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class Tick<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\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 o.give(lastValue);\n lastValue = null;\n }\n });\n };\n\n this.baseSrc.value(\n new From((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport class HashTable<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<[string, unknown]>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const record: Record<string, unknown> = {};\n\n this.baseSrc.value(\n new From(([key, value]) => {\n record[key] = value;\n o.give(record as T);\n }),\n );\n\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\ntype UnInformation<T> = T extends InformationType<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 class RecordOf<T extends InformationType> extends TheInformation<\n Record<string, UnInformation<T>>\n> {\n public constructor(private recordSrc: Record<string, T>) {\n super(...Object.values(recordSrc));\n }\n\n public value(o: OwnerType<Record<string, UnInformation<T>>>): this {\n const keys = Object.keys(this.recordSrc);\n new All(...Object.values(this.recordSrc)).value(\n new From((entries) => {\n const record: Record<string, any> = {};\n entries.forEach((entry, index) => {\n record[keys[index]] = entry;\n });\n o.give(record);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * Join sources of strings to one source\n * https://silentium-lab.github.io/silentium-components/#/string/concatenated\n */\nexport class Concatenated extends TheInformation<string> {\n public constructor(\n private sources: InformationType<string>[],\n private joinPartSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(...sources, joinPartSrc);\n }\n\n public value(o: OwnerType<string>): this {\n new All(this.joinPartSrc, ...this.sources).value(\n new From(([joinPart, ...strings]) => {\n o.give(strings.join(joinPart));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n Applied,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\nexport class Template extends TheInformation<string> {\n private source: InformationType<string>;\n\n public constructor(\n theSrc: InformationType<string> | string,\n private rules: InformationType<Record<string, unknown>>,\n ) {\n const source = typeof theSrc === \"string\" ? new Of(theSrc) : theSrc;\n super(source, rules);\n this.source = source;\n }\n\n public value(guest: OwnerType<string>) {\n new Applied(new All(this.source, this.rules), ([base, rules]) => {\n Object.entries(rules).forEach(([ph, val]) => {\n base = base.replaceAll(ph, String(val));\n });\n\n return base;\n }).value(guest);\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} 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 class RegexpMatched extends TheInformation<boolean> {\n public constructor(\n private patternSrc: InformationType<string>,\n private valueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(patternSrc, valueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.patternSrc, this.valueSrc, this.flagsSrc).value(\n new From(([pattern, value, flags]) => {\n o.give(new RegExp(pattern, flags).test(value));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} 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 class RegexpReplaced extends TheInformation<string> {\n public constructor(\n private valueSrc: InformationType<string>,\n private patternSrc: InformationType<string>,\n private replaceValueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(valueSrc, patternSrc, replaceValueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<string>): this {\n new All(\n this.patternSrc,\n this.valueSrc,\n this.replaceValueSrc,\n this.flagsSrc,\n ).value(\n new From(([pattern, value, replaceValue, flags]) => {\n o.give(String(value).replace(new RegExp(pattern, flags), replaceValue));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * First match of regexp\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport class RegexpMatch extends TheInformation<string[]> {\n public constructor(\n private patternSrc: InformationType<string>,\n private valueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(patternSrc, valueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<string[]>): this {\n new All(this.patternSrc, this.valueSrc, this.flagsSrc).value(\n new From(([pattern, value, flags]) => {\n const result = new RegExp(pattern, flags).exec(value);\n o.give(result ?? []);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} 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 class Set<T extends Record<string, unknown>> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private keySrc: InformationType<string>,\n private valueSrc: InformationType<unknown>,\n ) {\n super(baseSrc, keySrc, valueSrc);\n }\n\n public value(o: OwnerType<T>): this {\n new All(this.baseSrc, this.keySrc, this.valueSrc).value(\n new From(([base, key, value]) => {\n (base as Record<string, unknown>)[key] = value;\n o.give(base);\n }),\n );\n return this;\n }\n}\n","import {\n Any,\n Chain,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n TheOwner,\n} from \"silentium\";\nimport { Branch } from \"../behaviors\";\nimport { RegexpMatched } from \"../system\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n template: T | TheInformation<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 class Router<T = \"string\"> extends TheInformation<T> {\n public constructor(\n private urlSrc: InformationType<string>,\n private routesSrc: InformationType<Route<T>[]>,\n private defaultSrc: InformationType<T>,\n ) {\n super(urlSrc, routesSrc, defaultSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.routesSrc.value(\n new From((routes) => {\n new Any(\n new Chain(this.urlSrc, this.defaultSrc),\n ...routes.map((r) => {\n return new Branch(\n new RegexpMatched(\n new Of(r.pattern),\n this.urlSrc,\n r.patternFlags ? new Of(r.patternFlags) : undefined,\n ),\n (r.template instanceof TheInformation\n ? r.template\n : new Of(r.template)) as TheInformation,\n );\n }),\n ).value(o as TheOwner);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport class And extends TheInformation<boolean> {\n public constructor(\n private oneSrc: InformationType<boolean>,\n private twoSrc: InformationType<boolean>,\n ) {\n super(oneSrc, twoSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.oneSrc, this.twoSrc).value(\n new From(([one, two]) => {\n o.give(one && two);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport class Or extends TheInformation<boolean> {\n public constructor(\n private oneSrc: InformationType<boolean>,\n private twoSrc: InformationType<boolean>,\n ) {\n super(oneSrc, twoSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.oneSrc, this.twoSrc).value(\n new From(([one, two]) => {\n o.give(one || two);\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport class Not extends TheInformation<boolean> {\n public constructor(private baseSrc: InformationType<boolean>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n this.baseSrc.value(\n new From((v) => {\n o.give(!v);\n }),\n );\n return this;\n }\n}\n","import { Applied, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Convert any source to boolean source\n * https://silentium-lab.github.io/silentium-components/#/boolean/bool\n */\nexport class Bool extends TheInformation<boolean> {\n public constructor(private baseSrc: InformationType) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new Applied(this.baseSrc, Boolean).value(o);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents object from json\n */\nexport class FromJson<T> extends TheInformation<T> {\n public constructor(\n private jsonSrc: InformationType<string>,\n private errorOwner?: OwnerType,\n ) {\n super(jsonSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.jsonSrc.value(\n new From((json) => {\n try {\n o.give(JSON.parse(json));\n } catch (error) {\n this.errorOwner?.give(new Error(`Failed to parse JSON: ${error}`));\n }\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents json from object\n */\nexport class ToJson extends TheInformation<string> {\n public constructor(\n private dataSrc: InformationType,\n private errorOwner?: OwnerType,\n ) {\n super(dataSrc);\n }\n\n public value(o: OwnerType<string>): this {\n this.dataSrc.value(\n new From((data: unknown) => {\n try {\n o.give(JSON.stringify(data));\n } catch {\n this.errorOwner?.give(new Error(\"Failed to convert to JSON\"));\n }\n }),\n );\n return this;\n }\n}\n","import { Applied, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents the first element of an array.\n */\nexport class First<T extends Array<unknown>> extends TheInformation<T[0]> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T[0]>): this {\n new Applied(this.baseSrc, (a) => a[0]).value(o);\n return this;\n }\n}\n"],"names":["__publicField"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"silentium-components.mjs","sources":["../src/behaviors/Sync.ts","../src/behaviors/Branch.ts","../src/behaviors/Deadline.ts","../src/behaviors/Deferred.ts","../src/behaviors/Dirty.ts","../src/behaviors/Loading.ts","../src/behaviors/Lock.ts","../src/behaviors/Memo.ts","../src/behaviors/OnlyChanged.ts","../src/behaviors/Path.ts","../src/behaviors/Shot.ts","../src/behaviors/Tick.ts","../src/structures/HashTable.ts","../src/structures/RecordOf.ts","../src/strings/Concatenated.ts","../src/strings/Template.ts","../src/system/RegexpMatched.ts","../src/system/RegexpReplaced.ts","../src/system/RegexpMatch.ts","../src/system/Set.ts","../src/navigation/Router.ts","../src/boolean/And.ts","../src/boolean/Or.ts","../src/boolean/Not.ts","../src/boolean/Bool.ts","../src/formats/FromJson.ts","../src/formats/ToJson.ts","../src/lists/First.ts"],"sourcesContent":["import {\n From,\n InformationType,\n isFilled,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\nexport class Sync<T> extends TheInformation<T> {\n private theValue: T | undefined;\n private isInit = false;\n\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(o);\n return this;\n }\n\n public valueExisted() {\n this.initOwner();\n return isFilled(this.theValue);\n }\n\n public valueSync(): T {\n this.initOwner();\n\n if (!isFilled(this.theValue)) {\n throw new Error(\"no value in sync\");\n }\n\n return this.theValue;\n }\n\n public initOwner() {\n if (!this.isInit) {\n this.isInit = true;\n this.value(\n new From((v) => {\n this.theValue = v;\n }),\n );\n }\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\nimport { Sync } from \"./Sync\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport class Branch<Then, Else> extends TheInformation<Then | Else> {\n public constructor(\n private conditionSrc: InformationType<boolean>,\n private leftSrc: InformationType<Then>,\n private rightSrc?: InformationType<Else>,\n ) {\n super([conditionSrc, leftSrc, rightSrc]);\n }\n public value(o: OwnerType<Then | Else>): this {\n const leftSync = new Sync(this.leftSrc).initOwner();\n let rightSync: Sync<Else>;\n\n if (this.rightSrc !== undefined) {\n rightSync = new Sync(this.rightSrc).initOwner();\n }\n\n this.conditionSrc.value(\n new From((v) => {\n if (v) {\n o.give(leftSync.valueSync());\n } else if (rightSync) {\n o.give(rightSync.valueSync());\n }\n }),\n );\n\n return this;\n }\n}\n","import {\n Filtered,\n From,\n InformationType,\n OwnerType,\n Shared,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport class Deadline<T> extends TheInformation<T> {\n public constructor(\n private error: OwnerType<Error>,\n private baseSrc: InformationType<T>,\n private timeoutSrc: InformationType<number>,\n ) {\n super([error, baseSrc, timeoutSrc]);\n }\n\n public value(o: OwnerType<T>) {\n let timerHead: unknown = null;\n\n const s = new Shared(this.baseSrc, true);\n this.addDep(s);\n\n this.timeoutSrc.value(\n new From((timeout) => {\n if (timerHead) {\n clearTimeout(timerHead as number);\n }\n let timeoutReached = false;\n\n timerHead = setTimeout(() => {\n if (timeoutReached) {\n return;\n }\n timeoutReached = true;\n this.error.give(new Error(\"Timeout reached in Deadline class\"));\n }, timeout);\n\n const f = new Filtered(s, () => !timeoutReached);\n this.addDep(f);\n f.value(o);\n\n s.value(\n new From(() => {\n timeoutReached = true;\n }),\n );\n }),\n );\n\n return this;\n }\n}\n","import {\n From,\n InformationType,\n isFilled,\n OwnerType,\n TheInformation,\n} from \"silentium\";\nimport { Sync } from \"./Sync\";\n\n/**\n * Defer one source after another, gives values of baseSrc only once when triggerSrc responds\n * https://silentium-lab.github.io/silentium-components/#/behaviors/deferred\n */\nexport class Deferred<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private triggerSrc: InformationType<unknown>,\n ) {\n super();\n }\n\n public value(o: OwnerType<T>): this {\n const baseSync = new Sync(this.baseSrc).initOwner();\n this.triggerSrc.value(\n new From(() => {\n if (isFilled(baseSync.valueSync())) {\n o.give(baseSync.valueSync());\n }\n }),\n );\n return this;\n }\n}\n","import {\n All,\n Applied,\n From,\n InformationType,\n Late,\n OwnerType,\n TheInformation,\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 class Dirty<T> extends TheInformation<T> {\n private comparingSrc = new Late<T>();\n\n public constructor(\n private baseEntitySource: InformationType<T>,\n private alwaysKeep: string[] = [],\n private excludeKeys: string[] = [],\n ) {\n super([baseEntitySource]);\n }\n\n public value(o: OwnerType<T>): this {\n const comparingDetached = new Applied(this.comparingSrc, (value) =>\n JSON.parse(JSON.stringify(value)),\n );\n\n const allSrc = new All(comparingDetached, this.baseEntitySource).value(\n new From(([comparing, base]) => {\n if (!comparing) {\n return;\n }\n\n o.give(\n Object.fromEntries(\n Object.entries(comparing).filter(([key, value]) => {\n if (this.alwaysKeep.includes(key)) {\n return true;\n }\n if (this.excludeKeys.includes(key)) {\n return false;\n }\n return value !== (base as any)[key];\n }),\n ) as T,\n );\n }),\n );\n this.addDep(allSrc);\n\n return this;\n }\n\n public owner() {\n return this.comparingSrc.owner();\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Representation of loading process\n * first informatin source begins loading\n * second information source stops loading\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport class Loading extends TheInformation<boolean> {\n public constructor(\n private loadingStartSrc: InformationType<unknown>,\n private loadingFinishSrc: InformationType<unknown>,\n ) {\n super(loadingFinishSrc, loadingStartSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n this.loadingStartSrc.value(\n new From(() => {\n o.give(true);\n }),\n );\n\n this.loadingFinishSrc.value(\n new From(() => {\n o.give(false);\n }),\n );\n\n return this;\n }\n}\n","import {\n Filtered,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport class Lock<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private lockSrc: InformationType<boolean>,\n ) {\n super(baseSrc, lockSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let locked = false;\n this.lockSrc.value(\n new From((newLock) => {\n locked = newLock;\n }),\n );\n const i = new Filtered(this.baseSrc, () => !locked);\n this.addDep(i);\n i.value(o);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class Memo<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let lastValue: T | null = null;\n\n this.baseSrc.value(\n new From((v) => {\n if (v !== lastValue) {\n o.give(v);\n lastValue = v;\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class OnlyChanged<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n let firstValue = false;\n\n this.baseSrc.value(\n new From((v) => {\n if (firstValue === false) {\n firstValue = true;\n } else {\n o.give(v);\n }\n }),\n );\n\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * Return source of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport class Path<\n R,\n T extends Record<string, unknown> | Array<unknown> = any,\n K extends string = any,\n> extends TheInformation<R> {\n public constructor(\n private baseSrc: InformationType<T>,\n private keySrc: InformationType<K>,\n ) {\n super(baseSrc, keySrc);\n }\n\n public value(o: OwnerType<R>): this {\n const allSrc = new All(this.baseSrc, this.keySrc).value(\n new From(([base, key]) => {\n const keyChunks = key.split(\".\");\n let value: unknown = base;\n keyChunks.forEach((keyChunk) => {\n value = (value as Record<string, unknown>)[keyChunk];\n });\n\n if (value !== undefined && value !== base) {\n o.give(value as R);\n }\n }),\n );\n this.addDep(allSrc);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\nimport { Sync } from \"./Sync\";\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 class Shot<T> extends TheInformation<T> {\n public constructor(\n private targetSrc: InformationType<T>,\n private triggerSrc: InformationType,\n ) {\n super(targetSrc, triggerSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const targetSync = new Sync(this.targetSrc);\n targetSync.initOwner();\n\n this.triggerSrc.value(\n new From(() => {\n if (targetSync.valueExisted()) {\n o.give(targetSync.valueSync());\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } 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 class Tick<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\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 o.give(lastValue);\n lastValue = null;\n }\n });\n };\n\n this.baseSrc.value(\n new From((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n }),\n );\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport class HashTable<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<[string, unknown]>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const record: Record<string, unknown> = {};\n\n this.baseSrc.value(\n new From(([key, value]) => {\n record[key] = value;\n o.give(record as T);\n }),\n );\n\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\ntype UnInformation<T> = T extends InformationType<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 class RecordOf<T extends InformationType> extends TheInformation<\n Record<string, UnInformation<T>>\n> {\n public constructor(private recordSrc: Record<string, T>) {\n super(...Object.values(recordSrc));\n }\n\n public value(o: OwnerType<Record<string, UnInformation<T>>>): this {\n const keys = Object.keys(this.recordSrc);\n new All(...Object.values(this.recordSrc)).value(\n new From((entries) => {\n const record: Record<string, any> = {};\n entries.forEach((entry, index) => {\n record[keys[index]] = entry;\n });\n o.give(record);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * Join sources of strings to one source\n * https://silentium-lab.github.io/silentium-components/#/string/concatenated\n */\nexport class Concatenated extends TheInformation<string> {\n public constructor(\n private sources: InformationType<string>[],\n private joinPartSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(...sources, joinPartSrc);\n }\n\n public value(o: OwnerType<string>): this {\n new All(this.joinPartSrc, ...this.sources).value(\n new From(([joinPart, ...strings]) => {\n o.give(strings.join(joinPart));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n Applied,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\nexport class Template extends TheInformation<string> {\n private source: InformationType<string>;\n\n public constructor(\n theSrc: InformationType<string> | string,\n private rules: InformationType<Record<string, unknown>>,\n ) {\n const source = typeof theSrc === \"string\" ? new Of(theSrc) : theSrc;\n super(source, rules);\n this.source = source;\n }\n\n public value(guest: OwnerType<string>) {\n new Applied(new All(this.source, this.rules), ([base, rules]) => {\n Object.entries(rules).forEach(([ph, val]) => {\n base = base.replaceAll(ph, String(val));\n });\n\n return base;\n }).value(guest);\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} 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 class RegexpMatched extends TheInformation<boolean> {\n public constructor(\n private patternSrc: InformationType<string>,\n private valueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(patternSrc, valueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.patternSrc, this.valueSrc, this.flagsSrc).value(\n new From(([pattern, value, flags]) => {\n o.give(new RegExp(pattern, flags).test(value));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} 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 class RegexpReplaced extends TheInformation<string> {\n public constructor(\n private valueSrc: InformationType<string>,\n private patternSrc: InformationType<string>,\n private replaceValueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(valueSrc, patternSrc, replaceValueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<string>): this {\n new All(\n this.patternSrc,\n this.valueSrc,\n this.replaceValueSrc,\n this.flagsSrc,\n ).value(\n new From(([pattern, value, replaceValue, flags]) => {\n o.give(String(value).replace(new RegExp(pattern, flags), replaceValue));\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * First match of regexp\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport class RegexpMatch extends TheInformation<string[]> {\n public constructor(\n private patternSrc: InformationType<string>,\n private valueSrc: InformationType<string>,\n private flagsSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(patternSrc, valueSrc, flagsSrc);\n }\n\n public value(o: OwnerType<string[]>): this {\n new All(this.patternSrc, this.valueSrc, this.flagsSrc).value(\n new From(([pattern, value, flags]) => {\n const result = new RegExp(pattern, flags).exec(value);\n o.give(result ?? []);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} 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 class Set<T extends Record<string, unknown>> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private keySrc: InformationType<string>,\n private valueSrc: InformationType<unknown>,\n ) {\n super(baseSrc, keySrc, valueSrc);\n }\n\n public value(o: OwnerType<T>): this {\n new All(this.baseSrc, this.keySrc, this.valueSrc).value(\n new From(([base, key, value]) => {\n (base as Record<string, unknown>)[key] = value;\n o.give(base);\n }),\n );\n return this;\n }\n}\n","import {\n Any,\n Chain,\n From,\n InformationType,\n Of,\n OwnerType,\n TheInformation,\n TheOwner,\n} from \"silentium\";\nimport { Branch } from \"../behaviors\";\nimport { RegexpMatched } from \"../system\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n template: T | InformationType<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 class Router<T = \"string\"> extends TheInformation<T> {\n public constructor(\n private urlSrc: InformationType<string>,\n private routesSrc: InformationType<Route<T>[]>,\n private defaultSrc: InformationType<T>,\n ) {\n super(urlSrc, routesSrc, defaultSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.routesSrc.value(\n new From((routes) => {\n new Any(\n new Chain(this.urlSrc, this.defaultSrc),\n ...routes.map((r) => {\n return new Branch(\n new RegexpMatched(\n new Of(r.pattern),\n this.urlSrc,\n r.patternFlags ? new Of(r.patternFlags) : undefined,\n ),\n (\"value\" in (r.template as InformationType)\n ? r.template\n : new Of(r.template)) as TheInformation,\n );\n }),\n ).value(o as TheOwner);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport class And extends TheInformation<boolean> {\n public constructor(\n private oneSrc: InformationType<boolean>,\n private twoSrc: InformationType<boolean>,\n ) {\n super(oneSrc, twoSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.oneSrc, this.twoSrc).value(\n new From(([one, two]) => {\n o.give(one && two);\n }),\n );\n return this;\n }\n}\n","import {\n All,\n From,\n InformationType,\n OwnerType,\n TheInformation,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport class Or extends TheInformation<boolean> {\n public constructor(\n private oneSrc: InformationType<boolean>,\n private twoSrc: InformationType<boolean>,\n ) {\n super(oneSrc, twoSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new All(this.oneSrc, this.twoSrc).value(\n new From(([one, two]) => {\n o.give(one || two);\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport class Not extends TheInformation<boolean> {\n public constructor(private baseSrc: InformationType<boolean>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n this.baseSrc.value(\n new From((v) => {\n o.give(!v);\n }),\n );\n return this;\n }\n}\n","import { Applied, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Convert any source to boolean source\n * https://silentium-lab.github.io/silentium-components/#/boolean/bool\n */\nexport class Bool extends TheInformation<boolean> {\n public constructor(private baseSrc: InformationType) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<boolean>): this {\n new Applied(this.baseSrc, Boolean).value(o);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents object from json\n */\nexport class FromJson<T> extends TheInformation<T> {\n public constructor(\n private jsonSrc: InformationType<string>,\n private errorOwner?: OwnerType,\n ) {\n super(jsonSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.jsonSrc.value(\n new From((json) => {\n try {\n o.give(JSON.parse(json));\n } catch (error) {\n this.errorOwner?.give(new Error(`Failed to parse JSON: ${error}`));\n }\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents json from object\n */\nexport class ToJson extends TheInformation<string> {\n public constructor(\n private dataSrc: InformationType,\n private errorOwner?: OwnerType,\n ) {\n super(dataSrc);\n }\n\n public value(o: OwnerType<string>): this {\n this.dataSrc.value(\n new From((data: unknown) => {\n try {\n o.give(JSON.stringify(data));\n } catch {\n this.errorOwner?.give(new Error(\"Failed to convert to JSON\"));\n }\n }),\n );\n return this;\n }\n}\n","import { Applied, InformationType, OwnerType, TheInformation } from \"silentium\";\n\n/**\n * Represents the first element of an array.\n */\nexport class First<T extends Array<unknown>> extends TheInformation<T[0]> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T[0]>): this {\n new Applied(this.baseSrc, (a) => a[0]).value(o);\n return this;\n }\n}\n"],"names":["__publicField"],"mappings":"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"}
|
package/package.json
CHANGED
package/src/navigation/Router.ts
CHANGED
|
@@ -14,7 +14,7 @@ import { RegexpMatched } from "../system";
|
|
|
14
14
|
export interface Route<T> {
|
|
15
15
|
pattern: string;
|
|
16
16
|
patternFlags?: string;
|
|
17
|
-
template: T |
|
|
17
|
+
template: T | InformationType<T>;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
/**
|
|
@@ -42,7 +42,7 @@ export class Router<T = "string"> extends TheInformation<T> {
|
|
|
42
42
|
this.urlSrc,
|
|
43
43
|
r.patternFlags ? new Of(r.patternFlags) : undefined,
|
|
44
44
|
),
|
|
45
|
-
(r.template
|
|
45
|
+
("value" in (r.template as InformationType)
|
|
46
46
|
? r.template
|
|
47
47
|
: new Of(r.template)) as TheInformation,
|
|
48
48
|
);
|