silentium-components 0.0.13 → 0.0.17
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 +33 -0
- package/commitizen.cjs +7 -7
- package/dist/silentium-components.cjs +135 -2
- package/dist/silentium-components.cjs.map +1 -1
- package/dist/silentium-components.d.ts +57 -2
- package/dist/silentium-components.js +127 -4
- package/dist/silentium-components.js.map +1 -1
- package/dist/silentium-components.min.js +1 -1
- package/dist/silentium-components.min.mjs +1 -1
- package/dist/silentium-components.min.mjs.map +1 -1
- package/dist/silentium-components.mjs +127 -4
- package/dist/silentium-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/behaviors/Branch.branchesDontAffectResult.test.ts +23 -0
- package/src/behaviors/Branch.test.ts +20 -0
- package/src/behaviors/Branch.ts +35 -0
- package/src/behaviors/Deferred.test.ts +28 -0
- package/src/behaviors/Deferred.ts +27 -0
- package/src/behaviors/Fork.ts +3 -2
- package/src/behaviors/Lock.test.ts +26 -0
- package/src/behaviors/Lock.ts +36 -0
- package/src/behaviors/Memo.test.ts +24 -0
- package/src/behaviors/Memo.ts +22 -0
- package/src/behaviors/Moment.test.ts +24 -0
- package/src/behaviors/Moment.ts +17 -0
- package/src/behaviors/Path.ts +7 -4
- package/src/behaviors/index.ts +5 -0
- package/src/boolean/And.test.ts +22 -0
- package/src/boolean/And.ts +16 -0
- package/src/boolean/Bool.ts +7 -0
- package/src/boolean/Not.test.ts +12 -0
- package/src/boolean/Not.ts +15 -0
- package/src/boolean/Or.test.ts +22 -0
- package/src/boolean/Or.ts +16 -0
- package/src/boolean/index.ts +3 -0
- package/src/index.ts +1 -0
- package/src/structures/Record.concatenated.test.ts +40 -0
- package/src/system/RegexpMatch._group.test.ts +11 -0
- package/src/system/RegexpMatch.test.ts +11 -0
- package/src/system/RegexpMatch.ts +19 -0
- package/src/system/Set.test.ts +22 -0
- package/src/system/Set.ts +20 -0
- package/src/system/index.ts +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,39 @@
|
|
|
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.17](https://github.com/silentium-lab/silentium-components/compare/v0.0.16...v0.0.17) (2025-05-19)
|
|
6
|
+
|
|
7
|
+
### [0.0.16](https://github.com/silentium-lab/silentium-components/compare/v0.0.15...v0.0.16) (2025-05-19)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* **36-issue:** lock component created ([4cb378b](https://github.com/silentium-lab/silentium-components/commit/4cb378b4ca9ae9a4f7d228a56e7ed04c36251466))
|
|
13
|
+
* **39-issue:** moment component created ([57f5be1](https://github.com/silentium-lab/silentium-components/commit/57f5be1e9ee7d1a1d90db1e80999097f4883a152))
|
|
14
|
+
* **main:** fix export of memo component ([0871eb7](https://github.com/silentium-lab/silentium-components/commit/0871eb7f444152feb561e59a4037241dfcab3f1a))
|
|
15
|
+
|
|
16
|
+
### [0.0.15](https://github.com/silentium-lab/silentium-components/compare/v0.0.14...v0.0.15) (2025-05-17)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
* **30-issue:** done deferred component ([df72fa1](https://github.com/silentium-lab/silentium-components/commit/df72fa19c66e9d369eff95d6914a8dba721697c3))
|
|
22
|
+
* **32-issue:** branch component ([8f55bd5](https://github.com/silentium-lab/silentium-components/commit/8f55bd5def2726cce099e8824cf7faecc503f426))
|
|
23
|
+
* **34-issue:** memo component ([caea021](https://github.com/silentium-lab/silentium-components/commit/caea02105b7c9518bd0fcd39db4ab4cdd60de6fa))
|
|
24
|
+
* **main:** changes around branch and fork logic ([7291e6d](https://github.com/silentium-lab/silentium-components/commit/7291e6da91f484f1f1dc31544e6664d232f261c8))
|
|
25
|
+
* **main:** export set comopnent ([4a221d0](https://github.com/silentium-lab/silentium-components/commit/4a221d0c1090756ee3596dc1025f6e45c5f3da1b))
|
|
26
|
+
|
|
27
|
+
### [0.0.14](https://github.com/silentium-lab/silentium-components/compare/v0.0.13...v0.0.14) (2025-05-12)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### Features
|
|
31
|
+
|
|
32
|
+
* **28-issue:** set component created ([0b5d04c](https://github.com/silentium-lab/silentium-components/commit/0b5d04c52e5be844529baf51dc96bd037799351c))
|
|
33
|
+
* **main:** boolean export added ([278d8f2](https://github.com/silentium-lab/silentium-components/commit/278d8f2ecaee9fab81a8090b47fa5483b33fc204))
|
|
34
|
+
* **main:** not component done ([b53a434](https://github.com/silentium-lab/silentium-components/commit/b53a434171f8b6b0f4ab5d03e97c72edd8ae60c1))
|
|
35
|
+
* **main:** regexp match ([e4974be](https://github.com/silentium-lab/silentium-components/commit/e4974be38b29a14b85a0220527347ec1ddbf2ab8))
|
|
36
|
+
* **main:** work on or and and sources ([58d15d1](https://github.com/silentium-lab/silentium-components/commit/58d15d1236d74313c3fc128b2537125623d786c2))
|
|
37
|
+
|
|
5
38
|
### [0.0.13](https://github.com/silentium-lab/silentium-components/compare/v0.0.12...v0.0.13) (2025-05-09)
|
|
6
39
|
|
|
7
40
|
|
package/commitizen.cjs
CHANGED
|
@@ -9,31 +9,31 @@ module.exports = {
|
|
|
9
9
|
types: [
|
|
10
10
|
{
|
|
11
11
|
value: "feat",
|
|
12
|
-
name: "feat:
|
|
12
|
+
name: "feat: Adding new functionality",
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
value: "refactor",
|
|
16
|
-
name: "refactor:
|
|
16
|
+
name: "refactor: Code edits without fixing bugs or adding new features",
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
value: "fix",
|
|
20
|
-
name: "fix:
|
|
20
|
+
name: "fix: Bug fixes",
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
value: "build",
|
|
24
|
-
name: "build:
|
|
24
|
+
name: "build: Building a project or changing external dependencies",
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
27
|
value: "docs",
|
|
28
|
-
name: "docs:
|
|
28
|
+
name: "docs: Documentation Update",
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
value: "docs",
|
|
32
|
-
name: "docs:
|
|
32
|
+
name: "docs: Edits to the project documentation or individual parts of the project",
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
value: "test",
|
|
36
|
-
name: "test:
|
|
36
|
+
name: "test: Adding tests",
|
|
37
37
|
},
|
|
38
38
|
],
|
|
39
39
|
scopes: [
|
|
@@ -170,10 +170,10 @@ const fork = (conditionSrc, predicate, thenSrc, elseSrc) => {
|
|
|
170
170
|
silentium.removePatronFromPools(elsePatron);
|
|
171
171
|
}
|
|
172
172
|
if (predicate(v)) {
|
|
173
|
-
thenPatron = silentium.
|
|
173
|
+
thenPatron = silentium.patronOnce(result);
|
|
174
174
|
silentium.value(thenSrc, thenPatron);
|
|
175
175
|
} else if (elseSrc) {
|
|
176
|
-
elsePatron = silentium.
|
|
176
|
+
elsePatron = silentium.patronOnce(result);
|
|
177
177
|
silentium.value(elseSrc, elsePatron);
|
|
178
178
|
}
|
|
179
179
|
})
|
|
@@ -181,6 +181,81 @@ const fork = (conditionSrc, predicate, thenSrc, elseSrc) => {
|
|
|
181
181
|
return resultResettable;
|
|
182
182
|
};
|
|
183
183
|
|
|
184
|
+
const deferred = (baseSrc, triggerSrc) => {
|
|
185
|
+
const result = silentium.sourceResettable(silentium.sourceOf(), baseSrc);
|
|
186
|
+
silentium.value(
|
|
187
|
+
triggerSrc,
|
|
188
|
+
silentium.patron(() => {
|
|
189
|
+
silentium.value(baseSrc, result);
|
|
190
|
+
})
|
|
191
|
+
);
|
|
192
|
+
return result.value;
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
const branch = (conditionSrc, thenSrc, elseSrc) => {
|
|
196
|
+
const result = silentium.sourceOf();
|
|
197
|
+
silentium.value(
|
|
198
|
+
conditionSrc,
|
|
199
|
+
silentium.patron((v) => {
|
|
200
|
+
if (v === true) {
|
|
201
|
+
silentium.value(
|
|
202
|
+
thenSrc,
|
|
203
|
+
silentium.patronOnce((v2) => {
|
|
204
|
+
result.give(v2);
|
|
205
|
+
})
|
|
206
|
+
);
|
|
207
|
+
} else if (elseSrc !== void 0) {
|
|
208
|
+
silentium.value(
|
|
209
|
+
elseSrc,
|
|
210
|
+
silentium.patronOnce((v2) => {
|
|
211
|
+
result.give(v2);
|
|
212
|
+
})
|
|
213
|
+
);
|
|
214
|
+
}
|
|
215
|
+
})
|
|
216
|
+
);
|
|
217
|
+
return result.value;
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
const memo = (baseSrc) => {
|
|
221
|
+
const result = silentium.sourceOf();
|
|
222
|
+
let lastValue = null;
|
|
223
|
+
silentium.value(
|
|
224
|
+
baseSrc,
|
|
225
|
+
silentium.patron((v) => {
|
|
226
|
+
if (v !== lastValue) {
|
|
227
|
+
result.give(v);
|
|
228
|
+
lastValue = v;
|
|
229
|
+
}
|
|
230
|
+
})
|
|
231
|
+
);
|
|
232
|
+
return result.value;
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
const lock = (baseSrc, lockSrc) => {
|
|
236
|
+
const result = silentium.sourceOf();
|
|
237
|
+
const resultResettable = silentium.sourceResettable(result, lockSrc);
|
|
238
|
+
let locked = false;
|
|
239
|
+
silentium.subSource(result, baseSrc);
|
|
240
|
+
silentium.value(baseSrc, silentium.patron(silentium.guestDisposable(result.give, () => locked)));
|
|
241
|
+
silentium.value(
|
|
242
|
+
lockSrc,
|
|
243
|
+
silentium.patronOnce(() => {
|
|
244
|
+
locked = true;
|
|
245
|
+
silentium.destroy([result]);
|
|
246
|
+
})
|
|
247
|
+
);
|
|
248
|
+
return resultResettable.value;
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
const moment = (baseSrc, defaultValue) => {
|
|
252
|
+
const guest = silentium.guestSync(defaultValue);
|
|
253
|
+
silentium.value(baseSrc, guest);
|
|
254
|
+
return (g) => {
|
|
255
|
+
silentium.give(guest.value(), g);
|
|
256
|
+
};
|
|
257
|
+
};
|
|
258
|
+
|
|
184
259
|
const hashTable = (baseSource) => {
|
|
185
260
|
const result = silentium.sourceOf({});
|
|
186
261
|
silentium.subSource(result, baseSource);
|
|
@@ -260,17 +335,75 @@ const regexpReplaced = (valueSrc, patternSrc, replaceValueSrc, flagsSrc = "") =>
|
|
|
260
335
|
silentium.give(String(value).replace(new RegExp(pattern, flags), replaceValue), g);
|
|
261
336
|
});
|
|
262
337
|
|
|
338
|
+
const regexpMatch = (patternSrc, valueSrc, flagsSrc = "") => silentium.sourceCombined(
|
|
339
|
+
patternSrc,
|
|
340
|
+
valueSrc,
|
|
341
|
+
flagsSrc
|
|
342
|
+
)((g, pattern, value, flags) => {
|
|
343
|
+
const result = new RegExp(pattern, flags).exec(value);
|
|
344
|
+
silentium.give(result ?? [], g);
|
|
345
|
+
});
|
|
346
|
+
|
|
347
|
+
const set = (baseSrc, keySrc, valueSrc) => {
|
|
348
|
+
silentium.value(
|
|
349
|
+
silentium.sourceAll([baseSrc, keySrc, valueSrc]),
|
|
350
|
+
silentium.patron(([base, key, value2]) => {
|
|
351
|
+
base[key] = value2;
|
|
352
|
+
})
|
|
353
|
+
);
|
|
354
|
+
return baseSrc;
|
|
355
|
+
};
|
|
356
|
+
|
|
357
|
+
const and = (oneSrc, twoSrc) => {
|
|
358
|
+
return silentium.sourceCombined(
|
|
359
|
+
oneSrc,
|
|
360
|
+
twoSrc
|
|
361
|
+
)((guest, one, two) => {
|
|
362
|
+
silentium.give(one && two, guest);
|
|
363
|
+
});
|
|
364
|
+
};
|
|
365
|
+
|
|
366
|
+
const or = (oneSrc, twoSrc) => {
|
|
367
|
+
return silentium.sourceCombined(
|
|
368
|
+
oneSrc,
|
|
369
|
+
twoSrc
|
|
370
|
+
)((guest, one, two) => {
|
|
371
|
+
silentium.give(one || two, guest);
|
|
372
|
+
});
|
|
373
|
+
};
|
|
374
|
+
|
|
375
|
+
const not = (baseSrc) => {
|
|
376
|
+
return (g) => {
|
|
377
|
+
silentium.value(
|
|
378
|
+
baseSrc,
|
|
379
|
+
silentium.guestCast(g, (base) => {
|
|
380
|
+
silentium.give(!base, g);
|
|
381
|
+
})
|
|
382
|
+
);
|
|
383
|
+
};
|
|
384
|
+
};
|
|
385
|
+
|
|
386
|
+
exports.and = and;
|
|
387
|
+
exports.branch = branch;
|
|
263
388
|
exports.concatenated = concatenated;
|
|
264
389
|
exports.deadline = deadline;
|
|
390
|
+
exports.deferred = deferred;
|
|
265
391
|
exports.dirty = dirty;
|
|
266
392
|
exports.fork = fork;
|
|
267
393
|
exports.groupActiveClass = groupActiveClass;
|
|
268
394
|
exports.hashTable = hashTable;
|
|
269
395
|
exports.loading = loading;
|
|
396
|
+
exports.lock = lock;
|
|
397
|
+
exports.memo = memo;
|
|
398
|
+
exports.moment = moment;
|
|
399
|
+
exports.not = not;
|
|
400
|
+
exports.or = or;
|
|
270
401
|
exports.path = path;
|
|
271
402
|
exports.record = record;
|
|
403
|
+
exports.regexpMatch = regexpMatch;
|
|
272
404
|
exports.regexpMatched = regexpMatched;
|
|
273
405
|
exports.regexpReplaced = regexpReplaced;
|
|
274
406
|
exports.router = router;
|
|
407
|
+
exports.set = set;
|
|
275
408
|
exports.tick = tick;
|
|
276
409
|
//# sourceMappingURL=silentium-components.cjs.map
|
|
@@ -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/structures/HashTable.ts","../src/structures/Record.ts","../src/strings/Concatenated.ts","../src/system/RegexpMatched.ts","../src/navigation/Router.ts","../src/system/RegexpReplaced.ts"],"sourcesContent":["import { patron, sourceAll, SourceType, 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 patron(([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 { patron, sourceOf, SourceType, subSourceMany, value } 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 patron(() => {\n loadingSrc.give(true);\n }),\n );\n value(\n loadingFinishSource,\n patron(() => {\n loadingSrc.give(false);\n }),\n );\n\n return loadingSrc.value;\n};\n","import {\n give,\n patron,\n sourceAll,\n sourceOf,\n SourceType,\n subSourceMany,\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 = <T extends Record<string, unknown>, K extends string>(\n baseSrc: SourceType<T>,\n keySrc: SourceType<K>,\n) => {\n const pathSrc = sourceOf<T[K]>();\n subSourceMany(pathSrc, [baseSrc, keySrc]);\n\n value(\n sourceAll([baseSrc, keySrc]),\n patron(([base, key]) => {\n const keyChunks = key.split(\".\");\n let value: unknown = base;\n keyChunks.forEach((keyChunk) => {\n value = (value as T)[keyChunk];\n });\n\n if (value !== undefined && value !== base) {\n give(value as T[K], 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 patron,\n sourceOf,\n SourceType,\n subSource,\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 patron((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n }),\n );\n\n return result;\n};\n","import {\n sourceOf,\n SourceType,\n sourceResettable,\n value,\n patron,\n removePatronFromPools,\n GuestObjectType,\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 patron((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 = patron(result);\n value(thenSrc, thenPatron);\n } else if (elseSrc) {\n elsePatron = patron(result);\n value(elseSrc, elsePatron);\n }\n }),\n );\n\n return resultResettable;\n};\n","import { patron, sourceOf, SourceType, subSource, value } 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 patron(([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 { 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 patron,\n sourceAny,\n sourceChain,\n sourceFiltered,\n sourceOf,\n SourceType,\n value,\n} from \"silentium\";\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 value(\n routesSrc,\n patron((routes) => {\n value(\n sourceAny([\n sourceChain(urlSrc, defaultSrc as T),\n ...routes.map((r) =>\n sourceChain(\n sourceFiltered(\n regexpMatched(r.pattern, urlSrc, r.patternFlags),\n Boolean,\n ),\n r.template,\n ),\n ),\n ]),\n patron(resultSrc),\n );\n }),\n );\n\n return resultSrc.value;\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"],"names":["value","sourceAll","patron","sourceOf","give","guestCast","patronOnce","subSourceMany","sourceFiltered","subSource","sourceResettable","removePatronFromPools","sourceCombined","record","sourceAny","sourceChain"],"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,iBAAO,CAAC,CAAC,WAAa,EAAA,aAAA,EAAe,aAAa,CAAM,KAAA;AACtD,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;;AC3Da,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,iBAAO,MAAM;AACX,MAAA,UAAA,CAAW,KAAK,IAAI,CAAA;AAAA,KACrB;AAAA,GACH;AACA,EAAAF,eAAA;AAAA,IACE,mBAAA;AAAA,IACAE,iBAAO,MAAM;AACX,MAAA,UAAA,CAAW,KAAK,KAAK,CAAA;AAAA,KACtB;AAAA,GACH;AAEA,EAAA,OAAO,UAAW,CAAA,KAAA;AACpB;;ACZa,MAAA,IAAA,GAAO,CAClB,OAAA,EACA,MACG,KAAA;AACH,EAAA,MAAM,UAAUC,kBAAe,EAAA;AAC/B,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,gBAAO,CAAA,CAAC,CAAC,IAAA,EAAM,GAAG,CAAM,KAAA;AACtB,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,OAAY,QAAQ,CAAA;AAAA,OAC9B,CAAA;AAED,MAAIA,IAAAA,MAAAA,KAAU,MAAaA,IAAAA,MAAAA,KAAU,IAAM,EAAA;AACzC,QAAAI,cAAA,CAAKJ,QAAe,OAAO,CAAA;AAAA;AAC7B,KACD;AAAA,GACH;AAEA,EAAA,OAAO,OAAQ,CAAA,KAAA;AACjB;;ACxBO,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,gBAAA,CAAO,CAAC,CAAM,KAAA;AACZ,MAAY,SAAA,GAAA,CAAA;AACZ,MAAA,IAAI,CAAC,kBAAoB,EAAA;AACvB,QAAkB,iBAAA,EAAA;AAAA;AACpB,KACD;AAAA,GACH;AAEA,EAAO,OAAA,MAAA;AACT;;AC7BO,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,gBAAA,CAAO,CAAC,CAAM,KAAA;AACZ,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,GAAaT,iBAAO,MAAM,CAAA;AAC1B,QAAAF,eAAA,CAAM,SAAS,UAAU,CAAA;AAAA,iBAChB,OAAS,EAAA;AAClB,QAAA,UAAA,GAAaE,iBAAO,MAAM,CAAA;AAC1B,QAAAF,eAAA,CAAM,SAAS,UAAU,CAAA;AAAA;AAC3B,KACD;AAAA,GACH;AAEA,EAAO,OAAA,gBAAA;AACT;;ACzCa,MAAA,SAAA,GAAY,CAAC,UAA8C,KAAA;AACtE,EAAM,MAAA,MAAA,GAASG,kBAAkC,CAAA,EAAE,CAAA;AACnD,EAAAM,mBAAA,CAAU,QAAQ,UAAU,CAAA;AAE5B,EAAAT,eAAA;AAAA,IACE,UAAA;AAAA,IACAE,gBAAO,CAAA,CAAC,CAAC,GAAA,EAAKF,MAAK,CAAM,KAAA;AACvB,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;;ACba,MAAA,MAAA,GAAS,CAAC,SAA0C,KAAA;AAC/D,EAAM,MAAA,IAAA,GAAO,MAAO,CAAA,IAAA,CAAK,SAAS,CAAA;AAClC,EAAA,OAAOY,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,MAAAT,cAAA,CAAKS,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,IAAAR,cAAA,CAAK,OAAQ,CAAA,IAAA,CAAK,QAAQ,CAAA,EAAG,CAAC,CAAA;AAAA,GAC/B,CAAA;AAED,EAAO,OAAA,MAAA;AACT;;ACZO,MAAM,aAAgB,GAAA,CAC3B,UACA,EAAA,QAAA,EACA,WAA+B,EAE/B,KAAAQ,wBAAA;AAAA,EACE,UAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,CAAE,CAAC,CAAA,EAAuB,OAAS,EAAA,KAAA,EAAO,KAAU,KAAA;AAClD,EAAKR,cAAA,CAAA,IAAI,OAAO,OAAS,EAAA,KAAK,EAAE,IAAK,CAAA,KAAK,GAAG,CAAC,CAAA;AAChD,CAAC;;ACII,MAAM,MAAS,GAAA,CACpB,MACA,EAAA,SAAA,EACA,UACG,KAAA;AACH,EAAA,MAAM,YAAYD,kBAAY,EAAA;AAE9B,EAAAH,eAAA;AAAA,IACE,SAAA;AAAA,IACAE,gBAAA,CAAO,CAAC,MAAW,KAAA;AACjB,MAAAF,eAAA;AAAA,QACEc,mBAAU,CAAA;AAAA,UACRC,qBAAA,CAAY,QAAQ,UAAe,CAAA;AAAA,UACnC,GAAG,MAAO,CAAA,GAAA;AAAA,YAAI,CAAC,CACb,KAAAA,qBAAA;AAAA,cACEP,wBAAA;AAAA,gBACE,aAAc,CAAA,CAAA,CAAE,OAAS,EAAA,MAAA,EAAQ,EAAE,YAAY,CAAA;AAAA,gBAC/C;AAAA,eACF;AAAA,cACA,CAAE,CAAA;AAAA;AACJ;AACF,SACD,CAAA;AAAA,QACDN,iBAAO,SAAS;AAAA,OAClB;AAAA,KACD;AAAA,GACH;AAEA,EAAA,OAAO,SAAU,CAAA,KAAA;AACnB;;AC5CO,MAAM,iBAAiB,CAC5B,QAAA,EACA,UACA,EAAA,eAAA,EACA,WAA+B,EAE/B,KAAAU,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,EAAKR,cAAA,CAAA,MAAA,CAAO,KAAK,CAAA,CAAE,OAAQ,CAAA,IAAI,MAAO,CAAA,OAAA,EAAS,KAAK,CAAA,EAAG,YAAY,CAAA,EAAG,CAAC,CAAA;AACzE,CAAC;;;;;;;;;;;;;;;;"}
|
|
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/structures/HashTable.ts","../src/structures/Record.ts","../src/strings/Concatenated.ts","../src/system/RegexpMatched.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 { patron, sourceAll, SourceType, 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 patron(([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 { patron, sourceOf, SourceType, subSourceMany, value } 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 patron(() => {\n loadingSrc.give(true);\n }),\n );\n value(\n loadingFinishSource,\n patron(() => {\n loadingSrc.give(false);\n }),\n );\n\n return loadingSrc.value;\n};\n","import {\n give,\n patron,\n sourceAll,\n sourceOf,\n SourceType,\n subSourceMany,\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 patron(([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 patron,\n sourceOf,\n SourceType,\n subSource,\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 patron((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n }),\n );\n\n return result;\n};\n","import {\n sourceOf,\n SourceType,\n sourceResettable,\n value,\n patron,\n removePatronFromPools,\n GuestObjectType,\n patronOnce,\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 patron((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 patron,\n sourceOf,\n sourceResettable,\n SourceType,\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 value(\n triggerSrc,\n patron(() => {\n value(baseSrc, result);\n }),\n );\n\n return result.value;\n};\n","import { patron, patronOnce, sourceOf, SourceType, value } 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 result = sourceOf<Then | Else>();\n\n value(\n conditionSrc,\n patron((v) => {\n if (v === true) {\n value(\n thenSrc,\n patronOnce((v) => {\n result.give(v);\n }),\n );\n } else if (elseSrc !== undefined) {\n value(\n elseSrc,\n patronOnce((v) => {\n result.give(v);\n }),\n );\n }\n }),\n );\n\n return result.value;\n};\n","import { patron, sourceOf, SourceType, 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 patron((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 patron,\n patronOnce,\n sourceOf,\n sourceResettable,\n SourceType,\n subSource,\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, patron(guestDisposable(result.give, () => locked)));\n\n value(\n lockSrc,\n patronOnce(() => {\n locked = true;\n destroy([result]);\n }),\n );\n\n return resultResettable.value;\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 { patron, sourceOf, SourceType, subSource, value } 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 patron(([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 { 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 patron,\n sourceAny,\n sourceChain,\n sourceFiltered,\n sourceOf,\n SourceType,\n value,\n} from \"silentium\";\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 value(\n routesSrc,\n patron((routes) => {\n value(\n sourceAny([\n sourceChain(urlSrc, defaultSrc as T),\n ...routes.map((r) =>\n sourceChain(\n sourceFiltered(\n regexpMatched(r.pattern, urlSrc, r.patternFlags),\n Boolean,\n ),\n r.template,\n ),\n ),\n ]),\n patron(resultSrc),\n );\n }),\n );\n\n return resultSrc.value;\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 { patron, sourceAll, SourceType, 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 patron(([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","patron","sourceOf","give","guestCast","patronOnce","subSourceMany","sourceFiltered","subSource","sourceResettable","removePatronFromPools","v","guestDisposable","destroy","guestSync","sourceCombined","record","sourceAny","sourceChain"],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ declare const loading: (loadingStartSource: SourceType<unknown>, loadingFinishSo
|
|
|
24
24
|
* Return source of record path
|
|
25
25
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/path
|
|
26
26
|
*/
|
|
27
|
-
declare const path: <T extends Record<string, unknown>, K extends string>(baseSrc: SourceType<T>, keySrc: SourceType<K>) => silentium.SourceExecutorType<
|
|
27
|
+
declare const path: <T extends Record<string, unknown> | Array<unknown>, K extends string>(baseSrc: SourceType<T>, keySrc: SourceType<K>) => silentium.SourceExecutorType<unknown>;
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
30
|
* https://silentium-lab.github.io/silentium-components/#/behaviors/path
|
|
@@ -42,6 +42,34 @@ declare const tick: <T>(baseSrc: SourceType<T>) => silentium.SourceChangeableTyp
|
|
|
42
42
|
*/
|
|
43
43
|
declare const fork: <T, Then, Else>(conditionSrc: SourceType<T>, predicate: (v: T) => boolean, thenSrc: SourceType<Then>, elseSrc?: SourceType<Else>) => SourceType<Then | Else>;
|
|
44
44
|
|
|
45
|
+
/**
|
|
46
|
+
* Defer one source after another, gives values of baseSrc only once when triggerSrc responds
|
|
47
|
+
* https://silentium-lab.github.io/silentium-components/#/behaviors/deferred
|
|
48
|
+
*/
|
|
49
|
+
declare const deferred: <T>(baseSrc: SourceType<T>, triggerSrc: SourceType<unknown>) => silentium.SourceExecutorType<T>;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* https://silentium-lab.github.io/silentium-components/#/behaviors/branch
|
|
53
|
+
*/
|
|
54
|
+
declare const branch: <Then, Else>(conditionSrc: SourceType<boolean>, thenSrc: SourceType<Then>, elseSrc?: SourceType<Else>) => SourceType<Then | Else>;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Didn't respond if new value of baseSrc equals to old value
|
|
58
|
+
* https://silentium-lab.github.io/silentium-components/#/behaviors/memo
|
|
59
|
+
*/
|
|
60
|
+
declare const memo: <T>(baseSrc: SourceType<T>) => silentium.SourceExecutorType<T>;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* https://silentium-lab.github.io/silentium-components/#/behaviors/lock
|
|
64
|
+
*/
|
|
65
|
+
declare const lock: <T>(baseSrc: SourceType<T>, lockSrc: SourceType<unknown>) => silentium.SourceExecutorType<unknown>;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Get's value from source in moment of component call and than return this value every time
|
|
69
|
+
* https://silentium-lab.github.io/silentium-components/#/behaviors/moment
|
|
70
|
+
*/
|
|
71
|
+
declare const moment: <T>(baseSrc: SourceType<T>, defaultValue?: T) => SourceType<T>;
|
|
72
|
+
|
|
45
73
|
/**
|
|
46
74
|
* https://silentium-lab.github.io/silentium-components/#/structures/hash-table
|
|
47
75
|
*/
|
|
@@ -82,5 +110,32 @@ declare const regexpMatched: (patternSrc: SourceType<string>, valueSrc: SourceTy
|
|
|
82
110
|
*/
|
|
83
111
|
declare const regexpReplaced: (valueSrc: SourceType<string>, patternSrc: SourceType<string>, replaceValueSrc: SourceType<string>, flagsSrc?: SourceType<string>) => SourceType<string>;
|
|
84
112
|
|
|
85
|
-
|
|
113
|
+
/**
|
|
114
|
+
* First match of regexp
|
|
115
|
+
* https://silentium-lab.github.io/silentium-components/#/system/regexp-matched
|
|
116
|
+
*/
|
|
117
|
+
declare const regexpMatch: (patternSrc: SourceType<string>, valueSrc: SourceType<string>, flagsSrc?: SourceType<string>) => SourceType<string[]>;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Ability to mutate some object, helpful when integrate to procedure systems
|
|
121
|
+
* https://silentium-lab.github.io/silentium-components/#/system/set
|
|
122
|
+
*/
|
|
123
|
+
declare const set: <T extends Record<string, unknown>>(baseSrc: SourceType<T>, keySrc: SourceType<string>, valueSrc: SourceType<unknown>) => SourceType<T>;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* https://silentium-lab.github.io/silentium-components/#/boolean/and
|
|
127
|
+
*/
|
|
128
|
+
declare const and: (oneSrc: SourceType<boolean>, twoSrc: SourceType<boolean>) => SourceType<boolean>;
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* https://silentium-lab.github.io/silentium-components/#/boolean/or
|
|
132
|
+
*/
|
|
133
|
+
declare const or: (oneSrc: SourceType<boolean>, twoSrc: SourceType<boolean>) => SourceType<boolean>;
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* https://silentium-lab.github.io/silentium-components/#/boolean/not
|
|
137
|
+
*/
|
|
138
|
+
declare const not: (baseSrc: SourceType<boolean>) => (g: GuestType<boolean>) => void;
|
|
139
|
+
|
|
140
|
+
export { and, branch, concatenated, deadline, deferred, dirty, fork, groupActiveClass, hashTable, loading, lock, memo, moment, not, or, path, record, regexpMatch, regexpMatched, regexpReplaced, router, set, tick };
|
|
86
141
|
export type { Route };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { value, sourceAll, patron, sourceOf, patronOnce, guestCast, give, subSourceMany, sourceFiltered, subSource, sourceResettable, removePatronFromPools, sourceCombined, sourceAny, sourceChain } from 'silentium';
|
|
1
|
+
import { value, sourceAll, patron, sourceOf, patronOnce, guestCast, give, subSourceMany, sourceFiltered, subSource, sourceResettable, removePatronFromPools, guestDisposable, destroy, guestSync, sourceCombined, sourceAny, sourceChain } from 'silentium';
|
|
2
2
|
|
|
3
3
|
const groupActiveClass = (activeClassSrc, activeElementSrc, groupElementsSrc) => {
|
|
4
4
|
value(
|
|
@@ -168,10 +168,10 @@ const fork = (conditionSrc, predicate, thenSrc, elseSrc) => {
|
|
|
168
168
|
removePatronFromPools(elsePatron);
|
|
169
169
|
}
|
|
170
170
|
if (predicate(v)) {
|
|
171
|
-
thenPatron =
|
|
171
|
+
thenPatron = patronOnce(result);
|
|
172
172
|
value(thenSrc, thenPatron);
|
|
173
173
|
} else if (elseSrc) {
|
|
174
|
-
elsePatron =
|
|
174
|
+
elsePatron = patronOnce(result);
|
|
175
175
|
value(elseSrc, elsePatron);
|
|
176
176
|
}
|
|
177
177
|
})
|
|
@@ -179,6 +179,81 @@ const fork = (conditionSrc, predicate, thenSrc, elseSrc) => {
|
|
|
179
179
|
return resultResettable;
|
|
180
180
|
};
|
|
181
181
|
|
|
182
|
+
const deferred = (baseSrc, triggerSrc) => {
|
|
183
|
+
const result = sourceResettable(sourceOf(), baseSrc);
|
|
184
|
+
value(
|
|
185
|
+
triggerSrc,
|
|
186
|
+
patron(() => {
|
|
187
|
+
value(baseSrc, result);
|
|
188
|
+
})
|
|
189
|
+
);
|
|
190
|
+
return result.value;
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
const branch = (conditionSrc, thenSrc, elseSrc) => {
|
|
194
|
+
const result = sourceOf();
|
|
195
|
+
value(
|
|
196
|
+
conditionSrc,
|
|
197
|
+
patron((v) => {
|
|
198
|
+
if (v === true) {
|
|
199
|
+
value(
|
|
200
|
+
thenSrc,
|
|
201
|
+
patronOnce((v2) => {
|
|
202
|
+
result.give(v2);
|
|
203
|
+
})
|
|
204
|
+
);
|
|
205
|
+
} else if (elseSrc !== void 0) {
|
|
206
|
+
value(
|
|
207
|
+
elseSrc,
|
|
208
|
+
patronOnce((v2) => {
|
|
209
|
+
result.give(v2);
|
|
210
|
+
})
|
|
211
|
+
);
|
|
212
|
+
}
|
|
213
|
+
})
|
|
214
|
+
);
|
|
215
|
+
return result.value;
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
const memo = (baseSrc) => {
|
|
219
|
+
const result = sourceOf();
|
|
220
|
+
let lastValue = null;
|
|
221
|
+
value(
|
|
222
|
+
baseSrc,
|
|
223
|
+
patron((v) => {
|
|
224
|
+
if (v !== lastValue) {
|
|
225
|
+
result.give(v);
|
|
226
|
+
lastValue = v;
|
|
227
|
+
}
|
|
228
|
+
})
|
|
229
|
+
);
|
|
230
|
+
return result.value;
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
const lock = (baseSrc, lockSrc) => {
|
|
234
|
+
const result = sourceOf();
|
|
235
|
+
const resultResettable = sourceResettable(result, lockSrc);
|
|
236
|
+
let locked = false;
|
|
237
|
+
subSource(result, baseSrc);
|
|
238
|
+
value(baseSrc, patron(guestDisposable(result.give, () => locked)));
|
|
239
|
+
value(
|
|
240
|
+
lockSrc,
|
|
241
|
+
patronOnce(() => {
|
|
242
|
+
locked = true;
|
|
243
|
+
destroy([result]);
|
|
244
|
+
})
|
|
245
|
+
);
|
|
246
|
+
return resultResettable.value;
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
const moment = (baseSrc, defaultValue) => {
|
|
250
|
+
const guest = guestSync(defaultValue);
|
|
251
|
+
value(baseSrc, guest);
|
|
252
|
+
return (g) => {
|
|
253
|
+
give(guest.value(), g);
|
|
254
|
+
};
|
|
255
|
+
};
|
|
256
|
+
|
|
182
257
|
const hashTable = (baseSource) => {
|
|
183
258
|
const result = sourceOf({});
|
|
184
259
|
subSource(result, baseSource);
|
|
@@ -258,5 +333,53 @@ const regexpReplaced = (valueSrc, patternSrc, replaceValueSrc, flagsSrc = "") =>
|
|
|
258
333
|
give(String(value).replace(new RegExp(pattern, flags), replaceValue), g);
|
|
259
334
|
});
|
|
260
335
|
|
|
261
|
-
|
|
336
|
+
const regexpMatch = (patternSrc, valueSrc, flagsSrc = "") => sourceCombined(
|
|
337
|
+
patternSrc,
|
|
338
|
+
valueSrc,
|
|
339
|
+
flagsSrc
|
|
340
|
+
)((g, pattern, value, flags) => {
|
|
341
|
+
const result = new RegExp(pattern, flags).exec(value);
|
|
342
|
+
give(result ?? [], g);
|
|
343
|
+
});
|
|
344
|
+
|
|
345
|
+
const set = (baseSrc, keySrc, valueSrc) => {
|
|
346
|
+
value(
|
|
347
|
+
sourceAll([baseSrc, keySrc, valueSrc]),
|
|
348
|
+
patron(([base, key, value2]) => {
|
|
349
|
+
base[key] = value2;
|
|
350
|
+
})
|
|
351
|
+
);
|
|
352
|
+
return baseSrc;
|
|
353
|
+
};
|
|
354
|
+
|
|
355
|
+
const and = (oneSrc, twoSrc) => {
|
|
356
|
+
return sourceCombined(
|
|
357
|
+
oneSrc,
|
|
358
|
+
twoSrc
|
|
359
|
+
)((guest, one, two) => {
|
|
360
|
+
give(one && two, guest);
|
|
361
|
+
});
|
|
362
|
+
};
|
|
363
|
+
|
|
364
|
+
const or = (oneSrc, twoSrc) => {
|
|
365
|
+
return sourceCombined(
|
|
366
|
+
oneSrc,
|
|
367
|
+
twoSrc
|
|
368
|
+
)((guest, one, two) => {
|
|
369
|
+
give(one || two, guest);
|
|
370
|
+
});
|
|
371
|
+
};
|
|
372
|
+
|
|
373
|
+
const not = (baseSrc) => {
|
|
374
|
+
return (g) => {
|
|
375
|
+
value(
|
|
376
|
+
baseSrc,
|
|
377
|
+
guestCast(g, (base) => {
|
|
378
|
+
give(!base, g);
|
|
379
|
+
})
|
|
380
|
+
);
|
|
381
|
+
};
|
|
382
|
+
};
|
|
383
|
+
|
|
384
|
+
export { and, branch, concatenated, deadline, deferred, dirty, fork, groupActiveClass, hashTable, loading, lock, memo, moment, not, or, path, record, regexpMatch, regexpMatched, regexpReplaced, router, set, tick };
|
|
262
385
|
//# sourceMappingURL=silentium-components.js.map
|