silentium-components 0.0.21 → 0.0.23
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 +15 -0
- package/beforeRelease.sh +3 -3
- package/dist/silentium-components.cjs +27 -19
- package/dist/silentium-components.cjs.map +1 -1
- package/dist/silentium-components.d.ts +7 -1
- package/dist/silentium-components.js +28 -21
- 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 +28 -21
- package/dist/silentium-components.mjs.map +1 -1
- package/docs/build.sh +2 -2
- package/docs/index.html +2 -2
- package/docs/pages/index.html +5 -0
- package/docs/pages/system/promised.html +36 -0
- package/docs/pages/system.html +11 -0
- package/docs/routes.json +1 -1
- package/package.json +1 -1
- package/src/behaviors/Branch.ts +3 -2
- package/src/behaviors/{Survey.test.ts → Polling.test.ts} +3 -3
- package/src/behaviors/{Survey.ts → Polling.ts} +1 -1
- package/src/behaviors/Priority.test.ts +2 -2
- package/src/navigation/Router.ts +4 -11
- package/src/system/Promised.test.ts +21 -0
- package/src/system/Promised.ts +23 -0
- package/src/system/index.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [0.0.23](https://github.com/silentium-lab/silentium-components/compare/v0.0.22...v0.0.23) (2025-06-17)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **release:** export promised component ([bbe0556](https://github.com/silentium-lab/silentium-components/commit/bbe0556e56efb2d63e3393f7be93774c87476ea1))
|
|
11
|
+
|
|
12
|
+
### [0.0.22](https://github.com/silentium-lab/silentium-components/compare/v0.0.21...v0.0.22) (2025-06-17)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* **45-need-to-create-component-promised-which-will-turn-promis-into-source:** promised component ([e9a8149](https://github.com/silentium-lab/silentium-components/commit/e9a81496dcca6295f99a24142b552a1b2af583ee))
|
|
18
|
+
* **main:** rename survey to polling ([313a280](https://github.com/silentium-lab/silentium-components/commit/313a280082f5eadc46701e4a7068fbbf1153c5bb))
|
|
19
|
+
|
|
5
20
|
### [0.0.21](https://github.com/silentium-lab/silentium-components/compare/v0.0.20...v0.0.21) (2025-06-16)
|
|
6
21
|
|
|
7
22
|
|
package/beforeRelease.sh
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
current_branch=$(git rev-parse --abbrev-ref HEAD)
|
|
4
4
|
|
|
5
|
-
if [ "$current_branch" != "
|
|
6
|
-
echo "Error: Current branch not '
|
|
5
|
+
if [ "$current_branch" != "release" ]; then
|
|
6
|
+
echo "Error: Current branch not 'release'. Release impossible you are on '$current_branch'."
|
|
7
7
|
exit 1
|
|
8
8
|
fi
|
|
9
9
|
|
|
10
|
-
echo "Current branch — '
|
|
10
|
+
echo "Current branch — 'release'."
|
|
11
11
|
exit 0
|
|
@@ -207,9 +207,9 @@ const branch = (conditionSrc, thenSrc, elseSrc) => {
|
|
|
207
207
|
silentium.systemPatron((v) => {
|
|
208
208
|
resetSrc.give(1);
|
|
209
209
|
if (v === true) {
|
|
210
|
-
silentium.value(thenSrc, result.give);
|
|
210
|
+
silentium.value(thenSrc, silentium.patronOnce(result.give));
|
|
211
211
|
} else if (elseSrc !== void 0) {
|
|
212
|
-
silentium.value(elseSrc, result.give);
|
|
212
|
+
silentium.value(elseSrc, silentium.patronOnce(result.give));
|
|
213
213
|
}
|
|
214
214
|
})
|
|
215
215
|
);
|
|
@@ -328,7 +328,7 @@ const concatenated = (sources, joinPartSrc = "") => {
|
|
|
328
328
|
return result;
|
|
329
329
|
};
|
|
330
330
|
|
|
331
|
-
const
|
|
331
|
+
const polling = (targetSrc, triggerSrc) => {
|
|
332
332
|
const resultSrc = silentium.sourceOf();
|
|
333
333
|
const visited = silentium.firstVisit(() => {
|
|
334
334
|
silentium.value(
|
|
@@ -344,14 +344,6 @@ const survey = (targetSrc, triggerSrc) => {
|
|
|
344
344
|
};
|
|
345
345
|
};
|
|
346
346
|
|
|
347
|
-
const regexpMatched = (patternSrc, valueSrc, flagsSrc = "") => silentium.sourceCombined(
|
|
348
|
-
patternSrc,
|
|
349
|
-
valueSrc,
|
|
350
|
-
flagsSrc
|
|
351
|
-
)((g, pattern, value, flags) => {
|
|
352
|
-
silentium.give(new RegExp(pattern, flags).test(value), g);
|
|
353
|
-
});
|
|
354
|
-
|
|
355
347
|
const priority = (sources) => {
|
|
356
348
|
return (g) => {
|
|
357
349
|
let highestPriorityIndex = 0;
|
|
@@ -370,6 +362,14 @@ const priority = (sources) => {
|
|
|
370
362
|
};
|
|
371
363
|
};
|
|
372
364
|
|
|
365
|
+
const regexpMatched = (patternSrc, valueSrc, flagsSrc = "") => silentium.sourceCombined(
|
|
366
|
+
patternSrc,
|
|
367
|
+
valueSrc,
|
|
368
|
+
flagsSrc
|
|
369
|
+
)((g, pattern, value, flags) => {
|
|
370
|
+
silentium.give(new RegExp(pattern, flags).test(value), g);
|
|
371
|
+
});
|
|
372
|
+
|
|
373
373
|
const router = (urlSrc, routesSrc, defaultSrc) => {
|
|
374
374
|
const resultSrc = silentium.sourceOf();
|
|
375
375
|
const visited = silentium.firstVisit(() => {
|
|
@@ -390,14 +390,8 @@ const router = (urlSrc, routesSrc, defaultSrc) => {
|
|
|
390
390
|
)
|
|
391
391
|
)
|
|
392
392
|
]);
|
|
393
|
-
const
|
|
394
|
-
silentium.value(
|
|
395
|
-
silentium.value(
|
|
396
|
-
surveySrc,
|
|
397
|
-
silentium.patron((v) => {
|
|
398
|
-
return v;
|
|
399
|
-
})
|
|
400
|
-
);
|
|
393
|
+
const pollingSrc = polling(prioritySrc, urlSrc);
|
|
394
|
+
silentium.value(pollingSrc, silentium.systemPatron(resultSrc));
|
|
401
395
|
})
|
|
402
396
|
);
|
|
403
397
|
});
|
|
@@ -435,6 +429,19 @@ const set = (baseSrc, keySrc, valueSrc) => {
|
|
|
435
429
|
return baseSrc;
|
|
436
430
|
};
|
|
437
431
|
|
|
432
|
+
const promised = (promise, errorGuest) => {
|
|
433
|
+
const resultSrc = silentium.sourceOf();
|
|
434
|
+
const visited = silentium.firstVisit(() => {
|
|
435
|
+
promise.then(resultSrc.give).catch((e) => {
|
|
436
|
+
silentium.give(e, errorGuest);
|
|
437
|
+
});
|
|
438
|
+
});
|
|
439
|
+
return (g) => {
|
|
440
|
+
visited();
|
|
441
|
+
resultSrc.value(g);
|
|
442
|
+
};
|
|
443
|
+
};
|
|
444
|
+
|
|
438
445
|
const and = (oneSrc, twoSrc) => {
|
|
439
446
|
return silentium.sourceCombined(
|
|
440
447
|
oneSrc,
|
|
@@ -481,6 +488,7 @@ exports.not = not;
|
|
|
481
488
|
exports.onlyChanged = onlyChanged;
|
|
482
489
|
exports.or = or;
|
|
483
490
|
exports.path = path;
|
|
491
|
+
exports.promised = promised;
|
|
484
492
|
exports.record = record;
|
|
485
493
|
exports.regexpMatch = regexpMatch;
|
|
486
494
|
exports.regexpMatched = regexpMatched;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silentium-components.cjs","sources":["../src/controls/GroupActiveClass.ts","../src/behaviors/Dirty.ts","../src/behaviors/Loading.ts","../src/behaviors/Path.ts","../src/behaviors/Deadline.ts","../src/behaviors/Tick.ts","../src/behaviors/Fork.ts","../src/behaviors/Deferred.ts","../src/behaviors/Branch.ts","../src/behaviors/Memo.ts","../src/behaviors/Lock.ts","../src/behaviors/Moment.ts","../src/behaviors/Shot.ts","../src/behaviors/OnlyChanged.ts","../src/structures/HashTable.ts","../src/structures/Record.ts","../src/strings/Concatenated.ts","../src/behaviors/Survey.ts","../src/system/RegexpMatched.ts","../src/behaviors/Priority.ts","../src/navigation/Router.ts","../src/system/RegexpReplaced.ts","../src/system/RegexpMatch.ts","../src/system/Set.ts","../src/boolean/And.ts","../src/boolean/Or.ts","../src/boolean/Not.ts"],"sourcesContent":["import { sourceAll, SourceType, systemPatron, value } from \"silentium\";\n\n/**\n * Sets activeClass to one element of group\n * and resets activeClass on other group elements\n * suitable for menu active class\n */\nexport const groupActiveClass = (\n activeClassSrc: SourceType<string>,\n activeElementSrc: SourceType<HTMLElement>,\n groupElementsSrc: SourceType<HTMLElement[]>,\n) => {\n value(\n sourceAll([activeClassSrc, activeElementSrc, groupElementsSrc]),\n systemPatron(([activeClass, activeElement, groupElements]) => {\n groupElements.forEach((el) => {\n if (el.classList) {\n el.classList.remove(activeClass);\n }\n });\n activeElement.classList.add(activeClass);\n }),\n );\n\n return groupElementsSrc;\n};\n","import {\n give,\n guestCast,\n GuestType,\n patronOnce,\n sourceAll,\n SourceChangeableType,\n sourceOf,\n SourceType,\n value,\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 const dirty = <T extends object>(\n baseEntitySource: SourceType<T>,\n becomePatronAuto = false,\n alwaysKeep: string[] = [],\n excludeKeys: string[] = [],\n): SourceChangeableType<Partial<T>> => {\n const comparingSrc = sourceOf();\n const all = sourceAll([comparingSrc, baseEntitySource]);\n\n const result = {\n give(value: T) {\n give(JSON.parse(JSON.stringify(value)), comparingSrc);\n return result;\n },\n value(guest: GuestType<Partial<T>>) {\n value(\n all,\n guestCast(guest, ([comparing, base]) => {\n if (!comparing) {\n return;\n }\n\n give(\n Object.fromEntries(\n Object.entries(comparing).filter(([key, value]) => {\n if (alwaysKeep.includes(key)) {\n return true;\n }\n if (excludeKeys.includes(key)) {\n return false;\n }\n return value !== (base as any)[key];\n }),\n ) as T,\n guest,\n );\n }),\n );\n return result;\n },\n };\n\n if (becomePatronAuto) {\n value(baseEntitySource, patronOnce(result));\n }\n\n return result;\n};\n","import {\n sourceOf,\n SourceType,\n subSourceMany,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport const loading = (\n loadingStartSource: SourceType<unknown>,\n loadingFinishSource: SourceType<unknown>,\n) => {\n const loadingSrc = sourceOf<boolean>();\n subSourceMany(loadingSrc, [loadingStartSource, loadingFinishSource]);\n\n value(\n loadingStartSource,\n systemPatron(() => {\n loadingSrc.give(true);\n }),\n );\n value(\n loadingFinishSource,\n systemPatron(() => {\n loadingSrc.give(false);\n }),\n );\n\n return loadingSrc.value;\n};\n","import {\n give,\n sourceAll,\n sourceOf,\n SourceType,\n subSourceMany,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * Return source of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport const path = <\n T extends Record<string, unknown> | Array<unknown>,\n K extends string,\n>(\n baseSrc: SourceType<T>,\n keySrc: SourceType<K>,\n) => {\n const pathSrc = sourceOf<unknown>();\n subSourceMany(pathSrc, [baseSrc, keySrc]);\n\n value(\n sourceAll([baseSrc, keySrc]),\n systemPatron(([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 give(value, pathSrc);\n }\n }),\n );\n\n return pathSrc.value;\n};\n","import {\n give,\n guestCast,\n GuestType,\n patronOnce,\n sourceFiltered,\n SourceType,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport const deadline = <T>(\n error: GuestType<Error>,\n baseSrc: SourceType<T>,\n timeoutSrc: SourceType<number>,\n) => {\n let timerHead: unknown = null;\n return (g: GuestType<T>) => {\n value(\n timeoutSrc,\n guestCast(g, (timeout) => {\n if (timerHead) {\n clearTimeout(timerHead as number);\n }\n\n let timeoutReached = false;\n\n timerHead = setTimeout(() => {\n if (timeoutReached) {\n return;\n }\n timeoutReached = true;\n give(new Error(\"Timeout reached in Deadline class\"), error);\n }, timeout);\n\n value(\n sourceFiltered(baseSrc, () => !timeoutReached),\n g,\n );\n\n value(\n baseSrc,\n patronOnce(() => {\n timeoutReached = true;\n }),\n );\n }),\n );\n };\n};\n","import {\n give,\n sourceOf,\n SourceType,\n subSource,\n systemPatron,\n value,\n} 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 const tick = <T>(baseSrc: SourceType<T>) => {\n const result = sourceOf<T>();\n subSource(result, baseSrc);\n\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 give(lastValue, result);\n lastValue = null;\n }\n });\n };\n\n value(\n baseSrc,\n systemPatron((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n }),\n );\n\n return result;\n};\n","import {\n GuestObjectType,\n patronOnce,\n removePatronFromPools,\n sourceOf,\n sourceResettable,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/dirty\n */\nexport const fork = <T, Then, Else>(\n conditionSrc: SourceType<T>,\n predicate: (v: T) => boolean,\n thenSrc: SourceType<Then>,\n elseSrc?: SourceType<Else>,\n): SourceType<Then | Else> => {\n const result = sourceOf<Then | Else>();\n const reset = sourceOf();\n const resultResettable = sourceResettable(result, reset);\n let thenPatron: GuestObjectType<Then> | undefined;\n let elsePatron: GuestObjectType<Else> | undefined;\n\n value(\n conditionSrc,\n systemPatron((v) => {\n reset.give(1);\n if (thenPatron) {\n removePatronFromPools(thenPatron);\n }\n if (elsePatron) {\n removePatronFromPools(elsePatron);\n }\n if (predicate(v)) {\n thenPatron = patronOnce(result);\n value(thenSrc, thenPatron);\n } else if (elseSrc) {\n elsePatron = patronOnce(result);\n value(elseSrc, elsePatron);\n }\n }),\n );\n\n return resultResettable;\n};\n","import {\n firstVisit,\n GuestType,\n sourceOf,\n sourceResettable,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\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 const deferred = <T>(\n baseSrc: SourceType<T>,\n triggerSrc: SourceType<unknown>,\n) => {\n const result = sourceResettable<T>(sourceOf(), baseSrc as SourceType);\n\n const visited = firstVisit(() => {\n value(\n triggerSrc,\n systemPatron(() => {\n value(baseSrc, result);\n }),\n );\n });\n\n return (g: GuestType<T>) => {\n visited();\n value(result, g);\n };\n};\n","import {\n firstVisit,\n GuestType,\n sourceOf,\n sourceResettable,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport const branch = <Then, Else>(\n conditionSrc: SourceType<boolean>,\n thenSrc: SourceType<Then>,\n elseSrc?: SourceType<Else>,\n): SourceType<Then | Else> => {\n const resetSrc = sourceOf();\n const result = sourceOf<Then | Else>();\n const resultSrc = sourceResettable(result, resetSrc);\n\n const visited = firstVisit(() => {\n value(\n conditionSrc,\n systemPatron((v) => {\n resetSrc.give(1);\n if (v === true) {\n value(thenSrc, result.give);\n } else if (elseSrc !== undefined) {\n value(elseSrc, result.give);\n }\n }),\n );\n });\n\n return (g: GuestType<Then | Else>) => {\n visited();\n resultSrc.value(g);\n };\n};\n","import { sourceOf, SourceType, systemPatron, value } 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 const memo = <T>(baseSrc: SourceType<T>) => {\n const result = sourceOf<T>();\n let lastValue: T | null = null;\n\n value(\n baseSrc,\n systemPatron((v) => {\n if (v !== lastValue) {\n result.give(v);\n lastValue = v;\n }\n }),\n );\n\n return result.value;\n};\n","import {\n destroy,\n guestDisposable,\n patronOnce,\n sourceOf,\n sourceResettable,\n SourceType,\n subSource,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport const lock = <T>(\n baseSrc: SourceType<T>,\n lockSrc: SourceType<unknown>,\n) => {\n const result = sourceOf();\n const resultResettable = sourceResettable(result, lockSrc);\n let locked = false;\n subSource(result, baseSrc);\n\n value(baseSrc, systemPatron(guestDisposable(result.give, () => locked)));\n\n value(\n lockSrc,\n patronOnce(() => {\n locked = true;\n destroy([result]);\n }),\n );\n\n return resultResettable;\n};\n","import { give, guestSync, GuestType, SourceType, value } from \"silentium\";\n\n/**\n * Get's value from source in moment of component call and than return this value every time\n * https://silentium-lab.github.io/silentium-components/#/behaviors/moment\n */\nexport const moment = <T>(\n baseSrc: SourceType<T>,\n defaultValue?: T,\n): SourceType<T> => {\n const guest = guestSync(defaultValue);\n value(baseSrc, guest);\n\n return (g: GuestType<T>) => {\n give(guest.value(), g);\n };\n};\n","import {\n sourceOf,\n sourceResettable,\n sourceSync,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * Helps to represent only last fresh value of some source, refreshing controls by shotSrc\n * https://silentium-lab.github.io/silentium-components/#/behaviors/shot\n */\nexport const shot = <T>(baseSrc: SourceType<T>, shotSrc: SourceType) => {\n const resetResult = sourceOf();\n const result = sourceOf<T>();\n\n const baseSrcSync = sourceSync(baseSrc, null);\n value(\n shotSrc,\n systemPatron(() => {\n if (baseSrcSync.syncValue() !== null) {\n result.give(baseSrcSync.syncValue() as T);\n resetResult.give(1);\n }\n }),\n );\n\n return sourceResettable(result, resetResult);\n};\n","import { give, guestCast, source, SourceType, value } 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 const onlyChanged = <T>(baseSrc: SourceType<T>) => {\n let firstValue = false;\n return source<T>((g) => {\n value(\n baseSrc,\n guestCast<T>(g, (v) => {\n if (firstValue === false) {\n firstValue = true;\n } else {\n give(v, g);\n }\n }),\n );\n });\n};\n","import {\n sourceOf,\n SourceType,\n subSource,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport const hashTable = (baseSource: SourceType<[string, unknown]>) => {\n const result = sourceOf<Record<string, unknown>>({});\n subSource(result, baseSource);\n\n value(\n baseSource,\n systemPatron(([key, value]) => {\n result.value((lastRecord) => {\n lastRecord[key] = value;\n });\n }),\n );\n\n return result.value;\n};\n","import { give, GuestType, sourceCombined, SourceType } from \"silentium\";\n\n/**\n * Returns record of data from record of sources\n * https://silentium-lab.github.io/silentium-components/#/structures/record\n */\nexport const record = (recordSrc: Record<string, SourceType>) => {\n const keys = Object.keys(recordSrc);\n return sourceCombined(...Object.values(recordSrc))(\n (g: GuestType<Record<string, any>>, ...entries: any[]) => {\n const record: Record<string, any> = {};\n entries.forEach((entry, index) => {\n record[keys[index]] = entry;\n });\n give(record, g);\n },\n );\n};\n","import { give, GuestType, sourceCombined, SourceType } from \"silentium\";\n\n/**\n * Join sources of strings to one source\n * https://silentium-lab.github.io/silentium-components/#/string/concatenated\n */\nexport const concatenated = (\n sources: SourceType<string>[],\n joinPartSrc: SourceType<string> = \"\",\n): SourceType<string> => {\n const result = sourceCombined(\n joinPartSrc,\n ...sources,\n )((g: GuestType<string>, joinPart, ...strings) => {\n give(strings.join(joinPart), g);\n });\n\n return result;\n};\n","import {\n firstVisit,\n GuestType,\n sourceOf,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\n\nexport const survey = <T>(\n targetSrc: SourceType<T>,\n triggerSrc: SourceType,\n): SourceType<T> => {\n const resultSrc = sourceOf<T>();\n\n const visited = firstVisit(() => {\n value(\n triggerSrc,\n systemPatron(() => {\n value(targetSrc, resultSrc);\n }),\n );\n });\n\n return (g: GuestType<T>) => {\n visited();\n resultSrc.value(g);\n };\n};\n","import { give, GuestType, sourceCombined, SourceType } 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 const regexpMatched = (\n patternSrc: SourceType<string>,\n valueSrc: SourceType<string>,\n flagsSrc: SourceType<string> = \"\",\n): SourceType<boolean> =>\n sourceCombined(\n patternSrc,\n valueSrc,\n flagsSrc,\n )((g: GuestType<boolean>, pattern, value, flags) => {\n give(new RegExp(pattern, flags).test(value), g);\n });\n","import { give, GuestType, SourceType, value } from \"silentium\";\n\nexport const priority = <T>(sources: SourceType<T>[]) => {\n return (g: GuestType<T>) => {\n let highestPriorityIndex = 0;\n let highestPriorityResult;\n sources.forEach((source, index) => {\n value(source, (v) => {\n if (highestPriorityIndex <= index) {\n highestPriorityIndex = index;\n highestPriorityResult = v;\n }\n });\n });\n\n if (highestPriorityResult !== undefined) {\n give(highestPriorityResult, g);\n }\n };\n};\n","import {\n firstVisit,\n GuestType,\n patron,\n patronOnce,\n sourceOf,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\nimport { survey } from \"../behaviors/Survey\";\nimport { branch } from \"../behaviors\";\nimport { regexpMatched } from \"../system/RegexpMatched\";\nimport { priority } from \"../behaviors/Priority\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n template: T | SourceType<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 const router = <T = \"string\">(\n urlSrc: SourceType<string>,\n routesSrc: SourceType<Route<T>[]>,\n defaultSrc: SourceType<T>,\n) => {\n const resultSrc = sourceOf<T>();\n\n const visited = firstVisit(() => {\n value(\n routesSrc,\n patronOnce((routes) => {\n const prioritySrc = priority([\n defaultSrc,\n ...routes.map((r) =>\n value(\n branch(\n regexpMatched(r.pattern, urlSrc, r.patternFlags),\n r.template as SourceType,\n ),\n systemPatron((v) => {\n return v;\n }),\n ),\n ),\n ]);\n const surveySrc = survey(prioritySrc, urlSrc);\n value(surveySrc, patron(resultSrc));\n value(\n surveySrc,\n patron((v) => {\n return v;\n }),\n );\n }),\n );\n });\n\n return (g: GuestType<T>) => {\n visited();\n resultSrc.value(g);\n };\n};\n","import { give, GuestType, sourceCombined, SourceType } 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 const regexpReplaced = (\n valueSrc: SourceType<string>,\n patternSrc: SourceType<string>,\n replaceValueSrc: SourceType<string>,\n flagsSrc: SourceType<string> = \"\",\n): SourceType<string> =>\n sourceCombined(\n patternSrc,\n valueSrc,\n replaceValueSrc,\n flagsSrc,\n )((g: GuestType<string>, pattern, value, replaceValue, flags) => {\n give(String(value).replace(new RegExp(pattern, flags), replaceValue), g);\n });\n","import { give, GuestType, sourceCombined, SourceType } from \"silentium\";\n\n/**\n * First match of regexp\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport const regexpMatch = (\n patternSrc: SourceType<string>,\n valueSrc: SourceType<string>,\n flagsSrc: SourceType<string> = \"\",\n): SourceType<string[]> =>\n sourceCombined(\n patternSrc,\n valueSrc,\n flagsSrc,\n )((g: GuestType<string[]>, pattern, value, flags) => {\n const result = new RegExp(pattern, flags).exec(value);\n give(result ?? [], g);\n });\n","import { sourceAll, SourceType, systemPatron, value } 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 const set = <T extends Record<string, unknown>>(\n baseSrc: SourceType<T>,\n keySrc: SourceType<string>,\n valueSrc: SourceType<unknown>,\n) => {\n value(\n sourceAll([baseSrc, keySrc, valueSrc]),\n systemPatron(([base, key, value]) => {\n (base as Record<string, unknown>)[key] = value;\n }),\n );\n\n return baseSrc;\n};\n","import { give, GuestType, sourceCombined, SourceType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport const and = (\n oneSrc: SourceType<boolean>,\n twoSrc: SourceType<boolean>,\n) => {\n return sourceCombined(\n oneSrc,\n twoSrc,\n )((guest: GuestType<boolean>, one, two) => {\n give(one && two, guest);\n });\n};\n","import { give, GuestType, sourceCombined, SourceType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport const or = (\n oneSrc: SourceType<boolean>,\n twoSrc: SourceType<boolean>,\n) => {\n return sourceCombined(\n oneSrc,\n twoSrc,\n )((guest: GuestType<boolean>, one, two) => {\n give(one || two, guest);\n });\n};\n","import { give, guestCast, GuestType, SourceType, value } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport const not = (baseSrc: SourceType<boolean>) => {\n return (g: GuestType<boolean>) => {\n value(\n baseSrc,\n guestCast(g, (base) => {\n give(!base, g);\n }),\n );\n };\n};\n"],"names":["value","sourceAll","systemPatron","sourceOf","give","guestCast","patronOnce","subSourceMany","sourceFiltered","subSource","sourceResettable","removePatronFromPools","firstVisit","guestDisposable","destroy","guestSync","sourceSync","source","sourceCombined","record","patron"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"silentium-components.cjs","sources":["../src/controls/GroupActiveClass.ts","../src/behaviors/Dirty.ts","../src/behaviors/Loading.ts","../src/behaviors/Path.ts","../src/behaviors/Deadline.ts","../src/behaviors/Tick.ts","../src/behaviors/Fork.ts","../src/behaviors/Deferred.ts","../src/behaviors/Branch.ts","../src/behaviors/Memo.ts","../src/behaviors/Lock.ts","../src/behaviors/Moment.ts","../src/behaviors/Shot.ts","../src/behaviors/OnlyChanged.ts","../src/structures/HashTable.ts","../src/structures/Record.ts","../src/strings/Concatenated.ts","../src/behaviors/Polling.ts","../src/behaviors/Priority.ts","../src/system/RegexpMatched.ts","../src/navigation/Router.ts","../src/system/RegexpReplaced.ts","../src/system/RegexpMatch.ts","../src/system/Set.ts","../src/system/Promised.ts","../src/boolean/And.ts","../src/boolean/Or.ts","../src/boolean/Not.ts"],"sourcesContent":["import { sourceAll, SourceType, systemPatron, value } from \"silentium\";\n\n/**\n * Sets activeClass to one element of group\n * and resets activeClass on other group elements\n * suitable for menu active class\n */\nexport const groupActiveClass = (\n activeClassSrc: SourceType<string>,\n activeElementSrc: SourceType<HTMLElement>,\n groupElementsSrc: SourceType<HTMLElement[]>,\n) => {\n value(\n sourceAll([activeClassSrc, activeElementSrc, groupElementsSrc]),\n systemPatron(([activeClass, activeElement, groupElements]) => {\n groupElements.forEach((el) => {\n if (el.classList) {\n el.classList.remove(activeClass);\n }\n });\n activeElement.classList.add(activeClass);\n }),\n );\n\n return groupElementsSrc;\n};\n","import {\n give,\n guestCast,\n GuestType,\n patronOnce,\n sourceAll,\n SourceChangeableType,\n sourceOf,\n SourceType,\n value,\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 const dirty = <T extends object>(\n baseEntitySource: SourceType<T>,\n becomePatronAuto = false,\n alwaysKeep: string[] = [],\n excludeKeys: string[] = [],\n): SourceChangeableType<Partial<T>> => {\n const comparingSrc = sourceOf();\n const all = sourceAll([comparingSrc, baseEntitySource]);\n\n const result = {\n give(value: T) {\n give(JSON.parse(JSON.stringify(value)), comparingSrc);\n return result;\n },\n value(guest: GuestType<Partial<T>>) {\n value(\n all,\n guestCast(guest, ([comparing, base]) => {\n if (!comparing) {\n return;\n }\n\n give(\n Object.fromEntries(\n Object.entries(comparing).filter(([key, value]) => {\n if (alwaysKeep.includes(key)) {\n return true;\n }\n if (excludeKeys.includes(key)) {\n return false;\n }\n return value !== (base as any)[key];\n }),\n ) as T,\n guest,\n );\n }),\n );\n return result;\n },\n };\n\n if (becomePatronAuto) {\n value(baseEntitySource, patronOnce(result));\n }\n\n return result;\n};\n","import {\n sourceOf,\n SourceType,\n subSourceMany,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport const loading = (\n loadingStartSource: SourceType<unknown>,\n loadingFinishSource: SourceType<unknown>,\n) => {\n const loadingSrc = sourceOf<boolean>();\n subSourceMany(loadingSrc, [loadingStartSource, loadingFinishSource]);\n\n value(\n loadingStartSource,\n systemPatron(() => {\n loadingSrc.give(true);\n }),\n );\n value(\n loadingFinishSource,\n systemPatron(() => {\n loadingSrc.give(false);\n }),\n );\n\n return loadingSrc.value;\n};\n","import {\n give,\n sourceAll,\n sourceOf,\n SourceType,\n subSourceMany,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * Return source of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport const path = <\n T extends Record<string, unknown> | Array<unknown>,\n K extends string,\n>(\n baseSrc: SourceType<T>,\n keySrc: SourceType<K>,\n) => {\n const pathSrc = sourceOf<unknown>();\n subSourceMany(pathSrc, [baseSrc, keySrc]);\n\n value(\n sourceAll([baseSrc, keySrc]),\n systemPatron(([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 give(value, pathSrc);\n }\n }),\n );\n\n return pathSrc.value;\n};\n","import {\n give,\n guestCast,\n GuestType,\n patronOnce,\n sourceFiltered,\n SourceType,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport const deadline = <T>(\n error: GuestType<Error>,\n baseSrc: SourceType<T>,\n timeoutSrc: SourceType<number>,\n) => {\n let timerHead: unknown = null;\n return (g: GuestType<T>) => {\n value(\n timeoutSrc,\n guestCast(g, (timeout) => {\n if (timerHead) {\n clearTimeout(timerHead as number);\n }\n\n let timeoutReached = false;\n\n timerHead = setTimeout(() => {\n if (timeoutReached) {\n return;\n }\n timeoutReached = true;\n give(new Error(\"Timeout reached in Deadline class\"), error);\n }, timeout);\n\n value(\n sourceFiltered(baseSrc, () => !timeoutReached),\n g,\n );\n\n value(\n baseSrc,\n patronOnce(() => {\n timeoutReached = true;\n }),\n );\n }),\n );\n };\n};\n","import {\n give,\n sourceOf,\n SourceType,\n subSource,\n systemPatron,\n value,\n} 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 const tick = <T>(baseSrc: SourceType<T>) => {\n const result = sourceOf<T>();\n subSource(result, baseSrc);\n\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 give(lastValue, result);\n lastValue = null;\n }\n });\n };\n\n value(\n baseSrc,\n systemPatron((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n }),\n );\n\n return result;\n};\n","import {\n GuestObjectType,\n patronOnce,\n removePatronFromPools,\n sourceOf,\n sourceResettable,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/dirty\n */\nexport const fork = <T, Then, Else>(\n conditionSrc: SourceType<T>,\n predicate: (v: T) => boolean,\n thenSrc: SourceType<Then>,\n elseSrc?: SourceType<Else>,\n): SourceType<Then | Else> => {\n const result = sourceOf<Then | Else>();\n const reset = sourceOf();\n const resultResettable = sourceResettable(result, reset);\n let thenPatron: GuestObjectType<Then> | undefined;\n let elsePatron: GuestObjectType<Else> | undefined;\n\n value(\n conditionSrc,\n systemPatron((v) => {\n reset.give(1);\n if (thenPatron) {\n removePatronFromPools(thenPatron);\n }\n if (elsePatron) {\n removePatronFromPools(elsePatron);\n }\n if (predicate(v)) {\n thenPatron = patronOnce(result);\n value(thenSrc, thenPatron);\n } else if (elseSrc) {\n elsePatron = patronOnce(result);\n value(elseSrc, elsePatron);\n }\n }),\n );\n\n return resultResettable;\n};\n","import {\n firstVisit,\n GuestType,\n sourceOf,\n sourceResettable,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\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 const deferred = <T>(\n baseSrc: SourceType<T>,\n triggerSrc: SourceType<unknown>,\n) => {\n const result = sourceResettable<T>(sourceOf(), baseSrc as SourceType);\n\n const visited = firstVisit(() => {\n value(\n triggerSrc,\n systemPatron(() => {\n value(baseSrc, result);\n }),\n );\n });\n\n return (g: GuestType<T>) => {\n visited();\n value(result, g);\n };\n};\n","import {\n firstVisit,\n GuestType,\n patronOnce,\n sourceOf,\n sourceResettable,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport const branch = <Then, Else>(\n conditionSrc: SourceType<boolean>,\n thenSrc: SourceType<Then>,\n elseSrc?: SourceType<Else>,\n): SourceType<Then | Else> => {\n const resetSrc = sourceOf();\n const result = sourceOf<Then | Else>();\n const resultSrc = sourceResettable(result, resetSrc);\n\n const visited = firstVisit(() => {\n value(\n conditionSrc,\n systemPatron((v) => {\n resetSrc.give(1);\n if (v === true) {\n value(thenSrc, patronOnce(result.give));\n } else if (elseSrc !== undefined) {\n value(elseSrc, patronOnce(result.give));\n }\n }),\n );\n });\n\n return (g: GuestType<Then | Else>) => {\n visited();\n resultSrc.value(g);\n };\n};\n","import { sourceOf, SourceType, systemPatron, value } 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 const memo = <T>(baseSrc: SourceType<T>) => {\n const result = sourceOf<T>();\n let lastValue: T | null = null;\n\n value(\n baseSrc,\n systemPatron((v) => {\n if (v !== lastValue) {\n result.give(v);\n lastValue = v;\n }\n }),\n );\n\n return result.value;\n};\n","import {\n destroy,\n guestDisposable,\n patronOnce,\n sourceOf,\n sourceResettable,\n SourceType,\n subSource,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport const lock = <T>(\n baseSrc: SourceType<T>,\n lockSrc: SourceType<unknown>,\n) => {\n const result = sourceOf();\n const resultResettable = sourceResettable(result, lockSrc);\n let locked = false;\n subSource(result, baseSrc);\n\n value(baseSrc, systemPatron(guestDisposable(result.give, () => locked)));\n\n value(\n lockSrc,\n patronOnce(() => {\n locked = true;\n destroy([result]);\n }),\n );\n\n return resultResettable;\n};\n","import { give, guestSync, GuestType, SourceType, value } from \"silentium\";\n\n/**\n * Get's value from source in moment of component call and than return this value every time\n * https://silentium-lab.github.io/silentium-components/#/behaviors/moment\n */\nexport const moment = <T>(\n baseSrc: SourceType<T>,\n defaultValue?: T,\n): SourceType<T> => {\n const guest = guestSync(defaultValue);\n value(baseSrc, guest);\n\n return (g: GuestType<T>) => {\n give(guest.value(), g);\n };\n};\n","import {\n sourceOf,\n sourceResettable,\n sourceSync,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * Helps to represent only last fresh value of some source, refreshing controls by shotSrc\n * https://silentium-lab.github.io/silentium-components/#/behaviors/shot\n */\nexport const shot = <T>(baseSrc: SourceType<T>, shotSrc: SourceType) => {\n const resetResult = sourceOf();\n const result = sourceOf<T>();\n\n const baseSrcSync = sourceSync(baseSrc, null);\n value(\n shotSrc,\n systemPatron(() => {\n if (baseSrcSync.syncValue() !== null) {\n result.give(baseSrcSync.syncValue() as T);\n resetResult.give(1);\n }\n }),\n );\n\n return sourceResettable(result, resetResult);\n};\n","import { give, guestCast, source, SourceType, value } 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 const onlyChanged = <T>(baseSrc: SourceType<T>) => {\n let firstValue = false;\n return source<T>((g) => {\n value(\n baseSrc,\n guestCast<T>(g, (v) => {\n if (firstValue === false) {\n firstValue = true;\n } else {\n give(v, g);\n }\n }),\n );\n });\n};\n","import {\n sourceOf,\n SourceType,\n subSource,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport const hashTable = (baseSource: SourceType<[string, unknown]>) => {\n const result = sourceOf<Record<string, unknown>>({});\n subSource(result, baseSource);\n\n value(\n baseSource,\n systemPatron(([key, value]) => {\n result.value((lastRecord) => {\n lastRecord[key] = value;\n });\n }),\n );\n\n return result.value;\n};\n","import { give, GuestType, sourceCombined, SourceType } from \"silentium\";\n\n/**\n * Returns record of data from record of sources\n * https://silentium-lab.github.io/silentium-components/#/structures/record\n */\nexport const record = (recordSrc: Record<string, SourceType>) => {\n const keys = Object.keys(recordSrc);\n return sourceCombined(...Object.values(recordSrc))(\n (g: GuestType<Record<string, any>>, ...entries: any[]) => {\n const record: Record<string, any> = {};\n entries.forEach((entry, index) => {\n record[keys[index]] = entry;\n });\n give(record, g);\n },\n );\n};\n","import { give, GuestType, sourceCombined, SourceType } from \"silentium\";\n\n/**\n * Join sources of strings to one source\n * https://silentium-lab.github.io/silentium-components/#/string/concatenated\n */\nexport const concatenated = (\n sources: SourceType<string>[],\n joinPartSrc: SourceType<string> = \"\",\n): SourceType<string> => {\n const result = sourceCombined(\n joinPartSrc,\n ...sources,\n )((g: GuestType<string>, joinPart, ...strings) => {\n give(strings.join(joinPart), g);\n });\n\n return result;\n};\n","import {\n firstVisit,\n GuestType,\n sourceOf,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\n\nexport const polling = <T>(\n targetSrc: SourceType<T>,\n triggerSrc: SourceType,\n): SourceType<T> => {\n const resultSrc = sourceOf<T>();\n\n const visited = firstVisit(() => {\n value(\n triggerSrc,\n systemPatron(() => {\n value(targetSrc, resultSrc);\n }),\n );\n });\n\n return (g: GuestType<T>) => {\n visited();\n resultSrc.value(g);\n };\n};\n","import { give, GuestType, SourceType, value } from \"silentium\";\n\nexport const priority = <T>(sources: SourceType<T>[]) => {\n return (g: GuestType<T>) => {\n let highestPriorityIndex = 0;\n let highestPriorityResult;\n sources.forEach((source, index) => {\n value(source, (v) => {\n if (highestPriorityIndex <= index) {\n highestPriorityIndex = index;\n highestPriorityResult = v;\n }\n });\n });\n\n if (highestPriorityResult !== undefined) {\n give(highestPriorityResult, g);\n }\n };\n};\n","import { give, GuestType, sourceCombined, SourceType } 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 const regexpMatched = (\n patternSrc: SourceType<string>,\n valueSrc: SourceType<string>,\n flagsSrc: SourceType<string> = \"\",\n): SourceType<boolean> =>\n sourceCombined(\n patternSrc,\n valueSrc,\n flagsSrc,\n )((g: GuestType<boolean>, pattern, value, flags) => {\n give(new RegExp(pattern, flags).test(value), g);\n });\n","import {\n firstVisit,\n GuestType,\n patronOnce,\n sourceOf,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\nimport { branch } from \"../behaviors\";\nimport { polling } from \"../behaviors/Polling\";\nimport { priority } from \"../behaviors/Priority\";\nimport { regexpMatched } from \"../system/RegexpMatched\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n template: T | SourceType<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 const router = <T = \"string\">(\n urlSrc: SourceType<string>,\n routesSrc: SourceType<Route<T>[]>,\n defaultSrc: SourceType<T>,\n) => {\n const resultSrc = sourceOf<T>();\n\n const visited = firstVisit(() => {\n value(\n routesSrc,\n patronOnce((routes) => {\n const prioritySrc = priority([\n defaultSrc,\n ...routes.map((r) =>\n value(\n branch(\n regexpMatched(r.pattern, urlSrc, r.patternFlags),\n r.template as SourceType,\n ),\n systemPatron((v) => {\n return v;\n }),\n ),\n ),\n ]);\n const pollingSrc = polling(prioritySrc, urlSrc);\n value(pollingSrc, systemPatron(resultSrc));\n }),\n );\n });\n\n return (g: GuestType<T>) => {\n visited();\n resultSrc.value(g);\n };\n};\n","import { give, GuestType, sourceCombined, SourceType } 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 const regexpReplaced = (\n valueSrc: SourceType<string>,\n patternSrc: SourceType<string>,\n replaceValueSrc: SourceType<string>,\n flagsSrc: SourceType<string> = \"\",\n): SourceType<string> =>\n sourceCombined(\n patternSrc,\n valueSrc,\n replaceValueSrc,\n flagsSrc,\n )((g: GuestType<string>, pattern, value, replaceValue, flags) => {\n give(String(value).replace(new RegExp(pattern, flags), replaceValue), g);\n });\n","import { give, GuestType, sourceCombined, SourceType } from \"silentium\";\n\n/**\n * First match of regexp\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport const regexpMatch = (\n patternSrc: SourceType<string>,\n valueSrc: SourceType<string>,\n flagsSrc: SourceType<string> = \"\",\n): SourceType<string[]> =>\n sourceCombined(\n patternSrc,\n valueSrc,\n flagsSrc,\n )((g: GuestType<string[]>, pattern, value, flags) => {\n const result = new RegExp(pattern, flags).exec(value);\n give(result ?? [], g);\n });\n","import { sourceAll, SourceType, systemPatron, value } 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 const set = <T extends Record<string, unknown>>(\n baseSrc: SourceType<T>,\n keySrc: SourceType<string>,\n valueSrc: SourceType<unknown>,\n) => {\n value(\n sourceAll([baseSrc, keySrc, valueSrc]),\n systemPatron(([base, key, value]) => {\n (base as Record<string, unknown>)[key] = value;\n }),\n );\n\n return baseSrc;\n};\n","import { firstVisit, give, GuestType, sourceOf } from \"silentium\";\n\n/**\n * Turn promise into source\n * https://silentium-lab.github.io/silentium-components/#/system/promised\n */\nexport const promised = <T>(\n promise: Promise<T>,\n errorGuest: GuestType<Error>,\n) => {\n const resultSrc = sourceOf<T>();\n\n const visited = firstVisit(() => {\n promise.then(resultSrc.give).catch((e) => {\n give(e, errorGuest);\n });\n });\n\n return (g: GuestType<T>) => {\n visited();\n resultSrc.value(g);\n };\n};\n","import { give, GuestType, sourceCombined, SourceType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport const and = (\n oneSrc: SourceType<boolean>,\n twoSrc: SourceType<boolean>,\n) => {\n return sourceCombined(\n oneSrc,\n twoSrc,\n )((guest: GuestType<boolean>, one, two) => {\n give(one && two, guest);\n });\n};\n","import { give, GuestType, sourceCombined, SourceType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport const or = (\n oneSrc: SourceType<boolean>,\n twoSrc: SourceType<boolean>,\n) => {\n return sourceCombined(\n oneSrc,\n twoSrc,\n )((guest: GuestType<boolean>, one, two) => {\n give(one || two, guest);\n });\n};\n","import { give, guestCast, GuestType, SourceType, value } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport const not = (baseSrc: SourceType<boolean>) => {\n return (g: GuestType<boolean>) => {\n value(\n baseSrc,\n guestCast(g, (base) => {\n give(!base, g);\n }),\n );\n };\n};\n"],"names":["value","sourceAll","systemPatron","sourceOf","give","guestCast","patronOnce","subSourceMany","sourceFiltered","subSource","sourceResettable","removePatronFromPools","firstVisit","guestDisposable","destroy","guestSync","sourceSync","source","sourceCombined","record"],"mappings":"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"}
|
|
@@ -134,6 +134,12 @@ declare const regexpMatch: (patternSrc: SourceType<string>, valueSrc: SourceType
|
|
|
134
134
|
*/
|
|
135
135
|
declare const set: <T extends Record<string, unknown>>(baseSrc: SourceType<T>, keySrc: SourceType<string>, valueSrc: SourceType<unknown>) => SourceType<T>;
|
|
136
136
|
|
|
137
|
+
/**
|
|
138
|
+
* Turn promise into source
|
|
139
|
+
* https://silentium-lab.github.io/silentium-components/#/system/promised
|
|
140
|
+
*/
|
|
141
|
+
declare const promised: <T>(promise: Promise<T>, errorGuest: GuestType<Error>) => (g: GuestType<T>) => void;
|
|
142
|
+
|
|
137
143
|
/**
|
|
138
144
|
* https://silentium-lab.github.io/silentium-components/#/boolean/and
|
|
139
145
|
*/
|
|
@@ -149,5 +155,5 @@ declare const or: (oneSrc: SourceType<boolean>, twoSrc: SourceType<boolean>) =>
|
|
|
149
155
|
*/
|
|
150
156
|
declare const not: (baseSrc: SourceType<boolean>) => (g: GuestType<boolean>) => void;
|
|
151
157
|
|
|
152
|
-
export { and, branch, concatenated, deadline, deferred, dirty, fork, groupActiveClass, hashTable, loading, lock, memo, moment, not, onlyChanged, or, path, record, regexpMatch, regexpMatched, regexpReplaced, router, set, shot, tick };
|
|
158
|
+
export { and, branch, concatenated, deadline, deferred, dirty, fork, groupActiveClass, hashTable, loading, lock, memo, moment, not, onlyChanged, or, path, promised, record, regexpMatch, regexpMatched, regexpReplaced, router, set, shot, tick };
|
|
153
159
|
export type { Route };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { value, sourceAll, systemPatron, sourceOf, patronOnce, guestCast, give, subSourceMany, sourceFiltered, subSource, sourceResettable, removePatronFromPools, firstVisit, guestDisposable, destroy, guestSync, sourceSync, source, sourceCombined
|
|
1
|
+
import { value, sourceAll, systemPatron, sourceOf, patronOnce, guestCast, give, subSourceMany, sourceFiltered, subSource, sourceResettable, removePatronFromPools, firstVisit, guestDisposable, destroy, guestSync, sourceSync, source, sourceCombined } from 'silentium';
|
|
2
2
|
|
|
3
3
|
const groupActiveClass = (activeClassSrc, activeElementSrc, groupElementsSrc) => {
|
|
4
4
|
value(
|
|
@@ -205,9 +205,9 @@ const branch = (conditionSrc, thenSrc, elseSrc) => {
|
|
|
205
205
|
systemPatron((v) => {
|
|
206
206
|
resetSrc.give(1);
|
|
207
207
|
if (v === true) {
|
|
208
|
-
value(thenSrc, result.give);
|
|
208
|
+
value(thenSrc, patronOnce(result.give));
|
|
209
209
|
} else if (elseSrc !== void 0) {
|
|
210
|
-
value(elseSrc, result.give);
|
|
210
|
+
value(elseSrc, patronOnce(result.give));
|
|
211
211
|
}
|
|
212
212
|
})
|
|
213
213
|
);
|
|
@@ -326,7 +326,7 @@ const concatenated = (sources, joinPartSrc = "") => {
|
|
|
326
326
|
return result;
|
|
327
327
|
};
|
|
328
328
|
|
|
329
|
-
const
|
|
329
|
+
const polling = (targetSrc, triggerSrc) => {
|
|
330
330
|
const resultSrc = sourceOf();
|
|
331
331
|
const visited = firstVisit(() => {
|
|
332
332
|
value(
|
|
@@ -342,14 +342,6 @@ const survey = (targetSrc, triggerSrc) => {
|
|
|
342
342
|
};
|
|
343
343
|
};
|
|
344
344
|
|
|
345
|
-
const regexpMatched = (patternSrc, valueSrc, flagsSrc = "") => sourceCombined(
|
|
346
|
-
patternSrc,
|
|
347
|
-
valueSrc,
|
|
348
|
-
flagsSrc
|
|
349
|
-
)((g, pattern, value, flags) => {
|
|
350
|
-
give(new RegExp(pattern, flags).test(value), g);
|
|
351
|
-
});
|
|
352
|
-
|
|
353
345
|
const priority = (sources) => {
|
|
354
346
|
return (g) => {
|
|
355
347
|
let highestPriorityIndex = 0;
|
|
@@ -368,6 +360,14 @@ const priority = (sources) => {
|
|
|
368
360
|
};
|
|
369
361
|
};
|
|
370
362
|
|
|
363
|
+
const regexpMatched = (patternSrc, valueSrc, flagsSrc = "") => sourceCombined(
|
|
364
|
+
patternSrc,
|
|
365
|
+
valueSrc,
|
|
366
|
+
flagsSrc
|
|
367
|
+
)((g, pattern, value, flags) => {
|
|
368
|
+
give(new RegExp(pattern, flags).test(value), g);
|
|
369
|
+
});
|
|
370
|
+
|
|
371
371
|
const router = (urlSrc, routesSrc, defaultSrc) => {
|
|
372
372
|
const resultSrc = sourceOf();
|
|
373
373
|
const visited = firstVisit(() => {
|
|
@@ -388,14 +388,8 @@ const router = (urlSrc, routesSrc, defaultSrc) => {
|
|
|
388
388
|
)
|
|
389
389
|
)
|
|
390
390
|
]);
|
|
391
|
-
const
|
|
392
|
-
value(
|
|
393
|
-
value(
|
|
394
|
-
surveySrc,
|
|
395
|
-
patron((v) => {
|
|
396
|
-
return v;
|
|
397
|
-
})
|
|
398
|
-
);
|
|
391
|
+
const pollingSrc = polling(prioritySrc, urlSrc);
|
|
392
|
+
value(pollingSrc, systemPatron(resultSrc));
|
|
399
393
|
})
|
|
400
394
|
);
|
|
401
395
|
});
|
|
@@ -433,6 +427,19 @@ const set = (baseSrc, keySrc, valueSrc) => {
|
|
|
433
427
|
return baseSrc;
|
|
434
428
|
};
|
|
435
429
|
|
|
430
|
+
const promised = (promise, errorGuest) => {
|
|
431
|
+
const resultSrc = sourceOf();
|
|
432
|
+
const visited = firstVisit(() => {
|
|
433
|
+
promise.then(resultSrc.give).catch((e) => {
|
|
434
|
+
give(e, errorGuest);
|
|
435
|
+
});
|
|
436
|
+
});
|
|
437
|
+
return (g) => {
|
|
438
|
+
visited();
|
|
439
|
+
resultSrc.value(g);
|
|
440
|
+
};
|
|
441
|
+
};
|
|
442
|
+
|
|
436
443
|
const and = (oneSrc, twoSrc) => {
|
|
437
444
|
return sourceCombined(
|
|
438
445
|
oneSrc,
|
|
@@ -462,5 +469,5 @@ const not = (baseSrc) => {
|
|
|
462
469
|
};
|
|
463
470
|
};
|
|
464
471
|
|
|
465
|
-
export { and, branch, concatenated, deadline, deferred, dirty, fork, groupActiveClass, hashTable, loading, lock, memo, moment, not, onlyChanged, or, path, record, regexpMatch, regexpMatched, regexpReplaced, router, set, shot, tick };
|
|
472
|
+
export { and, branch, concatenated, deadline, deferred, dirty, fork, groupActiveClass, hashTable, loading, lock, memo, moment, not, onlyChanged, or, path, promised, record, regexpMatch, regexpMatched, regexpReplaced, router, set, shot, tick };
|
|
466
473
|
//# sourceMappingURL=silentium-components.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silentium-components.js","sources":["../src/controls/GroupActiveClass.ts","../src/behaviors/Dirty.ts","../src/behaviors/Loading.ts","../src/behaviors/Path.ts","../src/behaviors/Deadline.ts","../src/behaviors/Tick.ts","../src/behaviors/Fork.ts","../src/behaviors/Deferred.ts","../src/behaviors/Branch.ts","../src/behaviors/Memo.ts","../src/behaviors/Lock.ts","../src/behaviors/Moment.ts","../src/behaviors/Shot.ts","../src/behaviors/OnlyChanged.ts","../src/structures/HashTable.ts","../src/structures/Record.ts","../src/strings/Concatenated.ts","../src/behaviors/Survey.ts","../src/system/RegexpMatched.ts","../src/behaviors/Priority.ts","../src/navigation/Router.ts","../src/system/RegexpReplaced.ts","../src/system/RegexpMatch.ts","../src/system/Set.ts","../src/boolean/And.ts","../src/boolean/Or.ts","../src/boolean/Not.ts"],"sourcesContent":["import { sourceAll, SourceType, systemPatron, value } from \"silentium\";\n\n/**\n * Sets activeClass to one element of group\n * and resets activeClass on other group elements\n * suitable for menu active class\n */\nexport const groupActiveClass = (\n activeClassSrc: SourceType<string>,\n activeElementSrc: SourceType<HTMLElement>,\n groupElementsSrc: SourceType<HTMLElement[]>,\n) => {\n value(\n sourceAll([activeClassSrc, activeElementSrc, groupElementsSrc]),\n systemPatron(([activeClass, activeElement, groupElements]) => {\n groupElements.forEach((el) => {\n if (el.classList) {\n el.classList.remove(activeClass);\n }\n });\n activeElement.classList.add(activeClass);\n }),\n );\n\n return groupElementsSrc;\n};\n","import {\n give,\n guestCast,\n GuestType,\n patronOnce,\n sourceAll,\n SourceChangeableType,\n sourceOf,\n SourceType,\n value,\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 const dirty = <T extends object>(\n baseEntitySource: SourceType<T>,\n becomePatronAuto = false,\n alwaysKeep: string[] = [],\n excludeKeys: string[] = [],\n): SourceChangeableType<Partial<T>> => {\n const comparingSrc = sourceOf();\n const all = sourceAll([comparingSrc, baseEntitySource]);\n\n const result = {\n give(value: T) {\n give(JSON.parse(JSON.stringify(value)), comparingSrc);\n return result;\n },\n value(guest: GuestType<Partial<T>>) {\n value(\n all,\n guestCast(guest, ([comparing, base]) => {\n if (!comparing) {\n return;\n }\n\n give(\n Object.fromEntries(\n Object.entries(comparing).filter(([key, value]) => {\n if (alwaysKeep.includes(key)) {\n return true;\n }\n if (excludeKeys.includes(key)) {\n return false;\n }\n return value !== (base as any)[key];\n }),\n ) as T,\n guest,\n );\n }),\n );\n return result;\n },\n };\n\n if (becomePatronAuto) {\n value(baseEntitySource, patronOnce(result));\n }\n\n return result;\n};\n","import {\n sourceOf,\n SourceType,\n subSourceMany,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport const loading = (\n loadingStartSource: SourceType<unknown>,\n loadingFinishSource: SourceType<unknown>,\n) => {\n const loadingSrc = sourceOf<boolean>();\n subSourceMany(loadingSrc, [loadingStartSource, loadingFinishSource]);\n\n value(\n loadingStartSource,\n systemPatron(() => {\n loadingSrc.give(true);\n }),\n );\n value(\n loadingFinishSource,\n systemPatron(() => {\n loadingSrc.give(false);\n }),\n );\n\n return loadingSrc.value;\n};\n","import {\n give,\n sourceAll,\n sourceOf,\n SourceType,\n subSourceMany,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * Return source of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport const path = <\n T extends Record<string, unknown> | Array<unknown>,\n K extends string,\n>(\n baseSrc: SourceType<T>,\n keySrc: SourceType<K>,\n) => {\n const pathSrc = sourceOf<unknown>();\n subSourceMany(pathSrc, [baseSrc, keySrc]);\n\n value(\n sourceAll([baseSrc, keySrc]),\n systemPatron(([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 give(value, pathSrc);\n }\n }),\n );\n\n return pathSrc.value;\n};\n","import {\n give,\n guestCast,\n GuestType,\n patronOnce,\n sourceFiltered,\n SourceType,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport const deadline = <T>(\n error: GuestType<Error>,\n baseSrc: SourceType<T>,\n timeoutSrc: SourceType<number>,\n) => {\n let timerHead: unknown = null;\n return (g: GuestType<T>) => {\n value(\n timeoutSrc,\n guestCast(g, (timeout) => {\n if (timerHead) {\n clearTimeout(timerHead as number);\n }\n\n let timeoutReached = false;\n\n timerHead = setTimeout(() => {\n if (timeoutReached) {\n return;\n }\n timeoutReached = true;\n give(new Error(\"Timeout reached in Deadline class\"), error);\n }, timeout);\n\n value(\n sourceFiltered(baseSrc, () => !timeoutReached),\n g,\n );\n\n value(\n baseSrc,\n patronOnce(() => {\n timeoutReached = true;\n }),\n );\n }),\n );\n };\n};\n","import {\n give,\n sourceOf,\n SourceType,\n subSource,\n systemPatron,\n value,\n} 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 const tick = <T>(baseSrc: SourceType<T>) => {\n const result = sourceOf<T>();\n subSource(result, baseSrc);\n\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 give(lastValue, result);\n lastValue = null;\n }\n });\n };\n\n value(\n baseSrc,\n systemPatron((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n }),\n );\n\n return result;\n};\n","import {\n GuestObjectType,\n patronOnce,\n removePatronFromPools,\n sourceOf,\n sourceResettable,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/dirty\n */\nexport const fork = <T, Then, Else>(\n conditionSrc: SourceType<T>,\n predicate: (v: T) => boolean,\n thenSrc: SourceType<Then>,\n elseSrc?: SourceType<Else>,\n): SourceType<Then | Else> => {\n const result = sourceOf<Then | Else>();\n const reset = sourceOf();\n const resultResettable = sourceResettable(result, reset);\n let thenPatron: GuestObjectType<Then> | undefined;\n let elsePatron: GuestObjectType<Else> | undefined;\n\n value(\n conditionSrc,\n systemPatron((v) => {\n reset.give(1);\n if (thenPatron) {\n removePatronFromPools(thenPatron);\n }\n if (elsePatron) {\n removePatronFromPools(elsePatron);\n }\n if (predicate(v)) {\n thenPatron = patronOnce(result);\n value(thenSrc, thenPatron);\n } else if (elseSrc) {\n elsePatron = patronOnce(result);\n value(elseSrc, elsePatron);\n }\n }),\n );\n\n return resultResettable;\n};\n","import {\n firstVisit,\n GuestType,\n sourceOf,\n sourceResettable,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\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 const deferred = <T>(\n baseSrc: SourceType<T>,\n triggerSrc: SourceType<unknown>,\n) => {\n const result = sourceResettable<T>(sourceOf(), baseSrc as SourceType);\n\n const visited = firstVisit(() => {\n value(\n triggerSrc,\n systemPatron(() => {\n value(baseSrc, result);\n }),\n );\n });\n\n return (g: GuestType<T>) => {\n visited();\n value(result, g);\n };\n};\n","import {\n firstVisit,\n GuestType,\n sourceOf,\n sourceResettable,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport const branch = <Then, Else>(\n conditionSrc: SourceType<boolean>,\n thenSrc: SourceType<Then>,\n elseSrc?: SourceType<Else>,\n): SourceType<Then | Else> => {\n const resetSrc = sourceOf();\n const result = sourceOf<Then | Else>();\n const resultSrc = sourceResettable(result, resetSrc);\n\n const visited = firstVisit(() => {\n value(\n conditionSrc,\n systemPatron((v) => {\n resetSrc.give(1);\n if (v === true) {\n value(thenSrc, result.give);\n } else if (elseSrc !== undefined) {\n value(elseSrc, result.give);\n }\n }),\n );\n });\n\n return (g: GuestType<Then | Else>) => {\n visited();\n resultSrc.value(g);\n };\n};\n","import { sourceOf, SourceType, systemPatron, value } 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 const memo = <T>(baseSrc: SourceType<T>) => {\n const result = sourceOf<T>();\n let lastValue: T | null = null;\n\n value(\n baseSrc,\n systemPatron((v) => {\n if (v !== lastValue) {\n result.give(v);\n lastValue = v;\n }\n }),\n );\n\n return result.value;\n};\n","import {\n destroy,\n guestDisposable,\n patronOnce,\n sourceOf,\n sourceResettable,\n SourceType,\n subSource,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport const lock = <T>(\n baseSrc: SourceType<T>,\n lockSrc: SourceType<unknown>,\n) => {\n const result = sourceOf();\n const resultResettable = sourceResettable(result, lockSrc);\n let locked = false;\n subSource(result, baseSrc);\n\n value(baseSrc, systemPatron(guestDisposable(result.give, () => locked)));\n\n value(\n lockSrc,\n patronOnce(() => {\n locked = true;\n destroy([result]);\n }),\n );\n\n return resultResettable;\n};\n","import { give, guestSync, GuestType, SourceType, value } from \"silentium\";\n\n/**\n * Get's value from source in moment of component call and than return this value every time\n * https://silentium-lab.github.io/silentium-components/#/behaviors/moment\n */\nexport const moment = <T>(\n baseSrc: SourceType<T>,\n defaultValue?: T,\n): SourceType<T> => {\n const guest = guestSync(defaultValue);\n value(baseSrc, guest);\n\n return (g: GuestType<T>) => {\n give(guest.value(), g);\n };\n};\n","import {\n sourceOf,\n sourceResettable,\n sourceSync,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * Helps to represent only last fresh value of some source, refreshing controls by shotSrc\n * https://silentium-lab.github.io/silentium-components/#/behaviors/shot\n */\nexport const shot = <T>(baseSrc: SourceType<T>, shotSrc: SourceType) => {\n const resetResult = sourceOf();\n const result = sourceOf<T>();\n\n const baseSrcSync = sourceSync(baseSrc, null);\n value(\n shotSrc,\n systemPatron(() => {\n if (baseSrcSync.syncValue() !== null) {\n result.give(baseSrcSync.syncValue() as T);\n resetResult.give(1);\n }\n }),\n );\n\n return sourceResettable(result, resetResult);\n};\n","import { give, guestCast, source, SourceType, value } 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 const onlyChanged = <T>(baseSrc: SourceType<T>) => {\n let firstValue = false;\n return source<T>((g) => {\n value(\n baseSrc,\n guestCast<T>(g, (v) => {\n if (firstValue === false) {\n firstValue = true;\n } else {\n give(v, g);\n }\n }),\n );\n });\n};\n","import {\n sourceOf,\n SourceType,\n subSource,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport const hashTable = (baseSource: SourceType<[string, unknown]>) => {\n const result = sourceOf<Record<string, unknown>>({});\n subSource(result, baseSource);\n\n value(\n baseSource,\n systemPatron(([key, value]) => {\n result.value((lastRecord) => {\n lastRecord[key] = value;\n });\n }),\n );\n\n return result.value;\n};\n","import { give, GuestType, sourceCombined, SourceType } from \"silentium\";\n\n/**\n * Returns record of data from record of sources\n * https://silentium-lab.github.io/silentium-components/#/structures/record\n */\nexport const record = (recordSrc: Record<string, SourceType>) => {\n const keys = Object.keys(recordSrc);\n return sourceCombined(...Object.values(recordSrc))(\n (g: GuestType<Record<string, any>>, ...entries: any[]) => {\n const record: Record<string, any> = {};\n entries.forEach((entry, index) => {\n record[keys[index]] = entry;\n });\n give(record, g);\n },\n );\n};\n","import { give, GuestType, sourceCombined, SourceType } from \"silentium\";\n\n/**\n * Join sources of strings to one source\n * https://silentium-lab.github.io/silentium-components/#/string/concatenated\n */\nexport const concatenated = (\n sources: SourceType<string>[],\n joinPartSrc: SourceType<string> = \"\",\n): SourceType<string> => {\n const result = sourceCombined(\n joinPartSrc,\n ...sources,\n )((g: GuestType<string>, joinPart, ...strings) => {\n give(strings.join(joinPart), g);\n });\n\n return result;\n};\n","import {\n firstVisit,\n GuestType,\n sourceOf,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\n\nexport const survey = <T>(\n targetSrc: SourceType<T>,\n triggerSrc: SourceType,\n): SourceType<T> => {\n const resultSrc = sourceOf<T>();\n\n const visited = firstVisit(() => {\n value(\n triggerSrc,\n systemPatron(() => {\n value(targetSrc, resultSrc);\n }),\n );\n });\n\n return (g: GuestType<T>) => {\n visited();\n resultSrc.value(g);\n };\n};\n","import { give, GuestType, sourceCombined, SourceType } 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 const regexpMatched = (\n patternSrc: SourceType<string>,\n valueSrc: SourceType<string>,\n flagsSrc: SourceType<string> = \"\",\n): SourceType<boolean> =>\n sourceCombined(\n patternSrc,\n valueSrc,\n flagsSrc,\n )((g: GuestType<boolean>, pattern, value, flags) => {\n give(new RegExp(pattern, flags).test(value), g);\n });\n","import { give, GuestType, SourceType, value } from \"silentium\";\n\nexport const priority = <T>(sources: SourceType<T>[]) => {\n return (g: GuestType<T>) => {\n let highestPriorityIndex = 0;\n let highestPriorityResult;\n sources.forEach((source, index) => {\n value(source, (v) => {\n if (highestPriorityIndex <= index) {\n highestPriorityIndex = index;\n highestPriorityResult = v;\n }\n });\n });\n\n if (highestPriorityResult !== undefined) {\n give(highestPriorityResult, g);\n }\n };\n};\n","import {\n firstVisit,\n GuestType,\n patron,\n patronOnce,\n sourceOf,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\nimport { survey } from \"../behaviors/Survey\";\nimport { branch } from \"../behaviors\";\nimport { regexpMatched } from \"../system/RegexpMatched\";\nimport { priority } from \"../behaviors/Priority\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n template: T | SourceType<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 const router = <T = \"string\">(\n urlSrc: SourceType<string>,\n routesSrc: SourceType<Route<T>[]>,\n defaultSrc: SourceType<T>,\n) => {\n const resultSrc = sourceOf<T>();\n\n const visited = firstVisit(() => {\n value(\n routesSrc,\n patronOnce((routes) => {\n const prioritySrc = priority([\n defaultSrc,\n ...routes.map((r) =>\n value(\n branch(\n regexpMatched(r.pattern, urlSrc, r.patternFlags),\n r.template as SourceType,\n ),\n systemPatron((v) => {\n return v;\n }),\n ),\n ),\n ]);\n const surveySrc = survey(prioritySrc, urlSrc);\n value(surveySrc, patron(resultSrc));\n value(\n surveySrc,\n patron((v) => {\n return v;\n }),\n );\n }),\n );\n });\n\n return (g: GuestType<T>) => {\n visited();\n resultSrc.value(g);\n };\n};\n","import { give, GuestType, sourceCombined, SourceType } 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 const regexpReplaced = (\n valueSrc: SourceType<string>,\n patternSrc: SourceType<string>,\n replaceValueSrc: SourceType<string>,\n flagsSrc: SourceType<string> = \"\",\n): SourceType<string> =>\n sourceCombined(\n patternSrc,\n valueSrc,\n replaceValueSrc,\n flagsSrc,\n )((g: GuestType<string>, pattern, value, replaceValue, flags) => {\n give(String(value).replace(new RegExp(pattern, flags), replaceValue), g);\n });\n","import { give, GuestType, sourceCombined, SourceType } from \"silentium\";\n\n/**\n * First match of regexp\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport const regexpMatch = (\n patternSrc: SourceType<string>,\n valueSrc: SourceType<string>,\n flagsSrc: SourceType<string> = \"\",\n): SourceType<string[]> =>\n sourceCombined(\n patternSrc,\n valueSrc,\n flagsSrc,\n )((g: GuestType<string[]>, pattern, value, flags) => {\n const result = new RegExp(pattern, flags).exec(value);\n give(result ?? [], g);\n });\n","import { sourceAll, SourceType, systemPatron, value } 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 const set = <T extends Record<string, unknown>>(\n baseSrc: SourceType<T>,\n keySrc: SourceType<string>,\n valueSrc: SourceType<unknown>,\n) => {\n value(\n sourceAll([baseSrc, keySrc, valueSrc]),\n systemPatron(([base, key, value]) => {\n (base as Record<string, unknown>)[key] = value;\n }),\n );\n\n return baseSrc;\n};\n","import { give, GuestType, sourceCombined, SourceType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport const and = (\n oneSrc: SourceType<boolean>,\n twoSrc: SourceType<boolean>,\n) => {\n return sourceCombined(\n oneSrc,\n twoSrc,\n )((guest: GuestType<boolean>, one, two) => {\n give(one && two, guest);\n });\n};\n","import { give, GuestType, sourceCombined, SourceType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport const or = (\n oneSrc: SourceType<boolean>,\n twoSrc: SourceType<boolean>,\n) => {\n return sourceCombined(\n oneSrc,\n twoSrc,\n )((guest: GuestType<boolean>, one, two) => {\n give(one || two, guest);\n });\n};\n","import { give, guestCast, GuestType, SourceType, value } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport const not = (baseSrc: SourceType<boolean>) => {\n return (g: GuestType<boolean>) => {\n value(\n baseSrc,\n guestCast(g, (base) => {\n give(!base, g);\n }),\n );\n };\n};\n"],"names":["value","record"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"silentium-components.js","sources":["../src/controls/GroupActiveClass.ts","../src/behaviors/Dirty.ts","../src/behaviors/Loading.ts","../src/behaviors/Path.ts","../src/behaviors/Deadline.ts","../src/behaviors/Tick.ts","../src/behaviors/Fork.ts","../src/behaviors/Deferred.ts","../src/behaviors/Branch.ts","../src/behaviors/Memo.ts","../src/behaviors/Lock.ts","../src/behaviors/Moment.ts","../src/behaviors/Shot.ts","../src/behaviors/OnlyChanged.ts","../src/structures/HashTable.ts","../src/structures/Record.ts","../src/strings/Concatenated.ts","../src/behaviors/Polling.ts","../src/behaviors/Priority.ts","../src/system/RegexpMatched.ts","../src/navigation/Router.ts","../src/system/RegexpReplaced.ts","../src/system/RegexpMatch.ts","../src/system/Set.ts","../src/system/Promised.ts","../src/boolean/And.ts","../src/boolean/Or.ts","../src/boolean/Not.ts"],"sourcesContent":["import { sourceAll, SourceType, systemPatron, value } from \"silentium\";\n\n/**\n * Sets activeClass to one element of group\n * and resets activeClass on other group elements\n * suitable for menu active class\n */\nexport const groupActiveClass = (\n activeClassSrc: SourceType<string>,\n activeElementSrc: SourceType<HTMLElement>,\n groupElementsSrc: SourceType<HTMLElement[]>,\n) => {\n value(\n sourceAll([activeClassSrc, activeElementSrc, groupElementsSrc]),\n systemPatron(([activeClass, activeElement, groupElements]) => {\n groupElements.forEach((el) => {\n if (el.classList) {\n el.classList.remove(activeClass);\n }\n });\n activeElement.classList.add(activeClass);\n }),\n );\n\n return groupElementsSrc;\n};\n","import {\n give,\n guestCast,\n GuestType,\n patronOnce,\n sourceAll,\n SourceChangeableType,\n sourceOf,\n SourceType,\n value,\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 const dirty = <T extends object>(\n baseEntitySource: SourceType<T>,\n becomePatronAuto = false,\n alwaysKeep: string[] = [],\n excludeKeys: string[] = [],\n): SourceChangeableType<Partial<T>> => {\n const comparingSrc = sourceOf();\n const all = sourceAll([comparingSrc, baseEntitySource]);\n\n const result = {\n give(value: T) {\n give(JSON.parse(JSON.stringify(value)), comparingSrc);\n return result;\n },\n value(guest: GuestType<Partial<T>>) {\n value(\n all,\n guestCast(guest, ([comparing, base]) => {\n if (!comparing) {\n return;\n }\n\n give(\n Object.fromEntries(\n Object.entries(comparing).filter(([key, value]) => {\n if (alwaysKeep.includes(key)) {\n return true;\n }\n if (excludeKeys.includes(key)) {\n return false;\n }\n return value !== (base as any)[key];\n }),\n ) as T,\n guest,\n );\n }),\n );\n return result;\n },\n };\n\n if (becomePatronAuto) {\n value(baseEntitySource, patronOnce(result));\n }\n\n return result;\n};\n","import {\n sourceOf,\n SourceType,\n subSourceMany,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport const loading = (\n loadingStartSource: SourceType<unknown>,\n loadingFinishSource: SourceType<unknown>,\n) => {\n const loadingSrc = sourceOf<boolean>();\n subSourceMany(loadingSrc, [loadingStartSource, loadingFinishSource]);\n\n value(\n loadingStartSource,\n systemPatron(() => {\n loadingSrc.give(true);\n }),\n );\n value(\n loadingFinishSource,\n systemPatron(() => {\n loadingSrc.give(false);\n }),\n );\n\n return loadingSrc.value;\n};\n","import {\n give,\n sourceAll,\n sourceOf,\n SourceType,\n subSourceMany,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * Return source of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport const path = <\n T extends Record<string, unknown> | Array<unknown>,\n K extends string,\n>(\n baseSrc: SourceType<T>,\n keySrc: SourceType<K>,\n) => {\n const pathSrc = sourceOf<unknown>();\n subSourceMany(pathSrc, [baseSrc, keySrc]);\n\n value(\n sourceAll([baseSrc, keySrc]),\n systemPatron(([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 give(value, pathSrc);\n }\n }),\n );\n\n return pathSrc.value;\n};\n","import {\n give,\n guestCast,\n GuestType,\n patronOnce,\n sourceFiltered,\n SourceType,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport const deadline = <T>(\n error: GuestType<Error>,\n baseSrc: SourceType<T>,\n timeoutSrc: SourceType<number>,\n) => {\n let timerHead: unknown = null;\n return (g: GuestType<T>) => {\n value(\n timeoutSrc,\n guestCast(g, (timeout) => {\n if (timerHead) {\n clearTimeout(timerHead as number);\n }\n\n let timeoutReached = false;\n\n timerHead = setTimeout(() => {\n if (timeoutReached) {\n return;\n }\n timeoutReached = true;\n give(new Error(\"Timeout reached in Deadline class\"), error);\n }, timeout);\n\n value(\n sourceFiltered(baseSrc, () => !timeoutReached),\n g,\n );\n\n value(\n baseSrc,\n patronOnce(() => {\n timeoutReached = true;\n }),\n );\n }),\n );\n };\n};\n","import {\n give,\n sourceOf,\n SourceType,\n subSource,\n systemPatron,\n value,\n} 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 const tick = <T>(baseSrc: SourceType<T>) => {\n const result = sourceOf<T>();\n subSource(result, baseSrc);\n\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 give(lastValue, result);\n lastValue = null;\n }\n });\n };\n\n value(\n baseSrc,\n systemPatron((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n }),\n );\n\n return result;\n};\n","import {\n GuestObjectType,\n patronOnce,\n removePatronFromPools,\n sourceOf,\n sourceResettable,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/dirty\n */\nexport const fork = <T, Then, Else>(\n conditionSrc: SourceType<T>,\n predicate: (v: T) => boolean,\n thenSrc: SourceType<Then>,\n elseSrc?: SourceType<Else>,\n): SourceType<Then | Else> => {\n const result = sourceOf<Then | Else>();\n const reset = sourceOf();\n const resultResettable = sourceResettable(result, reset);\n let thenPatron: GuestObjectType<Then> | undefined;\n let elsePatron: GuestObjectType<Else> | undefined;\n\n value(\n conditionSrc,\n systemPatron((v) => {\n reset.give(1);\n if (thenPatron) {\n removePatronFromPools(thenPatron);\n }\n if (elsePatron) {\n removePatronFromPools(elsePatron);\n }\n if (predicate(v)) {\n thenPatron = patronOnce(result);\n value(thenSrc, thenPatron);\n } else if (elseSrc) {\n elsePatron = patronOnce(result);\n value(elseSrc, elsePatron);\n }\n }),\n );\n\n return resultResettable;\n};\n","import {\n firstVisit,\n GuestType,\n sourceOf,\n sourceResettable,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\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 const deferred = <T>(\n baseSrc: SourceType<T>,\n triggerSrc: SourceType<unknown>,\n) => {\n const result = sourceResettable<T>(sourceOf(), baseSrc as SourceType);\n\n const visited = firstVisit(() => {\n value(\n triggerSrc,\n systemPatron(() => {\n value(baseSrc, result);\n }),\n );\n });\n\n return (g: GuestType<T>) => {\n visited();\n value(result, g);\n };\n};\n","import {\n firstVisit,\n GuestType,\n patronOnce,\n sourceOf,\n sourceResettable,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport const branch = <Then, Else>(\n conditionSrc: SourceType<boolean>,\n thenSrc: SourceType<Then>,\n elseSrc?: SourceType<Else>,\n): SourceType<Then | Else> => {\n const resetSrc = sourceOf();\n const result = sourceOf<Then | Else>();\n const resultSrc = sourceResettable(result, resetSrc);\n\n const visited = firstVisit(() => {\n value(\n conditionSrc,\n systemPatron((v) => {\n resetSrc.give(1);\n if (v === true) {\n value(thenSrc, patronOnce(result.give));\n } else if (elseSrc !== undefined) {\n value(elseSrc, patronOnce(result.give));\n }\n }),\n );\n });\n\n return (g: GuestType<Then | Else>) => {\n visited();\n resultSrc.value(g);\n };\n};\n","import { sourceOf, SourceType, systemPatron, value } 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 const memo = <T>(baseSrc: SourceType<T>) => {\n const result = sourceOf<T>();\n let lastValue: T | null = null;\n\n value(\n baseSrc,\n systemPatron((v) => {\n if (v !== lastValue) {\n result.give(v);\n lastValue = v;\n }\n }),\n );\n\n return result.value;\n};\n","import {\n destroy,\n guestDisposable,\n patronOnce,\n sourceOf,\n sourceResettable,\n SourceType,\n subSource,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport const lock = <T>(\n baseSrc: SourceType<T>,\n lockSrc: SourceType<unknown>,\n) => {\n const result = sourceOf();\n const resultResettable = sourceResettable(result, lockSrc);\n let locked = false;\n subSource(result, baseSrc);\n\n value(baseSrc, systemPatron(guestDisposable(result.give, () => locked)));\n\n value(\n lockSrc,\n patronOnce(() => {\n locked = true;\n destroy([result]);\n }),\n );\n\n return resultResettable;\n};\n","import { give, guestSync, GuestType, SourceType, value } from \"silentium\";\n\n/**\n * Get's value from source in moment of component call and than return this value every time\n * https://silentium-lab.github.io/silentium-components/#/behaviors/moment\n */\nexport const moment = <T>(\n baseSrc: SourceType<T>,\n defaultValue?: T,\n): SourceType<T> => {\n const guest = guestSync(defaultValue);\n value(baseSrc, guest);\n\n return (g: GuestType<T>) => {\n give(guest.value(), g);\n };\n};\n","import {\n sourceOf,\n sourceResettable,\n sourceSync,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * Helps to represent only last fresh value of some source, refreshing controls by shotSrc\n * https://silentium-lab.github.io/silentium-components/#/behaviors/shot\n */\nexport const shot = <T>(baseSrc: SourceType<T>, shotSrc: SourceType) => {\n const resetResult = sourceOf();\n const result = sourceOf<T>();\n\n const baseSrcSync = sourceSync(baseSrc, null);\n value(\n shotSrc,\n systemPatron(() => {\n if (baseSrcSync.syncValue() !== null) {\n result.give(baseSrcSync.syncValue() as T);\n resetResult.give(1);\n }\n }),\n );\n\n return sourceResettable(result, resetResult);\n};\n","import { give, guestCast, source, SourceType, value } 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 const onlyChanged = <T>(baseSrc: SourceType<T>) => {\n let firstValue = false;\n return source<T>((g) => {\n value(\n baseSrc,\n guestCast<T>(g, (v) => {\n if (firstValue === false) {\n firstValue = true;\n } else {\n give(v, g);\n }\n }),\n );\n });\n};\n","import {\n sourceOf,\n SourceType,\n subSource,\n systemPatron,\n value,\n} from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport const hashTable = (baseSource: SourceType<[string, unknown]>) => {\n const result = sourceOf<Record<string, unknown>>({});\n subSource(result, baseSource);\n\n value(\n baseSource,\n systemPatron(([key, value]) => {\n result.value((lastRecord) => {\n lastRecord[key] = value;\n });\n }),\n );\n\n return result.value;\n};\n","import { give, GuestType, sourceCombined, SourceType } from \"silentium\";\n\n/**\n * Returns record of data from record of sources\n * https://silentium-lab.github.io/silentium-components/#/structures/record\n */\nexport const record = (recordSrc: Record<string, SourceType>) => {\n const keys = Object.keys(recordSrc);\n return sourceCombined(...Object.values(recordSrc))(\n (g: GuestType<Record<string, any>>, ...entries: any[]) => {\n const record: Record<string, any> = {};\n entries.forEach((entry, index) => {\n record[keys[index]] = entry;\n });\n give(record, g);\n },\n );\n};\n","import { give, GuestType, sourceCombined, SourceType } from \"silentium\";\n\n/**\n * Join sources of strings to one source\n * https://silentium-lab.github.io/silentium-components/#/string/concatenated\n */\nexport const concatenated = (\n sources: SourceType<string>[],\n joinPartSrc: SourceType<string> = \"\",\n): SourceType<string> => {\n const result = sourceCombined(\n joinPartSrc,\n ...sources,\n )((g: GuestType<string>, joinPart, ...strings) => {\n give(strings.join(joinPart), g);\n });\n\n return result;\n};\n","import {\n firstVisit,\n GuestType,\n sourceOf,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\n\nexport const polling = <T>(\n targetSrc: SourceType<T>,\n triggerSrc: SourceType,\n): SourceType<T> => {\n const resultSrc = sourceOf<T>();\n\n const visited = firstVisit(() => {\n value(\n triggerSrc,\n systemPatron(() => {\n value(targetSrc, resultSrc);\n }),\n );\n });\n\n return (g: GuestType<T>) => {\n visited();\n resultSrc.value(g);\n };\n};\n","import { give, GuestType, SourceType, value } from \"silentium\";\n\nexport const priority = <T>(sources: SourceType<T>[]) => {\n return (g: GuestType<T>) => {\n let highestPriorityIndex = 0;\n let highestPriorityResult;\n sources.forEach((source, index) => {\n value(source, (v) => {\n if (highestPriorityIndex <= index) {\n highestPriorityIndex = index;\n highestPriorityResult = v;\n }\n });\n });\n\n if (highestPriorityResult !== undefined) {\n give(highestPriorityResult, g);\n }\n };\n};\n","import { give, GuestType, sourceCombined, SourceType } 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 const regexpMatched = (\n patternSrc: SourceType<string>,\n valueSrc: SourceType<string>,\n flagsSrc: SourceType<string> = \"\",\n): SourceType<boolean> =>\n sourceCombined(\n patternSrc,\n valueSrc,\n flagsSrc,\n )((g: GuestType<boolean>, pattern, value, flags) => {\n give(new RegExp(pattern, flags).test(value), g);\n });\n","import {\n firstVisit,\n GuestType,\n patronOnce,\n sourceOf,\n SourceType,\n systemPatron,\n value,\n} from \"silentium\";\nimport { branch } from \"../behaviors\";\nimport { polling } from \"../behaviors/Polling\";\nimport { priority } from \"../behaviors/Priority\";\nimport { regexpMatched } from \"../system/RegexpMatched\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n template: T | SourceType<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 const router = <T = \"string\">(\n urlSrc: SourceType<string>,\n routesSrc: SourceType<Route<T>[]>,\n defaultSrc: SourceType<T>,\n) => {\n const resultSrc = sourceOf<T>();\n\n const visited = firstVisit(() => {\n value(\n routesSrc,\n patronOnce((routes) => {\n const prioritySrc = priority([\n defaultSrc,\n ...routes.map((r) =>\n value(\n branch(\n regexpMatched(r.pattern, urlSrc, r.patternFlags),\n r.template as SourceType,\n ),\n systemPatron((v) => {\n return v;\n }),\n ),\n ),\n ]);\n const pollingSrc = polling(prioritySrc, urlSrc);\n value(pollingSrc, systemPatron(resultSrc));\n }),\n );\n });\n\n return (g: GuestType<T>) => {\n visited();\n resultSrc.value(g);\n };\n};\n","import { give, GuestType, sourceCombined, SourceType } 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 const regexpReplaced = (\n valueSrc: SourceType<string>,\n patternSrc: SourceType<string>,\n replaceValueSrc: SourceType<string>,\n flagsSrc: SourceType<string> = \"\",\n): SourceType<string> =>\n sourceCombined(\n patternSrc,\n valueSrc,\n replaceValueSrc,\n flagsSrc,\n )((g: GuestType<string>, pattern, value, replaceValue, flags) => {\n give(String(value).replace(new RegExp(pattern, flags), replaceValue), g);\n });\n","import { give, GuestType, sourceCombined, SourceType } from \"silentium\";\n\n/**\n * First match of regexp\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport const regexpMatch = (\n patternSrc: SourceType<string>,\n valueSrc: SourceType<string>,\n flagsSrc: SourceType<string> = \"\",\n): SourceType<string[]> =>\n sourceCombined(\n patternSrc,\n valueSrc,\n flagsSrc,\n )((g: GuestType<string[]>, pattern, value, flags) => {\n const result = new RegExp(pattern, flags).exec(value);\n give(result ?? [], g);\n });\n","import { sourceAll, SourceType, systemPatron, value } 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 const set = <T extends Record<string, unknown>>(\n baseSrc: SourceType<T>,\n keySrc: SourceType<string>,\n valueSrc: SourceType<unknown>,\n) => {\n value(\n sourceAll([baseSrc, keySrc, valueSrc]),\n systemPatron(([base, key, value]) => {\n (base as Record<string, unknown>)[key] = value;\n }),\n );\n\n return baseSrc;\n};\n","import { firstVisit, give, GuestType, sourceOf } from \"silentium\";\n\n/**\n * Turn promise into source\n * https://silentium-lab.github.io/silentium-components/#/system/promised\n */\nexport const promised = <T>(\n promise: Promise<T>,\n errorGuest: GuestType<Error>,\n) => {\n const resultSrc = sourceOf<T>();\n\n const visited = firstVisit(() => {\n promise.then(resultSrc.give).catch((e) => {\n give(e, errorGuest);\n });\n });\n\n return (g: GuestType<T>) => {\n visited();\n resultSrc.value(g);\n };\n};\n","import { give, GuestType, sourceCombined, SourceType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport const and = (\n oneSrc: SourceType<boolean>,\n twoSrc: SourceType<boolean>,\n) => {\n return sourceCombined(\n oneSrc,\n twoSrc,\n )((guest: GuestType<boolean>, one, two) => {\n give(one && two, guest);\n });\n};\n","import { give, GuestType, sourceCombined, SourceType } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport const or = (\n oneSrc: SourceType<boolean>,\n twoSrc: SourceType<boolean>,\n) => {\n return sourceCombined(\n oneSrc,\n twoSrc,\n )((guest: GuestType<boolean>, one, two) => {\n give(one || two, guest);\n });\n};\n","import { give, guestCast, GuestType, SourceType, value } from \"silentium\";\n\n/**\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport const not = (baseSrc: SourceType<boolean>) => {\n return (g: GuestType<boolean>) => {\n value(\n baseSrc,\n guestCast(g, (base) => {\n give(!base, g);\n }),\n );\n };\n};\n"],"names":["value","record"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"use strict";const s=(e,s,r)=>{const u=t.sourceOf(),o=t.sourceOf(),a=t.sourceResettable(o,u),n=t.firstVisit((()=>{t.value(e,t.systemPatron((e=>{u.give(1),!0===e?t.value(s,o.give):void 0!==r&&t.value(r,o.give)})))}));return e=>{n(),a.value(e)}},r=(e,s,r="")=>t.sourceCombined(e,s,r)(((e,s,r,u)=>{t.give(new RegExp(s,u).test(r),e)}));e.and=(e,s)=>t.sourceCombined(e,s)(((e,s,r)=>{t.give(s&&r,e)})),e.branch=s,e.concatenated=(e,s="")=>t.sourceCombined(s,...e)(((e,s,...r)=>{t.give(r.join(s),e)})),e.deadline=(e,s,r)=>{let u=null;return o=>{t.value(r,t.guestCast(o,(r=>{u&&clearTimeout(u);let a=!1;u=setTimeout((()=>{a||(a=!0,t.give(new Error("Timeout reached in Deadline class"),e))}),r),t.value(t.sourceFiltered(s,(()=>!a)),o),t.value(s,t.patronOnce((()=>{a=!0})))})))}},e.deferred=(e,s)=>{const r=t.sourceResettable(t.sourceOf(),e),u=t.firstVisit((()=>{t.value(s,t.systemPatron((()=>{t.value(e,r)})))}));return e=>{u(),t.value(r,e)}},e.dirty=(e,s=!1,r=[],u=[])=>{const o=t.sourceOf(),a=t.sourceAll([o,e]),n={give:e=>(t.give(JSON.parse(JSON.stringify(e)),o),n),value:e=>(t.value(a,t.guestCast(e,(([s,o])=>{s&&t.give(Object.fromEntries(Object.entries(s).filter((([e,t])=>!!r.includes(e)||!u.includes(e)&&t!==o[e]))),e)}))),n)};return s&&t.value(e,t.patronOnce(n)),n},e.fork=(e,s,r,u)=>{const o=t.sourceOf(),a=t.sourceOf(),n=t.sourceResettable(o,a);let l,c;return t.value(e,t.systemPatron((e=>{a.give(1),l&&t.removePatronFromPools(l),c&&t.removePatronFromPools(c),s(e)?(l=t.patronOnce(o),t.value(r,l)):u&&(c=t.patronOnce(o),t.value(u,c))}))),n},e.groupActiveClass=(e,s,r)=>(t.value(t.sourceAll([e,s,r]),t.systemPatron((([e,t,s])=>{s.forEach((t=>{t.classList&&t.classList.remove(e)})),t.classList.add(e)}))),r),e.hashTable=e=>{const s=t.sourceOf({});return t.subSource(s,e),t.value(e,t.systemPatron((([e,t])=>{s.value((s=>{s[e]=t}))}))),s.value},e.loading=(e,s)=>{const r=t.sourceOf();return t.subSourceMany(r,[e,s]),t.value(e,t.systemPatron((()=>{r.give(!0)}))),t.value(s,t.systemPatron((()=>{r.give(!1)}))),r.value},e.lock=(e,s)=>{const r=t.sourceOf(),u=t.sourceResettable(r,s);let o=!1;return t.subSource(r,e),t.value(e,t.systemPatron(t.guestDisposable(r.give,(()=>o)))),t.value(s,t.patronOnce((()=>{o=!0,t.destroy([r])}))),u},e.memo=e=>{const s=t.sourceOf();let r=null;return t.value(e,t.systemPatron((e=>{e!==r&&(s.give(e),r=e)}))),s.value},e.moment=(e,s)=>{const r=t.guestSync(s);return t.value(e,r),e=>{t.give(r.value(),e)}},e.not=e=>s=>{t.value(e,t.guestCast(s,(e=>{t.give(!e,s)})))},e.onlyChanged=e=>{let s=!1;return t.source((r=>{t.value(e,t.guestCast(r,(e=>{!1===s?s=!0:t.give(e,r)})))}))},e.or=(e,s)=>t.sourceCombined(e,s)(((e,s,r)=>{t.give(s||r,e)})),e.path=(e,s)=>{const r=t.sourceOf();return t.subSourceMany(r,[e,s]),t.value(t.sourceAll([e,s]),t.systemPatron((([e,s])=>{const u=s.split(".");let o=e;u.forEach((e=>{o=o[e]})),void 0!==o&&o!==e&&t.give(o,r)}))),r.value},e.record=e=>{const s=Object.keys(e);return t.sourceCombined(...Object.values(e))(((e,...r)=>{const u={};r.forEach(((e,t)=>{u[s[t]]=e})),t.give(u,e)}))},e.regexpMatch=(e,s,r="")=>t.sourceCombined(e,s,r)(((e,s,r,u)=>{const o=new RegExp(s,u).exec(r);t.give(o??[],e)})),e.regexpMatched=r,e.regexpReplaced=(e,s,r,u="")=>t.sourceCombined(s,e,r,u)(((e,s,r,u,o)=>{t.give(String(r).replace(new RegExp(s,o),u),e)})),e.router=(e,u,o)=>{const a=t.sourceOf(),n=t.firstVisit((()=>{t.value(u,t.patronOnce((u=>{var n;const l=((e,s)=>{const r=t.sourceOf(),u=t.firstVisit((()=>{t.value(s,t.systemPatron((()=>{t.value(e,r)})))}));return e=>{u(),r.value(e)}})((n=[o,...u.map((u=>t.value(s(r(u.pattern,e,u.patternFlags),u.template),t.systemPatron((e=>e)))))],e=>{let s,r=0;n.forEach(((e,u)=>{t.value(e,(e=>{r<=u&&(r=u,s=e)}))})),void 0!==s&&t.give(s,e)}),e);t.value(l,t.
|
|
1
|
+
!function(e,t){"use strict";const s=(e,s,r)=>{const u=t.sourceOf(),o=t.sourceOf(),a=t.sourceResettable(o,u),n=t.firstVisit((()=>{t.value(e,t.systemPatron((e=>{u.give(1),!0===e?t.value(s,t.patronOnce(o.give)):void 0!==r&&t.value(r,t.patronOnce(o.give))})))}));return e=>{n(),a.value(e)}},r=(e,s,r="")=>t.sourceCombined(e,s,r)(((e,s,r,u)=>{t.give(new RegExp(s,u).test(r),e)}));e.and=(e,s)=>t.sourceCombined(e,s)(((e,s,r)=>{t.give(s&&r,e)})),e.branch=s,e.concatenated=(e,s="")=>t.sourceCombined(s,...e)(((e,s,...r)=>{t.give(r.join(s),e)})),e.deadline=(e,s,r)=>{let u=null;return o=>{t.value(r,t.guestCast(o,(r=>{u&&clearTimeout(u);let a=!1;u=setTimeout((()=>{a||(a=!0,t.give(new Error("Timeout reached in Deadline class"),e))}),r),t.value(t.sourceFiltered(s,(()=>!a)),o),t.value(s,t.patronOnce((()=>{a=!0})))})))}},e.deferred=(e,s)=>{const r=t.sourceResettable(t.sourceOf(),e),u=t.firstVisit((()=>{t.value(s,t.systemPatron((()=>{t.value(e,r)})))}));return e=>{u(),t.value(r,e)}},e.dirty=(e,s=!1,r=[],u=[])=>{const o=t.sourceOf(),a=t.sourceAll([o,e]),n={give:e=>(t.give(JSON.parse(JSON.stringify(e)),o),n),value:e=>(t.value(a,t.guestCast(e,(([s,o])=>{s&&t.give(Object.fromEntries(Object.entries(s).filter((([e,t])=>!!r.includes(e)||!u.includes(e)&&t!==o[e]))),e)}))),n)};return s&&t.value(e,t.patronOnce(n)),n},e.fork=(e,s,r,u)=>{const o=t.sourceOf(),a=t.sourceOf(),n=t.sourceResettable(o,a);let l,c;return t.value(e,t.systemPatron((e=>{a.give(1),l&&t.removePatronFromPools(l),c&&t.removePatronFromPools(c),s(e)?(l=t.patronOnce(o),t.value(r,l)):u&&(c=t.patronOnce(o),t.value(u,c))}))),n},e.groupActiveClass=(e,s,r)=>(t.value(t.sourceAll([e,s,r]),t.systemPatron((([e,t,s])=>{s.forEach((t=>{t.classList&&t.classList.remove(e)})),t.classList.add(e)}))),r),e.hashTable=e=>{const s=t.sourceOf({});return t.subSource(s,e),t.value(e,t.systemPatron((([e,t])=>{s.value((s=>{s[e]=t}))}))),s.value},e.loading=(e,s)=>{const r=t.sourceOf();return t.subSourceMany(r,[e,s]),t.value(e,t.systemPatron((()=>{r.give(!0)}))),t.value(s,t.systemPatron((()=>{r.give(!1)}))),r.value},e.lock=(e,s)=>{const r=t.sourceOf(),u=t.sourceResettable(r,s);let o=!1;return t.subSource(r,e),t.value(e,t.systemPatron(t.guestDisposable(r.give,(()=>o)))),t.value(s,t.patronOnce((()=>{o=!0,t.destroy([r])}))),u},e.memo=e=>{const s=t.sourceOf();let r=null;return t.value(e,t.systemPatron((e=>{e!==r&&(s.give(e),r=e)}))),s.value},e.moment=(e,s)=>{const r=t.guestSync(s);return t.value(e,r),e=>{t.give(r.value(),e)}},e.not=e=>s=>{t.value(e,t.guestCast(s,(e=>{t.give(!e,s)})))},e.onlyChanged=e=>{let s=!1;return t.source((r=>{t.value(e,t.guestCast(r,(e=>{!1===s?s=!0:t.give(e,r)})))}))},e.or=(e,s)=>t.sourceCombined(e,s)(((e,s,r)=>{t.give(s||r,e)})),e.path=(e,s)=>{const r=t.sourceOf();return t.subSourceMany(r,[e,s]),t.value(t.sourceAll([e,s]),t.systemPatron((([e,s])=>{const u=s.split(".");let o=e;u.forEach((e=>{o=o[e]})),void 0!==o&&o!==e&&t.give(o,r)}))),r.value},e.promised=(e,s)=>{const r=t.sourceOf(),u=t.firstVisit((()=>{e.then(r.give).catch((e=>{t.give(e,s)}))}));return e=>{u(),r.value(e)}},e.record=e=>{const s=Object.keys(e);return t.sourceCombined(...Object.values(e))(((e,...r)=>{const u={};r.forEach(((e,t)=>{u[s[t]]=e})),t.give(u,e)}))},e.regexpMatch=(e,s,r="")=>t.sourceCombined(e,s,r)(((e,s,r,u)=>{const o=new RegExp(s,u).exec(r);t.give(o??[],e)})),e.regexpMatched=r,e.regexpReplaced=(e,s,r,u="")=>t.sourceCombined(s,e,r,u)(((e,s,r,u,o)=>{t.give(String(r).replace(new RegExp(s,o),u),e)})),e.router=(e,u,o)=>{const a=t.sourceOf(),n=t.firstVisit((()=>{t.value(u,t.patronOnce((u=>{var n;const l=((e,s)=>{const r=t.sourceOf(),u=t.firstVisit((()=>{t.value(s,t.systemPatron((()=>{t.value(e,r)})))}));return e=>{u(),r.value(e)}})((n=[o,...u.map((u=>t.value(s(r(u.pattern,e,u.patternFlags),u.template),t.systemPatron((e=>e)))))],e=>{let s,r=0;n.forEach(((e,u)=>{t.value(e,(e=>{r<=u&&(r=u,s=e)}))})),void 0!==s&&t.give(s,e)}),e);t.value(l,t.systemPatron(a))})))}));return e=>{n(),a.value(e)}},e.set=(e,s,r)=>(t.value(t.sourceAll([e,s,r]),t.systemPatron((([e,t,s])=>{e[t]=s}))),e),e.shot=(e,s)=>{const r=t.sourceOf(),u=t.sourceOf(),o=t.sourceSync(e,null);return t.value(s,t.systemPatron((()=>{null!==o.syncValue()&&(u.give(o.syncValue()),r.give(1))}))),t.sourceResettable(u,r)},e.tick=e=>{const s=t.sourceOf();t.subSource(s,e);let r=!1,u=null;return t.value(e,t.systemPatron((e=>{u=e,r||(r=!0,queueMicrotask((()=>{r=!1,null!==u&&(t.give(u,s),u=null)})))}))),s}}({},silentium);
|