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 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" != "main" ]; then
6
- echo "Error: Current branch not 'main'. Release impossible you are on '$current_branch'."
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 — 'main'."
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 survey = (targetSrc, triggerSrc) => {
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 surveySrc = survey(prioritySrc, urlSrc);
394
- silentium.value(surveySrc, silentium.patron(resultSrc));
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":";;;;AAOO,MAAM,gBAAmB,GAAA,CAC9B,cACA,EAAA,gBAAA,EACA,gBACG,KAAA;AACH,EAAAA,eAAA;AAAA,IACEC,mBAAU,CAAA,CAAC,cAAgB,EAAA,gBAAA,EAAkB,gBAAgB,CAAC,CAAA;AAAA,IAC9DC,uBAAa,CAAC,CAAC,WAAa,EAAA,aAAA,EAAe,aAAa,CAAM,KAAA;AAC5D,MAAc,aAAA,CAAA,OAAA,CAAQ,CAAC,EAAO,KAAA;AAC5B,QAAA,IAAI,GAAG,SAAW,EAAA;AAChB,UAAG,EAAA,CAAA,SAAA,CAAU,OAAO,WAAW,CAAA;AAAA;AACjC,OACD,CAAA;AACD,MAAc,aAAA,CAAA,SAAA,CAAU,IAAI,WAAW,CAAA;AAAA,KACxC;AAAA,GACH;AAEA,EAAO,OAAA,gBAAA;AACT;;ACRa,MAAA,KAAA,GAAQ,CACnB,gBAAA,EACA,gBAAmB,GAAA,KAAA,EACnB,aAAuB,EAAC,EACxB,WAAwB,GAAA,EACa,KAAA;AACrC,EAAA,MAAM,eAAeC,kBAAS,EAAA;AAC9B,EAAA,MAAM,GAAM,GAAAF,mBAAA,CAAU,CAAC,YAAA,EAAc,gBAAgB,CAAC,CAAA;AAEtD,EAAA,MAAM,MAAS,GAAA;AAAA,IACb,KAAKD,MAAU,EAAA;AACb,MAAAI,cAAA,CAAK,KAAK,KAAM,CAAA,IAAA,CAAK,UAAUJ,MAAK,CAAC,GAAG,YAAY,CAAA;AACpD,MAAO,OAAA,MAAA;AAAA,KACT;AAAA,IACA,MAAM,KAA8B,EAAA;AAClC,MAAAA,eAAA;AAAA,QACE,GAAA;AAAA,QACAK,oBAAU,KAAO,EAAA,CAAC,CAAC,SAAA,EAAW,IAAI,CAAM,KAAA;AACtC,UAAA,IAAI,CAAC,SAAW,EAAA;AACd,YAAA;AAAA;AAGF,UAAAD,cAAA;AAAA,YACE,MAAO,CAAA,WAAA;AAAA,cACL,MAAA,CAAO,QAAQ,SAAS,CAAA,CAAE,OAAO,CAAC,CAAC,GAAKJ,EAAAA,MAAK,CAAM,KAAA;AACjD,gBAAI,IAAA,UAAA,CAAW,QAAS,CAAA,GAAG,CAAG,EAAA;AAC5B,kBAAO,OAAA,IAAA;AAAA;AAET,gBAAI,IAAA,WAAA,CAAY,QAAS,CAAA,GAAG,CAAG,EAAA;AAC7B,kBAAO,OAAA,KAAA;AAAA;AAET,gBAAOA,OAAAA,MAAAA,KAAW,KAAa,GAAG,CAAA;AAAA,eACnC;AAAA,aACH;AAAA,YACA;AAAA,WACF;AAAA,SACD;AAAA,OACH;AACA,MAAO,OAAA,MAAA;AAAA;AACT,GACF;AAEA,EAAA,IAAI,gBAAkB,EAAA;AACpB,IAAMA,eAAA,CAAA,gBAAA,EAAkBM,oBAAW,CAAA,MAAM,CAAC,CAAA;AAAA;AAG5C,EAAO,OAAA,MAAA;AACT;;ACrDa,MAAA,OAAA,GAAU,CACrB,kBAAA,EACA,mBACG,KAAA;AACH,EAAA,MAAM,aAAaH,kBAAkB,EAAA;AACrC,EAAAI,uBAAA,CAAc,UAAY,EAAA,CAAC,kBAAoB,EAAA,mBAAmB,CAAC,CAAA;AAEnE,EAAAP,eAAA;AAAA,IACE,kBAAA;AAAA,IACAE,uBAAa,MAAM;AACjB,MAAA,UAAA,CAAW,KAAK,IAAI,CAAA;AAAA,KACrB;AAAA,GACH;AACA,EAAAF,eAAA;AAAA,IACE,mBAAA;AAAA,IACAE,uBAAa,MAAM;AACjB,MAAA,UAAA,CAAW,KAAK,KAAK,CAAA;AAAA,KACtB;AAAA,GACH;AAEA,EAAA,OAAO,UAAW,CAAA,KAAA;AACpB;;AClBa,MAAA,IAAA,GAAO,CAIlB,OAAA,EACA,MACG,KAAA;AACH,EAAA,MAAM,UAAUC,kBAAkB,EAAA;AAClC,EAAAI,uBAAA,CAAc,OAAS,EAAA,CAAC,OAAS,EAAA,MAAM,CAAC,CAAA;AAExC,EAAAP,eAAA;AAAA,IACEC,mBAAU,CAAA,CAAC,OAAS,EAAA,MAAM,CAAC,CAAA;AAAA,IAC3BC,sBAAa,CAAA,CAAC,CAAC,IAAA,EAAM,GAAG,CAAM,KAAA;AAC5B,MAAM,MAAA,SAAA,GAAY,GAAI,CAAA,KAAA,CAAM,GAAG,CAAA;AAC/B,MAAA,IAAIF,MAAiB,GAAA,IAAA;AACrB,MAAU,SAAA,CAAA,OAAA,CAAQ,CAAC,QAAa,KAAA;AAC9B,QAAAA,MAAAA,GAASA,OAAkC,QAAQ,CAAA;AAAA,OACpD,CAAA;AAED,MAAIA,IAAAA,MAAAA,KAAU,MAAaA,IAAAA,MAAAA,KAAU,IAAM,EAAA;AACzC,QAAAI,cAAA,CAAKJ,QAAO,OAAO,CAAA;AAAA;AACrB,KACD;AAAA,GACH;AAEA,EAAA,OAAO,OAAQ,CAAA,KAAA;AACjB;;AC3BO,MAAM,QAAW,GAAA,CACtB,KACA,EAAA,OAAA,EACA,UACG,KAAA;AACH,EAAA,IAAI,SAAqB,GAAA,IAAA;AACzB,EAAA,OAAO,CAAC,CAAoB,KAAA;AAC1B,IAAAA,eAAA;AAAA,MACE,UAAA;AAAA,MACAK,mBAAA,CAAU,CAAG,EAAA,CAAC,OAAY,KAAA;AACxB,QAAA,IAAI,SAAW,EAAA;AACb,UAAA,YAAA,CAAa,SAAmB,CAAA;AAAA;AAGlC,QAAA,IAAI,cAAiB,GAAA,KAAA;AAErB,QAAA,SAAA,GAAY,WAAW,MAAM;AAC3B,UAAA,IAAI,cAAgB,EAAA;AAClB,YAAA;AAAA;AAEF,UAAiB,cAAA,GAAA,IAAA;AACjB,UAAAD,cAAA,CAAK,IAAI,KAAA,CAAM,mCAAmC,CAAA,EAAG,KAAK,CAAA;AAAA,WACzD,OAAO,CAAA;AAEV,QAAAJ,eAAA;AAAA,UACEQ,wBAAe,CAAA,OAAA,EAAS,MAAM,CAAC,cAAc,CAAA;AAAA,UAC7C;AAAA,SACF;AAEA,QAAAR,eAAA;AAAA,UACE,OAAA;AAAA,UACAM,qBAAW,MAAM;AACf,YAAiB,cAAA,GAAA,IAAA;AAAA,WAClB;AAAA,SACH;AAAA,OACD;AAAA,KACH;AAAA,GACF;AACF;;ACtCa,MAAA,IAAA,GAAO,CAAI,OAA2B,KAAA;AACjD,EAAA,MAAM,SAASH,kBAAY,EAAA;AAC3B,EAAAM,mBAAA,CAAU,QAAQ,OAAO,CAAA;AAEzB,EAAA,IAAI,kBAAqB,GAAA,KAAA;AACzB,EAAA,IAAI,SAAsB,GAAA,IAAA;AAE1B,EAAA,MAAM,oBAAoB,MAAM;AAC9B,IAAqB,kBAAA,GAAA,IAAA;AACrB,IAAA,cAAA,CAAe,MAAM;AACnB,MAAqB,kBAAA,GAAA,KAAA;AACrB,MAAA,IAAI,cAAc,IAAM,EAAA;AACtB,QAAAL,cAAA,CAAK,WAAW,MAAM,CAAA;AACtB,QAAY,SAAA,GAAA,IAAA;AAAA;AACd,KACD,CAAA;AAAA,GACH;AAEA,EAAAJ,eAAA;AAAA,IACE,OAAA;AAAA,IACAE,sBAAA,CAAa,CAAC,CAAM,KAAA;AAClB,MAAY,SAAA,GAAA,CAAA;AACZ,MAAA,IAAI,CAAC,kBAAoB,EAAA;AACvB,QAAkB,iBAAA,EAAA;AAAA;AACpB,KACD;AAAA,GACH;AAEA,EAAO,OAAA,MAAA;AACT;;AC5BO,MAAM,IAAO,GAAA,CAClB,YACA,EAAA,SAAA,EACA,SACA,OAC4B,KAAA;AAC5B,EAAA,MAAM,SAASC,kBAAsB,EAAA;AACrC,EAAA,MAAM,QAAQA,kBAAS,EAAA;AACvB,EAAM,MAAA,gBAAA,GAAmBO,0BAAiB,CAAA,MAAA,EAAQ,KAAK,CAAA;AACvD,EAAI,IAAA,UAAA;AACJ,EAAI,IAAA,UAAA;AAEJ,EAAAV,eAAA;AAAA,IACE,YAAA;AAAA,IACAE,sBAAA,CAAa,CAAC,CAAM,KAAA;AAClB,MAAA,KAAA,CAAM,KAAK,CAAC,CAAA;AACZ,MAAA,IAAI,UAAY,EAAA;AACd,QAAAS,+BAAA,CAAsB,UAAU,CAAA;AAAA;AAElC,MAAA,IAAI,UAAY,EAAA;AACd,QAAAA,+BAAA,CAAsB,UAAU,CAAA;AAAA;AAElC,MAAI,IAAA,SAAA,CAAU,CAAC,CAAG,EAAA;AAChB,QAAA,UAAA,GAAaL,qBAAW,MAAM,CAAA;AAC9B,QAAAN,eAAA,CAAM,SAAS,UAAU,CAAA;AAAA,iBAChB,OAAS,EAAA;AAClB,QAAA,UAAA,GAAaM,qBAAW,MAAM,CAAA;AAC9B,QAAAN,eAAA,CAAM,SAAS,UAAU,CAAA;AAAA;AAC3B,KACD;AAAA,GACH;AAEA,EAAO,OAAA,gBAAA;AACT;;ACjCa,MAAA,QAAA,GAAW,CACtB,OAAA,EACA,UACG,KAAA;AACH,EAAA,MAAM,MAAS,GAAAU,0BAAA,CAAoBP,kBAAS,EAAA,EAAG,OAAqB,CAAA;AAEpE,EAAM,MAAA,OAAA,GAAUS,qBAAW,MAAM;AAC/B,IAAAZ,eAAA;AAAA,MACE,UAAA;AAAA,MACAE,uBAAa,MAAM;AACjB,QAAAF,eAAA,CAAM,SAAS,MAAM,CAAA;AAAA,OACtB;AAAA,KACH;AAAA,GACD,CAAA;AAED,EAAA,OAAO,CAAC,CAAoB,KAAA;AAC1B,IAAQ,OAAA,EAAA;AACR,IAAAA,eAAA,CAAM,QAAQ,CAAC,CAAA;AAAA,GACjB;AACF;;ACnBO,MAAM,MAAS,GAAA,CACpB,YACA,EAAA,OAAA,EACA,OAC4B,KAAA;AAC5B,EAAA,MAAM,WAAWG,kBAAS,EAAA;AAC1B,EAAA,MAAM,SAASA,kBAAsB,EAAA;AACrC,EAAM,MAAA,SAAA,GAAYO,0BAAiB,CAAA,MAAA,EAAQ,QAAQ,CAAA;AAEnD,EAAM,MAAA,OAAA,GAAUE,qBAAW,MAAM;AAC/B,IAAAZ,eAAA;AAAA,MACE,YAAA;AAAA,MACAE,sBAAA,CAAa,CAAC,CAAM,KAAA;AAClB,QAAA,QAAA,CAAS,KAAK,CAAC,CAAA;AACf,QAAA,IAAI,MAAM,IAAM,EAAA;AACd,UAAAF,eAAA,CAAM,OAAS,EAAAM,oBAAA,CAAW,MAAO,CAAA,IAAI,CAAC,CAAA;AAAA,SACxC,MAAA,IAAW,YAAY,MAAW,EAAA;AAChC,UAAAN,eAAA,CAAM,OAAS,EAAAM,oBAAA,CAAW,MAAO,CAAA,IAAI,CAAC,CAAA;AAAA;AACxC,OACD;AAAA,KACH;AAAA,GACD,CAAA;AAED,EAAA,OAAO,CAAC,CAA8B,KAAA;AACpC,IAAQ,OAAA,EAAA;AACR,IAAA,SAAA,CAAU,MAAM,CAAC,CAAA;AAAA,GACnB;AACF;;ACnCa,MAAA,IAAA,GAAO,CAAI,OAA2B,KAAA;AACjD,EAAA,MAAM,SAASH,kBAAY,EAAA;AAC3B,EAAA,IAAI,SAAsB,GAAA,IAAA;AAE1B,EAAAH,eAAA;AAAA,IACE,OAAA;AAAA,IACAE,sBAAA,CAAa,CAAC,CAAM,KAAA;AAClB,MAAA,IAAI,MAAM,SAAW,EAAA;AACnB,QAAA,MAAA,CAAO,KAAK,CAAC,CAAA;AACb,QAAY,SAAA,GAAA,CAAA;AAAA;AACd,KACD;AAAA,GACH;AAEA,EAAA,OAAO,MAAO,CAAA,KAAA;AAChB;;ACNa,MAAA,IAAA,GAAO,CAClB,OAAA,EACA,OACG,KAAA;AACH,EAAA,MAAM,SAASC,kBAAS,EAAA;AACxB,EAAM,MAAA,gBAAA,GAAmBO,0BAAiB,CAAA,MAAA,EAAQ,OAAO,CAAA;AACzD,EAAA,IAAI,MAAS,GAAA,KAAA;AACb,EAAAD,mBAAA,CAAU,QAAQ,OAAO,CAAA;AAEzB,EAAMT,eAAA,CAAA,OAAA,EAASE,uBAAaW,yBAAgB,CAAA,MAAA,CAAO,MAAM,MAAM,MAAM,CAAC,CAAC,CAAA;AAEvE,EAAAb,eAAA;AAAA,IACE,OAAA;AAAA,IACAM,qBAAW,MAAM;AACf,MAAS,MAAA,GAAA,IAAA;AACT,MAAQQ,iBAAA,CAAA,CAAC,MAAM,CAAC,CAAA;AAAA,KACjB;AAAA,GACH;AAEA,EAAO,OAAA,gBAAA;AACT;;AC7Ba,MAAA,MAAA,GAAS,CACpB,OAAA,EACA,YACkB,KAAA;AAClB,EAAM,MAAA,KAAA,GAAQC,oBAAU,YAAY,CAAA;AACpC,EAAAf,eAAA,CAAM,SAAS,KAAK,CAAA;AAEpB,EAAA,OAAO,CAAC,CAAoB,KAAA;AAC1B,IAAKI,cAAA,CAAA,KAAA,CAAM,KAAM,EAAA,EAAG,CAAC,CAAA;AAAA,GACvB;AACF;;ACHa,MAAA,IAAA,GAAO,CAAI,OAAA,EAAwB,OAAwB,KAAA;AACtE,EAAA,MAAM,cAAcD,kBAAS,EAAA;AAC7B,EAAA,MAAM,SAASA,kBAAY,EAAA;AAE3B,EAAM,MAAA,WAAA,GAAca,oBAAW,CAAA,OAAA,EAAS,IAAI,CAAA;AAC5C,EAAAhB,eAAA;AAAA,IACE,OAAA;AAAA,IACAE,uBAAa,MAAM;AACjB,MAAI,IAAA,WAAA,CAAY,SAAU,EAAA,KAAM,IAAM,EAAA;AACpC,QAAO,MAAA,CAAA,IAAA,CAAK,WAAY,CAAA,SAAA,EAAgB,CAAA;AACxC,QAAA,WAAA,CAAY,KAAK,CAAC,CAAA;AAAA;AACpB,KACD;AAAA,GACH;AAEA,EAAO,OAAAQ,0BAAA,CAAiB,QAAQ,WAAW,CAAA;AAC7C;;ACvBa,MAAA,WAAA,GAAc,CAAI,OAA2B,KAAA;AACxD,EAAA,IAAI,UAAa,GAAA,KAAA;AACjB,EAAO,OAAAO,gBAAA,CAAU,CAAC,CAAM,KAAA;AACtB,IAAAjB,eAAA;AAAA,MACE,OAAA;AAAA,MACAK,mBAAA,CAAa,CAAG,EAAA,CAAC,CAAM,KAAA;AACrB,QAAA,IAAI,eAAe,KAAO,EAAA;AACxB,UAAa,UAAA,GAAA,IAAA;AAAA,SACR,MAAA;AACL,UAAAD,cAAA,CAAK,GAAG,CAAC,CAAA;AAAA;AACX,OACD;AAAA,KACH;AAAA,GACD,CAAA;AACH;;ACTa,MAAA,SAAA,GAAY,CAAC,UAA8C,KAAA;AACtE,EAAM,MAAA,MAAA,GAASD,kBAAkC,CAAA,EAAE,CAAA;AACnD,EAAAM,mBAAA,CAAU,QAAQ,UAAU,CAAA;AAE5B,EAAAT,eAAA;AAAA,IACE,UAAA;AAAA,IACAE,sBAAa,CAAA,CAAC,CAAC,GAAA,EAAKF,MAAK,CAAM,KAAA;AAC7B,MAAO,MAAA,CAAA,KAAA,CAAM,CAAC,UAAe,KAAA;AAC3B,QAAA,UAAA,CAAW,GAAG,CAAIA,GAAAA,MAAAA;AAAA,OACnB,CAAA;AAAA,KACF;AAAA,GACH;AAEA,EAAA,OAAO,MAAO,CAAA,KAAA;AAChB;;ACnBa,MAAA,MAAA,GAAS,CAAC,SAA0C,KAAA;AAC/D,EAAM,MAAA,IAAA,GAAO,MAAO,CAAA,IAAA,CAAK,SAAS,CAAA;AAClC,EAAA,OAAOkB,wBAAe,CAAA,GAAG,MAAO,CAAA,MAAA,CAAO,SAAS,CAAC,CAAA;AAAA,IAC/C,CAAC,MAAsC,OAAmB,KAAA;AACxD,MAAA,MAAMC,UAA8B,EAAC;AACrC,MAAQ,OAAA,CAAA,OAAA,CAAQ,CAAC,KAAA,EAAO,KAAU,KAAA;AAChC,QAAAA,OAAO,CAAA,IAAA,CAAK,KAAK,CAAC,CAAI,GAAA,KAAA;AAAA,OACvB,CAAA;AACD,MAAAf,cAAA,CAAKe,SAAQ,CAAC,CAAA;AAAA;AAChB,GACF;AACF;;ACXO,MAAM,YAAe,GAAA,CAC1B,OACA,EAAA,WAAA,GAAkC,EACX,KAAA;AACvB,EAAA,MAAM,MAAS,GAAAD,wBAAA;AAAA,IACb,WAAA;AAAA,IACA,GAAG;AAAA,GACH,CAAA,CAAC,CAAsB,EAAA,QAAA,EAAA,GAAa,OAAY,KAAA;AAChD,IAAAd,cAAA,CAAK,OAAQ,CAAA,IAAA,CAAK,QAAQ,CAAA,EAAG,CAAC,CAAA;AAAA,GAC/B,CAAA;AAED,EAAO,OAAA,MAAA;AACT;;ACTa,MAAA,OAAA,GAAU,CACrB,SAAA,EACA,UACkB,KAAA;AAClB,EAAA,MAAM,YAAYD,kBAAY,EAAA;AAE9B,EAAM,MAAA,OAAA,GAAUS,qBAAW,MAAM;AAC/B,IAAAZ,eAAA;AAAA,MACE,UAAA;AAAA,MACAE,uBAAa,MAAM;AACjB,QAAAF,eAAA,CAAM,WAAW,SAAS,CAAA;AAAA,OAC3B;AAAA,KACH;AAAA,GACD,CAAA;AAED,EAAA,OAAO,CAAC,CAAoB,KAAA;AAC1B,IAAQ,OAAA,EAAA;AACR,IAAA,SAAA,CAAU,MAAM,CAAC,CAAA;AAAA,GACnB;AACF,CAAA;;AC1Ba,MAAA,QAAA,GAAW,CAAI,OAA6B,KAAA;AACvD,EAAA,OAAO,CAAC,CAAoB,KAAA;AAC1B,IAAA,IAAI,oBAAuB,GAAA,CAAA;AAC3B,IAAI,IAAA,qBAAA;AACJ,IAAQ,OAAA,CAAA,OAAA,CAAQ,CAAC,MAAA,EAAQ,KAAU,KAAA;AACjC,MAAMA,eAAA,CAAA,MAAA,EAAQ,CAAC,CAAM,KAAA;AACnB,QAAA,IAAI,wBAAwB,KAAO,EAAA;AACjC,UAAuB,oBAAA,GAAA,KAAA;AACvB,UAAwB,qBAAA,GAAA,CAAA;AAAA;AAC1B,OACD,CAAA;AAAA,KACF,CAAA;AAED,IAAA,IAAI,0BAA0B,MAAW,EAAA;AACvC,MAAAI,cAAA,CAAK,uBAAuB,CAAC,CAAA;AAAA;AAC/B,GACF;AACF,CAAA;;ACbO,MAAM,aAAgB,GAAA,CAC3B,UACA,EAAA,QAAA,EACA,WAA+B,EAE/B,KAAAc,wBAAA;AAAA,EACE,UAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,CAAE,CAAC,CAAA,EAAuB,OAAS,EAAA,KAAA,EAAO,KAAU,KAAA;AAClD,EAAKd,cAAA,CAAA,IAAI,OAAO,OAAS,EAAA,KAAK,EAAE,IAAK,CAAA,KAAK,GAAG,CAAC,CAAA;AAChD,CAAC;;ACOI,MAAM,MAAS,GAAA,CACpB,MACA,EAAA,SAAA,EACA,UACG,KAAA;AACH,EAAA,MAAM,YAAYD,kBAAY,EAAA;AAE9B,EAAM,MAAA,OAAA,GAAUS,qBAAW,MAAM;AAC/B,IAAAZ,eAAA;AAAA,MACE,SAAA;AAAA,MACAM,oBAAA,CAAW,CAAC,MAAW,KAAA;AACrB,QAAA,MAAM,cAAc,QAAS,CAAA;AAAA,UAC3B,UAAA;AAAA,UACA,GAAG,MAAO,CAAA,GAAA;AAAA,YAAI,CAAC,CACb,KAAAN,eAAA;AAAA,cACE,MAAA;AAAA,gBACE,aAAc,CAAA,CAAA,CAAE,OAAS,EAAA,MAAA,EAAQ,EAAE,YAAY,CAAA;AAAA,gBAC/C,CAAE,CAAA;AAAA,eACJ;AAAA,cACAE,sBAAA,CAAa,CAAC,CAAM,KAAA;AAClB,gBAAO,OAAA,CAAA;AAAA,eACR;AAAA;AACH;AACF,SACD,CAAA;AACD,QAAM,MAAA,UAAA,GAAa,OAAQ,CAAA,WAAA,EAAa,MAAM,CAAA;AAC9C,QAAMF,eAAA,CAAA,UAAA,EAAYE,sBAAa,CAAA,SAAS,CAAC,CAAA;AAAA,OAC1C;AAAA,KACH;AAAA,GACD,CAAA;AAED,EAAA,OAAO,CAAC,CAAoB,KAAA;AAC1B,IAAQ,OAAA,EAAA;AACR,IAAA,SAAA,CAAU,MAAM,CAAC,CAAA;AAAA,GACnB;AACF;;ACrDO,MAAM,iBAAiB,CAC5B,QAAA,EACA,UACA,EAAA,eAAA,EACA,WAA+B,EAE/B,KAAAgB,wBAAA;AAAA,EACE,UAAA;AAAA,EACA,QAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF,CAAA,CAAE,CAAC,CAAA,EAAsB,OAAS,EAAA,KAAA,EAAO,cAAc,KAAU,KAAA;AAC/D,EAAKd,cAAA,CAAA,MAAA,CAAO,KAAK,CAAA,CAAE,OAAQ,CAAA,IAAI,MAAO,CAAA,OAAA,EAAS,KAAK,CAAA,EAAG,YAAY,CAAA,EAAG,CAAC,CAAA;AACzE,CAAC;;ACbI,MAAM,WAAc,GAAA,CACzB,UACA,EAAA,QAAA,EACA,WAA+B,EAE/B,KAAAc,wBAAA;AAAA,EACE,UAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,CAAE,CAAC,CAAA,EAAwB,OAAS,EAAA,KAAA,EAAO,KAAU,KAAA;AACnD,EAAA,MAAM,SAAS,IAAI,MAAA,CAAO,SAAS,KAAK,CAAA,CAAE,KAAK,KAAK,CAAA;AACpD,EAAKd,cAAA,CAAA,MAAA,IAAU,EAAC,EAAG,CAAC,CAAA;AACtB,CAAC;;ACZI,MAAM,GAAM,GAAA,CACjB,OACA,EAAA,MAAA,EACA,QACG,KAAA;AACH,EAAAJ,eAAA;AAAA,IACEC,mBAAU,CAAA,CAAC,OAAS,EAAA,MAAA,EAAQ,QAAQ,CAAC,CAAA;AAAA,IACrCC,uBAAa,CAAC,CAAC,IAAM,EAAA,GAAA,EAAKF,MAAK,CAAM,KAAA;AACnC,MAAC,IAAA,CAAiC,GAAG,CAAIA,GAAAA,MAAAA;AAAA,KAC1C;AAAA,GACH;AAEA,EAAO,OAAA,OAAA;AACT;;ACba,MAAA,QAAA,GAAW,CACtB,OAAA,EACA,UACG,KAAA;AACH,EAAA,MAAM,YAAYG,kBAAY,EAAA;AAE9B,EAAM,MAAA,OAAA,GAAUS,qBAAW,MAAM;AAC/B,IAAA,OAAA,CAAQ,KAAK,SAAU,CAAA,IAAI,CAAE,CAAA,KAAA,CAAM,CAAC,CAAM,KAAA;AACxC,MAAAR,cAAA,CAAK,GAAG,UAAU,CAAA;AAAA,KACnB,CAAA;AAAA,GACF,CAAA;AAED,EAAA,OAAO,CAAC,CAAoB,KAAA;AAC1B,IAAQ,OAAA,EAAA;AACR,IAAA,SAAA,CAAU,MAAM,CAAC,CAAA;AAAA,GACnB;AACF;;ACjBa,MAAA,GAAA,GAAM,CACjB,MAAA,EACA,MACG,KAAA;AACH,EAAO,OAAAc,wBAAA;AAAA,IACL,MAAA;AAAA,IACA;AAAA,GACA,CAAA,CAAC,KAA2B,EAAA,GAAA,EAAK,GAAQ,KAAA;AACzC,IAAKd,cAAA,CAAA,GAAA,IAAO,KAAK,KAAK,CAAA;AAAA,GACvB,CAAA;AACH;;ACVa,MAAA,EAAA,GAAK,CAChB,MAAA,EACA,MACG,KAAA;AACH,EAAO,OAAAc,wBAAA;AAAA,IACL,MAAA;AAAA,IACA;AAAA,GACA,CAAA,CAAC,KAA2B,EAAA,GAAA,EAAK,GAAQ,KAAA;AACzC,IAAKd,cAAA,CAAA,GAAA,IAAO,KAAK,KAAK,CAAA;AAAA,GACvB,CAAA;AACH;;ACVa,MAAA,GAAA,GAAM,CAAC,OAAiC,KAAA;AACnD,EAAA,OAAO,CAAC,CAA0B,KAAA;AAChC,IAAAJ,eAAA;AAAA,MACE,OAAA;AAAA,MACAK,mBAAA,CAAU,CAAG,EAAA,CAAC,IAAS,KAAA;AACrB,QAAKD,cAAA,CAAA,CAAC,MAAM,CAAC,CAAA;AAAA,OACd;AAAA,KACH;AAAA,GACF;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -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, patron } from 'silentium';
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 survey = (targetSrc, triggerSrc) => {
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 surveySrc = survey(prioritySrc, urlSrc);
392
- value(surveySrc, patron(resultSrc));
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.patron(a)),t.value(l,t.patron((e=>e)))})))}));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);
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);