svelte-specma 1.1.3 → 1.1.6
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
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.1.6] - 2022-03-20
|
|
4
|
+
|
|
5
|
+
### Fix
|
|
6
|
+
|
|
7
|
+
- Add `submitting` to `predSpecable` status
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## [1.1.5] - 2022-01-31
|
|
12
|
+
|
|
13
|
+
### Fix
|
|
14
|
+
|
|
15
|
+
- Allow adding to `collSpecable` when its value is `undefined`;
|
|
16
|
+
- Consider `fields` when choosing if `collSpecable`;
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## [1.1.4] - 2021-12-21
|
|
21
|
+
|
|
22
|
+
### Fix
|
|
23
|
+
|
|
24
|
+
- Consider spread in `getId`;
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
3
28
|
## [1.1.3] - 2021-11-05
|
|
4
29
|
|
|
5
30
|
### Fix
|
|
@@ -370,7 +370,7 @@ function predSpecable(initialValue, {
|
|
|
370
370
|
const active = writable(false);
|
|
371
371
|
const submitting = writable(false);
|
|
372
372
|
const value = writable(_initialValue);
|
|
373
|
-
const store = derived([active, value, context], ([$active, $value, $context], set) => {
|
|
373
|
+
const store = derived([active, value, context, submitting], ([$active, $value, $context, $submitting], set) => {
|
|
374
374
|
currPromise = undefined;
|
|
375
375
|
|
|
376
376
|
function getFrom(relPath) {
|
|
@@ -389,6 +389,7 @@ function predSpecable(initialValue, {
|
|
|
389
389
|
initialValue: _initialValue,
|
|
390
390
|
id,
|
|
391
391
|
result,
|
|
392
|
+
submitting: $submitting,
|
|
392
393
|
value: $value
|
|
393
394
|
};
|
|
394
395
|
currPromise = result.promise;
|
|
@@ -458,6 +459,7 @@ function interpretState({
|
|
|
458
459
|
id,
|
|
459
460
|
initialValue,
|
|
460
461
|
result,
|
|
462
|
+
submitting,
|
|
461
463
|
value
|
|
462
464
|
}) {
|
|
463
465
|
const changed = changePred(value, initialValue);
|
|
@@ -468,6 +470,7 @@ function interpretState({
|
|
|
468
470
|
id,
|
|
469
471
|
initialValue,
|
|
470
472
|
promise: result.promise || Promise.resolve(result),
|
|
473
|
+
submitting,
|
|
471
474
|
valid: !!result.valid,
|
|
472
475
|
validating: result.valid === null,
|
|
473
476
|
value: changed ? value : initialValue
|
|
@@ -495,12 +498,14 @@ function collSpecable(initialValue, {
|
|
|
495
498
|
const {
|
|
496
499
|
getAncestor
|
|
497
500
|
} = _extra;
|
|
498
|
-
const
|
|
501
|
+
const collDefiner = [fields, spec, initialValue].find(isColl);
|
|
502
|
+
const collType = typeOf(collDefiner);
|
|
499
503
|
const isRequired = required && !isOpt(required);
|
|
504
|
+
const spreadGetId = getSpread(getId);
|
|
500
505
|
const spreadSpec = getSpread(spec);
|
|
501
506
|
const spreadFields = getSpread(fields);
|
|
502
507
|
const spreadRequired = getSpread(required);
|
|
503
|
-
const isSpread = spreadSpec || spreadFields || spreadRequired;
|
|
508
|
+
const isSpread = spreadSpec || spreadFields || spreadRequired || spreadGetId || collType === "array";
|
|
504
509
|
const valueKeys = isSpread ? keys(initialValue) : [];
|
|
505
510
|
const allKeys = new Set(fields ? [...keys(fields), ...valueKeys] : [...keys(spec), ...keys(required), ...valueKeys]);
|
|
506
511
|
const ownGetId = getPred(getId);
|
|
@@ -522,7 +527,7 @@ function collSpecable(initialValue, {
|
|
|
522
527
|
const subChangePred = get(key, changePred) || getSpread(changePred);
|
|
523
528
|
const subVal = val;
|
|
524
529
|
const subSpec = get(key, spec) || spreadSpec;
|
|
525
|
-
const subGetId = get(key, getId);
|
|
530
|
+
const subGetId = get(key, getId) || spreadGetId;
|
|
526
531
|
const subId = idGen(subVal, key);
|
|
527
532
|
const subFields = get(key, fields) || spreadFields;
|
|
528
533
|
const subRequired = get(key, required) || spreadRequired;
|
|
@@ -552,6 +557,7 @@ function collSpecable(initialValue, {
|
|
|
552
557
|
const $childrenValues = $childrenEntries.map(([key, state]) => [key, state.value]);
|
|
553
558
|
const childrenValue = fromEntries($childrenValues, collType);
|
|
554
559
|
const value = isSpread ? childrenValue : merge(collValue, childrenValue);
|
|
560
|
+
isUndef = value === undefined;
|
|
555
561
|
ownSpecable.set(value);
|
|
556
562
|
return value;
|
|
557
563
|
});
|
|
@@ -560,7 +566,6 @@ function collSpecable(initialValue, {
|
|
|
560
566
|
|
|
561
567
|
const status = flexDerived(aggregateStatusStores(), $statusStores => {
|
|
562
568
|
const [, $submitting, $ownSpecable, ...$children] = $statusStores;
|
|
563
|
-
const isUndef = $ownSpecable.value === undefined;
|
|
564
569
|
const combined = isUndef ? $ownSpecable : [$ownSpecable, ...$children].reduce(combineChildren);
|
|
565
570
|
if (combined.active !== false) ownSpecable.activate();
|
|
566
571
|
const {
|
|
@@ -605,8 +610,8 @@ function collSpecable(initialValue, {
|
|
|
605
610
|
}
|
|
606
611
|
|
|
607
612
|
function setValue(coll, partial = false) {
|
|
608
|
-
isUndef = coll === undefined;
|
|
609
613
|
collValue = partial && !isSpread ? merge(collValue, coll) : coll;
|
|
614
|
+
isUndef = collValue === undefined;
|
|
610
615
|
ownSpecable.set(collValue);
|
|
611
616
|
const childrenEntries = entries(childrenStores);
|
|
612
617
|
childrenEntries.forEach(([key, store]) => {
|
|
@@ -666,6 +671,7 @@ function collSpecable(initialValue, {
|
|
|
666
671
|
activate,
|
|
667
672
|
|
|
668
673
|
add(coll) {
|
|
674
|
+
if (coll !== undefined) isUndef = false;
|
|
669
675
|
addChildren(coll);
|
|
670
676
|
return this;
|
|
671
677
|
},
|
|
@@ -850,9 +856,14 @@ function normalizeArgs(storeOrArgs) {
|
|
|
850
856
|
|
|
851
857
|
function specable(initialValue, options = {}, _extra) {
|
|
852
858
|
if (isStore(initialValue)) return initialValue;
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
859
|
+
const collCandidate = options.fields || options.spec || initialValue;
|
|
860
|
+
|
|
861
|
+
if (isColl(collCandidate)) {
|
|
862
|
+
return collSpecable(initialValue, options, _extends({}, _extra, {
|
|
863
|
+
specable
|
|
864
|
+
}));
|
|
865
|
+
}
|
|
866
|
+
|
|
856
867
|
return predSpecable(initialValue, options, _extra);
|
|
857
868
|
}
|
|
858
869
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svelte-specma.modern.js","sources":["../src/flexDerived.js","../src/util.js","../src/collDerived.js","../src/constants.js","../src/configure.js","../src/predSpecable.js","../src/collSpecable.js","../src/register.js","../src/specable.js"],"sourcesContent":["import { readable, writable } from \"svelte/store\";\n\nconst identity = (x) => x;\nconst noop = () => {};\n\nfunction flexDerived(initialStores = [], fn = identity, initialValue) {\n /* Used for ordering values */\n let _stores = initialStores;\n /* Store of stores. When last subscriber unsubscribes,\n * will stop all stores subs. */\n const $stores = writable(initialStores);\n\n /* Callback function can use a second argument, a `publish` function to set result asynchronously.\n * If not used, the return value of the function is the actual result to publish.\n * Otherwise, the return value might be a function to call before each execution\n * and when store is unsubscribed. */\n const auto = fn.length < 2;\n\n /* Use a readable store to manage subscribers. */\n const mainStore = readable(initialValue, (publish) => {\n let initialized = false;\n\n let cleanup = noop;\n let pending = 0;\n let unsubs = new Map();\n let values = new Map();\n\n /* Unsubscribe saved stores not included in a new list of stores\n * and create a new Map of unsub by store, reusing old ones when they exist. */\n function updateUnsubs(stores = []) {\n stopUnusedSubs(stores);\n unsubs = new Map(stores.map((store) => [store, unsubs.get(store)]));\n }\n\n function stopUnusedSubs(usedStores = []) {\n unsubs.forEach((unsub, store) => {\n if (!usedStores.includes(store) && unsub) unsub();\n });\n }\n\n function stopSubscriptions() {\n unsubs.forEach((unsub) => unsub && unsub());\n }\n\n /* Create a new map of values by store, reusing old ones when they exist. */\n function updateValues(stores = []) {\n values = new Map(stores.map((store) => [store, values.get(store)]));\n }\n\n /* Recompute and publish the combined result on values,\n * using `_stores` to ensure values order consistency. */\n function sync() {\n if (pending) return;\n cleanup();\n const vals = _stores.reduce(\n (acc, store) => (values.has(store) ? [...acc, values.get(store)] : acc),\n []\n );\n const result = fn(vals, publish);\n\n if (auto) {\n publish(result);\n } else {\n cleanup = typeof result === \"function\" ? result : noop;\n }\n }\n\n const unsubscribe = $stores.subscribe((stores) => {\n updateUnsubs(stores);\n updateValues(stores);\n\n /* Subscribe to each store if not alreay done.\n * When a any store value changes,\n * combined result will be updated and published. */\n _stores = [];\n stores.forEach((store, i) => {\n _stores[i] = store;\n\n if (!unsubs.get(store)) {\n unsubs.set(\n store,\n store.subscribe(\n (value) => {\n values.set(store, value);\n pending &= ~(1 << i);\n if (initialized) sync();\n },\n () => {\n pending |= 1 << i;\n }\n )\n );\n }\n });\n if (initialized) sync();\n });\n\n initialized = true;\n sync();\n\n return function stop() {\n unsubscribe();\n stopSubscriptions();\n cleanup();\n };\n });\n\n /* Exclude one or mode stores from the list. */\n function exclude(...stores) {\n $stores.update((prev) => prev.filter((store) => !stores.includes(store)));\n }\n\n /* Include one or more stores into the list. */\n function include(...stores) {\n $stores.update((prev) => [...prev, ...stores]);\n }\n\n return {\n exclude,\n include,\n set: $stores.set,\n stores: $stores,\n subscribe: mainStore.subscribe,\n update: $stores.update,\n };\n}\n\nexport default flexDerived;\n","import fastEquals from \"fast-deep-equal\";\n\nexport const identity = (x) => x;\nexport const isColl = (x) => [\"array\", \"map\", \"object\"].includes(typeOf(x));\nexport const isFunc = (x) => typeof x === \"function\";\nexport const isStore = (x) => x && x.subscribe && isFunc(x.subscribe);\n\nexport const typeOf = (obj) =>\n ({}.toString.call(obj).split(\" \")[1].slice(0, -1).toLowerCase());\n\nexport function entries(coll) {\n const fn = {\n array: () => coll.map((v, i) => [i, v]),\n map: () => [...coll.entries()],\n object: () => Object.entries(coll),\n }[typeOf(coll)];\n\n return fn ? fn(coll) : [];\n}\n\nexport function fromEntries(entries, toType) {\n const fn = {\n array: () => entries.map(([, val]) => val),\n map: () => new Map(entries),\n object: () => Object.fromEntries(entries),\n }[toType];\n return fn ? fn() : fromEntries(entries, \"map\");\n}\n\nexport function values(coll) {\n const fn = {\n array: () => [...coll],\n map: () => [...coll.values()],\n object: () => Object.values(coll),\n }[typeOf(coll)];\n\n return fn ? fn(coll) : [];\n}\n\nexport function keys(coll) {\n const fn = {\n array: () => coll.map((v, i) => i),\n map: () => [...coll.keys()],\n object: () => Object.keys(coll),\n }[typeOf(coll)];\n\n return fn ? fn(coll) : [];\n}\n\n/* Merge multiple collections of identical type with right to left arguments precedence. */\nexport function merge(...args) {\n const colls = args.filter(isColl);\n const type = typeOf(colls[0]);\n if (!colls.every((coll) => typeOf(coll) === type)) {\n const collTypes = colls.map(typeOf).join(\", \");\n throw new TypeError(\n `Collections must be of same type. Received '${collTypes}'.`\n );\n }\n\n const fn = {\n array: () =>\n colls.reduce((acc, coll) => {\n if (coll.length >= acc.length) return coll;\n return [...coll, ...acc.slice(coll.length)];\n }, []),\n map: () => new Map(colls.map((coll) => coll.entries())),\n object: () => Object.assign({}, ...colls),\n }[type];\n\n if (!fn) throw new Error(`'merge' not implemented yet for ${type}`);\n\n return fn();\n}\n\nexport function genRandomId() {\n return (Math.random() * 1e9).toFixed(0);\n}\n\nexport function get(key, coll) {\n const fn = {\n array: () => coll[key],\n map: () => coll.get(key),\n object: () => coll[key],\n }[typeOf(coll)];\n\n return fn ? fn(key, coll) : undefined;\n}\n\nexport function getPath(path = [], value) {\n return path.reduce((parent, key) => get(key, parent), value);\n}\n\nexport function countPathAncestors(str = \"\") {\n return (str.match(/\\.\\.\\/|\\.\\.$/g) || []).length;\n}\n\nexport function keepForwardPath(str = \"\") {\n return str.split(\"/\").reduce((acc, node) => {\n if (!node || node.startsWith(\".\")) return acc;\n const index = parseInt(node, 10);\n return [...acc, isNaN(index) ? node : index];\n }, []);\n}\n\nexport function equals(a, b, eqBy = defaultEqBy) {\n const [_a, _b] = [a, b].map(eqBy);\n return _a === _b || fastEquals(_a, _b);\n}\n\nfunction defaultEqBy(x) {\n if (x instanceof Date) return x.valueOf();\n if (isColl(x)) return removeUndefined(x);\n return x;\n}\n\nfunction removeUndefined(x) {\n if (!isColl(x)) return x;\n return fromEntries(\n entries(x).reduce(\n (acc, [key, val]) =>\n val === undefined ? acc : [...acc, [key, removeUndefined(val)]],\n []\n ),\n typeOf(x)\n );\n}\n","import flexDerived from \"./flexDerived\";\nimport { entries, fromEntries, identity, typeOf } from \"./util\";\n\nfunction deriveState(coll) {\n const storesEntries = entries(coll);\n return {\n coll,\n collType: typeOf(coll),\n storesEntries,\n keys: storesEntries.map(([key]) => key),\n stores: storesEntries.map(([, store]) => store),\n };\n}\n\nfunction collDerived(initialColl, fn = identity, initialValue) {\n let state = deriveState(initialColl);\n\n /* The callback passed to `flexDerived` can have arity 1 or 2.\n * The arity should match the one of the provided function.\n * When using arity 2, a set function is provided so that\n * result can be used asynchronously */\n const auto = fn.length < 2;\n const index$stores = ($stores) =>\n fromEntries(\n $stores.map((store, idx) => [state.keys[idx], store]),\n state.collType\n );\n\n const values = flexDerived(\n state.stores,\n auto\n ? ($stores) => fn(index$stores($stores))\n : ($stores, _set) => fn(index$stores($stores), _set),\n initialValue\n );\n\n function set(newColl) {\n state = deriveState(newColl);\n values.set(state.stores);\n }\n\n return {\n set,\n subscribe: values.subscribe,\n };\n}\n\nexport default collDerived;\n","export const ALWAYS_VALID = { valid: true };\n","const REQUIRED_SPECMA_FNS = [\n \"and\",\n \"getMessage\",\n \"getPred\",\n \"getSpread\",\n \"isOpt\",\n \"validatePred\",\n];\n\nconst CONFIG_ERROR_MSG =\n \"SvelteSpecma must be configured with a valid Specma version.\";\n\nexport let specma = undefined;\n\nexport function ensureConfigured() {\n if (!specma) {\n throw new TypeError(CONFIG_ERROR_MSG);\n }\n}\n\nexport default function configure(specmaFns) {\n if (\n !specmaFns ||\n REQUIRED_SPECMA_FNS.some((key) => typeof specmaFns[key] !== \"function\")\n ) {\n throw new TypeError(CONFIG_ERROR_MSG);\n }\n specma = specmaFns;\n}\n","import { tick } from \"svelte\";\nimport { derived, get as getStoreValue, writable } from \"svelte/store\";\nimport { ALWAYS_VALID } from \"./constants\";\nimport { countPathAncestors, equals, getPath, keepForwardPath } from \"./util\";\nimport collDerived from \"./collDerived\";\nimport { specma, ensureConfigured } from \"./configure\";\n\nconst alwaysTrue = () => true;\nconst isMissing = (x) => [undefined, null, \"\"].includes(x);\nconst defaultChangePred = (a, b) => !equals(a, b);\n\nconst reqSpec = (x) => !isMissing(x) || specma.getMessage(\"isRequired\");\n\nexport default function predSpecable(\n initialValue,\n { changePred = defaultChangePred, id, required, spec, onSubmit } = {},\n _extra = {}\n) {\n ensureConfigured();\n const { and, getPred, validatePred } = specma;\n\n const { getAncestor } = _extra;\n const pred = getPred(spec) || alwaysTrue;\n const isRequired = !!required;\n const ownSpec = isRequired ? and(reqSpec, pred) : pred;\n\n const contextStores = {};\n const context = collDerived(contextStores);\n\n function addContext(relPath) {\n /* If `getFrom` has already been called once,\n * context store is already tracking the value. */\n if (contextStores[relPath]) return;\n\n const ancestor = getAncestor(countPathAncestors(relPath));\n if (!ancestor) return;\n\n const pathSinceAncestor = keepForwardPath(relPath);\n\n contextStores[relPath] = derived(ancestor, ($ancestor, set) => {\n const ancestorValue = $ancestor.value;\n if (!ancestorValue) return;\n\n const curr = contextStores[relPath].value;\n const next = getPath(pathSinceAncestor, ancestorValue);\n if (!equals(curr, next)) {\n contextStores[relPath].value = next;\n set(next);\n }\n });\n context.set(contextStores);\n\n /* If context has just been created, it won't be accessible\n * in the derived store at first.\n * In that case, return the static store value. */\n return getPath(pathSinceAncestor, getStoreValue(ancestor).value);\n }\n\n let currPromise;\n let _initialValue = initialValue;\n\n const active = writable(false);\n const submitting = writable(false);\n const value = writable(_initialValue);\n\n const store = derived(\n [active, value, context],\n ([$active, $value, $context], set) => {\n currPromise = undefined;\n\n function getFrom(relPath) {\n if (!contextStores[relPath]) {\n return addContext(relPath);\n }\n return $context[relPath];\n }\n\n const shouldValidate = $active && ($value !== undefined || required);\n\n const result = enhanceResult(\n shouldValidate ? validatePred(ownSpec, $value, getFrom) : ALWAYS_VALID\n );\n const baseArgs = {\n active: $active,\n changePred,\n initialValue: _initialValue,\n id,\n result,\n value: $value,\n };\n\n currPromise = result.promise;\n\n set(interpretState(baseArgs));\n\n if (result.valid === null) {\n result.promise.then((resolvedResult) => {\n /* Promise might be outdated */\n if (result.promise !== currPromise) return;\n\n set(interpretState({ ...baseArgs, result: resolvedResult }));\n });\n }\n }\n );\n\n async function activate(bool = true) {\n active.set(bool);\n await tick();\n const res = await currPromise;\n return res.valid;\n }\n\n async function submit() {\n if (!onSubmit) return;\n submitting.set(true);\n const valid = await activate();\n if (valid) {\n const currValue = getStoreValue(value);\n await onSubmit(currValue);\n }\n submitting.set(false);\n }\n\n return {\n id,\n isRequired,\n spec: pred,\n\n activate,\n\n reset(newValue = _initialValue) {\n _initialValue = newValue;\n this.activate(false);\n this.set(newValue);\n },\n\n set: (newValue, shouldActivate = false) => {\n value.set(newValue);\n if (shouldActivate) activate();\n },\n\n submit,\n\n subscribe: store.subscribe,\n };\n}\n\nfunction enhanceResult(res) {\n return {\n ...res,\n promise: res.promise\n ? res.promise.then((promised) => enhanceResult(promised))\n : Promise.resolve(res),\n };\n}\n\nfunction interpretState({\n active,\n changePred,\n id,\n initialValue,\n result,\n value,\n}) {\n const changed = changePred(value, initialValue);\n return {\n active,\n changed,\n error: result.valid === false && result.reason,\n id,\n initialValue,\n promise: result.promise || Promise.resolve(result),\n valid: !!result.valid,\n validating: result.valid === null,\n value: changed ? value : initialValue,\n };\n}\n","import { get as getStoreValue, writable } from \"svelte/store\";\nimport collDerived from \"./collDerived\";\nimport flexDerived from \"./flexDerived\";\nimport predSpecable from \"./predSpecable\";\nimport {\n entries,\n fromEntries,\n genRandomId,\n get,\n isColl,\n keys,\n merge,\n typeOf,\n values,\n} from \"./util\";\nimport { specma, ensureConfigured } from \"./configure\";\n\nexport default function collSpecable(\n initialValue,\n { changePred, fields, getId, id, required, spec, onSubmit } = {},\n _extra = {}\n) {\n ensureConfigured();\n const { getPred, getSpread, isOpt } = specma;\n\n let collValue = initialValue; // For static properties\n let isUndef = collValue === undefined;\n\n const { getAncestor } = _extra;\n const collType = isColl(spec) ? typeOf(spec) : typeOf(initialValue);\n const isRequired = required && !isOpt(required);\n const spreadSpec = getSpread(spec);\n const spreadFields = getSpread(fields);\n const spreadRequired = getSpread(required);\n const isSpread = spreadSpec || spreadFields || spreadRequired;\n\n const valueKeys = isSpread ? keys(initialValue) : [];\n const allKeys = new Set(\n fields\n ? [...keys(fields), ...valueKeys]\n : [...keys(spec), ...keys(required), ...valueKeys]\n );\n\n const ownGetId = getPred(getId);\n const idGen = (v, k) => {\n if (ownGetId) return ownGetId(v, k);\n if (collType === \"array\") return genRandomId();\n return k;\n };\n\n const ownSpecable = predSpecable(\n initialValue,\n {\n changePred: getPred(changePred),\n id,\n required: isRequired,\n spec,\n },\n _extra\n );\n\n const createChildEntry = (key, val) => {\n const subChangePred = get(key, changePred) || getSpread(changePred);\n const subVal = val;\n const subSpec = get(key, spec) || spreadSpec;\n const subGetId = get(key, getId);\n const subId = idGen(subVal, key);\n const subFields = get(key, fields) || spreadFields;\n const subRequired = get(key, required) || spreadRequired;\n\n const subStore = _extra.specable(\n subVal,\n {\n spec: subSpec,\n changePred: subChangePred,\n id: subId,\n getId: subGetId,\n fields: subFields,\n required: subRequired,\n },\n {\n getAncestor: (n) =>\n n <= 1 || !getAncestor ? ownSpecable : getAncestor(n - 1),\n }\n );\n\n return [key, { ...subStore, id: subId }];\n };\n\n let childrenStores = fromEntries(\n [...allKeys].map((key) => createChildEntry(key, get(key, initialValue))),\n collType\n );\n const children = writable(childrenStores);\n const submitting = writable(false);\n\n const derivedValue = collDerived(childrenStores, ($childrenStores) => {\n if (isUndef) return undefined;\n\n const $childrenEntries = entries($childrenStores);\n const $childrenValues = $childrenEntries.map(([key, state]) => [\n key,\n state.value,\n ]);\n const childrenValue = fromEntries($childrenValues, collType);\n const value = isSpread ? childrenValue : merge(collValue, childrenValue);\n ownSpecable.set(value);\n return value;\n });\n\n const aggregateStatusStores = () => [\n derivedValue,\n submitting,\n ownSpecable,\n ...values(childrenStores),\n ];\n\n const status = flexDerived(aggregateStatusStores(), ($statusStores) => {\n const [, $submitting, $ownSpecable, ...$children] = $statusStores;\n\n const isUndef = $ownSpecable.value === undefined;\n\n const combined = isUndef\n ? $ownSpecable\n : [$ownSpecable, ...$children].reduce(combineChildren);\n\n if (combined.active !== false) ownSpecable.activate();\n\n const { value, error } = $ownSpecable;\n\n const details = Object.fromEntries([\n [\"_\", $ownSpecable],\n ...(isUndef ? [] : $children.map((child) => [child.id, child])),\n ]);\n\n const errors = detailsToErrors(details, id);\n const collErrors = errors.filter(({ isColl }) => isColl);\n\n return {\n ...combined,\n id,\n initialValue: $ownSpecable.initialValue,\n value,\n error,\n errors,\n collErrors,\n details,\n submitting: $submitting,\n };\n });\n\n function setChildrenStores(newChildrenStores) {\n childrenStores = newChildrenStores;\n children.set(newChildrenStores);\n derivedValue.set(newChildrenStores);\n status.set(aggregateStatusStores());\n }\n\n function addChildren(coll) {\n if (!coll) return;\n\n const newEntries = keys(coll).map((key) =>\n createChildEntry(key, get(key, coll))\n );\n const updatedStores = fromEntries(\n [...entries(childrenStores), ...newEntries],\n collType\n );\n setChildrenStores(updatedStores);\n }\n\n function removeChildrenById(idsToRemove = []) {\n if (idsToRemove.length < 1) return;\n\n const updatedStores = fromEntries(\n entries(childrenStores).filter(\n ([, store]) => !idsToRemove.includes(store.id)\n ),\n collType\n );\n setChildrenStores(updatedStores);\n }\n\n function setValue(coll, partial = false) {\n isUndef = coll === undefined;\n collValue = partial && !isSpread ? merge(collValue, coll) : coll;\n ownSpecable.set(collValue);\n\n const childrenEntries = entries(childrenStores);\n\n childrenEntries.forEach(([key, store]) => {\n const newValue = get(key, coll);\n if (partial && newValue === undefined) return;\n store.set(newValue, partial);\n });\n if (!isSpread) return;\n\n /* If collection allows spread children... */\n\n /* Add `coll` entries that are not yet part of the children stores. */\n const childrenKeys = keys(childrenStores);\n const missingChildren = fromEntries(\n entries(coll).filter(([key]) => !childrenKeys.includes(key)),\n collType\n );\n addChildren(missingChildren);\n\n if (partial) return;\n\n /* If update is not partial, remove children stores that do not store\n * a collection value anymore (garbage collection). */\n const collKeys = keys(coll);\n const unusedIds = childrenEntries.reduce((acc, [key, childStore]) => {\n return collKeys.includes(key) ? acc : [...acc, childStore.id];\n }, []);\n removeChildrenById(unusedIds);\n }\n\n function activate(bool = true) {\n const storesToActivate = [\n ownSpecable,\n ...(isUndef ? [] : values(childrenStores)),\n ];\n const promises = storesToActivate.map((store) => {\n const promise = store.activate(bool);\n return promise.then((valid) => {\n if (valid) return valid;\n throw valid;\n });\n });\n return Promise.all(promises)\n .then(() => true)\n .catch(() => false);\n }\n\n async function submit() {\n if (!onSubmit) return;\n submitting.set(true);\n const valid = await activate();\n if (valid) {\n const currValue = getStoreValue(ownSpecable).value;\n await onSubmit(currValue);\n }\n submitting.set(false);\n }\n\n return {\n id,\n isRequired,\n spec,\n stores: childrenStores,\n\n activate,\n\n add(coll) {\n addChildren(coll);\n return this;\n },\n\n getChild(path = []) {\n const reduced = path.reduce(\n (acc, key) => {\n const { children } = acc;\n if (!children) return { res: null };\n const childStore = get(key, children);\n if (!childStore) return { res: null };\n return {\n res: childStore,\n children: childStore.getChildren ? childStore.getChildren() : [],\n };\n },\n { children: childrenStores }\n );\n return reduced.res;\n },\n\n getChildren() {\n return childrenStores;\n },\n\n remove(idsToRemove = []) {\n removeChildrenById(idsToRemove);\n return this;\n },\n\n reset(newInitialValue = initialValue) {\n setValue(newInitialValue, false);\n activate(false);\n return this;\n },\n\n set(coll, partial = false, shouldActivate = false) {\n setValue(coll, partial);\n if (shouldActivate) activate();\n return this;\n },\n\n update: (fn) => {\n setChildrenStores(fn(childrenStores));\n return this;\n },\n\n children: {\n subscribe: children.subscribe,\n },\n\n submit,\n\n subscribe: status.subscribe,\n };\n}\n\nfunction combineChildren(a, b) {\n const validating = a.validating || b.validating;\n return {\n active: a.active === b.active ? b.active : null,\n changed: a.changed || b.changed,\n valid: validating ? null : a.valid && b.valid,\n validating,\n };\n}\n\nconst liftError = (parentId) => ({ path, error, ...rest }) => {\n const newPath = parentId === undefined ? path : [parentId, ...path];\n return {\n ...rest,\n path: newPath,\n which: newPath.join(\".\"),\n error,\n };\n};\n\nfunction detailsToErrors(details, parentId) {\n return Object.entries(details)\n .flatMap(([key, status]) => {\n if (!status.details) {\n if (!status.error) return [];\n if (key === \"_\") {\n return [{ path: [], error: status.error, isColl: true }];\n }\n return [summarizeStatusError(status)];\n }\n\n const subErrors = detailsToErrors(status.details, details.id);\n return subErrors.map(liftError(status.id));\n })\n .map(liftError(parentId));\n}\n\nfunction summarizeStatusError({ id, error }) {\n return { path: [id], which: id, error };\n}\n","import { identity } from \"./util\";\n\nexport default function register(el, storeOrArgs) {\n let args = normalizeArgs(storeOrArgs);\n if (!el || !args.store) return;\n\n let unsub;\n listen();\n\n function blurHandler() {\n args.store.activate();\n }\n\n function inputHandler(e) {\n args.store.set(args.toValue(e.target.value));\n }\n\n function listen() {\n unsub = args.store.subscribe(({ value }) => {\n const elValue = args.toInput(value);\n if (el.value !== elValue) el.value = elValue;\n });\n el.addEventListener(\"blur\", blurHandler);\n el.addEventListener(\"input\", inputHandler);\n }\n\n function unlisten() {\n unsub();\n el.removeEventListener(\"blur\", blurHandler);\n el.removeEventListener(\"input\", inputHandler);\n }\n\n return {\n destroy: unlisten,\n update(newArgs) {\n unlisten();\n if (!newArgs) return;\n args = normalizeArgs(newArgs);\n listen();\n },\n };\n}\n\nfunction normalizeArgs(storeOrArgs) {\n if (!storeOrArgs) return {};\n\n if (!Array.isArray(storeOrArgs)) {\n return {\n store: storeOrArgs,\n toInput: (x = \"\") => x,\n toValue: identity,\n };\n }\n\n const [store, { toInput = identity, toValue = identity } = {}] = storeOrArgs;\n return { store, toInput, toValue };\n}\n","import collSpecable from \"./collSpecable\";\nimport predSpecable from \"./predSpecable\";\nimport { isColl, isStore } from \"./util\";\n\nexport default function specable(initialValue, options = {}, _extra) {\n if (isStore(initialValue)) return initialValue;\n\n if (isColl(options.spec || initialValue))\n return collSpecable(initialValue, options, { ..._extra, specable });\n\n return predSpecable(initialValue, options, _extra);\n}\n"],"names":["identity","x","noop","flexDerived","initialStores","fn","initialValue","_stores","$stores","writable","auto","length","mainStore","readable","publish","initialized","cleanup","pending","unsubs","Map","values","updateUnsubs","stores","stopUnusedSubs","map","store","get","usedStores","forEach","unsub","includes","stopSubscriptions","updateValues","sync","vals","reduce","acc","has","result","unsubscribe","subscribe","i","set","value","stop","exclude","update","prev","filter","include","isColl","typeOf","isFunc","isStore","obj","toString","call","split","slice","toLowerCase","entries","coll","array","v","object","Object","fromEntries","toType","val","keys","merge","args","colls","type","every","collTypes","join","TypeError","assign","Error","genRandomId","Math","random","toFixed","key","undefined","getPath","path","parent","countPathAncestors","str","match","keepForwardPath","node","startsWith","index","parseInt","isNaN","equals","a","b","eqBy","defaultEqBy","_a","_b","fastEquals","Date","valueOf","removeUndefined","deriveState","storesEntries","collType","collDerived","initialColl","state","index$stores","idx","_set","newColl","ALWAYS_VALID","valid","REQUIRED_SPECMA_FNS","CONFIG_ERROR_MSG","specma","ensureConfigured","configure","specmaFns","some","alwaysTrue","isMissing","defaultChangePred","reqSpec","getMessage","predSpecable","changePred","id","required","spec","onSubmit","_extra","and","getPred","validatePred","getAncestor","pred","isRequired","ownSpec","contextStores","context","addContext","relPath","ancestor","pathSinceAncestor","derived","$ancestor","ancestorValue","curr","next","getStoreValue","currPromise","_initialValue","active","submitting","$active","$value","$context","getFrom","shouldValidate","enhanceResult","baseArgs","promise","interpretState","then","resolvedResult","activate","bool","tick","res","submit","currValue","reset","newValue","shouldActivate","promised","Promise","resolve","changed","error","reason","validating","collSpecable","fields","getId","getSpread","isOpt","collValue","isUndef","spreadSpec","spreadFields","spreadRequired","isSpread","valueKeys","allKeys","Set","ownGetId","idGen","k","ownSpecable","createChildEntry","subChangePred","subVal","subSpec","subGetId","subId","subFields","subRequired","subStore","specable","n","childrenStores","children","derivedValue","$childrenStores","$childrenEntries","$childrenValues","childrenValue","aggregateStatusStores","status","$statusStores","$submitting","$ownSpecable","$children","combined","combineChildren","details","child","errors","detailsToErrors","collErrors","setChildrenStores","newChildrenStores","addChildren","newEntries","updatedStores","removeChildrenById","idsToRemove","setValue","partial","childrenEntries","childrenKeys","missingChildren","collKeys","unusedIds","childStore","storesToActivate","promises","all","catch","add","getChild","reduced","getChildren","remove","newInitialValue","liftError","parentId","rest","newPath","which","flatMap","summarizeStatusError","subErrors","register","el","storeOrArgs","normalizeArgs","listen","blurHandler","inputHandler","e","toValue","target","elValue","toInput","addEventListener","unlisten","removeEventListener","destroy","newArgs","Array","isArray","options"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"svelte-specma.modern.js","sources":["../src/flexDerived.js","../src/util.js","../src/collDerived.js","../src/constants.js","../src/configure.js","../src/predSpecable.js","../src/collSpecable.js","../src/register.js","../src/specable.js"],"sourcesContent":["import { readable, writable } from \"svelte/store\";\n\nconst identity = (x) => x;\nconst noop = () => {};\n\nfunction flexDerived(initialStores = [], fn = identity, initialValue) {\n /* Used for ordering values */\n let _stores = initialStores;\n /* Store of stores. When last subscriber unsubscribes,\n * will stop all stores subs. */\n const $stores = writable(initialStores);\n\n /* Callback function can use a second argument, a `publish` function to set result asynchronously.\n * If not used, the return value of the function is the actual result to publish.\n * Otherwise, the return value might be a function to call before each execution\n * and when store is unsubscribed. */\n const auto = fn.length < 2;\n\n /* Use a readable store to manage subscribers. */\n const mainStore = readable(initialValue, (publish) => {\n let initialized = false;\n\n let cleanup = noop;\n let pending = 0;\n let unsubs = new Map();\n let values = new Map();\n\n /* Unsubscribe saved stores not included in a new list of stores\n * and create a new Map of unsub by store, reusing old ones when they exist. */\n function updateUnsubs(stores = []) {\n stopUnusedSubs(stores);\n unsubs = new Map(stores.map((store) => [store, unsubs.get(store)]));\n }\n\n function stopUnusedSubs(usedStores = []) {\n unsubs.forEach((unsub, store) => {\n if (!usedStores.includes(store) && unsub) unsub();\n });\n }\n\n function stopSubscriptions() {\n unsubs.forEach((unsub) => unsub && unsub());\n }\n\n /* Create a new map of values by store, reusing old ones when they exist. */\n function updateValues(stores = []) {\n values = new Map(stores.map((store) => [store, values.get(store)]));\n }\n\n /* Recompute and publish the combined result on values,\n * using `_stores` to ensure values order consistency. */\n function sync() {\n if (pending) return;\n cleanup();\n const vals = _stores.reduce(\n (acc, store) => (values.has(store) ? [...acc, values.get(store)] : acc),\n []\n );\n const result = fn(vals, publish);\n\n if (auto) {\n publish(result);\n } else {\n cleanup = typeof result === \"function\" ? result : noop;\n }\n }\n\n const unsubscribe = $stores.subscribe((stores) => {\n updateUnsubs(stores);\n updateValues(stores);\n\n /* Subscribe to each store if not alreay done.\n * When a any store value changes,\n * combined result will be updated and published. */\n _stores = [];\n stores.forEach((store, i) => {\n _stores[i] = store;\n\n if (!unsubs.get(store)) {\n unsubs.set(\n store,\n store.subscribe(\n (value) => {\n values.set(store, value);\n pending &= ~(1 << i);\n if (initialized) sync();\n },\n () => {\n pending |= 1 << i;\n }\n )\n );\n }\n });\n if (initialized) sync();\n });\n\n initialized = true;\n sync();\n\n return function stop() {\n unsubscribe();\n stopSubscriptions();\n cleanup();\n };\n });\n\n /* Exclude one or mode stores from the list. */\n function exclude(...stores) {\n $stores.update((prev) => prev.filter((store) => !stores.includes(store)));\n }\n\n /* Include one or more stores into the list. */\n function include(...stores) {\n $stores.update((prev) => [...prev, ...stores]);\n }\n\n return {\n exclude,\n include,\n set: $stores.set,\n stores: $stores,\n subscribe: mainStore.subscribe,\n update: $stores.update,\n };\n}\n\nexport default flexDerived;\n","import fastEquals from \"fast-deep-equal\";\n\nexport const identity = (x) => x;\nexport const isColl = (x) => [\"array\", \"map\", \"object\"].includes(typeOf(x));\nexport const isFunc = (x) => typeof x === \"function\";\nexport const isStore = (x) => x && x.subscribe && isFunc(x.subscribe);\n\nexport const typeOf = (obj) =>\n ({}.toString.call(obj).split(\" \")[1].slice(0, -1).toLowerCase());\n\nexport function entries(coll) {\n const fn = {\n array: () => coll.map((v, i) => [i, v]),\n map: () => [...coll.entries()],\n object: () => Object.entries(coll),\n }[typeOf(coll)];\n\n return fn ? fn(coll) : [];\n}\n\nexport function fromEntries(entries, toType) {\n const fn = {\n array: () => entries.map(([, val]) => val),\n map: () => new Map(entries),\n object: () => Object.fromEntries(entries),\n }[toType];\n return fn ? fn() : fromEntries(entries, \"map\");\n}\n\nexport function values(coll) {\n const fn = {\n array: () => [...coll],\n map: () => [...coll.values()],\n object: () => Object.values(coll),\n }[typeOf(coll)];\n\n return fn ? fn(coll) : [];\n}\n\nexport function keys(coll) {\n const fn = {\n array: () => coll.map((v, i) => i),\n map: () => [...coll.keys()],\n object: () => Object.keys(coll),\n }[typeOf(coll)];\n\n return fn ? fn(coll) : [];\n}\n\n/* Merge multiple collections of identical type with right to left arguments precedence. */\nexport function merge(...args) {\n const colls = args.filter(isColl);\n const type = typeOf(colls[0]);\n if (!colls.every((coll) => typeOf(coll) === type)) {\n const collTypes = colls.map(typeOf).join(\", \");\n throw new TypeError(\n `Collections must be of same type. Received '${collTypes}'.`\n );\n }\n\n const fn = {\n array: () =>\n colls.reduce((acc, coll) => {\n if (coll.length >= acc.length) return coll;\n return [...coll, ...acc.slice(coll.length)];\n }, []),\n map: () => new Map(colls.map((coll) => coll.entries())),\n object: () => Object.assign({}, ...colls),\n }[type];\n\n if (!fn) throw new Error(`'merge' not implemented yet for ${type}`);\n\n return fn();\n}\n\nexport function genRandomId() {\n return (Math.random() * 1e9).toFixed(0);\n}\n\nexport function get(key, coll) {\n const fn = {\n array: () => coll[key],\n map: () => coll.get(key),\n object: () => coll[key],\n }[typeOf(coll)];\n\n return fn ? fn(key, coll) : undefined;\n}\n\nexport function getPath(path = [], value) {\n return path.reduce((parent, key) => get(key, parent), value);\n}\n\nexport function countPathAncestors(str = \"\") {\n return (str.match(/\\.\\.\\/|\\.\\.$/g) || []).length;\n}\n\nexport function keepForwardPath(str = \"\") {\n return str.split(\"/\").reduce((acc, node) => {\n if (!node || node.startsWith(\".\")) return acc;\n const index = parseInt(node, 10);\n return [...acc, isNaN(index) ? node : index];\n }, []);\n}\n\nexport function equals(a, b, eqBy = defaultEqBy) {\n const [_a, _b] = [a, b].map(eqBy);\n return _a === _b || fastEquals(_a, _b);\n}\n\nfunction defaultEqBy(x) {\n if (x instanceof Date) return x.valueOf();\n if (isColl(x)) return removeUndefined(x);\n return x;\n}\n\nfunction removeUndefined(x) {\n if (!isColl(x)) return x;\n return fromEntries(\n entries(x).reduce(\n (acc, [key, val]) =>\n val === undefined ? acc : [...acc, [key, removeUndefined(val)]],\n []\n ),\n typeOf(x)\n );\n}\n","import flexDerived from \"./flexDerived\";\nimport { entries, fromEntries, identity, typeOf } from \"./util\";\n\nfunction deriveState(coll) {\n const storesEntries = entries(coll);\n return {\n coll,\n collType: typeOf(coll),\n storesEntries,\n keys: storesEntries.map(([key]) => key),\n stores: storesEntries.map(([, store]) => store),\n };\n}\n\nfunction collDerived(initialColl, fn = identity, initialValue) {\n let state = deriveState(initialColl);\n\n /* The callback passed to `flexDerived` can have arity 1 or 2.\n * The arity should match the one of the provided function.\n * When using arity 2, a set function is provided so that\n * result can be used asynchronously */\n const auto = fn.length < 2;\n const index$stores = ($stores) =>\n fromEntries(\n $stores.map((store, idx) => [state.keys[idx], store]),\n state.collType\n );\n\n const values = flexDerived(\n state.stores,\n auto\n ? ($stores) => fn(index$stores($stores))\n : ($stores, _set) => fn(index$stores($stores), _set),\n initialValue\n );\n\n function set(newColl) {\n state = deriveState(newColl);\n values.set(state.stores);\n }\n\n return {\n set,\n subscribe: values.subscribe,\n };\n}\n\nexport default collDerived;\n","export const ALWAYS_VALID = { valid: true };\n","const REQUIRED_SPECMA_FNS = [\n \"and\",\n \"getMessage\",\n \"getPred\",\n \"getSpread\",\n \"isOpt\",\n \"validatePred\",\n];\n\nconst CONFIG_ERROR_MSG =\n \"SvelteSpecma must be configured with a valid Specma version.\";\n\nexport let specma = undefined;\n\nexport function ensureConfigured() {\n if (!specma) {\n throw new TypeError(CONFIG_ERROR_MSG);\n }\n}\n\nexport default function configure(specmaFns) {\n if (\n !specmaFns ||\n REQUIRED_SPECMA_FNS.some((key) => typeof specmaFns[key] !== \"function\")\n ) {\n throw new TypeError(CONFIG_ERROR_MSG);\n }\n specma = specmaFns;\n}\n","import { tick } from \"svelte\";\nimport { derived, get as getStoreValue, writable } from \"svelte/store\";\nimport { ALWAYS_VALID } from \"./constants\";\nimport { countPathAncestors, equals, getPath, keepForwardPath } from \"./util\";\nimport collDerived from \"./collDerived\";\nimport { specma, ensureConfigured } from \"./configure\";\n\nconst alwaysTrue = () => true;\nconst isMissing = (x) => [undefined, null, \"\"].includes(x);\nconst defaultChangePred = (a, b) => !equals(a, b);\n\nconst reqSpec = (x) => !isMissing(x) || specma.getMessage(\"isRequired\");\n\nexport default function predSpecable(\n initialValue,\n { changePred = defaultChangePred, id, required, spec, onSubmit } = {},\n _extra = {}\n) {\n ensureConfigured();\n const { and, getPred, validatePred } = specma;\n\n const { getAncestor } = _extra;\n const pred = getPred(spec) || alwaysTrue;\n const isRequired = !!required;\n const ownSpec = isRequired ? and(reqSpec, pred) : pred;\n\n const contextStores = {};\n const context = collDerived(contextStores);\n\n function addContext(relPath) {\n /* If `getFrom` has already been called once,\n * context store is already tracking the value. */\n if (contextStores[relPath]) return;\n\n const ancestor = getAncestor(countPathAncestors(relPath));\n if (!ancestor) return;\n\n const pathSinceAncestor = keepForwardPath(relPath);\n\n contextStores[relPath] = derived(ancestor, ($ancestor, set) => {\n const ancestorValue = $ancestor.value;\n if (!ancestorValue) return;\n\n const curr = contextStores[relPath].value;\n const next = getPath(pathSinceAncestor, ancestorValue);\n if (!equals(curr, next)) {\n contextStores[relPath].value = next;\n set(next);\n }\n });\n context.set(contextStores);\n\n /* If context has just been created, it won't be accessible\n * in the derived store at first.\n * In that case, return the static store value. */\n return getPath(pathSinceAncestor, getStoreValue(ancestor).value);\n }\n\n let currPromise;\n let _initialValue = initialValue;\n\n const active = writable(false);\n const submitting = writable(false);\n const value = writable(_initialValue);\n\n const store = derived(\n [active, value, context, submitting],\n ([$active, $value, $context, $submitting], set) => {\n currPromise = undefined;\n\n function getFrom(relPath) {\n if (!contextStores[relPath]) {\n return addContext(relPath);\n }\n return $context[relPath];\n }\n\n const shouldValidate = $active && ($value !== undefined || required);\n\n const result = enhanceResult(\n shouldValidate ? validatePred(ownSpec, $value, getFrom) : ALWAYS_VALID\n );\n const baseArgs = {\n active: $active,\n changePred,\n initialValue: _initialValue,\n id,\n result,\n submitting: $submitting,\n value: $value,\n };\n\n currPromise = result.promise;\n\n set(interpretState(baseArgs));\n\n if (result.valid === null) {\n result.promise.then((resolvedResult) => {\n /* Promise might be outdated */\n if (result.promise !== currPromise) return;\n\n set(interpretState({ ...baseArgs, result: resolvedResult }));\n });\n }\n }\n );\n\n async function activate(bool = true) {\n active.set(bool);\n await tick();\n const res = await currPromise;\n return res.valid;\n }\n\n async function submit() {\n if (!onSubmit) return;\n submitting.set(true);\n const valid = await activate();\n if (valid) {\n const currValue = getStoreValue(value);\n await onSubmit(currValue);\n }\n submitting.set(false);\n }\n\n return {\n id,\n isRequired,\n spec: pred,\n\n activate,\n\n reset(newValue = _initialValue) {\n _initialValue = newValue;\n this.activate(false);\n this.set(newValue);\n },\n\n set: (newValue, shouldActivate = false) => {\n value.set(newValue);\n if (shouldActivate) activate();\n },\n\n submit,\n\n subscribe: store.subscribe,\n };\n}\n\nfunction enhanceResult(res) {\n return {\n ...res,\n promise: res.promise\n ? res.promise.then((promised) => enhanceResult(promised))\n : Promise.resolve(res),\n };\n}\n\nfunction interpretState({\n active,\n changePred,\n id,\n initialValue,\n result,\n submitting,\n value,\n}) {\n const changed = changePred(value, initialValue);\n return {\n active,\n changed,\n error: result.valid === false && result.reason,\n id,\n initialValue,\n promise: result.promise || Promise.resolve(result),\n submitting,\n valid: !!result.valid,\n validating: result.valid === null,\n value: changed ? value : initialValue,\n };\n}\n","import { get as getStoreValue, writable } from \"svelte/store\";\nimport collDerived from \"./collDerived\";\nimport flexDerived from \"./flexDerived\";\nimport predSpecable from \"./predSpecable\";\nimport {\n entries,\n fromEntries,\n genRandomId,\n get,\n isColl,\n keys,\n merge,\n typeOf,\n values,\n} from \"./util\";\nimport { specma, ensureConfigured } from \"./configure\";\n\nexport default function collSpecable(\n initialValue,\n { changePred, fields, getId, id, required, spec, onSubmit } = {},\n _extra = {}\n) {\n ensureConfigured();\n const { getPred, getSpread, isOpt } = specma;\n\n let collValue = initialValue; // For static properties\n let isUndef = collValue === undefined;\n\n const { getAncestor } = _extra;\n const collDefiner = [fields, spec, initialValue].find(isColl);\n const collType = typeOf(collDefiner);\n const isRequired = required && !isOpt(required);\n const spreadGetId = getSpread(getId);\n const spreadSpec = getSpread(spec);\n const spreadFields = getSpread(fields);\n const spreadRequired = getSpread(required);\n const isSpread =\n spreadSpec ||\n spreadFields ||\n spreadRequired ||\n spreadGetId ||\n collType === \"array\";\n\n const valueKeys = isSpread ? keys(initialValue) : [];\n const allKeys = new Set(\n fields\n ? [...keys(fields), ...valueKeys]\n : [...keys(spec), ...keys(required), ...valueKeys]\n );\n\n const ownGetId = getPred(getId);\n const idGen = (v, k) => {\n if (ownGetId) return ownGetId(v, k);\n if (collType === \"array\") return genRandomId();\n return k;\n };\n\n const ownSpecable = predSpecable(\n initialValue,\n {\n changePred: getPred(changePred),\n id,\n required: isRequired,\n spec,\n },\n _extra\n );\n\n const createChildEntry = (key, val) => {\n const subChangePred = get(key, changePred) || getSpread(changePred);\n const subVal = val;\n const subSpec = get(key, spec) || spreadSpec;\n const subGetId = get(key, getId) || spreadGetId;\n const subId = idGen(subVal, key);\n const subFields = get(key, fields) || spreadFields;\n const subRequired = get(key, required) || spreadRequired;\n\n const subStore = _extra.specable(\n subVal,\n {\n spec: subSpec,\n changePred: subChangePred,\n id: subId,\n getId: subGetId,\n fields: subFields,\n required: subRequired,\n },\n {\n getAncestor: (n) =>\n n <= 1 || !getAncestor ? ownSpecable : getAncestor(n - 1),\n }\n );\n\n return [key, { ...subStore, id: subId }];\n };\n\n let childrenStores = fromEntries(\n [...allKeys].map((key) => createChildEntry(key, get(key, initialValue))),\n collType\n );\n const children = writable(childrenStores);\n const submitting = writable(false);\n\n const derivedValue = collDerived(childrenStores, ($childrenStores) => {\n if (isUndef) return undefined;\n\n const $childrenEntries = entries($childrenStores);\n const $childrenValues = $childrenEntries.map(([key, state]) => [\n key,\n state.value,\n ]);\n const childrenValue = fromEntries($childrenValues, collType);\n const value = isSpread ? childrenValue : merge(collValue, childrenValue);\n isUndef = value === undefined;\n ownSpecable.set(value);\n return value;\n });\n\n const aggregateStatusStores = () => [\n derivedValue,\n submitting,\n ownSpecable,\n ...values(childrenStores),\n ];\n\n const status = flexDerived(aggregateStatusStores(), ($statusStores) => {\n const [, $submitting, $ownSpecable, ...$children] = $statusStores;\n\n const combined = isUndef\n ? $ownSpecable\n : [$ownSpecable, ...$children].reduce(combineChildren);\n\n if (combined.active !== false) ownSpecable.activate();\n\n const { value, error } = $ownSpecable;\n\n const details = Object.fromEntries([\n [\"_\", $ownSpecable],\n ...(isUndef ? [] : $children.map((child) => [child.id, child])),\n ]);\n\n const errors = detailsToErrors(details, id);\n const collErrors = errors.filter(({ isColl }) => isColl);\n\n return {\n ...combined,\n id,\n initialValue: $ownSpecable.initialValue,\n value,\n error,\n errors,\n collErrors,\n details,\n submitting: $submitting,\n };\n });\n\n function setChildrenStores(newChildrenStores) {\n childrenStores = newChildrenStores;\n children.set(newChildrenStores);\n derivedValue.set(newChildrenStores);\n status.set(aggregateStatusStores());\n }\n\n function addChildren(coll) {\n if (!coll) return;\n\n const newEntries = keys(coll).map((key) =>\n createChildEntry(key, get(key, coll))\n );\n const updatedStores = fromEntries(\n [...entries(childrenStores), ...newEntries],\n collType\n );\n setChildrenStores(updatedStores);\n }\n\n function removeChildrenById(idsToRemove = []) {\n if (idsToRemove.length < 1) return;\n\n const updatedStores = fromEntries(\n entries(childrenStores).filter(\n ([, store]) => !idsToRemove.includes(store.id)\n ),\n collType\n );\n setChildrenStores(updatedStores);\n }\n\n function setValue(coll, partial = false) {\n collValue = partial && !isSpread ? merge(collValue, coll) : coll;\n isUndef = collValue === undefined;\n ownSpecable.set(collValue);\n\n const childrenEntries = entries(childrenStores);\n\n childrenEntries.forEach(([key, store]) => {\n const newValue = get(key, coll);\n if (partial && newValue === undefined) return;\n store.set(newValue, partial);\n });\n if (!isSpread) return;\n\n /* If collection allows spread children... */\n\n /* Add `coll` entries that are not yet part of the children stores. */\n const childrenKeys = keys(childrenStores);\n const missingChildren = fromEntries(\n entries(coll).filter(([key]) => !childrenKeys.includes(key)),\n collType\n );\n addChildren(missingChildren);\n\n if (partial) return;\n\n /* If update is not partial, remove children stores that do not store\n * a collection value anymore (garbage collection). */\n const collKeys = keys(coll);\n const unusedIds = childrenEntries.reduce((acc, [key, childStore]) => {\n return collKeys.includes(key) ? acc : [...acc, childStore.id];\n }, []);\n removeChildrenById(unusedIds);\n }\n\n function activate(bool = true) {\n const storesToActivate = [\n ownSpecable,\n ...(isUndef ? [] : values(childrenStores)),\n ];\n const promises = storesToActivate.map((store) => {\n const promise = store.activate(bool);\n return promise.then((valid) => {\n if (valid) return valid;\n throw valid;\n });\n });\n return Promise.all(promises)\n .then(() => true)\n .catch(() => false);\n }\n\n async function submit() {\n if (!onSubmit) return;\n submitting.set(true);\n const valid = await activate();\n if (valid) {\n const currValue = getStoreValue(ownSpecable).value;\n await onSubmit(currValue);\n }\n submitting.set(false);\n }\n\n return {\n id,\n isRequired,\n spec,\n stores: childrenStores,\n\n activate,\n\n add(coll) {\n if (coll !== undefined) isUndef = false;\n addChildren(coll);\n return this;\n },\n\n getChild(path = []) {\n const reduced = path.reduce(\n (acc, key) => {\n const { children } = acc;\n if (!children) return { res: null };\n const childStore = get(key, children);\n if (!childStore) return { res: null };\n return {\n res: childStore,\n children: childStore.getChildren ? childStore.getChildren() : [],\n };\n },\n { children: childrenStores }\n );\n return reduced.res;\n },\n\n getChildren() {\n return childrenStores;\n },\n\n remove(idsToRemove = []) {\n removeChildrenById(idsToRemove);\n return this;\n },\n\n reset(newInitialValue = initialValue) {\n setValue(newInitialValue, false);\n activate(false);\n return this;\n },\n\n set(coll, partial = false, shouldActivate = false) {\n setValue(coll, partial);\n if (shouldActivate) activate();\n return this;\n },\n\n update: (fn) => {\n setChildrenStores(fn(childrenStores));\n return this;\n },\n\n children: {\n subscribe: children.subscribe,\n },\n\n submit,\n\n subscribe: status.subscribe,\n };\n}\n\nfunction combineChildren(a, b) {\n const validating = a.validating || b.validating;\n return {\n active: a.active === b.active ? b.active : null,\n changed: a.changed || b.changed,\n valid: validating ? null : a.valid && b.valid,\n validating,\n };\n}\n\nconst liftError = (parentId) => ({ path, error, ...rest }) => {\n const newPath = parentId === undefined ? path : [parentId, ...path];\n return {\n ...rest,\n path: newPath,\n which: newPath.join(\".\"),\n error,\n };\n};\n\nfunction detailsToErrors(details, parentId) {\n return Object.entries(details)\n .flatMap(([key, status]) => {\n if (!status.details) {\n if (!status.error) return [];\n if (key === \"_\") {\n return [{ path: [], error: status.error, isColl: true }];\n }\n return [summarizeStatusError(status)];\n }\n\n const subErrors = detailsToErrors(status.details, details.id);\n return subErrors.map(liftError(status.id));\n })\n .map(liftError(parentId));\n}\n\nfunction summarizeStatusError({ id, error }) {\n return { path: [id], which: id, error };\n}\n","import { identity } from \"./util\";\n\nexport default function register(el, storeOrArgs) {\n let args = normalizeArgs(storeOrArgs);\n if (!el || !args.store) return;\n\n let unsub;\n listen();\n\n function blurHandler() {\n args.store.activate();\n }\n\n function inputHandler(e) {\n args.store.set(args.toValue(e.target.value));\n }\n\n function listen() {\n unsub = args.store.subscribe(({ value }) => {\n const elValue = args.toInput(value);\n if (el.value !== elValue) el.value = elValue;\n });\n el.addEventListener(\"blur\", blurHandler);\n el.addEventListener(\"input\", inputHandler);\n }\n\n function unlisten() {\n unsub();\n el.removeEventListener(\"blur\", blurHandler);\n el.removeEventListener(\"input\", inputHandler);\n }\n\n return {\n destroy: unlisten,\n update(newArgs) {\n unlisten();\n if (!newArgs) return;\n args = normalizeArgs(newArgs);\n listen();\n },\n };\n}\n\nfunction normalizeArgs(storeOrArgs) {\n if (!storeOrArgs) return {};\n\n if (!Array.isArray(storeOrArgs)) {\n return {\n store: storeOrArgs,\n toInput: (x = \"\") => x,\n toValue: identity,\n };\n }\n\n const [store, { toInput = identity, toValue = identity } = {}] = storeOrArgs;\n return { store, toInput, toValue };\n}\n","import collSpecable from \"./collSpecable\";\nimport predSpecable from \"./predSpecable\";\nimport { isColl, isStore } from \"./util\";\n\nexport default function specable(initialValue, options = {}, _extra) {\n if (isStore(initialValue)) return initialValue;\n\n const collCandidate = options.fields || options.spec || initialValue;\n\n if (isColl(collCandidate)) {\n return collSpecable(initialValue, options, { ..._extra, specable });\n }\n\n return predSpecable(initialValue, options, _extra);\n}\n"],"names":["identity","x","noop","flexDerived","initialStores","fn","initialValue","_stores","$stores","writable","auto","length","mainStore","readable","publish","initialized","cleanup","pending","unsubs","Map","values","updateUnsubs","stores","stopUnusedSubs","map","store","get","usedStores","forEach","unsub","includes","stopSubscriptions","updateValues","sync","vals","reduce","acc","has","result","unsubscribe","subscribe","i","set","value","stop","exclude","update","prev","filter","include","isColl","typeOf","isFunc","isStore","obj","toString","call","split","slice","toLowerCase","entries","coll","array","v","object","Object","fromEntries","toType","val","keys","merge","args","colls","type","every","collTypes","join","TypeError","assign","Error","genRandomId","Math","random","toFixed","key","undefined","getPath","path","parent","countPathAncestors","str","match","keepForwardPath","node","startsWith","index","parseInt","isNaN","equals","a","b","eqBy","defaultEqBy","_a","_b","fastEquals","Date","valueOf","removeUndefined","deriveState","storesEntries","collType","collDerived","initialColl","state","index$stores","idx","_set","newColl","ALWAYS_VALID","valid","REQUIRED_SPECMA_FNS","CONFIG_ERROR_MSG","specma","ensureConfigured","configure","specmaFns","some","alwaysTrue","isMissing","defaultChangePred","reqSpec","getMessage","predSpecable","changePred","id","required","spec","onSubmit","_extra","and","getPred","validatePred","getAncestor","pred","isRequired","ownSpec","contextStores","context","addContext","relPath","ancestor","pathSinceAncestor","derived","$ancestor","ancestorValue","curr","next","getStoreValue","currPromise","_initialValue","active","submitting","$active","$value","$context","$submitting","getFrom","shouldValidate","enhanceResult","baseArgs","promise","interpretState","then","resolvedResult","activate","bool","tick","res","submit","currValue","reset","newValue","shouldActivate","promised","Promise","resolve","changed","error","reason","validating","collSpecable","fields","getId","getSpread","isOpt","collValue","isUndef","collDefiner","find","spreadGetId","spreadSpec","spreadFields","spreadRequired","isSpread","valueKeys","allKeys","Set","ownGetId","idGen","k","ownSpecable","createChildEntry","subChangePred","subVal","subSpec","subGetId","subId","subFields","subRequired","subStore","specable","n","childrenStores","children","derivedValue","$childrenStores","$childrenEntries","$childrenValues","childrenValue","aggregateStatusStores","status","$statusStores","$ownSpecable","$children","combined","combineChildren","details","child","errors","detailsToErrors","collErrors","setChildrenStores","newChildrenStores","addChildren","newEntries","updatedStores","removeChildrenById","idsToRemove","setValue","partial","childrenEntries","childrenKeys","missingChildren","collKeys","unusedIds","childStore","storesToActivate","promises","all","catch","add","getChild","reduced","getChildren","remove","newInitialValue","liftError","parentId","rest","newPath","which","flatMap","summarizeStatusError","subErrors","register","el","storeOrArgs","normalizeArgs","listen","blurHandler","inputHandler","e","toValue","target","elValue","toInput","addEventListener","unlisten","removeEventListener","destroy","newArgs","Array","isArray","options","collCandidate"],"mappings":"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"}
|
|
@@ -566,10 +566,11 @@
|
|
|
566
566
|
var active = store.writable(false);
|
|
567
567
|
var submitting = store.writable(false);
|
|
568
568
|
var value = store.writable(_initialValue);
|
|
569
|
-
var store$1 = store.derived([active, value, context], function (_ref2, set) {
|
|
569
|
+
var store$1 = store.derived([active, value, context, submitting], function (_ref2, set) {
|
|
570
570
|
var $active = _ref2[0],
|
|
571
571
|
$value = _ref2[1],
|
|
572
|
-
$context = _ref2[2]
|
|
572
|
+
$context = _ref2[2],
|
|
573
|
+
$submitting = _ref2[3];
|
|
573
574
|
currPromise = undefined;
|
|
574
575
|
|
|
575
576
|
function getFrom(relPath) {
|
|
@@ -588,6 +589,7 @@
|
|
|
588
589
|
initialValue: _initialValue,
|
|
589
590
|
id: id,
|
|
590
591
|
result: result,
|
|
592
|
+
submitting: $submitting,
|
|
591
593
|
value: $value
|
|
592
594
|
};
|
|
593
595
|
currPromise = result.promise;
|
|
@@ -644,6 +646,7 @@
|
|
|
644
646
|
id = _ref3.id,
|
|
645
647
|
initialValue = _ref3.initialValue,
|
|
646
648
|
result = _ref3.result,
|
|
649
|
+
submitting = _ref3.submitting,
|
|
647
650
|
value = _ref3.value;
|
|
648
651
|
var changed = changePred(value, initialValue);
|
|
649
652
|
return {
|
|
@@ -653,6 +656,7 @@
|
|
|
653
656
|
id: id,
|
|
654
657
|
initialValue: initialValue,
|
|
655
658
|
promise: result.promise || Promise.resolve(result),
|
|
659
|
+
submitting: submitting,
|
|
656
660
|
valid: !!result.valid,
|
|
657
661
|
validating: result.valid === null,
|
|
658
662
|
value: changed ? value : initialValue
|
|
@@ -707,12 +711,14 @@
|
|
|
707
711
|
var isUndef = collValue === undefined;
|
|
708
712
|
var _extra2 = _extra,
|
|
709
713
|
_getAncestor = _extra2.getAncestor;
|
|
710
|
-
var
|
|
714
|
+
var collDefiner = [fields, spec, initialValue].find(isColl);
|
|
715
|
+
var collType = typeOf(collDefiner);
|
|
711
716
|
var isRequired = required && !isOpt(required);
|
|
717
|
+
var spreadGetId = getSpread(getId);
|
|
712
718
|
var spreadSpec = getSpread(spec);
|
|
713
719
|
var spreadFields = getSpread(fields);
|
|
714
720
|
var spreadRequired = getSpread(required);
|
|
715
|
-
var isSpread = spreadSpec || spreadFields || spreadRequired;
|
|
721
|
+
var isSpread = spreadSpec || spreadFields || spreadRequired || spreadGetId || collType === "array";
|
|
716
722
|
var valueKeys = isSpread ? keys(initialValue) : [];
|
|
717
723
|
var allKeys = new Set(fields ? [].concat(keys(fields), valueKeys) : [].concat(keys(spec), keys(required), valueKeys));
|
|
718
724
|
var ownGetId = getPred(getId);
|
|
@@ -734,7 +740,7 @@
|
|
|
734
740
|
var subChangePred = get(key, changePred) || getSpread(changePred);
|
|
735
741
|
var subVal = val;
|
|
736
742
|
var subSpec = get(key, spec) || spreadSpec;
|
|
737
|
-
var subGetId = get(key, getId);
|
|
743
|
+
var subGetId = get(key, getId) || spreadGetId;
|
|
738
744
|
var subId = idGen(subVal, key);
|
|
739
745
|
var subFields = get(key, fields) || spreadFields;
|
|
740
746
|
var subRequired = get(key, required) || spreadRequired;
|
|
@@ -772,6 +778,7 @@
|
|
|
772
778
|
});
|
|
773
779
|
var childrenValue = fromEntries($childrenValues, collType);
|
|
774
780
|
var value = isSpread ? childrenValue : merge(collValue, childrenValue);
|
|
781
|
+
isUndef = value === undefined;
|
|
775
782
|
ownSpecable.set(value);
|
|
776
783
|
return value;
|
|
777
784
|
});
|
|
@@ -784,7 +791,6 @@
|
|
|
784
791
|
var $submitting = $statusStores[1],
|
|
785
792
|
$ownSpecable = $statusStores[2],
|
|
786
793
|
$children = $statusStores.slice(3);
|
|
787
|
-
var isUndef = $ownSpecable.value === undefined;
|
|
788
794
|
var combined = isUndef ? $ownSpecable : [$ownSpecable].concat($children).reduce(combineChildren);
|
|
789
795
|
if (combined.active !== false) ownSpecable.activate();
|
|
790
796
|
var value = $ownSpecable.value,
|
|
@@ -843,8 +849,8 @@
|
|
|
843
849
|
partial = false;
|
|
844
850
|
}
|
|
845
851
|
|
|
846
|
-
isUndef = coll === undefined;
|
|
847
852
|
collValue = partial && !isSpread ? merge(collValue, coll) : coll;
|
|
853
|
+
isUndef = collValue === undefined;
|
|
848
854
|
ownSpecable.set(collValue);
|
|
849
855
|
var childrenEntries = entries(childrenStores);
|
|
850
856
|
childrenEntries.forEach(function (_ref5) {
|
|
@@ -905,6 +911,7 @@
|
|
|
905
911
|
stores: childrenStores,
|
|
906
912
|
activate: activate,
|
|
907
913
|
add: function add(coll) {
|
|
914
|
+
if (coll !== undefined) isUndef = false;
|
|
908
915
|
addChildren(coll);
|
|
909
916
|
return this;
|
|
910
917
|
},
|
|
@@ -1113,9 +1120,14 @@
|
|
|
1113
1120
|
}
|
|
1114
1121
|
|
|
1115
1122
|
if (isStore(initialValue)) return initialValue;
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1123
|
+
var collCandidate = options.fields || options.spec || initialValue;
|
|
1124
|
+
|
|
1125
|
+
if (isColl(collCandidate)) {
|
|
1126
|
+
return collSpecable(initialValue, options, _extends({}, _extra, {
|
|
1127
|
+
specable: specable
|
|
1128
|
+
}));
|
|
1129
|
+
}
|
|
1130
|
+
|
|
1119
1131
|
return predSpecable(initialValue, options, _extra);
|
|
1120
1132
|
}
|
|
1121
1133
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svelte-specma.umd.js","sources":["../src/flexDerived.js","../src/util.js","../src/collDerived.js","../src/constants.js","../src/configure.js","../src/predSpecable.js","../src/collSpecable.js","../src/register.js","../src/specable.js"],"sourcesContent":["import { readable, writable } from \"svelte/store\";\n\nconst identity = (x) => x;\nconst noop = () => {};\n\nfunction flexDerived(initialStores = [], fn = identity, initialValue) {\n /* Used for ordering values */\n let _stores = initialStores;\n /* Store of stores. When last subscriber unsubscribes,\n * will stop all stores subs. */\n const $stores = writable(initialStores);\n\n /* Callback function can use a second argument, a `publish` function to set result asynchronously.\n * If not used, the return value of the function is the actual result to publish.\n * Otherwise, the return value might be a function to call before each execution\n * and when store is unsubscribed. */\n const auto = fn.length < 2;\n\n /* Use a readable store to manage subscribers. */\n const mainStore = readable(initialValue, (publish) => {\n let initialized = false;\n\n let cleanup = noop;\n let pending = 0;\n let unsubs = new Map();\n let values = new Map();\n\n /* Unsubscribe saved stores not included in a new list of stores\n * and create a new Map of unsub by store, reusing old ones when they exist. */\n function updateUnsubs(stores = []) {\n stopUnusedSubs(stores);\n unsubs = new Map(stores.map((store) => [store, unsubs.get(store)]));\n }\n\n function stopUnusedSubs(usedStores = []) {\n unsubs.forEach((unsub, store) => {\n if (!usedStores.includes(store) && unsub) unsub();\n });\n }\n\n function stopSubscriptions() {\n unsubs.forEach((unsub) => unsub && unsub());\n }\n\n /* Create a new map of values by store, reusing old ones when they exist. */\n function updateValues(stores = []) {\n values = new Map(stores.map((store) => [store, values.get(store)]));\n }\n\n /* Recompute and publish the combined result on values,\n * using `_stores` to ensure values order consistency. */\n function sync() {\n if (pending) return;\n cleanup();\n const vals = _stores.reduce(\n (acc, store) => (values.has(store) ? [...acc, values.get(store)] : acc),\n []\n );\n const result = fn(vals, publish);\n\n if (auto) {\n publish(result);\n } else {\n cleanup = typeof result === \"function\" ? result : noop;\n }\n }\n\n const unsubscribe = $stores.subscribe((stores) => {\n updateUnsubs(stores);\n updateValues(stores);\n\n /* Subscribe to each store if not alreay done.\n * When a any store value changes,\n * combined result will be updated and published. */\n _stores = [];\n stores.forEach((store, i) => {\n _stores[i] = store;\n\n if (!unsubs.get(store)) {\n unsubs.set(\n store,\n store.subscribe(\n (value) => {\n values.set(store, value);\n pending &= ~(1 << i);\n if (initialized) sync();\n },\n () => {\n pending |= 1 << i;\n }\n )\n );\n }\n });\n if (initialized) sync();\n });\n\n initialized = true;\n sync();\n\n return function stop() {\n unsubscribe();\n stopSubscriptions();\n cleanup();\n };\n });\n\n /* Exclude one or mode stores from the list. */\n function exclude(...stores) {\n $stores.update((prev) => prev.filter((store) => !stores.includes(store)));\n }\n\n /* Include one or more stores into the list. */\n function include(...stores) {\n $stores.update((prev) => [...prev, ...stores]);\n }\n\n return {\n exclude,\n include,\n set: $stores.set,\n stores: $stores,\n subscribe: mainStore.subscribe,\n update: $stores.update,\n };\n}\n\nexport default flexDerived;\n","import fastEquals from \"fast-deep-equal\";\n\nexport const identity = (x) => x;\nexport const isColl = (x) => [\"array\", \"map\", \"object\"].includes(typeOf(x));\nexport const isFunc = (x) => typeof x === \"function\";\nexport const isStore = (x) => x && x.subscribe && isFunc(x.subscribe);\n\nexport const typeOf = (obj) =>\n ({}.toString.call(obj).split(\" \")[1].slice(0, -1).toLowerCase());\n\nexport function entries(coll) {\n const fn = {\n array: () => coll.map((v, i) => [i, v]),\n map: () => [...coll.entries()],\n object: () => Object.entries(coll),\n }[typeOf(coll)];\n\n return fn ? fn(coll) : [];\n}\n\nexport function fromEntries(entries, toType) {\n const fn = {\n array: () => entries.map(([, val]) => val),\n map: () => new Map(entries),\n object: () => Object.fromEntries(entries),\n }[toType];\n return fn ? fn() : fromEntries(entries, \"map\");\n}\n\nexport function values(coll) {\n const fn = {\n array: () => [...coll],\n map: () => [...coll.values()],\n object: () => Object.values(coll),\n }[typeOf(coll)];\n\n return fn ? fn(coll) : [];\n}\n\nexport function keys(coll) {\n const fn = {\n array: () => coll.map((v, i) => i),\n map: () => [...coll.keys()],\n object: () => Object.keys(coll),\n }[typeOf(coll)];\n\n return fn ? fn(coll) : [];\n}\n\n/* Merge multiple collections of identical type with right to left arguments precedence. */\nexport function merge(...args) {\n const colls = args.filter(isColl);\n const type = typeOf(colls[0]);\n if (!colls.every((coll) => typeOf(coll) === type)) {\n const collTypes = colls.map(typeOf).join(\", \");\n throw new TypeError(\n `Collections must be of same type. Received '${collTypes}'.`\n );\n }\n\n const fn = {\n array: () =>\n colls.reduce((acc, coll) => {\n if (coll.length >= acc.length) return coll;\n return [...coll, ...acc.slice(coll.length)];\n }, []),\n map: () => new Map(colls.map((coll) => coll.entries())),\n object: () => Object.assign({}, ...colls),\n }[type];\n\n if (!fn) throw new Error(`'merge' not implemented yet for ${type}`);\n\n return fn();\n}\n\nexport function genRandomId() {\n return (Math.random() * 1e9).toFixed(0);\n}\n\nexport function get(key, coll) {\n const fn = {\n array: () => coll[key],\n map: () => coll.get(key),\n object: () => coll[key],\n }[typeOf(coll)];\n\n return fn ? fn(key, coll) : undefined;\n}\n\nexport function getPath(path = [], value) {\n return path.reduce((parent, key) => get(key, parent), value);\n}\n\nexport function countPathAncestors(str = \"\") {\n return (str.match(/\\.\\.\\/|\\.\\.$/g) || []).length;\n}\n\nexport function keepForwardPath(str = \"\") {\n return str.split(\"/\").reduce((acc, node) => {\n if (!node || node.startsWith(\".\")) return acc;\n const index = parseInt(node, 10);\n return [...acc, isNaN(index) ? node : index];\n }, []);\n}\n\nexport function equals(a, b, eqBy = defaultEqBy) {\n const [_a, _b] = [a, b].map(eqBy);\n return _a === _b || fastEquals(_a, _b);\n}\n\nfunction defaultEqBy(x) {\n if (x instanceof Date) return x.valueOf();\n if (isColl(x)) return removeUndefined(x);\n return x;\n}\n\nfunction removeUndefined(x) {\n if (!isColl(x)) return x;\n return fromEntries(\n entries(x).reduce(\n (acc, [key, val]) =>\n val === undefined ? acc : [...acc, [key, removeUndefined(val)]],\n []\n ),\n typeOf(x)\n );\n}\n","import flexDerived from \"./flexDerived\";\nimport { entries, fromEntries, identity, typeOf } from \"./util\";\n\nfunction deriveState(coll) {\n const storesEntries = entries(coll);\n return {\n coll,\n collType: typeOf(coll),\n storesEntries,\n keys: storesEntries.map(([key]) => key),\n stores: storesEntries.map(([, store]) => store),\n };\n}\n\nfunction collDerived(initialColl, fn = identity, initialValue) {\n let state = deriveState(initialColl);\n\n /* The callback passed to `flexDerived` can have arity 1 or 2.\n * The arity should match the one of the provided function.\n * When using arity 2, a set function is provided so that\n * result can be used asynchronously */\n const auto = fn.length < 2;\n const index$stores = ($stores) =>\n fromEntries(\n $stores.map((store, idx) => [state.keys[idx], store]),\n state.collType\n );\n\n const values = flexDerived(\n state.stores,\n auto\n ? ($stores) => fn(index$stores($stores))\n : ($stores, _set) => fn(index$stores($stores), _set),\n initialValue\n );\n\n function set(newColl) {\n state = deriveState(newColl);\n values.set(state.stores);\n }\n\n return {\n set,\n subscribe: values.subscribe,\n };\n}\n\nexport default collDerived;\n","export const ALWAYS_VALID = { valid: true };\n","const REQUIRED_SPECMA_FNS = [\n \"and\",\n \"getMessage\",\n \"getPred\",\n \"getSpread\",\n \"isOpt\",\n \"validatePred\",\n];\n\nconst CONFIG_ERROR_MSG =\n \"SvelteSpecma must be configured with a valid Specma version.\";\n\nexport let specma = undefined;\n\nexport function ensureConfigured() {\n if (!specma) {\n throw new TypeError(CONFIG_ERROR_MSG);\n }\n}\n\nexport default function configure(specmaFns) {\n if (\n !specmaFns ||\n REQUIRED_SPECMA_FNS.some((key) => typeof specmaFns[key] !== \"function\")\n ) {\n throw new TypeError(CONFIG_ERROR_MSG);\n }\n specma = specmaFns;\n}\n","import { tick } from \"svelte\";\nimport { derived, get as getStoreValue, writable } from \"svelte/store\";\nimport { ALWAYS_VALID } from \"./constants\";\nimport { countPathAncestors, equals, getPath, keepForwardPath } from \"./util\";\nimport collDerived from \"./collDerived\";\nimport { specma, ensureConfigured } from \"./configure\";\n\nconst alwaysTrue = () => true;\nconst isMissing = (x) => [undefined, null, \"\"].includes(x);\nconst defaultChangePred = (a, b) => !equals(a, b);\n\nconst reqSpec = (x) => !isMissing(x) || specma.getMessage(\"isRequired\");\n\nexport default function predSpecable(\n initialValue,\n { changePred = defaultChangePred, id, required, spec, onSubmit } = {},\n _extra = {}\n) {\n ensureConfigured();\n const { and, getPred, validatePred } = specma;\n\n const { getAncestor } = _extra;\n const pred = getPred(spec) || alwaysTrue;\n const isRequired = !!required;\n const ownSpec = isRequired ? and(reqSpec, pred) : pred;\n\n const contextStores = {};\n const context = collDerived(contextStores);\n\n function addContext(relPath) {\n /* If `getFrom` has already been called once,\n * context store is already tracking the value. */\n if (contextStores[relPath]) return;\n\n const ancestor = getAncestor(countPathAncestors(relPath));\n if (!ancestor) return;\n\n const pathSinceAncestor = keepForwardPath(relPath);\n\n contextStores[relPath] = derived(ancestor, ($ancestor, set) => {\n const ancestorValue = $ancestor.value;\n if (!ancestorValue) return;\n\n const curr = contextStores[relPath].value;\n const next = getPath(pathSinceAncestor, ancestorValue);\n if (!equals(curr, next)) {\n contextStores[relPath].value = next;\n set(next);\n }\n });\n context.set(contextStores);\n\n /* If context has just been created, it won't be accessible\n * in the derived store at first.\n * In that case, return the static store value. */\n return getPath(pathSinceAncestor, getStoreValue(ancestor).value);\n }\n\n let currPromise;\n let _initialValue = initialValue;\n\n const active = writable(false);\n const submitting = writable(false);\n const value = writable(_initialValue);\n\n const store = derived(\n [active, value, context],\n ([$active, $value, $context], set) => {\n currPromise = undefined;\n\n function getFrom(relPath) {\n if (!contextStores[relPath]) {\n return addContext(relPath);\n }\n return $context[relPath];\n }\n\n const shouldValidate = $active && ($value !== undefined || required);\n\n const result = enhanceResult(\n shouldValidate ? validatePred(ownSpec, $value, getFrom) : ALWAYS_VALID\n );\n const baseArgs = {\n active: $active,\n changePred,\n initialValue: _initialValue,\n id,\n result,\n value: $value,\n };\n\n currPromise = result.promise;\n\n set(interpretState(baseArgs));\n\n if (result.valid === null) {\n result.promise.then((resolvedResult) => {\n /* Promise might be outdated */\n if (result.promise !== currPromise) return;\n\n set(interpretState({ ...baseArgs, result: resolvedResult }));\n });\n }\n }\n );\n\n async function activate(bool = true) {\n active.set(bool);\n await tick();\n const res = await currPromise;\n return res.valid;\n }\n\n async function submit() {\n if (!onSubmit) return;\n submitting.set(true);\n const valid = await activate();\n if (valid) {\n const currValue = getStoreValue(value);\n await onSubmit(currValue);\n }\n submitting.set(false);\n }\n\n return {\n id,\n isRequired,\n spec: pred,\n\n activate,\n\n reset(newValue = _initialValue) {\n _initialValue = newValue;\n this.activate(false);\n this.set(newValue);\n },\n\n set: (newValue, shouldActivate = false) => {\n value.set(newValue);\n if (shouldActivate) activate();\n },\n\n submit,\n\n subscribe: store.subscribe,\n };\n}\n\nfunction enhanceResult(res) {\n return {\n ...res,\n promise: res.promise\n ? res.promise.then((promised) => enhanceResult(promised))\n : Promise.resolve(res),\n };\n}\n\nfunction interpretState({\n active,\n changePred,\n id,\n initialValue,\n result,\n value,\n}) {\n const changed = changePred(value, initialValue);\n return {\n active,\n changed,\n error: result.valid === false && result.reason,\n id,\n initialValue,\n promise: result.promise || Promise.resolve(result),\n valid: !!result.valid,\n validating: result.valid === null,\n value: changed ? value : initialValue,\n };\n}\n","import { get as getStoreValue, writable } from \"svelte/store\";\nimport collDerived from \"./collDerived\";\nimport flexDerived from \"./flexDerived\";\nimport predSpecable from \"./predSpecable\";\nimport {\n entries,\n fromEntries,\n genRandomId,\n get,\n isColl,\n keys,\n merge,\n typeOf,\n values,\n} from \"./util\";\nimport { specma, ensureConfigured } from \"./configure\";\n\nexport default function collSpecable(\n initialValue,\n { changePred, fields, getId, id, required, spec, onSubmit } = {},\n _extra = {}\n) {\n ensureConfigured();\n const { getPred, getSpread, isOpt } = specma;\n\n let collValue = initialValue; // For static properties\n let isUndef = collValue === undefined;\n\n const { getAncestor } = _extra;\n const collType = isColl(spec) ? typeOf(spec) : typeOf(initialValue);\n const isRequired = required && !isOpt(required);\n const spreadSpec = getSpread(spec);\n const spreadFields = getSpread(fields);\n const spreadRequired = getSpread(required);\n const isSpread = spreadSpec || spreadFields || spreadRequired;\n\n const valueKeys = isSpread ? keys(initialValue) : [];\n const allKeys = new Set(\n fields\n ? [...keys(fields), ...valueKeys]\n : [...keys(spec), ...keys(required), ...valueKeys]\n );\n\n const ownGetId = getPred(getId);\n const idGen = (v, k) => {\n if (ownGetId) return ownGetId(v, k);\n if (collType === \"array\") return genRandomId();\n return k;\n };\n\n const ownSpecable = predSpecable(\n initialValue,\n {\n changePred: getPred(changePred),\n id,\n required: isRequired,\n spec,\n },\n _extra\n );\n\n const createChildEntry = (key, val) => {\n const subChangePred = get(key, changePred) || getSpread(changePred);\n const subVal = val;\n const subSpec = get(key, spec) || spreadSpec;\n const subGetId = get(key, getId);\n const subId = idGen(subVal, key);\n const subFields = get(key, fields) || spreadFields;\n const subRequired = get(key, required) || spreadRequired;\n\n const subStore = _extra.specable(\n subVal,\n {\n spec: subSpec,\n changePred: subChangePred,\n id: subId,\n getId: subGetId,\n fields: subFields,\n required: subRequired,\n },\n {\n getAncestor: (n) =>\n n <= 1 || !getAncestor ? ownSpecable : getAncestor(n - 1),\n }\n );\n\n return [key, { ...subStore, id: subId }];\n };\n\n let childrenStores = fromEntries(\n [...allKeys].map((key) => createChildEntry(key, get(key, initialValue))),\n collType\n );\n const children = writable(childrenStores);\n const submitting = writable(false);\n\n const derivedValue = collDerived(childrenStores, ($childrenStores) => {\n if (isUndef) return undefined;\n\n const $childrenEntries = entries($childrenStores);\n const $childrenValues = $childrenEntries.map(([key, state]) => [\n key,\n state.value,\n ]);\n const childrenValue = fromEntries($childrenValues, collType);\n const value = isSpread ? childrenValue : merge(collValue, childrenValue);\n ownSpecable.set(value);\n return value;\n });\n\n const aggregateStatusStores = () => [\n derivedValue,\n submitting,\n ownSpecable,\n ...values(childrenStores),\n ];\n\n const status = flexDerived(aggregateStatusStores(), ($statusStores) => {\n const [, $submitting, $ownSpecable, ...$children] = $statusStores;\n\n const isUndef = $ownSpecable.value === undefined;\n\n const combined = isUndef\n ? $ownSpecable\n : [$ownSpecable, ...$children].reduce(combineChildren);\n\n if (combined.active !== false) ownSpecable.activate();\n\n const { value, error } = $ownSpecable;\n\n const details = Object.fromEntries([\n [\"_\", $ownSpecable],\n ...(isUndef ? [] : $children.map((child) => [child.id, child])),\n ]);\n\n const errors = detailsToErrors(details, id);\n const collErrors = errors.filter(({ isColl }) => isColl);\n\n return {\n ...combined,\n id,\n initialValue: $ownSpecable.initialValue,\n value,\n error,\n errors,\n collErrors,\n details,\n submitting: $submitting,\n };\n });\n\n function setChildrenStores(newChildrenStores) {\n childrenStores = newChildrenStores;\n children.set(newChildrenStores);\n derivedValue.set(newChildrenStores);\n status.set(aggregateStatusStores());\n }\n\n function addChildren(coll) {\n if (!coll) return;\n\n const newEntries = keys(coll).map((key) =>\n createChildEntry(key, get(key, coll))\n );\n const updatedStores = fromEntries(\n [...entries(childrenStores), ...newEntries],\n collType\n );\n setChildrenStores(updatedStores);\n }\n\n function removeChildrenById(idsToRemove = []) {\n if (idsToRemove.length < 1) return;\n\n const updatedStores = fromEntries(\n entries(childrenStores).filter(\n ([, store]) => !idsToRemove.includes(store.id)\n ),\n collType\n );\n setChildrenStores(updatedStores);\n }\n\n function setValue(coll, partial = false) {\n isUndef = coll === undefined;\n collValue = partial && !isSpread ? merge(collValue, coll) : coll;\n ownSpecable.set(collValue);\n\n const childrenEntries = entries(childrenStores);\n\n childrenEntries.forEach(([key, store]) => {\n const newValue = get(key, coll);\n if (partial && newValue === undefined) return;\n store.set(newValue, partial);\n });\n if (!isSpread) return;\n\n /* If collection allows spread children... */\n\n /* Add `coll` entries that are not yet part of the children stores. */\n const childrenKeys = keys(childrenStores);\n const missingChildren = fromEntries(\n entries(coll).filter(([key]) => !childrenKeys.includes(key)),\n collType\n );\n addChildren(missingChildren);\n\n if (partial) return;\n\n /* If update is not partial, remove children stores that do not store\n * a collection value anymore (garbage collection). */\n const collKeys = keys(coll);\n const unusedIds = childrenEntries.reduce((acc, [key, childStore]) => {\n return collKeys.includes(key) ? acc : [...acc, childStore.id];\n }, []);\n removeChildrenById(unusedIds);\n }\n\n function activate(bool = true) {\n const storesToActivate = [\n ownSpecable,\n ...(isUndef ? [] : values(childrenStores)),\n ];\n const promises = storesToActivate.map((store) => {\n const promise = store.activate(bool);\n return promise.then((valid) => {\n if (valid) return valid;\n throw valid;\n });\n });\n return Promise.all(promises)\n .then(() => true)\n .catch(() => false);\n }\n\n async function submit() {\n if (!onSubmit) return;\n submitting.set(true);\n const valid = await activate();\n if (valid) {\n const currValue = getStoreValue(ownSpecable).value;\n await onSubmit(currValue);\n }\n submitting.set(false);\n }\n\n return {\n id,\n isRequired,\n spec,\n stores: childrenStores,\n\n activate,\n\n add(coll) {\n addChildren(coll);\n return this;\n },\n\n getChild(path = []) {\n const reduced = path.reduce(\n (acc, key) => {\n const { children } = acc;\n if (!children) return { res: null };\n const childStore = get(key, children);\n if (!childStore) return { res: null };\n return {\n res: childStore,\n children: childStore.getChildren ? childStore.getChildren() : [],\n };\n },\n { children: childrenStores }\n );\n return reduced.res;\n },\n\n getChildren() {\n return childrenStores;\n },\n\n remove(idsToRemove = []) {\n removeChildrenById(idsToRemove);\n return this;\n },\n\n reset(newInitialValue = initialValue) {\n setValue(newInitialValue, false);\n activate(false);\n return this;\n },\n\n set(coll, partial = false, shouldActivate = false) {\n setValue(coll, partial);\n if (shouldActivate) activate();\n return this;\n },\n\n update: (fn) => {\n setChildrenStores(fn(childrenStores));\n return this;\n },\n\n children: {\n subscribe: children.subscribe,\n },\n\n submit,\n\n subscribe: status.subscribe,\n };\n}\n\nfunction combineChildren(a, b) {\n const validating = a.validating || b.validating;\n return {\n active: a.active === b.active ? b.active : null,\n changed: a.changed || b.changed,\n valid: validating ? null : a.valid && b.valid,\n validating,\n };\n}\n\nconst liftError = (parentId) => ({ path, error, ...rest }) => {\n const newPath = parentId === undefined ? path : [parentId, ...path];\n return {\n ...rest,\n path: newPath,\n which: newPath.join(\".\"),\n error,\n };\n};\n\nfunction detailsToErrors(details, parentId) {\n return Object.entries(details)\n .flatMap(([key, status]) => {\n if (!status.details) {\n if (!status.error) return [];\n if (key === \"_\") {\n return [{ path: [], error: status.error, isColl: true }];\n }\n return [summarizeStatusError(status)];\n }\n\n const subErrors = detailsToErrors(status.details, details.id);\n return subErrors.map(liftError(status.id));\n })\n .map(liftError(parentId));\n}\n\nfunction summarizeStatusError({ id, error }) {\n return { path: [id], which: id, error };\n}\n","import { identity } from \"./util\";\n\nexport default function register(el, storeOrArgs) {\n let args = normalizeArgs(storeOrArgs);\n if (!el || !args.store) return;\n\n let unsub;\n listen();\n\n function blurHandler() {\n args.store.activate();\n }\n\n function inputHandler(e) {\n args.store.set(args.toValue(e.target.value));\n }\n\n function listen() {\n unsub = args.store.subscribe(({ value }) => {\n const elValue = args.toInput(value);\n if (el.value !== elValue) el.value = elValue;\n });\n el.addEventListener(\"blur\", blurHandler);\n el.addEventListener(\"input\", inputHandler);\n }\n\n function unlisten() {\n unsub();\n el.removeEventListener(\"blur\", blurHandler);\n el.removeEventListener(\"input\", inputHandler);\n }\n\n return {\n destroy: unlisten,\n update(newArgs) {\n unlisten();\n if (!newArgs) return;\n args = normalizeArgs(newArgs);\n listen();\n },\n };\n}\n\nfunction normalizeArgs(storeOrArgs) {\n if (!storeOrArgs) return {};\n\n if (!Array.isArray(storeOrArgs)) {\n return {\n store: storeOrArgs,\n toInput: (x = \"\") => x,\n toValue: identity,\n };\n }\n\n const [store, { toInput = identity, toValue = identity } = {}] = storeOrArgs;\n return { store, toInput, toValue };\n}\n","import collSpecable from \"./collSpecable\";\nimport predSpecable from \"./predSpecable\";\nimport { isColl, isStore } from \"./util\";\n\nexport default function specable(initialValue, options = {}, _extra) {\n if (isStore(initialValue)) return initialValue;\n\n if (isColl(options.spec || initialValue))\n return collSpecable(initialValue, options, { ..._extra, specable });\n\n return predSpecable(initialValue, options, _extra);\n}\n"],"names":["identity","x","noop","flexDerived","initialStores","fn","initialValue","_stores","$stores","writable","auto","length","mainStore","readable","publish","initialized","cleanup","pending","unsubs","Map","values","updateUnsubs","stores","stopUnusedSubs","map","store","get","usedStores","forEach","unsub","includes","stopSubscriptions","updateValues","sync","vals","reduce","acc","has","result","unsubscribe","subscribe","i","set","value","stop","exclude","update","prev","filter","include","isColl","typeOf","isFunc","isStore","obj","toString","call","split","slice","toLowerCase","entries","coll","array","v","object","Object","fromEntries","toType","val","keys","merge","colls","type","every","collTypes","join","TypeError","assign","Error","genRandomId","Math","random","toFixed","key","undefined","getPath","path","parent","countPathAncestors","str","match","keepForwardPath","node","startsWith","index","parseInt","isNaN","equals","a","b","eqBy","defaultEqBy","_a","_b","fastEquals","Date","valueOf","removeUndefined","deriveState","storesEntries","collType","collDerived","initialColl","state","index$stores","idx","_set","newColl","ALWAYS_VALID","valid","REQUIRED_SPECMA_FNS","CONFIG_ERROR_MSG","specma","ensureConfigured","configure","specmaFns","some","alwaysTrue","isMissing","defaultChangePred","reqSpec","getMessage","predSpecable","_extra","submit","onSubmit","submitting","activate","currValue","getStoreValue","bool","active","tick","currPromise","res","changePred","id","required","spec","and","getPred","validatePred","getAncestor","pred","isRequired","ownSpec","contextStores","context","addContext","relPath","ancestor","pathSinceAncestor","derived","$ancestor","ancestorValue","curr","next","_initialValue","$active","$value","$context","getFrom","shouldValidate","enhanceResult","baseArgs","promise","interpretState","then","resolvedResult","reset","newValue","shouldActivate","promised","Promise","resolve","changed","error","reason","validating","collSpecable","ownSpecable","fields","getId","getSpread","isOpt","collValue","isUndef","spreadSpec","spreadFields","spreadRequired","isSpread","valueKeys","allKeys","Set","ownGetId","idGen","k","createChildEntry","subChangePred","subVal","subSpec","subGetId","subId","subFields","subRequired","subStore","specable","n","childrenStores","children","derivedValue","$childrenStores","$childrenEntries","$childrenValues","childrenValue","aggregateStatusStores","status","$statusStores","$submitting","$ownSpecable","$children","combined","combineChildren","details","child","errors","detailsToErrors","collErrors","setChildrenStores","newChildrenStores","addChildren","newEntries","updatedStores","removeChildrenById","idsToRemove","setValue","partial","childrenEntries","childrenKeys","missingChildren","collKeys","unusedIds","childStore","storesToActivate","promises","all","add","getChild","reduced","getChildren","remove","newInitialValue","liftError","parentId","rest","newPath","which","flatMap","summarizeStatusError","subErrors","register","el","storeOrArgs","args","normalizeArgs","listen","blurHandler","inputHandler","e","toValue","target","elValue","toInput","addEventListener","unlisten","removeEventListener","destroy","newArgs","Array","isArray","options"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"svelte-specma.umd.js","sources":["../src/flexDerived.js","../src/util.js","../src/collDerived.js","../src/constants.js","../src/configure.js","../src/predSpecable.js","../src/collSpecable.js","../src/register.js","../src/specable.js"],"sourcesContent":["import { readable, writable } from \"svelte/store\";\n\nconst identity = (x) => x;\nconst noop = () => {};\n\nfunction flexDerived(initialStores = [], fn = identity, initialValue) {\n /* Used for ordering values */\n let _stores = initialStores;\n /* Store of stores. When last subscriber unsubscribes,\n * will stop all stores subs. */\n const $stores = writable(initialStores);\n\n /* Callback function can use a second argument, a `publish` function to set result asynchronously.\n * If not used, the return value of the function is the actual result to publish.\n * Otherwise, the return value might be a function to call before each execution\n * and when store is unsubscribed. */\n const auto = fn.length < 2;\n\n /* Use a readable store to manage subscribers. */\n const mainStore = readable(initialValue, (publish) => {\n let initialized = false;\n\n let cleanup = noop;\n let pending = 0;\n let unsubs = new Map();\n let values = new Map();\n\n /* Unsubscribe saved stores not included in a new list of stores\n * and create a new Map of unsub by store, reusing old ones when they exist. */\n function updateUnsubs(stores = []) {\n stopUnusedSubs(stores);\n unsubs = new Map(stores.map((store) => [store, unsubs.get(store)]));\n }\n\n function stopUnusedSubs(usedStores = []) {\n unsubs.forEach((unsub, store) => {\n if (!usedStores.includes(store) && unsub) unsub();\n });\n }\n\n function stopSubscriptions() {\n unsubs.forEach((unsub) => unsub && unsub());\n }\n\n /* Create a new map of values by store, reusing old ones when they exist. */\n function updateValues(stores = []) {\n values = new Map(stores.map((store) => [store, values.get(store)]));\n }\n\n /* Recompute and publish the combined result on values,\n * using `_stores` to ensure values order consistency. */\n function sync() {\n if (pending) return;\n cleanup();\n const vals = _stores.reduce(\n (acc, store) => (values.has(store) ? [...acc, values.get(store)] : acc),\n []\n );\n const result = fn(vals, publish);\n\n if (auto) {\n publish(result);\n } else {\n cleanup = typeof result === \"function\" ? result : noop;\n }\n }\n\n const unsubscribe = $stores.subscribe((stores) => {\n updateUnsubs(stores);\n updateValues(stores);\n\n /* Subscribe to each store if not alreay done.\n * When a any store value changes,\n * combined result will be updated and published. */\n _stores = [];\n stores.forEach((store, i) => {\n _stores[i] = store;\n\n if (!unsubs.get(store)) {\n unsubs.set(\n store,\n store.subscribe(\n (value) => {\n values.set(store, value);\n pending &= ~(1 << i);\n if (initialized) sync();\n },\n () => {\n pending |= 1 << i;\n }\n )\n );\n }\n });\n if (initialized) sync();\n });\n\n initialized = true;\n sync();\n\n return function stop() {\n unsubscribe();\n stopSubscriptions();\n cleanup();\n };\n });\n\n /* Exclude one or mode stores from the list. */\n function exclude(...stores) {\n $stores.update((prev) => prev.filter((store) => !stores.includes(store)));\n }\n\n /* Include one or more stores into the list. */\n function include(...stores) {\n $stores.update((prev) => [...prev, ...stores]);\n }\n\n return {\n exclude,\n include,\n set: $stores.set,\n stores: $stores,\n subscribe: mainStore.subscribe,\n update: $stores.update,\n };\n}\n\nexport default flexDerived;\n","import fastEquals from \"fast-deep-equal\";\n\nexport const identity = (x) => x;\nexport const isColl = (x) => [\"array\", \"map\", \"object\"].includes(typeOf(x));\nexport const isFunc = (x) => typeof x === \"function\";\nexport const isStore = (x) => x && x.subscribe && isFunc(x.subscribe);\n\nexport const typeOf = (obj) =>\n ({}.toString.call(obj).split(\" \")[1].slice(0, -1).toLowerCase());\n\nexport function entries(coll) {\n const fn = {\n array: () => coll.map((v, i) => [i, v]),\n map: () => [...coll.entries()],\n object: () => Object.entries(coll),\n }[typeOf(coll)];\n\n return fn ? fn(coll) : [];\n}\n\nexport function fromEntries(entries, toType) {\n const fn = {\n array: () => entries.map(([, val]) => val),\n map: () => new Map(entries),\n object: () => Object.fromEntries(entries),\n }[toType];\n return fn ? fn() : fromEntries(entries, \"map\");\n}\n\nexport function values(coll) {\n const fn = {\n array: () => [...coll],\n map: () => [...coll.values()],\n object: () => Object.values(coll),\n }[typeOf(coll)];\n\n return fn ? fn(coll) : [];\n}\n\nexport function keys(coll) {\n const fn = {\n array: () => coll.map((v, i) => i),\n map: () => [...coll.keys()],\n object: () => Object.keys(coll),\n }[typeOf(coll)];\n\n return fn ? fn(coll) : [];\n}\n\n/* Merge multiple collections of identical type with right to left arguments precedence. */\nexport function merge(...args) {\n const colls = args.filter(isColl);\n const type = typeOf(colls[0]);\n if (!colls.every((coll) => typeOf(coll) === type)) {\n const collTypes = colls.map(typeOf).join(\", \");\n throw new TypeError(\n `Collections must be of same type. Received '${collTypes}'.`\n );\n }\n\n const fn = {\n array: () =>\n colls.reduce((acc, coll) => {\n if (coll.length >= acc.length) return coll;\n return [...coll, ...acc.slice(coll.length)];\n }, []),\n map: () => new Map(colls.map((coll) => coll.entries())),\n object: () => Object.assign({}, ...colls),\n }[type];\n\n if (!fn) throw new Error(`'merge' not implemented yet for ${type}`);\n\n return fn();\n}\n\nexport function genRandomId() {\n return (Math.random() * 1e9).toFixed(0);\n}\n\nexport function get(key, coll) {\n const fn = {\n array: () => coll[key],\n map: () => coll.get(key),\n object: () => coll[key],\n }[typeOf(coll)];\n\n return fn ? fn(key, coll) : undefined;\n}\n\nexport function getPath(path = [], value) {\n return path.reduce((parent, key) => get(key, parent), value);\n}\n\nexport function countPathAncestors(str = \"\") {\n return (str.match(/\\.\\.\\/|\\.\\.$/g) || []).length;\n}\n\nexport function keepForwardPath(str = \"\") {\n return str.split(\"/\").reduce((acc, node) => {\n if (!node || node.startsWith(\".\")) return acc;\n const index = parseInt(node, 10);\n return [...acc, isNaN(index) ? node : index];\n }, []);\n}\n\nexport function equals(a, b, eqBy = defaultEqBy) {\n const [_a, _b] = [a, b].map(eqBy);\n return _a === _b || fastEquals(_a, _b);\n}\n\nfunction defaultEqBy(x) {\n if (x instanceof Date) return x.valueOf();\n if (isColl(x)) return removeUndefined(x);\n return x;\n}\n\nfunction removeUndefined(x) {\n if (!isColl(x)) return x;\n return fromEntries(\n entries(x).reduce(\n (acc, [key, val]) =>\n val === undefined ? acc : [...acc, [key, removeUndefined(val)]],\n []\n ),\n typeOf(x)\n );\n}\n","import flexDerived from \"./flexDerived\";\nimport { entries, fromEntries, identity, typeOf } from \"./util\";\n\nfunction deriveState(coll) {\n const storesEntries = entries(coll);\n return {\n coll,\n collType: typeOf(coll),\n storesEntries,\n keys: storesEntries.map(([key]) => key),\n stores: storesEntries.map(([, store]) => store),\n };\n}\n\nfunction collDerived(initialColl, fn = identity, initialValue) {\n let state = deriveState(initialColl);\n\n /* The callback passed to `flexDerived` can have arity 1 or 2.\n * The arity should match the one of the provided function.\n * When using arity 2, a set function is provided so that\n * result can be used asynchronously */\n const auto = fn.length < 2;\n const index$stores = ($stores) =>\n fromEntries(\n $stores.map((store, idx) => [state.keys[idx], store]),\n state.collType\n );\n\n const values = flexDerived(\n state.stores,\n auto\n ? ($stores) => fn(index$stores($stores))\n : ($stores, _set) => fn(index$stores($stores), _set),\n initialValue\n );\n\n function set(newColl) {\n state = deriveState(newColl);\n values.set(state.stores);\n }\n\n return {\n set,\n subscribe: values.subscribe,\n };\n}\n\nexport default collDerived;\n","export const ALWAYS_VALID = { valid: true };\n","const REQUIRED_SPECMA_FNS = [\n \"and\",\n \"getMessage\",\n \"getPred\",\n \"getSpread\",\n \"isOpt\",\n \"validatePred\",\n];\n\nconst CONFIG_ERROR_MSG =\n \"SvelteSpecma must be configured with a valid Specma version.\";\n\nexport let specma = undefined;\n\nexport function ensureConfigured() {\n if (!specma) {\n throw new TypeError(CONFIG_ERROR_MSG);\n }\n}\n\nexport default function configure(specmaFns) {\n if (\n !specmaFns ||\n REQUIRED_SPECMA_FNS.some((key) => typeof specmaFns[key] !== \"function\")\n ) {\n throw new TypeError(CONFIG_ERROR_MSG);\n }\n specma = specmaFns;\n}\n","import { tick } from \"svelte\";\nimport { derived, get as getStoreValue, writable } from \"svelte/store\";\nimport { ALWAYS_VALID } from \"./constants\";\nimport { countPathAncestors, equals, getPath, keepForwardPath } from \"./util\";\nimport collDerived from \"./collDerived\";\nimport { specma, ensureConfigured } from \"./configure\";\n\nconst alwaysTrue = () => true;\nconst isMissing = (x) => [undefined, null, \"\"].includes(x);\nconst defaultChangePred = (a, b) => !equals(a, b);\n\nconst reqSpec = (x) => !isMissing(x) || specma.getMessage(\"isRequired\");\n\nexport default function predSpecable(\n initialValue,\n { changePred = defaultChangePred, id, required, spec, onSubmit } = {},\n _extra = {}\n) {\n ensureConfigured();\n const { and, getPred, validatePred } = specma;\n\n const { getAncestor } = _extra;\n const pred = getPred(spec) || alwaysTrue;\n const isRequired = !!required;\n const ownSpec = isRequired ? and(reqSpec, pred) : pred;\n\n const contextStores = {};\n const context = collDerived(contextStores);\n\n function addContext(relPath) {\n /* If `getFrom` has already been called once,\n * context store is already tracking the value. */\n if (contextStores[relPath]) return;\n\n const ancestor = getAncestor(countPathAncestors(relPath));\n if (!ancestor) return;\n\n const pathSinceAncestor = keepForwardPath(relPath);\n\n contextStores[relPath] = derived(ancestor, ($ancestor, set) => {\n const ancestorValue = $ancestor.value;\n if (!ancestorValue) return;\n\n const curr = contextStores[relPath].value;\n const next = getPath(pathSinceAncestor, ancestorValue);\n if (!equals(curr, next)) {\n contextStores[relPath].value = next;\n set(next);\n }\n });\n context.set(contextStores);\n\n /* If context has just been created, it won't be accessible\n * in the derived store at first.\n * In that case, return the static store value. */\n return getPath(pathSinceAncestor, getStoreValue(ancestor).value);\n }\n\n let currPromise;\n let _initialValue = initialValue;\n\n const active = writable(false);\n const submitting = writable(false);\n const value = writable(_initialValue);\n\n const store = derived(\n [active, value, context, submitting],\n ([$active, $value, $context, $submitting], set) => {\n currPromise = undefined;\n\n function getFrom(relPath) {\n if (!contextStores[relPath]) {\n return addContext(relPath);\n }\n return $context[relPath];\n }\n\n const shouldValidate = $active && ($value !== undefined || required);\n\n const result = enhanceResult(\n shouldValidate ? validatePred(ownSpec, $value, getFrom) : ALWAYS_VALID\n );\n const baseArgs = {\n active: $active,\n changePred,\n initialValue: _initialValue,\n id,\n result,\n submitting: $submitting,\n value: $value,\n };\n\n currPromise = result.promise;\n\n set(interpretState(baseArgs));\n\n if (result.valid === null) {\n result.promise.then((resolvedResult) => {\n /* Promise might be outdated */\n if (result.promise !== currPromise) return;\n\n set(interpretState({ ...baseArgs, result: resolvedResult }));\n });\n }\n }\n );\n\n async function activate(bool = true) {\n active.set(bool);\n await tick();\n const res = await currPromise;\n return res.valid;\n }\n\n async function submit() {\n if (!onSubmit) return;\n submitting.set(true);\n const valid = await activate();\n if (valid) {\n const currValue = getStoreValue(value);\n await onSubmit(currValue);\n }\n submitting.set(false);\n }\n\n return {\n id,\n isRequired,\n spec: pred,\n\n activate,\n\n reset(newValue = _initialValue) {\n _initialValue = newValue;\n this.activate(false);\n this.set(newValue);\n },\n\n set: (newValue, shouldActivate = false) => {\n value.set(newValue);\n if (shouldActivate) activate();\n },\n\n submit,\n\n subscribe: store.subscribe,\n };\n}\n\nfunction enhanceResult(res) {\n return {\n ...res,\n promise: res.promise\n ? res.promise.then((promised) => enhanceResult(promised))\n : Promise.resolve(res),\n };\n}\n\nfunction interpretState({\n active,\n changePred,\n id,\n initialValue,\n result,\n submitting,\n value,\n}) {\n const changed = changePred(value, initialValue);\n return {\n active,\n changed,\n error: result.valid === false && result.reason,\n id,\n initialValue,\n promise: result.promise || Promise.resolve(result),\n submitting,\n valid: !!result.valid,\n validating: result.valid === null,\n value: changed ? value : initialValue,\n };\n}\n","import { get as getStoreValue, writable } from \"svelte/store\";\nimport collDerived from \"./collDerived\";\nimport flexDerived from \"./flexDerived\";\nimport predSpecable from \"./predSpecable\";\nimport {\n entries,\n fromEntries,\n genRandomId,\n get,\n isColl,\n keys,\n merge,\n typeOf,\n values,\n} from \"./util\";\nimport { specma, ensureConfigured } from \"./configure\";\n\nexport default function collSpecable(\n initialValue,\n { changePred, fields, getId, id, required, spec, onSubmit } = {},\n _extra = {}\n) {\n ensureConfigured();\n const { getPred, getSpread, isOpt } = specma;\n\n let collValue = initialValue; // For static properties\n let isUndef = collValue === undefined;\n\n const { getAncestor } = _extra;\n const collDefiner = [fields, spec, initialValue].find(isColl);\n const collType = typeOf(collDefiner);\n const isRequired = required && !isOpt(required);\n const spreadGetId = getSpread(getId);\n const spreadSpec = getSpread(spec);\n const spreadFields = getSpread(fields);\n const spreadRequired = getSpread(required);\n const isSpread =\n spreadSpec ||\n spreadFields ||\n spreadRequired ||\n spreadGetId ||\n collType === \"array\";\n\n const valueKeys = isSpread ? keys(initialValue) : [];\n const allKeys = new Set(\n fields\n ? [...keys(fields), ...valueKeys]\n : [...keys(spec), ...keys(required), ...valueKeys]\n );\n\n const ownGetId = getPred(getId);\n const idGen = (v, k) => {\n if (ownGetId) return ownGetId(v, k);\n if (collType === \"array\") return genRandomId();\n return k;\n };\n\n const ownSpecable = predSpecable(\n initialValue,\n {\n changePred: getPred(changePred),\n id,\n required: isRequired,\n spec,\n },\n _extra\n );\n\n const createChildEntry = (key, val) => {\n const subChangePred = get(key, changePred) || getSpread(changePred);\n const subVal = val;\n const subSpec = get(key, spec) || spreadSpec;\n const subGetId = get(key, getId) || spreadGetId;\n const subId = idGen(subVal, key);\n const subFields = get(key, fields) || spreadFields;\n const subRequired = get(key, required) || spreadRequired;\n\n const subStore = _extra.specable(\n subVal,\n {\n spec: subSpec,\n changePred: subChangePred,\n id: subId,\n getId: subGetId,\n fields: subFields,\n required: subRequired,\n },\n {\n getAncestor: (n) =>\n n <= 1 || !getAncestor ? ownSpecable : getAncestor(n - 1),\n }\n );\n\n return [key, { ...subStore, id: subId }];\n };\n\n let childrenStores = fromEntries(\n [...allKeys].map((key) => createChildEntry(key, get(key, initialValue))),\n collType\n );\n const children = writable(childrenStores);\n const submitting = writable(false);\n\n const derivedValue = collDerived(childrenStores, ($childrenStores) => {\n if (isUndef) return undefined;\n\n const $childrenEntries = entries($childrenStores);\n const $childrenValues = $childrenEntries.map(([key, state]) => [\n key,\n state.value,\n ]);\n const childrenValue = fromEntries($childrenValues, collType);\n const value = isSpread ? childrenValue : merge(collValue, childrenValue);\n isUndef = value === undefined;\n ownSpecable.set(value);\n return value;\n });\n\n const aggregateStatusStores = () => [\n derivedValue,\n submitting,\n ownSpecable,\n ...values(childrenStores),\n ];\n\n const status = flexDerived(aggregateStatusStores(), ($statusStores) => {\n const [, $submitting, $ownSpecable, ...$children] = $statusStores;\n\n const combined = isUndef\n ? $ownSpecable\n : [$ownSpecable, ...$children].reduce(combineChildren);\n\n if (combined.active !== false) ownSpecable.activate();\n\n const { value, error } = $ownSpecable;\n\n const details = Object.fromEntries([\n [\"_\", $ownSpecable],\n ...(isUndef ? [] : $children.map((child) => [child.id, child])),\n ]);\n\n const errors = detailsToErrors(details, id);\n const collErrors = errors.filter(({ isColl }) => isColl);\n\n return {\n ...combined,\n id,\n initialValue: $ownSpecable.initialValue,\n value,\n error,\n errors,\n collErrors,\n details,\n submitting: $submitting,\n };\n });\n\n function setChildrenStores(newChildrenStores) {\n childrenStores = newChildrenStores;\n children.set(newChildrenStores);\n derivedValue.set(newChildrenStores);\n status.set(aggregateStatusStores());\n }\n\n function addChildren(coll) {\n if (!coll) return;\n\n const newEntries = keys(coll).map((key) =>\n createChildEntry(key, get(key, coll))\n );\n const updatedStores = fromEntries(\n [...entries(childrenStores), ...newEntries],\n collType\n );\n setChildrenStores(updatedStores);\n }\n\n function removeChildrenById(idsToRemove = []) {\n if (idsToRemove.length < 1) return;\n\n const updatedStores = fromEntries(\n entries(childrenStores).filter(\n ([, store]) => !idsToRemove.includes(store.id)\n ),\n collType\n );\n setChildrenStores(updatedStores);\n }\n\n function setValue(coll, partial = false) {\n collValue = partial && !isSpread ? merge(collValue, coll) : coll;\n isUndef = collValue === undefined;\n ownSpecable.set(collValue);\n\n const childrenEntries = entries(childrenStores);\n\n childrenEntries.forEach(([key, store]) => {\n const newValue = get(key, coll);\n if (partial && newValue === undefined) return;\n store.set(newValue, partial);\n });\n if (!isSpread) return;\n\n /* If collection allows spread children... */\n\n /* Add `coll` entries that are not yet part of the children stores. */\n const childrenKeys = keys(childrenStores);\n const missingChildren = fromEntries(\n entries(coll).filter(([key]) => !childrenKeys.includes(key)),\n collType\n );\n addChildren(missingChildren);\n\n if (partial) return;\n\n /* If update is not partial, remove children stores that do not store\n * a collection value anymore (garbage collection). */\n const collKeys = keys(coll);\n const unusedIds = childrenEntries.reduce((acc, [key, childStore]) => {\n return collKeys.includes(key) ? acc : [...acc, childStore.id];\n }, []);\n removeChildrenById(unusedIds);\n }\n\n function activate(bool = true) {\n const storesToActivate = [\n ownSpecable,\n ...(isUndef ? [] : values(childrenStores)),\n ];\n const promises = storesToActivate.map((store) => {\n const promise = store.activate(bool);\n return promise.then((valid) => {\n if (valid) return valid;\n throw valid;\n });\n });\n return Promise.all(promises)\n .then(() => true)\n .catch(() => false);\n }\n\n async function submit() {\n if (!onSubmit) return;\n submitting.set(true);\n const valid = await activate();\n if (valid) {\n const currValue = getStoreValue(ownSpecable).value;\n await onSubmit(currValue);\n }\n submitting.set(false);\n }\n\n return {\n id,\n isRequired,\n spec,\n stores: childrenStores,\n\n activate,\n\n add(coll) {\n if (coll !== undefined) isUndef = false;\n addChildren(coll);\n return this;\n },\n\n getChild(path = []) {\n const reduced = path.reduce(\n (acc, key) => {\n const { children } = acc;\n if (!children) return { res: null };\n const childStore = get(key, children);\n if (!childStore) return { res: null };\n return {\n res: childStore,\n children: childStore.getChildren ? childStore.getChildren() : [],\n };\n },\n { children: childrenStores }\n );\n return reduced.res;\n },\n\n getChildren() {\n return childrenStores;\n },\n\n remove(idsToRemove = []) {\n removeChildrenById(idsToRemove);\n return this;\n },\n\n reset(newInitialValue = initialValue) {\n setValue(newInitialValue, false);\n activate(false);\n return this;\n },\n\n set(coll, partial = false, shouldActivate = false) {\n setValue(coll, partial);\n if (shouldActivate) activate();\n return this;\n },\n\n update: (fn) => {\n setChildrenStores(fn(childrenStores));\n return this;\n },\n\n children: {\n subscribe: children.subscribe,\n },\n\n submit,\n\n subscribe: status.subscribe,\n };\n}\n\nfunction combineChildren(a, b) {\n const validating = a.validating || b.validating;\n return {\n active: a.active === b.active ? b.active : null,\n changed: a.changed || b.changed,\n valid: validating ? null : a.valid && b.valid,\n validating,\n };\n}\n\nconst liftError = (parentId) => ({ path, error, ...rest }) => {\n const newPath = parentId === undefined ? path : [parentId, ...path];\n return {\n ...rest,\n path: newPath,\n which: newPath.join(\".\"),\n error,\n };\n};\n\nfunction detailsToErrors(details, parentId) {\n return Object.entries(details)\n .flatMap(([key, status]) => {\n if (!status.details) {\n if (!status.error) return [];\n if (key === \"_\") {\n return [{ path: [], error: status.error, isColl: true }];\n }\n return [summarizeStatusError(status)];\n }\n\n const subErrors = detailsToErrors(status.details, details.id);\n return subErrors.map(liftError(status.id));\n })\n .map(liftError(parentId));\n}\n\nfunction summarizeStatusError({ id, error }) {\n return { path: [id], which: id, error };\n}\n","import { identity } from \"./util\";\n\nexport default function register(el, storeOrArgs) {\n let args = normalizeArgs(storeOrArgs);\n if (!el || !args.store) return;\n\n let unsub;\n listen();\n\n function blurHandler() {\n args.store.activate();\n }\n\n function inputHandler(e) {\n args.store.set(args.toValue(e.target.value));\n }\n\n function listen() {\n unsub = args.store.subscribe(({ value }) => {\n const elValue = args.toInput(value);\n if (el.value !== elValue) el.value = elValue;\n });\n el.addEventListener(\"blur\", blurHandler);\n el.addEventListener(\"input\", inputHandler);\n }\n\n function unlisten() {\n unsub();\n el.removeEventListener(\"blur\", blurHandler);\n el.removeEventListener(\"input\", inputHandler);\n }\n\n return {\n destroy: unlisten,\n update(newArgs) {\n unlisten();\n if (!newArgs) return;\n args = normalizeArgs(newArgs);\n listen();\n },\n };\n}\n\nfunction normalizeArgs(storeOrArgs) {\n if (!storeOrArgs) return {};\n\n if (!Array.isArray(storeOrArgs)) {\n return {\n store: storeOrArgs,\n toInput: (x = \"\") => x,\n toValue: identity,\n };\n }\n\n const [store, { toInput = identity, toValue = identity } = {}] = storeOrArgs;\n return { store, toInput, toValue };\n}\n","import collSpecable from \"./collSpecable\";\nimport predSpecable from \"./predSpecable\";\nimport { isColl, isStore } from \"./util\";\n\nexport default function specable(initialValue, options = {}, _extra) {\n if (isStore(initialValue)) return initialValue;\n\n const collCandidate = options.fields || options.spec || initialValue;\n\n if (isColl(collCandidate)) {\n return collSpecable(initialValue, options, { ..._extra, specable });\n }\n\n return predSpecable(initialValue, options, _extra);\n}\n"],"names":["identity","x","noop","flexDerived","initialStores","fn","initialValue","_stores","$stores","writable","auto","length","mainStore","readable","publish","initialized","cleanup","pending","unsubs","Map","values","updateUnsubs","stores","stopUnusedSubs","map","store","get","usedStores","forEach","unsub","includes","stopSubscriptions","updateValues","sync","vals","reduce","acc","has","result","unsubscribe","subscribe","i","set","value","stop","exclude","update","prev","filter","include","isColl","typeOf","isFunc","isStore","obj","toString","call","split","slice","toLowerCase","entries","coll","array","v","object","Object","fromEntries","toType","val","keys","merge","colls","type","every","collTypes","join","TypeError","assign","Error","genRandomId","Math","random","toFixed","key","undefined","getPath","path","parent","countPathAncestors","str","match","keepForwardPath","node","startsWith","index","parseInt","isNaN","equals","a","b","eqBy","defaultEqBy","_a","_b","fastEquals","Date","valueOf","removeUndefined","deriveState","storesEntries","collType","collDerived","initialColl","state","index$stores","idx","_set","newColl","ALWAYS_VALID","valid","REQUIRED_SPECMA_FNS","CONFIG_ERROR_MSG","specma","ensureConfigured","configure","specmaFns","some","alwaysTrue","isMissing","defaultChangePred","reqSpec","getMessage","predSpecable","_extra","submit","onSubmit","submitting","activate","currValue","getStoreValue","bool","active","tick","currPromise","res","changePred","id","required","spec","and","getPred","validatePred","getAncestor","pred","isRequired","ownSpec","contextStores","context","addContext","relPath","ancestor","pathSinceAncestor","derived","$ancestor","ancestorValue","curr","next","_initialValue","$active","$value","$context","$submitting","getFrom","shouldValidate","enhanceResult","baseArgs","promise","interpretState","then","resolvedResult","reset","newValue","shouldActivate","promised","Promise","resolve","changed","error","reason","validating","collSpecable","ownSpecable","fields","getId","getSpread","isOpt","collValue","isUndef","collDefiner","find","spreadGetId","spreadSpec","spreadFields","spreadRequired","isSpread","valueKeys","allKeys","Set","ownGetId","idGen","k","createChildEntry","subChangePred","subVal","subSpec","subGetId","subId","subFields","subRequired","subStore","specable","n","childrenStores","children","derivedValue","$childrenStores","$childrenEntries","$childrenValues","childrenValue","aggregateStatusStores","status","$statusStores","$ownSpecable","$children","combined","combineChildren","details","child","errors","detailsToErrors","collErrors","setChildrenStores","newChildrenStores","addChildren","newEntries","updatedStores","removeChildrenById","idsToRemove","setValue","partial","childrenEntries","childrenKeys","missingChildren","collKeys","unusedIds","childStore","storesToActivate","promises","all","add","getChild","reduced","getChildren","remove","newInitialValue","liftError","parentId","rest","newPath","which","flatMap","summarizeStatusError","subErrors","register","el","storeOrArgs","args","normalizeArgs","listen","blurHandler","inputHandler","e","toValue","target","elValue","toInput","addEventListener","unlisten","removeEventListener","destroy","newArgs","Array","isArray","options","collCandidate"],"mappings":"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"}
|