@fieldia/core 0.26.1 → 0.27.0
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/README.md +307 -3
- package/package.json +1 -1
- package/schema/page.schema.json +227 -23
- package/src/index.d.mts +8 -2
- package/src/index.d.ts +8 -2
- package/src/index.js +22 -1
- package/src/index.js.map +1 -1
- package/src/index.mjs +9 -2
- package/src/index.mjs.map +1 -1
- package/src/lib/expression/app-functions.d.mts +47 -0
- package/src/lib/expression/app-functions.d.ts +47 -0
- package/src/lib/expression/app-functions.js +64 -0
- package/src/lib/expression/app-functions.js.map +1 -0
- package/src/lib/expression/app-functions.mjs +58 -0
- package/src/lib/expression/app-functions.mjs.map +1 -0
- package/src/lib/expression/dates.d.mts +21 -0
- package/src/lib/expression/dates.d.ts +21 -0
- package/src/lib/expression/dates.js +73 -0
- package/src/lib/expression/dates.js.map +1 -0
- package/src/lib/expression/dates.mjs +67 -0
- package/src/lib/expression/dates.mjs.map +1 -0
- package/src/lib/expression/evaluator.js +12 -6
- package/src/lib/expression/evaluator.js.map +1 -1
- package/src/lib/expression/evaluator.mjs +12 -6
- package/src/lib/expression/evaluator.mjs.map +1 -1
- package/src/lib/expression/expression.d.mts +7 -3
- package/src/lib/expression/expression.d.ts +7 -3
- package/src/lib/expression/expression.js +8 -2
- package/src/lib/expression/expression.js.map +1 -1
- package/src/lib/expression/expression.mjs +7 -2
- package/src/lib/expression/expression.mjs.map +1 -1
- package/src/lib/expression/functions-part.d.mts +7 -0
- package/src/lib/expression/functions-part.d.ts +7 -0
- package/src/lib/expression/functions-part.js +13 -0
- package/src/lib/expression/functions-part.js.map +1 -0
- package/src/lib/expression/functions-part.mjs +8 -0
- package/src/lib/expression/functions-part.mjs.map +1 -0
- package/src/lib/expression/functions.d.mts +60 -3
- package/src/lib/expression/functions.d.ts +60 -3
- package/src/lib/expression/functions.js +109 -15
- package/src/lib/expression/functions.js.map +1 -1
- package/src/lib/expression/functions.mjs +103 -16
- package/src/lib/expression/functions.mjs.map +1 -1
- package/src/lib/expression/kinds.d.mts +31 -0
- package/src/lib/expression/kinds.d.ts +31 -0
- package/src/lib/expression/kinds.js +159 -0
- package/src/lib/expression/kinds.js.map +1 -0
- package/src/lib/expression/kinds.mjs +151 -0
- package/src/lib/expression/kinds.mjs.map +1 -0
- package/src/lib/expression/modifier.d.mts +4 -3
- package/src/lib/expression/modifier.d.ts +4 -3
- package/src/lib/expression/modifier.js +4 -3
- package/src/lib/expression/modifier.js.map +1 -1
- package/src/lib/expression/modifier.mjs +4 -3
- package/src/lib/expression/modifier.mjs.map +1 -1
- package/src/lib/expression/more-functions.d.mts +8 -0
- package/src/lib/expression/more-functions.d.ts +8 -0
- package/src/lib/expression/more-functions.js +235 -0
- package/src/lib/expression/more-functions.js.map +1 -0
- package/src/lib/expression/more-functions.mjs +230 -0
- package/src/lib/expression/more-functions.mjs.map +1 -0
- package/src/lib/expression/parser.d.mts +4 -1
- package/src/lib/expression/parser.d.ts +4 -1
- package/src/lib/expression/parser.js +6 -3
- package/src/lib/expression/parser.js.map +1 -1
- package/src/lib/expression/parser.mjs +6 -3
- package/src/lib/expression/parser.mjs.map +1 -1
- package/src/lib/expression/reads.d.mts +2 -2
- package/src/lib/expression/reads.d.ts +2 -2
- package/src/lib/expression/reads.js +6 -4
- package/src/lib/expression/reads.js.map +1 -1
- package/src/lib/expression/reads.mjs +6 -4
- package/src/lib/expression/reads.mjs.map +1 -1
- package/src/lib/format/actions.d.mts +16 -16
- package/src/lib/format/actions.d.ts +16 -16
- package/src/lib/format/check-page.d.mts +7 -2
- package/src/lib/format/check-page.d.ts +7 -2
- package/src/lib/format/check-page.js +10 -4
- package/src/lib/format/check-page.js.map +1 -1
- package/src/lib/format/check-page.mjs +10 -4
- package/src/lib/format/check-page.mjs.map +1 -1
- package/src/lib/format/choice-options.d.mts +34 -0
- package/src/lib/format/choice-options.d.ts +34 -0
- package/src/lib/format/choice-options.js +60 -0
- package/src/lib/format/choice-options.js.map +1 -0
- package/src/lib/format/choice-options.mjs +51 -0
- package/src/lib/format/choice-options.mjs.map +1 -0
- package/src/lib/format/endings-checks.d.mts +8 -0
- package/src/lib/format/endings-checks.d.ts +8 -0
- package/src/lib/format/endings-checks.js +23 -0
- package/src/lib/format/endings-checks.js.map +1 -0
- package/src/lib/format/endings-checks.mjs +20 -0
- package/src/lib/format/endings-checks.mjs.map +1 -0
- package/src/lib/format/endings.d.mts +40 -0
- package/src/lib/format/endings.d.ts +40 -0
- package/src/lib/format/endings.js +15 -0
- package/src/lib/format/endings.js.map +1 -0
- package/src/lib/format/endings.mjs +12 -0
- package/src/lib/format/endings.mjs.map +1 -0
- package/src/lib/format/field.d.mts +151 -16
- package/src/lib/format/field.d.ts +151 -16
- package/src/lib/format/field.js +64 -11
- package/src/lib/format/field.js.map +1 -1
- package/src/lib/format/field.mjs +63 -10
- package/src/lib/format/field.mjs.map +1 -1
- package/src/lib/format/head-checks.d.mts +2 -0
- package/src/lib/format/head-checks.d.ts +2 -0
- package/src/lib/format/head-checks.js +2 -59
- package/src/lib/format/head-checks.js.map +1 -1
- package/src/lib/format/head-checks.mjs +1 -58
- package/src/lib/format/head-checks.mjs.map +1 -1
- package/src/lib/format/later-checks.d.mts +17 -0
- package/src/lib/format/later-checks.d.ts +17 -0
- package/src/lib/format/later-checks.js +20 -0
- package/src/lib/format/later-checks.js.map +1 -0
- package/src/lib/format/later-checks.mjs +17 -0
- package/src/lib/format/later-checks.mjs.map +1 -0
- package/src/lib/format/layout.d.mts +241 -188
- package/src/lib/format/layout.d.ts +241 -188
- package/src/lib/format/layout.js +33 -28
- package/src/lib/format/layout.js.map +1 -1
- package/src/lib/format/layout.mjs +13 -3
- package/src/lib/format/layout.mjs.map +1 -1
- package/src/lib/format/layout.types.d.mts +2 -1
- package/src/lib/format/layout.types.d.ts +2 -1
- package/src/lib/format/limits-checks.d.mts +14 -0
- package/src/lib/format/limits-checks.d.ts +14 -0
- package/src/lib/format/limits-checks.js +36 -0
- package/src/lib/format/limits-checks.js.map +1 -0
- package/src/lib/format/limits-checks.mjs +33 -0
- package/src/lib/format/limits-checks.mjs.map +1 -0
- package/src/lib/format/limits.d.mts +24 -0
- package/src/lib/format/limits.d.ts +24 -0
- package/src/lib/format/limits.js +35 -0
- package/src/lib/format/limits.js.map +1 -0
- package/src/lib/format/limits.mjs +32 -0
- package/src/lib/format/limits.mjs.map +1 -0
- package/src/lib/format/list-checks.d.mts +44 -0
- package/src/lib/format/list-checks.d.ts +44 -0
- package/src/lib/format/list-checks.js +340 -0
- package/src/lib/format/list-checks.js.map +1 -0
- package/src/lib/format/list-checks.mjs +336 -0
- package/src/lib/format/list-checks.mjs.map +1 -0
- package/src/lib/format/map-checks.d.mts +33 -0
- package/src/lib/format/map-checks.d.ts +33 -0
- package/src/lib/format/map-checks.js +180 -0
- package/src/lib/format/map-checks.js.map +1 -0
- package/src/lib/format/map-checks.mjs +175 -0
- package/src/lib/format/map-checks.mjs.map +1 -0
- package/src/lib/format/mapchecks-part.d.mts +5 -0
- package/src/lib/format/mapchecks-part.d.ts +5 -0
- package/src/lib/format/mapchecks-part.js +11 -0
- package/src/lib/format/mapchecks-part.js.map +1 -0
- package/src/lib/format/mapchecks-part.mjs +6 -0
- package/src/lib/format/mapchecks-part.mjs.map +1 -0
- package/src/lib/format/option-checks.d.mts +16 -0
- package/src/lib/format/option-checks.d.ts +16 -0
- package/src/lib/format/option-checks.js +39 -0
- package/src/lib/format/option-checks.js.map +1 -0
- package/src/lib/format/option-checks.mjs +36 -0
- package/src/lib/format/option-checks.mjs.map +1 -0
- package/src/lib/format/options-part.d.mts +6 -0
- package/src/lib/format/options-part.d.ts +6 -0
- package/src/lib/format/options-part.js +11 -0
- package/src/lib/format/options-part.js.map +1 -0
- package/src/lib/format/options-part.mjs +7 -0
- package/src/lib/format/options-part.mjs.map +1 -0
- package/src/lib/format/page.d.mts +147 -71
- package/src/lib/format/page.d.ts +147 -71
- package/src/lib/format/page.js +5 -0
- package/src/lib/format/page.js.map +1 -1
- package/src/lib/format/page.mjs +5 -0
- package/src/lib/format/page.mjs.map +1 -1
- package/src/lib/format/part-checks.d.mts +20 -0
- package/src/lib/format/part-checks.d.ts +20 -0
- package/src/lib/format/part-checks.js +3 -0
- package/src/lib/format/part-checks.js.map +1 -0
- package/src/lib/format/part-checks.mjs +2 -0
- package/src/lib/format/part-checks.mjs.map +1 -0
- package/src/lib/format/references.d.mts +71 -65
- package/src/lib/format/references.d.ts +71 -65
- package/src/lib/format/references.js +194 -631
- package/src/lib/format/references.js.map +1 -1
- package/src/lib/format/references.mjs +194 -631
- package/src/lib/format/references.mjs.map +1 -1
- package/src/lib/format/seats-checks.d.mts +3 -0
- package/src/lib/format/seats-checks.d.ts +3 -0
- package/src/lib/format/seats-checks.js +13 -0
- package/src/lib/format/seats-checks.js.map +1 -0
- package/src/lib/format/seats-checks.mjs +10 -0
- package/src/lib/format/seats-checks.mjs.map +1 -0
- package/src/lib/format/sheet-head-checks.d.mts +4 -0
- package/src/lib/format/sheet-head-checks.d.ts +4 -0
- package/src/lib/format/sheet-head-checks.js +68 -0
- package/src/lib/format/sheet-head-checks.js.map +1 -0
- package/src/lib/format/sheet-head-checks.mjs +65 -0
- package/src/lib/format/sheet-head-checks.mjs.map +1 -0
- package/src/lib/format/signature-checks.d.mts +7 -0
- package/src/lib/format/signature-checks.d.ts +7 -0
- package/src/lib/format/signature-checks.js +32 -0
- package/src/lib/format/signature-checks.js.map +1 -0
- package/src/lib/format/signature-checks.mjs +29 -0
- package/src/lib/format/signature-checks.mjs.map +1 -0
- package/src/lib/format/signature-options.d.mts +24 -0
- package/src/lib/format/signature-options.d.ts +24 -0
- package/src/lib/format/signature-options.js +30 -0
- package/src/lib/format/signature-options.js.map +1 -0
- package/src/lib/format/signature-options.mjs +26 -0
- package/src/lib/format/signature-options.mjs.map +1 -0
- package/src/lib/format/slots-checks.d.mts +4 -0
- package/src/lib/format/slots-checks.d.ts +4 -0
- package/src/lib/format/slots-checks.js +21 -0
- package/src/lib/format/slots-checks.js.map +1 -0
- package/src/lib/format/slots-checks.mjs +18 -0
- package/src/lib/format/slots-checks.mjs.map +1 -0
- package/src/lib/format/statusbar-checks.d.mts +8 -0
- package/src/lib/format/statusbar-checks.d.ts +8 -0
- package/src/lib/format/statusbar-checks.js +35 -0
- package/src/lib/format/statusbar-checks.js.map +1 -0
- package/src/lib/format/statusbar-checks.mjs +32 -0
- package/src/lib/format/statusbar-checks.mjs.map +1 -0
- package/src/lib/format/table-checks.d.mts +21 -0
- package/src/lib/format/table-checks.d.ts +21 -0
- package/src/lib/format/table-checks.js +86 -0
- package/src/lib/format/table-checks.js.map +1 -0
- package/src/lib/format/table-checks.mjs +82 -0
- package/src/lib/format/table-checks.mjs.map +1 -0
- package/src/lib/format/translate.js +2 -2
- package/src/lib/format/translate.js.map +1 -1
- package/src/lib/format/translate.mjs +2 -2
- package/src/lib/format/translate.mjs.map +1 -1
- package/src/lib/format/upgrade.d.mts +6 -3
- package/src/lib/format/upgrade.d.ts +6 -3
- package/src/lib/format/upgrade.js +6 -3
- package/src/lib/format/upgrade.js.map +1 -1
- package/src/lib/format/upgrade.mjs +6 -3
- package/src/lib/format/upgrade.mjs.map +1 -1
- package/src/lib/format/validate.d.mts +18 -2
- package/src/lib/format/validate.d.ts +18 -2
- package/src/lib/format/validate.js +36 -3
- package/src/lib/format/validate.js.map +1 -1
- package/src/lib/format/validate.mjs +35 -3
- package/src/lib/format/validate.mjs.map +1 -1
- package/src/lib/format/version.d.mts +2 -2
- package/src/lib/format/version.d.ts +2 -2
- package/src/lib/format/version.js +2 -2
- package/src/lib/format/version.js.map +1 -1
- package/src/lib/format/version.mjs +2 -2
- package/src/lib/format/version.mjs.map +1 -1
- package/src/lib/format/words.d.mts +6 -2
- package/src/lib/format/words.d.ts +6 -2
- package/src/lib/format/words.js +13 -7
- package/src/lib/format/words.js.map +1 -1
- package/src/lib/format/words.mjs +13 -7
- package/src/lib/format/words.mjs.map +1 -1
- package/src/lib/parts.d.mts +45 -0
- package/src/lib/parts.d.ts +45 -0
- package/src/lib/parts.js +60 -0
- package/src/lib/parts.js.map +1 -0
- package/src/lib/parts.mjs +53 -0
- package/src/lib/parts.mjs.map +1 -0
- package/src/lib/record/cells.d.mts +3 -3
- package/src/lib/record/cells.d.ts +3 -3
- package/src/lib/record/cells.js +16 -15
- package/src/lib/record/cells.js.map +1 -1
- package/src/lib/record/cells.mjs +16 -15
- package/src/lib/record/cells.mjs.map +1 -1
- package/src/lib/record/compute.d.mts +16 -5
- package/src/lib/record/compute.d.ts +16 -5
- package/src/lib/record/compute.js +57 -16
- package/src/lib/record/compute.js.map +1 -1
- package/src/lib/record/compute.mjs +57 -16
- package/src/lib/record/compute.mjs.map +1 -1
- package/src/lib/record/data-source.d.mts +140 -3
- package/src/lib/record/data-source.d.ts +140 -3
- package/src/lib/record/data-source.js.map +1 -1
- package/src/lib/record/data-source.mjs.map +1 -1
- package/src/lib/record/drafts.d.mts +19 -0
- package/src/lib/record/drafts.d.ts +19 -0
- package/src/lib/record/drafts.js +35 -0
- package/src/lib/record/drafts.js.map +1 -0
- package/src/lib/record/drafts.mjs +31 -0
- package/src/lib/record/drafts.mjs.map +1 -0
- package/src/lib/record/env.d.mts +5 -1
- package/src/lib/record/env.d.ts +5 -1
- package/src/lib/record/env.js +9 -1
- package/src/lib/record/env.js.map +1 -1
- package/src/lib/record/env.mjs +8 -1
- package/src/lib/record/env.mjs.map +1 -1
- package/src/lib/record/form-limits.d.mts +81 -0
- package/src/lib/record/form-limits.d.ts +81 -0
- package/src/lib/record/form-limits.js +231 -0
- package/src/lib/record/form-limits.js.map +1 -0
- package/src/lib/record/form-limits.mjs +224 -0
- package/src/lib/record/form-limits.mjs.map +1 -0
- package/src/lib/record/form.d.mts +173 -4
- package/src/lib/record/form.d.ts +173 -4
- package/src/lib/record/form.js +792 -88
- package/src/lib/record/form.js.map +1 -1
- package/src/lib/record/form.mjs +792 -88
- package/src/lib/record/form.mjs.map +1 -1
- package/src/lib/record/limits-part.d.mts +6 -0
- package/src/lib/record/limits-part.d.ts +6 -0
- package/src/lib/record/limits-part.js +12 -0
- package/src/lib/record/limits-part.js.map +1 -0
- package/src/lib/record/limits-part.mjs +7 -0
- package/src/lib/record/limits-part.mjs.map +1 -0
- package/src/lib/record/line-choices.d.mts +30 -0
- package/src/lib/record/line-choices.d.ts +30 -0
- package/src/lib/record/line-choices.js +42 -0
- package/src/lib/record/line-choices.js.map +1 -0
- package/src/lib/record/line-choices.mjs +36 -0
- package/src/lib/record/line-choices.mjs.map +1 -0
- package/src/lib/record/locales/ar.js +10 -0
- package/src/lib/record/locales/ar.js.map +1 -1
- package/src/lib/record/locales/ar.mjs +10 -0
- package/src/lib/record/locales/ar.mjs.map +1 -1
- package/src/lib/record/locales/de.js +10 -0
- package/src/lib/record/locales/de.js.map +1 -1
- package/src/lib/record/locales/de.mjs +10 -0
- package/src/lib/record/locales/de.mjs.map +1 -1
- package/src/lib/record/locales/fr.js +10 -0
- package/src/lib/record/locales/fr.js.map +1 -1
- package/src/lib/record/locales/fr.mjs +10 -0
- package/src/lib/record/locales/fr.mjs.map +1 -1
- package/src/lib/record/memory-data-source.d.mts +44 -3
- package/src/lib/record/memory-data-source.d.ts +44 -3
- package/src/lib/record/memory-data-source.js +102 -40
- package/src/lib/record/memory-data-source.js.map +1 -1
- package/src/lib/record/memory-data-source.mjs +101 -40
- package/src/lib/record/memory-data-source.mjs.map +1 -1
- package/src/lib/record/memory-kept.d.mts +20 -0
- package/src/lib/record/memory-kept.d.ts +20 -0
- package/src/lib/record/memory-kept.js +46 -0
- package/src/lib/record/memory-kept.js.map +1 -0
- package/src/lib/record/memory-kept.mjs +43 -0
- package/src/lib/record/memory-kept.mjs.map +1 -0
- package/src/lib/record/memory-later.d.mts +19 -0
- package/src/lib/record/memory-later.d.ts +19 -0
- package/src/lib/record/memory-later.js +39 -0
- package/src/lib/record/memory-later.js.map +1 -0
- package/src/lib/record/memory-later.mjs +35 -0
- package/src/lib/record/memory-later.mjs.map +1 -0
- package/src/lib/record/memory-part.d.mts +7 -0
- package/src/lib/record/memory-part.d.ts +7 -0
- package/src/lib/record/memory-part.js +13 -0
- package/src/lib/record/memory-part.js.map +1 -0
- package/src/lib/record/memory-part.mjs +8 -0
- package/src/lib/record/memory-part.mjs.map +1 -0
- package/src/lib/record/messages.d.mts +17 -0
- package/src/lib/record/messages.d.ts +17 -0
- package/src/lib/record/messages.js +10 -0
- package/src/lib/record/messages.js.map +1 -1
- package/src/lib/record/messages.mjs +10 -0
- package/src/lib/record/messages.mjs.map +1 -1
- package/src/lib/record/option-rules.d.mts +50 -0
- package/src/lib/record/option-rules.d.ts +50 -0
- package/src/lib/record/option-rules.js +137 -0
- package/src/lib/record/option-rules.js.map +1 -0
- package/src/lib/record/option-rules.mjs +134 -0
- package/src/lib/record/option-rules.mjs.map +1 -0
- package/src/lib/record/rules.d.mts +2 -2
- package/src/lib/record/rules.d.ts +2 -2
- package/src/lib/record/rules.js +3 -3
- package/src/lib/record/rules.js.map +1 -1
- package/src/lib/record/rules.mjs +3 -3
- package/src/lib/record/rules.mjs.map +1 -1
- package/src/lib/record/run.js +9 -7
- package/src/lib/record/run.js.map +1 -1
- package/src/lib/record/run.mjs +9 -7
- package/src/lib/record/run.mjs.map +1 -1
- package/src/lib/record/search.d.mts +12 -2
- package/src/lib/record/search.d.ts +12 -2
- package/src/lib/record/search.js +29 -4
- package/src/lib/record/search.js.map +1 -1
- package/src/lib/record/search.mjs +29 -4
- package/src/lib/record/search.mjs.map +1 -1
- package/src/lib/record/set-when.d.mts +3 -3
- package/src/lib/record/set-when.d.ts +3 -3
- package/src/lib/record/set-when.js +9 -9
- package/src/lib/record/set-when.js.map +1 -1
- package/src/lib/record/set-when.mjs +9 -9
- package/src/lib/record/set-when.mjs.map +1 -1
- package/src/lib/record/signed.d.mts +21 -0
- package/src/lib/record/signed.d.ts +21 -0
- package/src/lib/record/signed.js +62 -0
- package/src/lib/record/signed.js.map +1 -0
- package/src/lib/record/signed.mjs +57 -0
- package/src/lib/record/signed.mjs.map +1 -0
- package/src/lib/record/taking.d.mts +60 -0
- package/src/lib/record/taking.d.ts +60 -0
- package/src/lib/record/taking.js +58 -0
- package/src/lib/record/taking.js.map +1 -0
- package/src/lib/record/taking.mjs +50 -0
- package/src/lib/record/taking.mjs.map +1 -0
- package/src/lib/record/value-map.js +11 -4
- package/src/lib/record/value-map.js.map +1 -1
- package/src/lib/record/value-map.mjs +11 -4
- package/src/lib/record/value-map.mjs.map +1 -1
- package/src/lib/record/values.d.mts +20 -0
- package/src/lib/record/values.d.ts +20 -0
- package/src/lib/record/values.js.map +1 -1
- package/src/lib/record/values.mjs.map +1 -1
- package/src/lib/record/waits.d.mts +6 -1
- package/src/lib/record/waits.d.ts +6 -1
- package/src/lib/record/waits.js +2 -2
- package/src/lib/record/waits.js.map +1 -1
- package/src/lib/record/waits.mjs +2 -2
- package/src/lib/record/waits.mjs.map +1 -1
- package/src/runtime.d.mts +16 -5
- package/src/runtime.d.ts +16 -5
- package/src/runtime.js +41 -3
- package/src/runtime.js.map +1 -1
- package/src/runtime.mjs +13 -0
- package/src/runtime.mjs.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translate.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/translate.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"translate.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/translate.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,9 +26,12 @@ export interface PageUpgrade {
|
|
|
26
26
|
* page's `print` and `duplicates`, the `print` step and the built-in Print — so a 0.3 page is a 0.4 page as it is;
|
|
27
27
|
* and 0.5 (Fieldia 0.26) only added again — a page's `records` and `lowerLabels`, a tab's count of a related list in it
|
|
28
28
|
* (`count: { related }`, beside a field's name), a related list's `open`, a node's `print: false`, a row tone's `label`
|
|
29
|
-
* and a list's `rowBoldLabel` — so a 0.4 page is a 0.5 page as it is.
|
|
30
|
-
*
|
|
31
|
-
*
|
|
29
|
+
* and a list's `rowBoldLabel` — so a 0.4 page is a 0.5 page as it is; and 0.6 (Fieldia 0.27) only added once more — a
|
|
30
|
+
* page's `endings`, `limits` and `continueLater`, an option's `seats` and `invisible`, `optionsFrom` carried from a
|
|
31
|
+
* question (`{ field, picked }`) and on a table's line, a signature's `signs` and `signerField`, a list's
|
|
32
|
+
* `filterRanges`, `filterCounts` and `filterSheet`, `{field}` words in a page's words — so a 0.5 page is a 0.6 page as
|
|
33
|
+
* it is. A release that renames or reshapes a setting adds a step here, with its example; one that only adds needs
|
|
34
|
+
* none: the page is the same, and upgradePage writes the new version in it.
|
|
32
35
|
*/
|
|
33
36
|
export declare const PAGE_UPGRADES: readonly PageUpgrade[];
|
|
34
37
|
/** The formats and the steps between them that a page is brought up through. Fieldia's own unless a test gives others. */
|
|
@@ -26,9 +26,12 @@ export interface PageUpgrade {
|
|
|
26
26
|
* page's `print` and `duplicates`, the `print` step and the built-in Print — so a 0.3 page is a 0.4 page as it is;
|
|
27
27
|
* and 0.5 (Fieldia 0.26) only added again — a page's `records` and `lowerLabels`, a tab's count of a related list in it
|
|
28
28
|
* (`count: { related }`, beside a field's name), a related list's `open`, a node's `print: false`, a row tone's `label`
|
|
29
|
-
* and a list's `rowBoldLabel` — so a 0.4 page is a 0.5 page as it is.
|
|
30
|
-
*
|
|
31
|
-
*
|
|
29
|
+
* and a list's `rowBoldLabel` — so a 0.4 page is a 0.5 page as it is; and 0.6 (Fieldia 0.27) only added once more — a
|
|
30
|
+
* page's `endings`, `limits` and `continueLater`, an option's `seats` and `invisible`, `optionsFrom` carried from a
|
|
31
|
+
* question (`{ field, picked }`) and on a table's line, a signature's `signs` and `signerField`, a list's
|
|
32
|
+
* `filterRanges`, `filterCounts` and `filterSheet`, `{field}` words in a page's words — so a 0.5 page is a 0.6 page as
|
|
33
|
+
* it is. A release that renames or reshapes a setting adds a step here, with its example; one that only adds needs
|
|
34
|
+
* none: the page is the same, and upgradePage writes the new version in it.
|
|
32
35
|
*/
|
|
33
36
|
export declare const PAGE_UPGRADES: readonly PageUpgrade[];
|
|
34
37
|
/** The formats and the steps between them that a page is brought up through. Fieldia's own unless a test gives others. */
|
|
@@ -13,9 +13,12 @@ const version_1 = require("./version");
|
|
|
13
13
|
* page's `print` and `duplicates`, the `print` step and the built-in Print — so a 0.3 page is a 0.4 page as it is;
|
|
14
14
|
* and 0.5 (Fieldia 0.26) only added again — a page's `records` and `lowerLabels`, a tab's count of a related list in it
|
|
15
15
|
* (`count: { related }`, beside a field's name), a related list's `open`, a node's `print: false`, a row tone's `label`
|
|
16
|
-
* and a list's `rowBoldLabel` — so a 0.4 page is a 0.5 page as it is.
|
|
17
|
-
*
|
|
18
|
-
*
|
|
16
|
+
* and a list's `rowBoldLabel` — so a 0.4 page is a 0.5 page as it is; and 0.6 (Fieldia 0.27) only added once more — a
|
|
17
|
+
* page's `endings`, `limits` and `continueLater`, an option's `seats` and `invisible`, `optionsFrom` carried from a
|
|
18
|
+
* question (`{ field, picked }`) and on a table's line, a signature's `signs` and `signerField`, a list's
|
|
19
|
+
* `filterRanges`, `filterCounts` and `filterSheet`, `{field}` words in a page's words — so a 0.5 page is a 0.6 page as
|
|
20
|
+
* it is. A release that renames or reshapes a setting adds a step here, with its example; one that only adds needs
|
|
21
|
+
* none: the page is the same, and upgradePage writes the new version in it.
|
|
19
22
|
*/
|
|
20
23
|
exports.PAGE_UPGRADES = [];
|
|
21
24
|
const isObject = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/upgrade.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/upgrade.ts"],"names":[],"mappings":";;;AAsDA,kCAYC;AAlED,uCAA4D;AAiB5D;;;;;;;;;;;;;;;;GAgBG;AACU,QAAA,aAAa,GAA2B,EAAE,CAAC;AAQxD,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAqB,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAE7H;;;;;;;;;GASG;AACH,SAAgB,WAAW,CAAI,IAAO,EAAE,UAAyB,EAAE,QAAQ,EAAE,yBAAe,EAAE,KAAK,EAAE,qBAAa,EAAE;IAClH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9D,IAAI,IAAI,KAAK,OAAO,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAClG,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAA,wBAAc,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAA,wBAAc,EAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvI,mHAAmH;IACnH,gFAAgF;IAChF,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAO,CAAC;IAC7D,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAa,CAAC;IACxD,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;IAC7E,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAO,CAAC;AAC5C,CAAC"}
|
|
@@ -9,9 +9,12 @@ import { compareFormats, FORMAT_VERSIONS } from './version.mjs';
|
|
|
9
9
|
* page's `print` and `duplicates`, the `print` step and the built-in Print — so a 0.3 page is a 0.4 page as it is;
|
|
10
10
|
* and 0.5 (Fieldia 0.26) only added again — a page's `records` and `lowerLabels`, a tab's count of a related list in it
|
|
11
11
|
* (`count: { related }`, beside a field's name), a related list's `open`, a node's `print: false`, a row tone's `label`
|
|
12
|
-
* and a list's `rowBoldLabel` — so a 0.4 page is a 0.5 page as it is.
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* and a list's `rowBoldLabel` — so a 0.4 page is a 0.5 page as it is; and 0.6 (Fieldia 0.27) only added once more — a
|
|
13
|
+
* page's `endings`, `limits` and `continueLater`, an option's `seats` and `invisible`, `optionsFrom` carried from a
|
|
14
|
+
* question (`{ field, picked }`) and on a table's line, a signature's `signs` and `signerField`, a list's
|
|
15
|
+
* `filterRanges`, `filterCounts` and `filterSheet`, `{field}` words in a page's words — so a 0.5 page is a 0.6 page as
|
|
16
|
+
* it is. A release that renames or reshapes a setting adds a step here, with its example; one that only adds needs
|
|
17
|
+
* none: the page is the same, and upgradePage writes the new version in it.
|
|
15
18
|
*/
|
|
16
19
|
export const PAGE_UPGRADES = [];
|
|
17
20
|
const isObject = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAiB5D
|
|
1
|
+
{"version":3,"file":"upgrade.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAiB5D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,aAAa,GAA2B,EAAE,CAAC;AAQxD,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAqB,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAE7H;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAI,IAAO,EAAE,UAAyB,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE;IAClH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9D,IAAI,IAAI,KAAK,OAAO,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAClG,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvI,mHAAmH;IACnH,gFAAgF;IAChF,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAO,CAAC;IAC7D,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAa,CAAC;IACxD,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;IAC7E,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAO,CAAC;AAC5C,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type Page } from './page.mjs';
|
|
2
|
+
import { type PageIssue, type PageValidation } from './references.mjs';
|
|
3
|
+
import { type FunctionsKnown } from '../expression/app-functions.mjs';
|
|
2
4
|
export type { PageIssue, PageValidation } from './references.mjs';
|
|
3
5
|
/**
|
|
4
6
|
* Check a page in two passes: its shape against the format, then every
|
|
@@ -6,8 +8,22 @@ export type { PageIssue, PageValidation } from './references.mjs';
|
|
|
6
8
|
* stat button, currency or filter names actually defined, and every modifier
|
|
7
9
|
* readable and reading only fields of this page.
|
|
8
10
|
*
|
|
11
|
+
* Every function an expression calls must be Fieldia's or the app's (`functions`), given as many values as it takes:
|
|
12
|
+
* a function there is not, or too many or too few values, is refused. A value of a kind a function does not take —
|
|
13
|
+
* `age(notes)`, notes being text — is a warning (`warnings`), never a refusal: such a call gives nothing, as it did
|
|
14
|
+
* before kinds were read, so a page that passed before still passes.
|
|
15
|
+
*
|
|
9
16
|
* Returns the page as validated. Nothing is coerced or filled in: a page that
|
|
10
17
|
* passes is returned equal to the input — one in an older format, brought up to
|
|
11
18
|
* date first (`upgradePage`), as every reader of it does.
|
|
12
19
|
*/
|
|
13
|
-
export declare function validatePage(input: unknown
|
|
20
|
+
export declare function validatePage(input: unknown, options?: {
|
|
21
|
+
functions?: FunctionsKnown;
|
|
22
|
+
}): PageValidation;
|
|
23
|
+
/**
|
|
24
|
+
* A page's warnings alone, as `validatePage` gives them beside a page — a value of a kind a function does not take —
|
|
25
|
+
* for a page already known to pass the format (the designer's, as each edit is made).
|
|
26
|
+
*/
|
|
27
|
+
export declare function pageWarnings(page: Page, options?: {
|
|
28
|
+
functions?: FunctionsKnown;
|
|
29
|
+
}): PageIssue[];
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type Page } from './page';
|
|
2
|
+
import { type PageIssue, type PageValidation } from './references';
|
|
3
|
+
import { type FunctionsKnown } from '../expression/app-functions';
|
|
2
4
|
export type { PageIssue, PageValidation } from './references';
|
|
3
5
|
/**
|
|
4
6
|
* Check a page in two passes: its shape against the format, then every
|
|
@@ -6,8 +8,22 @@ export type { PageIssue, PageValidation } from './references';
|
|
|
6
8
|
* stat button, currency or filter names actually defined, and every modifier
|
|
7
9
|
* readable and reading only fields of this page.
|
|
8
10
|
*
|
|
11
|
+
* Every function an expression calls must be Fieldia's or the app's (`functions`), given as many values as it takes:
|
|
12
|
+
* a function there is not, or too many or too few values, is refused. A value of a kind a function does not take —
|
|
13
|
+
* `age(notes)`, notes being text — is a warning (`warnings`), never a refusal: such a call gives nothing, as it did
|
|
14
|
+
* before kinds were read, so a page that passed before still passes.
|
|
15
|
+
*
|
|
9
16
|
* Returns the page as validated. Nothing is coerced or filled in: a page that
|
|
10
17
|
* passes is returned equal to the input — one in an older format, brought up to
|
|
11
18
|
* date first (`upgradePage`), as every reader of it does.
|
|
12
19
|
*/
|
|
13
|
-
export declare function validatePage(input: unknown
|
|
20
|
+
export declare function validatePage(input: unknown, options?: {
|
|
21
|
+
functions?: FunctionsKnown;
|
|
22
|
+
}): PageValidation;
|
|
23
|
+
/**
|
|
24
|
+
* A page's warnings alone, as `validatePage` gives them beside a page — a value of a kind a function does not take —
|
|
25
|
+
* for a page already known to pass the format (the designer's, as each edit is made).
|
|
26
|
+
*/
|
|
27
|
+
export declare function pageWarnings(page: Page, options?: {
|
|
28
|
+
functions?: FunctionsKnown;
|
|
29
|
+
}): PageIssue[];
|
|
@@ -1,27 +1,60 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.validatePage = validatePage;
|
|
4
|
+
exports.pageWarnings = pageWarnings;
|
|
4
5
|
const page_1 = require("./page");
|
|
5
6
|
const upgrade_1 = require("./upgrade");
|
|
6
7
|
const references_1 = require("./references");
|
|
8
|
+
const app_functions_1 = require("../expression/app-functions");
|
|
9
|
+
const expression_1 = require("../expression/expression");
|
|
10
|
+
const kinds_1 = require("../expression/kinds");
|
|
7
11
|
/**
|
|
8
12
|
* Check a page in two passes: its shape against the format, then every
|
|
9
13
|
* reference inside it — ids unique, every field a layout, title, statusbar,
|
|
10
14
|
* stat button, currency or filter names actually defined, and every modifier
|
|
11
15
|
* readable and reading only fields of this page.
|
|
12
16
|
*
|
|
17
|
+
* Every function an expression calls must be Fieldia's or the app's (`functions`), given as many values as it takes:
|
|
18
|
+
* a function there is not, or too many or too few values, is refused. A value of a kind a function does not take —
|
|
19
|
+
* `age(notes)`, notes being text — is a warning (`warnings`), never a refusal: such a call gives nothing, as it did
|
|
20
|
+
* before kinds were read, so a page that passed before still passes.
|
|
21
|
+
*
|
|
13
22
|
* Returns the page as validated. Nothing is coerced or filled in: a page that
|
|
14
23
|
* passes is returned equal to the input — one in an older format, brought up to
|
|
15
24
|
* date first (`upgradePage`), as every reader of it does.
|
|
16
25
|
*/
|
|
17
|
-
function validatePage(input) {
|
|
26
|
+
function validatePage(input, options = {}) {
|
|
18
27
|
const parsed = page_1.PageSchema.safeParse((0, upgrade_1.upgradePage)(input));
|
|
19
28
|
if (!parsed.success) {
|
|
20
29
|
return { ok: false, issues: parsed.error.issues.map((issue) => ({ path: formatPath(issue.path), message: describe(issue) })) };
|
|
21
30
|
}
|
|
22
31
|
const page = parsed.data;
|
|
23
|
-
const
|
|
24
|
-
|
|
32
|
+
const check = kindCheck(page, options.functions);
|
|
33
|
+
const issues = check.run();
|
|
34
|
+
const warned = check.warnings.length ? { warnings: check.warnings } : {};
|
|
35
|
+
return issues.length ? { ok: false, issues, ...warned } : { ok: true, page, ...warned };
|
|
36
|
+
}
|
|
37
|
+
/** The reference check of a page, reading the kinds of value its expressions hand their functions as warnings. */
|
|
38
|
+
function kindCheck(page, functions) {
|
|
39
|
+
const kinds = (source, scope) => {
|
|
40
|
+
try {
|
|
41
|
+
return (0, kinds_1.kindProblems)((0, expression_1.parseExpression)(source, (0, app_functions_1.functionTable)(functions)), scope, functions).map(kinds_1.kindProblemWords);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// What does not read is said by the check that reads it.
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
return new references_1.ReferenceCheck(page, undefined, { functions, kinds });
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* A page's warnings alone, as `validatePage` gives them beside a page — a value of a kind a function does not take —
|
|
52
|
+
* for a page already known to pass the format (the designer's, as each edit is made).
|
|
53
|
+
*/
|
|
54
|
+
function pageWarnings(page, options = {}) {
|
|
55
|
+
const check = kindCheck(page, options.functions);
|
|
56
|
+
check.run();
|
|
57
|
+
return check.warnings;
|
|
25
58
|
}
|
|
26
59
|
function formatPath(path) {
|
|
27
60
|
if (path.length === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/validate.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,56 @@
|
|
|
1
1
|
import { PageSchema } from './page.mjs';
|
|
2
2
|
import { upgradePage } from './upgrade.mjs';
|
|
3
3
|
import { ReferenceCheck } from './references.mjs';
|
|
4
|
+
import { functionTable } from '../expression/app-functions.mjs';
|
|
5
|
+
import { parseExpression } from '../expression/expression.mjs';
|
|
6
|
+
import { kindProblems, kindProblemWords } from '../expression/kinds.mjs';
|
|
4
7
|
/**
|
|
5
8
|
* Check a page in two passes: its shape against the format, then every
|
|
6
9
|
* reference inside it — ids unique, every field a layout, title, statusbar,
|
|
7
10
|
* stat button, currency or filter names actually defined, and every modifier
|
|
8
11
|
* readable and reading only fields of this page.
|
|
9
12
|
*
|
|
13
|
+
* Every function an expression calls must be Fieldia's or the app's (`functions`), given as many values as it takes:
|
|
14
|
+
* a function there is not, or too many or too few values, is refused. A value of a kind a function does not take —
|
|
15
|
+
* `age(notes)`, notes being text — is a warning (`warnings`), never a refusal: such a call gives nothing, as it did
|
|
16
|
+
* before kinds were read, so a page that passed before still passes.
|
|
17
|
+
*
|
|
10
18
|
* Returns the page as validated. Nothing is coerced or filled in: a page that
|
|
11
19
|
* passes is returned equal to the input — one in an older format, brought up to
|
|
12
20
|
* date first (`upgradePage`), as every reader of it does.
|
|
13
21
|
*/
|
|
14
|
-
export function validatePage(input) {
|
|
22
|
+
export function validatePage(input, options = {}) {
|
|
15
23
|
const parsed = PageSchema.safeParse(upgradePage(input));
|
|
16
24
|
if (!parsed.success) {
|
|
17
25
|
return { ok: false, issues: parsed.error.issues.map((issue) => ({ path: formatPath(issue.path), message: describe(issue) })) };
|
|
18
26
|
}
|
|
19
27
|
const page = parsed.data;
|
|
20
|
-
const
|
|
21
|
-
|
|
28
|
+
const check = kindCheck(page, options.functions);
|
|
29
|
+
const issues = check.run();
|
|
30
|
+
const warned = check.warnings.length ? { warnings: check.warnings } : {};
|
|
31
|
+
return issues.length ? { ok: false, issues, ...warned } : { ok: true, page, ...warned };
|
|
32
|
+
}
|
|
33
|
+
/** The reference check of a page, reading the kinds of value its expressions hand their functions as warnings. */
|
|
34
|
+
function kindCheck(page, functions) {
|
|
35
|
+
const kinds = (source, scope) => {
|
|
36
|
+
try {
|
|
37
|
+
return kindProblems(parseExpression(source, functionTable(functions)), scope, functions).map(kindProblemWords);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// What does not read is said by the check that reads it.
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
return new ReferenceCheck(page, undefined, { functions, kinds });
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* A page's warnings alone, as `validatePage` gives them beside a page — a value of a kind a function does not take —
|
|
48
|
+
* for a page already known to pass the format (the designer's, as each edit is made).
|
|
49
|
+
*/
|
|
50
|
+
export function pageWarnings(page, options = {}) {
|
|
51
|
+
const check = kindCheck(page, options.functions);
|
|
52
|
+
check.run();
|
|
53
|
+
return check.warnings;
|
|
22
54
|
}
|
|
23
55
|
function formatPath(path) {
|
|
24
56
|
if (path.length === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/validate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAa,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"validate.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/** The page format version this build reads and writes. */
|
|
2
|
-
export declare const FORMAT_VERSION: "0.
|
|
2
|
+
export declare const FORMAT_VERSION: "0.6";
|
|
3
3
|
/**
|
|
4
4
|
* Every format Fieldia has had, oldest first; the last is FORMAT_VERSION. A page in an older one is brought up to date
|
|
5
5
|
* by `upgradePage`, step by step (`PAGE_UPGRADES`), wherever it is read: `checkPage`, `validatePage`, the viewer, the
|
|
6
6
|
* designer. A release that changes what a page may say adds its version here (see the format's docs, "Versions").
|
|
7
7
|
*/
|
|
8
|
-
export declare const FORMAT_VERSIONS: readonly ["0.1", "0.2", "0.3", "0.4", "0.5"];
|
|
8
|
+
export declare const FORMAT_VERSIONS: readonly ["0.1", "0.2", "0.3", "0.4", "0.5", "0.6"];
|
|
9
9
|
/** A format Fieldia has had: a page may say any of them, and is read in the current one. */
|
|
10
10
|
export type FormatVersion = (typeof FORMAT_VERSIONS)[number];
|
|
11
11
|
/** Which of two format versions is newer: below 0 when `a` is older, 0 when they are the same, null when either is not a version. */
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/** The page format version this build reads and writes. */
|
|
2
|
-
export declare const FORMAT_VERSION: "0.
|
|
2
|
+
export declare const FORMAT_VERSION: "0.6";
|
|
3
3
|
/**
|
|
4
4
|
* Every format Fieldia has had, oldest first; the last is FORMAT_VERSION. A page in an older one is brought up to date
|
|
5
5
|
* by `upgradePage`, step by step (`PAGE_UPGRADES`), wherever it is read: `checkPage`, `validatePage`, the viewer, the
|
|
6
6
|
* designer. A release that changes what a page may say adds its version here (see the format's docs, "Versions").
|
|
7
7
|
*/
|
|
8
|
-
export declare const FORMAT_VERSIONS: readonly ["0.1", "0.2", "0.3", "0.4", "0.5"];
|
|
8
|
+
export declare const FORMAT_VERSIONS: readonly ["0.1", "0.2", "0.3", "0.4", "0.5", "0.6"];
|
|
9
9
|
/** A format Fieldia has had: a page may say any of them, and is read in the current one. */
|
|
10
10
|
export type FormatVersion = (typeof FORMAT_VERSIONS)[number];
|
|
11
11
|
/** Which of two format versions is newer: below 0 when `a` is older, 0 when they are the same, null when either is not a version. */
|
|
@@ -4,13 +4,13 @@ exports.FORMAT_VERSIONS = exports.FORMAT_VERSION = void 0;
|
|
|
4
4
|
exports.compareFormats = compareFormats;
|
|
5
5
|
exports.formatProblem = formatProblem;
|
|
6
6
|
/** The page format version this build reads and writes. */
|
|
7
|
-
exports.FORMAT_VERSION = '0.
|
|
7
|
+
exports.FORMAT_VERSION = '0.6';
|
|
8
8
|
/**
|
|
9
9
|
* Every format Fieldia has had, oldest first; the last is FORMAT_VERSION. A page in an older one is brought up to date
|
|
10
10
|
* by `upgradePage`, step by step (`PAGE_UPGRADES`), wherever it is read: `checkPage`, `validatePage`, the viewer, the
|
|
11
11
|
* designer. A release that changes what a page may say adds its version here (see the format's docs, "Versions").
|
|
12
12
|
*/
|
|
13
|
-
exports.FORMAT_VERSIONS = ['0.1', '0.2', '0.3', '0.4', '0.5'];
|
|
13
|
+
exports.FORMAT_VERSIONS = ['0.1', '0.2', '0.3', '0.4', '0.5', '0.6'];
|
|
14
14
|
/** `major.minor` as two numbers, or null when it is not a version at all. */
|
|
15
15
|
function parts(version) {
|
|
16
16
|
const match = typeof version === 'string' ? /^(\d+)\.(\d+)$/.exec(version) : null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/version.ts"],"names":[],"mappings":";;;AAoBA,wCAIC;AAMD,sCAQC;AAtCD,2DAA2D;AAC9C,QAAA,cAAc,GAAG,KAAc,CAAC;AAE7C;;;;GAIG;AACU,QAAA,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/version.ts"],"names":[],"mappings":";;;AAoBA,wCAIC;AAMD,sCAQC;AAtCD,2DAA2D;AAC9C,QAAA,cAAc,GAAG,KAAc,CAAC;AAE7C;;;;GAIG;AACU,QAAA,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAsC,CAAC;AAK/G,6EAA6E;AAC7E,SAAS,KAAK,CAAC,OAAgB;IAC7B,MAAM,KAAK,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED,qIAAqI;AACrI,SAAgB,cAAc,CAAC,CAAU,EAAE,CAAU;IACnD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,OAAgB,EAAE,WAA8B,uBAAe;IAC3F,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9C,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,wDAAwD,OAAO,oBAAoB,CAAC;IAClH,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,0BAA0B,OAAiB,oCAAoC,OAAO,8BAA8B,CAAC;IAC9I,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAiB,CAAC;QAAE,OAAO,0BAA0B,OAAiB,oCAAoC,OAAO,EAAE,CAAC;IAC1I,OAAO,UAAU,OAAiB,mDAAmD,OAAO,EAAE,CAAC;AACjG,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/** The page format version this build reads and writes. */
|
|
2
|
-
export const FORMAT_VERSION = '0.
|
|
2
|
+
export const FORMAT_VERSION = '0.6';
|
|
3
3
|
/**
|
|
4
4
|
* Every format Fieldia has had, oldest first; the last is FORMAT_VERSION. A page in an older one is brought up to date
|
|
5
5
|
* by `upgradePage`, step by step (`PAGE_UPGRADES`), wherever it is read: `checkPage`, `validatePage`, the viewer, the
|
|
6
6
|
* designer. A release that changes what a page may say adds its version here (see the format's docs, "Versions").
|
|
7
7
|
*/
|
|
8
|
-
export const FORMAT_VERSIONS = ['0.1', '0.2', '0.3', '0.4', '0.5'];
|
|
8
|
+
export const FORMAT_VERSIONS = ['0.1', '0.2', '0.3', '0.4', '0.5', '0.6'];
|
|
9
9
|
/** `major.minor` as two numbers, or null when it is not a version at all. */
|
|
10
10
|
function parts(version) {
|
|
11
11
|
const match = typeof version === 'string' ? /^(\d+)\.(\d+)$/.exec(version) : null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/version.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,CAAC,MAAM,cAAc,GAAG,KAAc,CAAC;AAE7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"version.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/version.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,CAAC,MAAM,cAAc,GAAG,KAAc,CAAC;AAE7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAsC,CAAC;AAK/G,6EAA6E;AAC7E,SAAS,KAAK,CAAC,OAAgB;IAC7B,MAAM,KAAK,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED,qIAAqI;AACrI,MAAM,UAAU,cAAc,CAAC,CAAU,EAAE,CAAU;IACnD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,WAA8B,eAAe;IAC3F,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9C,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,wDAAwD,OAAO,oBAAoB,CAAC;IAClH,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,0BAA0B,OAAiB,oCAAoC,OAAO,8BAA8B,CAAC;IAC9I,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAiB,CAAC;QAAE,OAAO,0BAA0B,OAAiB,oCAAoC,OAAO,EAAE,CAAC;IAC1I,OAAO,UAAU,OAAiB,mDAAmD,OAAO,EAAE,CAAC;AACjG,CAAC"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
/** The fields words show the values of, in the order they show them. */
|
|
2
2
|
export declare function valuesIn(words: string): string[];
|
|
3
|
-
/** The words with each `{field}` replaced by what `value` gives for it. */
|
|
3
|
+
/** The words with each `{field}` replaced by what `value` gives for it — its words while empty, where it has some. */
|
|
4
4
|
export declare function fillValues(words: string, value: (field: string) => string): string;
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* The words cut at each `{field}`: words, then a field's name with its words while empty (`fallback`), in turn — for
|
|
7
|
+
* drawing a value set apart from the words round it.
|
|
8
|
+
*/
|
|
6
9
|
export declare function splitValues(words: string): {
|
|
7
10
|
text: string;
|
|
8
11
|
field?: string;
|
|
12
|
+
fallback?: string;
|
|
9
13
|
}[];
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
/** The fields words show the values of, in the order they show them. */
|
|
2
2
|
export declare function valuesIn(words: string): string[];
|
|
3
|
-
/** The words with each `{field}` replaced by what `value` gives for it. */
|
|
3
|
+
/** The words with each `{field}` replaced by what `value` gives for it — its words while empty, where it has some. */
|
|
4
4
|
export declare function fillValues(words: string, value: (field: string) => string): string;
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* The words cut at each `{field}`: words, then a field's name with its words while empty (`fallback`), in turn — for
|
|
7
|
+
* drawing a value set apart from the words round it.
|
|
8
|
+
*/
|
|
6
9
|
export declare function splitValues(words: string): {
|
|
7
10
|
text: string;
|
|
8
11
|
field?: string;
|
|
12
|
+
fallback?: string;
|
|
9
13
|
}[];
|
package/src/lib/format/words.js
CHANGED
|
@@ -6,26 +6,32 @@ exports.splitValues = splitValues;
|
|
|
6
6
|
/**
|
|
7
7
|
* Words that hold a field's value, as an alert's or a text's: "The tax lock
|
|
8
8
|
* date is {tax_lock_date}" shows the date the record holds there, as the
|
|
9
|
-
* field shows it.
|
|
10
|
-
*
|
|
9
|
+
* field shows it. After a bar, the words shown while the field is empty:
|
|
10
|
+
* "How was your visit to {branch|this branch}?" — the page's own words,
|
|
11
|
+
* translated with the rest of them. A name in braces that is no field of the
|
|
12
|
+
* page is refused by the page check; braces round anything else are left as
|
|
13
|
+
* they are.
|
|
11
14
|
*/
|
|
12
|
-
const VALUE = /\{([A-Za-z_][A-Za-z0-9_]*)
|
|
15
|
+
const VALUE = /\{([A-Za-z_][A-Za-z0-9_]*)(?:\|([^{}]*))?\}/g;
|
|
13
16
|
/** The fields words show the values of, in the order they show them. */
|
|
14
17
|
function valuesIn(words) {
|
|
15
18
|
return [...words.matchAll(VALUE)].map((match) => match[1]);
|
|
16
19
|
}
|
|
17
|
-
/** The words with each `{field}` replaced by what `value` gives for it. */
|
|
20
|
+
/** The words with each `{field}` replaced by what `value` gives for it — its words while empty, where it has some. */
|
|
18
21
|
function fillValues(words, value) {
|
|
19
|
-
return words.replace(VALUE, (_, name) => value(name));
|
|
22
|
+
return words.replace(VALUE, (_, name, empty) => value(name) || (empty ?? ''));
|
|
20
23
|
}
|
|
21
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
* The words cut at each `{field}`: words, then a field's name with its words while empty (`fallback`), in turn — for
|
|
26
|
+
* drawing a value set apart from the words round it.
|
|
27
|
+
*/
|
|
22
28
|
function splitValues(words) {
|
|
23
29
|
const parts = [];
|
|
24
30
|
let at = 0;
|
|
25
31
|
for (const match of words.matchAll(VALUE)) {
|
|
26
32
|
if (match.index > at)
|
|
27
33
|
parts.push({ text: words.slice(at, match.index) });
|
|
28
|
-
parts.push({ text: '', field: match[1] });
|
|
34
|
+
parts.push({ text: '', field: match[1], ...(match[2] !== undefined ? { fallback: match[2] } : {}) });
|
|
29
35
|
at = match.index + match[0].length;
|
|
30
36
|
}
|
|
31
37
|
if (at < words.length)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"words.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/words.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"words.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/words.ts"],"names":[],"mappings":";;AAYA,4BAEC;AAGD,gCAEC;AAMD,kCAUC;AAnCD;;;;;;;;GAQG;AACH,MAAM,KAAK,GAAG,8CAA8C,CAAC;AAE7D,wEAAwE;AACxE,SAAgB,QAAQ,CAAC,KAAa;IACpC,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,sHAAsH;AACtH,SAAgB,UAAU,CAAC,KAAa,EAAE,KAAgC;IACxE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAY,EAAE,KAAc,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;AACjG,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,KAAa;IACvC,MAAM,KAAK,GAA0D,EAAE,CAAC;IACxE,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,KAAK,GAAG,EAAE;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACrG,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACrC,CAAC;IACD,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/src/lib/format/words.mjs
CHANGED
|
@@ -1,26 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Words that hold a field's value, as an alert's or a text's: "The tax lock
|
|
3
3
|
* date is {tax_lock_date}" shows the date the record holds there, as the
|
|
4
|
-
* field shows it.
|
|
5
|
-
*
|
|
4
|
+
* field shows it. After a bar, the words shown while the field is empty:
|
|
5
|
+
* "How was your visit to {branch|this branch}?" — the page's own words,
|
|
6
|
+
* translated with the rest of them. A name in braces that is no field of the
|
|
7
|
+
* page is refused by the page check; braces round anything else are left as
|
|
8
|
+
* they are.
|
|
6
9
|
*/
|
|
7
|
-
const VALUE = /\{([A-Za-z_][A-Za-z0-9_]*)
|
|
10
|
+
const VALUE = /\{([A-Za-z_][A-Za-z0-9_]*)(?:\|([^{}]*))?\}/g;
|
|
8
11
|
/** The fields words show the values of, in the order they show them. */
|
|
9
12
|
export function valuesIn(words) {
|
|
10
13
|
return [...words.matchAll(VALUE)].map((match) => match[1]);
|
|
11
14
|
}
|
|
12
|
-
/** The words with each `{field}` replaced by what `value` gives for it. */
|
|
15
|
+
/** The words with each `{field}` replaced by what `value` gives for it — its words while empty, where it has some. */
|
|
13
16
|
export function fillValues(words, value) {
|
|
14
|
-
return words.replace(VALUE, (_, name) => value(name));
|
|
17
|
+
return words.replace(VALUE, (_, name, empty) => value(name) || (empty ?? ''));
|
|
15
18
|
}
|
|
16
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* The words cut at each `{field}`: words, then a field's name with its words while empty (`fallback`), in turn — for
|
|
21
|
+
* drawing a value set apart from the words round it.
|
|
22
|
+
*/
|
|
17
23
|
export function splitValues(words) {
|
|
18
24
|
const parts = [];
|
|
19
25
|
let at = 0;
|
|
20
26
|
for (const match of words.matchAll(VALUE)) {
|
|
21
27
|
if (match.index > at)
|
|
22
28
|
parts.push({ text: words.slice(at, match.index) });
|
|
23
|
-
parts.push({ text: '', field: match[1] });
|
|
29
|
+
parts.push({ text: '', field: match[1], ...(match[2] !== undefined ? { fallback: match[2] } : {}) });
|
|
24
30
|
at = match.index + match[0].length;
|
|
25
31
|
}
|
|
26
32
|
if (at < words.length)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"words.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/words.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"words.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/words.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,KAAK,GAAG,8CAA8C,CAAC;AAE7D,wEAAwE;AACxE,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,sHAAsH;AACtH,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,KAAgC;IACxE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAY,EAAE,KAAc,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;AACjG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,MAAM,KAAK,GAA0D,EAAE,CAAC;IACxE,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,KAAK,GAAG,EAAE;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACrG,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACrC,CAAC;IACD,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC;AACf,CAAC"}
|