@fieldia/designer 0.0.0-stage → 0.11.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/LICENSE +21 -0
- package/README.md +354 -2
- package/angular/editors.d.mts +32 -0
- package/angular/editors.mjs +64 -0
- package/angular/editors.mjs.map +1 -0
- package/angular/index.d.mts +1 -0
- package/angular/index.mjs +2 -0
- package/angular/index.mjs.map +1 -0
- package/package.json +77 -3
- package/src/index.d.mts +4 -0
- package/src/index.d.ts +4 -0
- package/src/index.js +8 -0
- package/src/index.js.map +1 -0
- package/src/index.mjs +5 -0
- package/src/index.mjs.map +1 -0
- package/src/lib/app-kinds-ui.d.mts +25 -0
- package/src/lib/app-kinds-ui.d.ts +25 -0
- package/src/lib/app-kinds-ui.js +73 -0
- package/src/lib/app-kinds-ui.js.map +1 -0
- package/src/lib/app-kinds-ui.mjs +67 -0
- package/src/lib/app-kinds-ui.mjs.map +1 -0
- package/src/lib/app-kinds.d.mts +67 -0
- package/src/lib/app-kinds.d.ts +67 -0
- package/src/lib/app-kinds.js +39 -0
- package/src/lib/app-kinds.js.map +1 -0
- package/src/lib/app-kinds.mjs +34 -0
- package/src/lib/app-kinds.mjs.map +1 -0
- package/src/lib/assistant-box.d.mts +34 -0
- package/src/lib/assistant-box.d.ts +34 -0
- package/src/lib/assistant-box.js +109 -0
- package/src/lib/assistant-box.js.map +1 -0
- package/src/lib/assistant-box.mjs +106 -0
- package/src/lib/assistant-box.mjs.map +1 -0
- package/src/lib/assistant-dialog.d.mts +20 -0
- package/src/lib/assistant-dialog.d.ts +20 -0
- package/src/lib/assistant-dialog.js +63 -0
- package/src/lib/assistant-dialog.js.map +1 -0
- package/src/lib/assistant-dialog.mjs +60 -0
- package/src/lib/assistant-dialog.mjs.map +1 -0
- package/src/lib/assistant.d.mts +44 -0
- package/src/lib/assistant.d.ts +44 -0
- package/src/lib/assistant.js +58 -0
- package/src/lib/assistant.js.map +1 -0
- package/src/lib/assistant.mjs +54 -0
- package/src/lib/assistant.mjs.map +1 -0
- package/src/lib/branch-map.d.mts +26 -0
- package/src/lib/branch-map.d.ts +26 -0
- package/src/lib/branch-map.js +110 -0
- package/src/lib/branch-map.js.map +1 -0
- package/src/lib/branch-map.mjs +106 -0
- package/src/lib/branch-map.mjs.map +1 -0
- package/src/lib/canvas-advanced.d.mts +40 -0
- package/src/lib/canvas-advanced.d.ts +40 -0
- package/src/lib/canvas-advanced.js +247 -0
- package/src/lib/canvas-advanced.js.map +1 -0
- package/src/lib/canvas-advanced.mjs +242 -0
- package/src/lib/canvas-advanced.mjs.map +1 -0
- package/src/lib/canvas-blocks.d.mts +21 -0
- package/src/lib/canvas-blocks.d.ts +21 -0
- package/src/lib/canvas-blocks.js +92 -0
- package/src/lib/canvas-blocks.js.map +1 -0
- package/src/lib/canvas-blocks.mjs +89 -0
- package/src/lib/canvas-blocks.mjs.map +1 -0
- package/src/lib/canvas-drag.d.mts +64 -0
- package/src/lib/canvas-drag.d.ts +64 -0
- package/src/lib/canvas-drag.js +301 -0
- package/src/lib/canvas-drag.js.map +1 -0
- package/src/lib/canvas-drag.mjs +297 -0
- package/src/lib/canvas-drag.mjs.map +1 -0
- package/src/lib/canvas-drop.d.mts +51 -0
- package/src/lib/canvas-drop.d.ts +51 -0
- package/src/lib/canvas-drop.js +171 -0
- package/src/lib/canvas-drop.js.map +1 -0
- package/src/lib/canvas-drop.mjs +165 -0
- package/src/lib/canvas-drop.mjs.map +1 -0
- package/src/lib/canvas-fold.d.mts +14 -0
- package/src/lib/canvas-fold.d.ts +14 -0
- package/src/lib/canvas-fold.js +23 -0
- package/src/lib/canvas-fold.js.map +1 -0
- package/src/lib/canvas-fold.mjs +20 -0
- package/src/lib/canvas-fold.mjs.map +1 -0
- package/src/lib/canvas-form.d.mts +28 -0
- package/src/lib/canvas-form.d.ts +28 -0
- package/src/lib/canvas-form.js +125 -0
- package/src/lib/canvas-form.js.map +1 -0
- package/src/lib/canvas-form.mjs +122 -0
- package/src/lib/canvas-form.mjs.map +1 -0
- package/src/lib/canvas-guides.d.mts +24 -0
- package/src/lib/canvas-guides.d.ts +24 -0
- package/src/lib/canvas-guides.js +100 -0
- package/src/lib/canvas-guides.js.map +1 -0
- package/src/lib/canvas-guides.mjs +96 -0
- package/src/lib/canvas-guides.mjs.map +1 -0
- package/src/lib/canvas-header.d.mts +26 -0
- package/src/lib/canvas-header.d.ts +26 -0
- package/src/lib/canvas-header.js +206 -0
- package/src/lib/canvas-header.js.map +1 -0
- package/src/lib/canvas-header.mjs +203 -0
- package/src/lib/canvas-header.mjs.map +1 -0
- package/src/lib/canvas-icons.d.mts +6 -0
- package/src/lib/canvas-icons.d.ts +6 -0
- package/src/lib/canvas-icons.js +31 -0
- package/src/lib/canvas-icons.js.map +1 -0
- package/src/lib/canvas-icons.mjs +28 -0
- package/src/lib/canvas-icons.mjs.map +1 -0
- package/src/lib/canvas-keys.d.mts +46 -0
- package/src/lib/canvas-keys.d.ts +46 -0
- package/src/lib/canvas-keys.js +114 -0
- package/src/lib/canvas-keys.js.map +1 -0
- package/src/lib/canvas-keys.mjs +109 -0
- package/src/lib/canvas-keys.mjs.map +1 -0
- package/src/lib/canvas-mode.d.mts +21 -0
- package/src/lib/canvas-mode.d.ts +21 -0
- package/src/lib/canvas-mode.js +53 -0
- package/src/lib/canvas-mode.js.map +1 -0
- package/src/lib/canvas-mode.mjs +47 -0
- package/src/lib/canvas-mode.mjs.map +1 -0
- package/src/lib/canvas-multi.d.mts +20 -0
- package/src/lib/canvas-multi.d.ts +20 -0
- package/src/lib/canvas-multi.js +56 -0
- package/src/lib/canvas-multi.js.map +1 -0
- package/src/lib/canvas-multi.mjs +53 -0
- package/src/lib/canvas-multi.mjs.map +1 -0
- package/src/lib/canvas-resize.d.mts +72 -0
- package/src/lib/canvas-resize.d.ts +72 -0
- package/src/lib/canvas-resize.js +177 -0
- package/src/lib/canvas-resize.js.map +1 -0
- package/src/lib/canvas-resize.mjs +168 -0
- package/src/lib/canvas-resize.mjs.map +1 -0
- package/src/lib/canvas-size.d.mts +42 -0
- package/src/lib/canvas-size.d.ts +42 -0
- package/src/lib/canvas-size.js +108 -0
- package/src/lib/canvas-size.js.map +1 -0
- package/src/lib/canvas-size.mjs +98 -0
- package/src/lib/canvas-size.mjs.map +1 -0
- package/src/lib/canvas-width.d.mts +55 -0
- package/src/lib/canvas-width.d.ts +55 -0
- package/src/lib/canvas-width.js +345 -0
- package/src/lib/canvas-width.js.map +1 -0
- package/src/lib/canvas-width.mjs +339 -0
- package/src/lib/canvas-width.mjs.map +1 -0
- package/src/lib/choice-commands.d.mts +36 -0
- package/src/lib/choice-commands.d.ts +36 -0
- package/src/lib/choice-commands.js +108 -0
- package/src/lib/choice-commands.js.map +1 -0
- package/src/lib/choice-commands.mjs +104 -0
- package/src/lib/choice-commands.mjs.map +1 -0
- package/src/lib/chrome-language.d.mts +34 -0
- package/src/lib/chrome-language.d.ts +34 -0
- package/src/lib/chrome-language.js +74 -0
- package/src/lib/chrome-language.js.map +1 -0
- package/src/lib/chrome-language.mjs +66 -0
- package/src/lib/chrome-language.mjs.map +1 -0
- package/src/lib/chrome.d.mts +49 -0
- package/src/lib/chrome.d.ts +49 -0
- package/src/lib/chrome.js +411 -0
- package/src/lib/chrome.js.map +1 -0
- package/src/lib/chrome.mjs +404 -0
- package/src/lib/chrome.mjs.map +1 -0
- package/src/lib/clipboard-keys.d.mts +22 -0
- package/src/lib/clipboard-keys.d.ts +22 -0
- package/src/lib/clipboard-keys.js +81 -0
- package/src/lib/clipboard-keys.js.map +1 -0
- package/src/lib/clipboard-keys.mjs +77 -0
- package/src/lib/clipboard-keys.mjs.map +1 -0
- package/src/lib/clipboard-names.d.mts +12 -0
- package/src/lib/clipboard-names.d.ts +12 -0
- package/src/lib/clipboard-names.js +146 -0
- package/src/lib/clipboard-names.js.map +1 -0
- package/src/lib/clipboard-names.mjs +141 -0
- package/src/lib/clipboard-names.mjs.map +1 -0
- package/src/lib/clipboard-ops.d.mts +33 -0
- package/src/lib/clipboard-ops.d.ts +33 -0
- package/src/lib/clipboard-ops.js +143 -0
- package/src/lib/clipboard-ops.js.map +1 -0
- package/src/lib/clipboard-ops.mjs +137 -0
- package/src/lib/clipboard-ops.mjs.map +1 -0
- package/src/lib/columns-editor.d.mts +12 -0
- package/src/lib/columns-editor.d.ts +12 -0
- package/src/lib/columns-editor.js +65 -0
- package/src/lib/columns-editor.js.map +1 -0
- package/src/lib/columns-editor.mjs +62 -0
- package/src/lib/columns-editor.mjs.map +1 -0
- package/src/lib/condition-editor.d.mts +31 -0
- package/src/lib/condition-editor.d.ts +31 -0
- package/src/lib/condition-editor.js +138 -0
- package/src/lib/condition-editor.js.map +1 -0
- package/src/lib/condition-editor.mjs +134 -0
- package/src/lib/condition-editor.mjs.map +1 -0
- package/src/lib/conditions.d.mts +27 -0
- package/src/lib/conditions.d.ts +27 -0
- package/src/lib/conditions.js +77 -0
- package/src/lib/conditions.js.map +1 -0
- package/src/lib/conditions.mjs +71 -0
- package/src/lib/conditions.mjs.map +1 -0
- package/src/lib/designer-words.d.mts +29 -0
- package/src/lib/designer-words.d.ts +29 -0
- package/src/lib/designer-words.js +32 -0
- package/src/lib/designer-words.js.map +1 -0
- package/src/lib/designer-words.mjs +25 -0
- package/src/lib/designer-words.mjs.map +1 -0
- package/src/lib/designer.d.mts +470 -0
- package/src/lib/designer.d.ts +470 -0
- package/src/lib/designer.js +1225 -0
- package/src/lib/designer.js.map +1 -0
- package/src/lib/designer.mjs +1201 -0
- package/src/lib/designer.mjs.map +1 -0
- package/src/lib/drop-echo.d.mts +71 -0
- package/src/lib/drop-echo.d.ts +71 -0
- package/src/lib/drop-echo.js +202 -0
- package/src/lib/drop-echo.js.map +1 -0
- package/src/lib/drop-echo.mjs +195 -0
- package/src/lib/drop-echo.mjs.map +1 -0
- package/src/lib/field-bar.d.mts +23 -0
- package/src/lib/field-bar.d.ts +23 -0
- package/src/lib/field-bar.js +115 -0
- package/src/lib/field-bar.js.map +1 -0
- package/src/lib/field-bar.mjs +111 -0
- package/src/lib/field-bar.mjs.map +1 -0
- package/src/lib/find-anything.d.mts +37 -0
- package/src/lib/find-anything.d.ts +37 -0
- package/src/lib/find-anything.js +109 -0
- package/src/lib/find-anything.js.map +1 -0
- package/src/lib/find-anything.mjs +105 -0
- package/src/lib/find-anything.mjs.map +1 -0
- package/src/lib/group-fold.d.mts +11 -0
- package/src/lib/group-fold.d.ts +11 -0
- package/src/lib/group-fold.js +25 -0
- package/src/lib/group-fold.js.map +1 -0
- package/src/lib/group-fold.mjs +20 -0
- package/src/lib/group-fold.mjs.map +1 -0
- package/src/lib/header-commands.d.mts +47 -0
- package/src/lib/header-commands.d.ts +47 -0
- package/src/lib/header-commands.js +174 -0
- package/src/lib/header-commands.js.map +1 -0
- package/src/lib/header-commands.mjs +170 -0
- package/src/lib/header-commands.mjs.map +1 -0
- package/src/lib/header-properties.d.mts +5 -0
- package/src/lib/header-properties.d.ts +5 -0
- package/src/lib/header-properties.js +121 -0
- package/src/lib/header-properties.js.map +1 -0
- package/src/lib/header-properties.mjs +117 -0
- package/src/lib/header-properties.mjs.map +1 -0
- package/src/lib/icons.d.mts +4 -0
- package/src/lib/icons.d.ts +4 -0
- package/src/lib/icons.js +91 -0
- package/src/lib/icons.js.map +1 -0
- package/src/lib/icons.mjs +87 -0
- package/src/lib/icons.mjs.map +1 -0
- package/src/lib/inline-settings.d.mts +17 -0
- package/src/lib/inline-settings.d.ts +17 -0
- package/src/lib/inline-settings.js +213 -0
- package/src/lib/inline-settings.js.map +1 -0
- package/src/lib/inline-settings.mjs +210 -0
- package/src/lib/inline-settings.mjs.map +1 -0
- package/src/lib/input-changes.d.mts +18 -0
- package/src/lib/input-changes.d.ts +18 -0
- package/src/lib/input-changes.js +80 -0
- package/src/lib/input-changes.js.map +1 -0
- package/src/lib/input-changes.mjs +77 -0
- package/src/lib/input-changes.mjs.map +1 -0
- package/src/lib/input-commands.d.mts +48 -0
- package/src/lib/input-commands.d.ts +48 -0
- package/src/lib/input-commands.js +160 -0
- package/src/lib/input-commands.js.map +1 -0
- package/src/lib/input-commands.mjs +155 -0
- package/src/lib/input-commands.mjs.map +1 -0
- package/src/lib/json-checks.d.mts +26 -0
- package/src/lib/json-checks.d.ts +26 -0
- package/src/lib/json-checks.js +208 -0
- package/src/lib/json-checks.js.map +1 -0
- package/src/lib/json-checks.mjs +204 -0
- package/src/lib/json-checks.mjs.map +1 -0
- package/src/lib/json-code.d.mts +33 -0
- package/src/lib/json-code.d.ts +33 -0
- package/src/lib/json-code.js +124 -0
- package/src/lib/json-code.js.map +1 -0
- package/src/lib/json-code.mjs +120 -0
- package/src/lib/json-code.mjs.map +1 -0
- package/src/lib/json-text.d.mts +46 -0
- package/src/lib/json-text.d.ts +46 -0
- package/src/lib/json-text.js +260 -0
- package/src/lib/json-text.js.map +1 -0
- package/src/lib/json-text.mjs +253 -0
- package/src/lib/json-text.mjs.map +1 -0
- package/src/lib/json-view.d.mts +29 -0
- package/src/lib/json-view.d.ts +29 -0
- package/src/lib/json-view.js +235 -0
- package/src/lib/json-view.js.map +1 -0
- package/src/lib/json-view.mjs +232 -0
- package/src/lib/json-view.mjs.map +1 -0
- package/src/lib/keep-unchanged.d.mts +12 -0
- package/src/lib/keep-unchanged.d.ts +12 -0
- package/src/lib/keep-unchanged.js +68 -0
- package/src/lib/keep-unchanged.js.map +1 -0
- package/src/lib/keep-unchanged.mjs +65 -0
- package/src/lib/keep-unchanged.mjs.map +1 -0
- package/src/lib/kind-commands.d.mts +40 -0
- package/src/lib/kind-commands.d.ts +40 -0
- package/src/lib/kind-commands.js +149 -0
- package/src/lib/kind-commands.js.map +1 -0
- package/src/lib/kind-commands.mjs +145 -0
- package/src/lib/kind-commands.mjs.map +1 -0
- package/src/lib/kind-previews.d.mts +11 -0
- package/src/lib/kind-previews.d.ts +11 -0
- package/src/lib/kind-previews.js +45 -0
- package/src/lib/kind-previews.js.map +1 -0
- package/src/lib/kind-previews.mjs +42 -0
- package/src/lib/kind-previews.mjs.map +1 -0
- package/src/lib/kind-settings-choices.d.mts +17 -0
- package/src/lib/kind-settings-choices.d.ts +17 -0
- package/src/lib/kind-settings-choices.js +164 -0
- package/src/lib/kind-settings-choices.js.map +1 -0
- package/src/lib/kind-settings-choices.mjs +161 -0
- package/src/lib/kind-settings-choices.mjs.map +1 -0
- package/src/lib/kind-settings-inputs.d.mts +20 -0
- package/src/lib/kind-settings-inputs.d.ts +20 -0
- package/src/lib/kind-settings-inputs.js +269 -0
- package/src/lib/kind-settings-inputs.js.map +1 -0
- package/src/lib/kind-settings-inputs.mjs +266 -0
- package/src/lib/kind-settings-inputs.mjs.map +1 -0
- package/src/lib/kind-settings-structures.d.mts +20 -0
- package/src/lib/kind-settings-structures.d.ts +20 -0
- package/src/lib/kind-settings-structures.js +205 -0
- package/src/lib/kind-settings-structures.js.map +1 -0
- package/src/lib/kind-settings-structures.mjs +201 -0
- package/src/lib/kind-settings-structures.mjs.map +1 -0
- package/src/lib/kind-settings.d.mts +18 -0
- package/src/lib/kind-settings.d.ts +18 -0
- package/src/lib/kind-settings.js +325 -0
- package/src/lib/kind-settings.js.map +1 -0
- package/src/lib/kind-settings.mjs +322 -0
- package/src/lib/kind-settings.mjs.map +1 -0
- package/src/lib/kinds.d.mts +66 -0
- package/src/lib/kinds.d.ts +66 -0
- package/src/lib/kinds.js +212 -0
- package/src/lib/kinds.js.map +1 -0
- package/src/lib/kinds.mjs +199 -0
- package/src/lib/kinds.mjs.map +1 -0
- package/src/lib/language-names.d.mts +8 -0
- package/src/lib/language-names.d.ts +8 -0
- package/src/lib/language-names.js +72 -0
- package/src/lib/language-names.js.map +1 -0
- package/src/lib/language-names.mjs +68 -0
- package/src/lib/language-names.mjs.map +1 -0
- package/src/lib/layout-changes.d.mts +43 -0
- package/src/lib/layout-changes.d.ts +43 -0
- package/src/lib/layout-changes.js +296 -0
- package/src/lib/layout-changes.js.map +1 -0
- package/src/lib/layout-changes.mjs +290 -0
- package/src/lib/layout-changes.mjs.map +1 -0
- package/src/lib/layout-ops.d.mts +105 -0
- package/src/lib/layout-ops.d.ts +105 -0
- package/src/lib/layout-ops.js +558 -0
- package/src/lib/layout-ops.js.map +1 -0
- package/src/lib/layout-ops.mjs +537 -0
- package/src/lib/layout-ops.mjs.map +1 -0
- package/src/lib/layout-settings.d.mts +69 -0
- package/src/lib/layout-settings.d.ts +69 -0
- package/src/lib/layout-settings.js +257 -0
- package/src/lib/layout-settings.js.map +1 -0
- package/src/lib/layout-settings.mjs +246 -0
- package/src/lib/layout-settings.mjs.map +1 -0
- package/src/lib/layout-several.d.mts +15 -0
- package/src/lib/layout-several.d.ts +15 -0
- package/src/lib/layout-several.js +50 -0
- package/src/lib/layout-several.js.map +1 -0
- package/src/lib/layout-several.mjs +47 -0
- package/src/lib/layout-several.mjs.map +1 -0
- package/src/lib/layout-tree.d.mts +75 -0
- package/src/lib/layout-tree.d.ts +75 -0
- package/src/lib/layout-tree.js +186 -0
- package/src/lib/layout-tree.js.map +1 -0
- package/src/lib/layout-tree.mjs +163 -0
- package/src/lib/layout-tree.mjs.map +1 -0
- package/src/lib/layout-twelfths.d.mts +101 -0
- package/src/lib/layout-twelfths.d.ts +101 -0
- package/src/lib/layout-twelfths.js +233 -0
- package/src/lib/layout-twelfths.js.map +1 -0
- package/src/lib/layout-twelfths.mjs +210 -0
- package/src/lib/layout-twelfths.mjs.map +1 -0
- package/src/lib/list-canvas.d.mts +30 -0
- package/src/lib/list-canvas.d.ts +30 -0
- package/src/lib/list-canvas.js +224 -0
- package/src/lib/list-canvas.js.map +1 -0
- package/src/lib/list-canvas.mjs +221 -0
- package/src/lib/list-canvas.mjs.map +1 -0
- package/src/lib/list-commands.d.mts +57 -0
- package/src/lib/list-commands.d.ts +57 -0
- package/src/lib/list-commands.js +245 -0
- package/src/lib/list-commands.js.map +1 -0
- package/src/lib/list-commands.mjs +238 -0
- package/src/lib/list-commands.mjs.map +1 -0
- package/src/lib/list-properties.d.mts +6 -0
- package/src/lib/list-properties.d.ts +6 -0
- package/src/lib/list-properties.js +310 -0
- package/src/lib/list-properties.js.map +1 -0
- package/src/lib/list-properties.mjs +305 -0
- package/src/lib/list-properties.mjs.map +1 -0
- package/src/lib/list-source.d.mts +10 -0
- package/src/lib/list-source.d.ts +10 -0
- package/src/lib/list-source.js +81 -0
- package/src/lib/list-source.js.map +1 -0
- package/src/lib/list-source.mjs +78 -0
- package/src/lib/list-source.mjs.map +1 -0
- package/src/lib/locales/ar/bar.d.mts +2 -0
- package/src/lib/locales/ar/bar.d.ts +2 -0
- package/src/lib/locales/ar/bar.js +58 -0
- package/src/lib/locales/ar/bar.js.map +1 -0
- package/src/lib/locales/ar/bar.mjs +55 -0
- package/src/lib/locales/ar/bar.mjs.map +1 -0
- package/src/lib/locales/ar/canvas.d.mts +2 -0
- package/src/lib/locales/ar/canvas.d.ts +2 -0
- package/src/lib/locales/ar/canvas.js +115 -0
- package/src/lib/locales/ar/canvas.js.map +1 -0
- package/src/lib/locales/ar/canvas.mjs +112 -0
- package/src/lib/locales/ar/canvas.mjs.map +1 -0
- package/src/lib/locales/ar/changes.d.mts +3 -0
- package/src/lib/locales/ar/changes.d.ts +3 -0
- package/src/lib/locales/ar/changes.js +158 -0
- package/src/lib/locales/ar/changes.js.map +1 -0
- package/src/lib/locales/ar/changes.mjs +155 -0
- package/src/lib/locales/ar/changes.mjs.map +1 -0
- package/src/lib/locales/ar/checks.d.mts +2 -0
- package/src/lib/locales/ar/checks.d.ts +2 -0
- package/src/lib/locales/ar/checks.js +36 -0
- package/src/lib/locales/ar/checks.js.map +1 -0
- package/src/lib/locales/ar/checks.mjs +33 -0
- package/src/lib/locales/ar/checks.mjs.map +1 -0
- package/src/lib/locales/ar/defaults.d.mts +2 -0
- package/src/lib/locales/ar/defaults.d.ts +2 -0
- package/src/lib/locales/ar/defaults.js +33 -0
- package/src/lib/locales/ar/defaults.js.map +1 -0
- package/src/lib/locales/ar/defaults.mjs +30 -0
- package/src/lib/locales/ar/defaults.mjs.map +1 -0
- package/src/lib/locales/ar/index.d.mts +25 -0
- package/src/lib/locales/ar/index.d.ts +25 -0
- package/src/lib/locales/ar/index.js +56 -0
- package/src/lib/locales/ar/index.js.map +1 -0
- package/src/lib/locales/ar/index.mjs +53 -0
- package/src/lib/locales/ar/index.mjs.map +1 -0
- package/src/lib/locales/ar/json.d.mts +2 -0
- package/src/lib/locales/ar/json.d.ts +2 -0
- package/src/lib/locales/ar/json.js +50 -0
- package/src/lib/locales/ar/json.js.map +1 -0
- package/src/lib/locales/ar/json.mjs +47 -0
- package/src/lib/locales/ar/json.mjs.map +1 -0
- package/src/lib/locales/ar/kinds.d.mts +2 -0
- package/src/lib/locales/ar/kinds.d.ts +2 -0
- package/src/lib/locales/ar/kinds.js +74 -0
- package/src/lib/locales/ar/kinds.js.map +1 -0
- package/src/lib/locales/ar/kinds.mjs +71 -0
- package/src/lib/locales/ar/kinds.mjs.map +1 -0
- package/src/lib/locales/ar/languages.d.mts +2 -0
- package/src/lib/locales/ar/languages.d.ts +2 -0
- package/src/lib/locales/ar/languages.js +8 -0
- package/src/lib/locales/ar/languages.js.map +1 -0
- package/src/lib/locales/ar/languages.mjs +5 -0
- package/src/lib/locales/ar/languages.mjs.map +1 -0
- package/src/lib/locales/ar/layout.d.mts +2 -0
- package/src/lib/locales/ar/layout.d.ts +2 -0
- package/src/lib/locales/ar/layout.js +76 -0
- package/src/lib/locales/ar/layout.js.map +1 -0
- package/src/lib/locales/ar/layout.mjs +73 -0
- package/src/lib/locales/ar/layout.mjs.map +1 -0
- package/src/lib/locales/ar/list.d.mts +2 -0
- package/src/lib/locales/ar/list.d.ts +2 -0
- package/src/lib/locales/ar/list.js +65 -0
- package/src/lib/locales/ar/list.js.map +1 -0
- package/src/lib/locales/ar/list.mjs +62 -0
- package/src/lib/locales/ar/list.mjs.map +1 -0
- package/src/lib/locales/ar/looks.d.mts +2 -0
- package/src/lib/locales/ar/looks.d.ts +2 -0
- package/src/lib/locales/ar/looks.js +38 -0
- package/src/lib/locales/ar/looks.js.map +1 -0
- package/src/lib/locales/ar/looks.mjs +35 -0
- package/src/lib/locales/ar/looks.mjs.map +1 -0
- package/src/lib/locales/ar/options.d.mts +2 -0
- package/src/lib/locales/ar/options.d.ts +2 -0
- package/src/lib/locales/ar/options.js +18 -0
- package/src/lib/locales/ar/options.js.map +1 -0
- package/src/lib/locales/ar/options.mjs +15 -0
- package/src/lib/locales/ar/options.mjs.map +1 -0
- package/src/lib/locales/ar/outline.d.mts +3 -0
- package/src/lib/locales/ar/outline.d.ts +3 -0
- package/src/lib/locales/ar/outline.js +111 -0
- package/src/lib/locales/ar/outline.js.map +1 -0
- package/src/lib/locales/ar/outline.mjs +108 -0
- package/src/lib/locales/ar/outline.mjs.map +1 -0
- package/src/lib/locales/ar/panel.d.mts +2 -0
- package/src/lib/locales/ar/panel.d.ts +2 -0
- package/src/lib/locales/ar/panel.js +309 -0
- package/src/lib/locales/ar/panel.js.map +1 -0
- package/src/lib/locales/ar/panel.mjs +306 -0
- package/src/lib/locales/ar/panel.mjs.map +1 -0
- package/src/lib/locales/ar/part-looks.d.mts +2 -0
- package/src/lib/locales/ar/part-looks.d.ts +2 -0
- package/src/lib/locales/ar/part-looks.js +34 -0
- package/src/lib/locales/ar/part-looks.js.map +1 -0
- package/src/lib/locales/ar/part-looks.mjs +31 -0
- package/src/lib/locales/ar/part-looks.mjs.map +1 -0
- package/src/lib/locales/ar/parts.d.mts +2 -0
- package/src/lib/locales/ar/parts.d.ts +2 -0
- package/src/lib/locales/ar/parts.js +22 -0
- package/src/lib/locales/ar/parts.js.map +1 -0
- package/src/lib/locales/ar/parts.mjs +19 -0
- package/src/lib/locales/ar/parts.mjs.map +1 -0
- package/src/lib/locales/ar/questions.d.mts +2 -0
- package/src/lib/locales/ar/questions.d.ts +2 -0
- package/src/lib/locales/ar/questions.js +245 -0
- package/src/lib/locales/ar/questions.js.map +1 -0
- package/src/lib/locales/ar/questions.mjs +242 -0
- package/src/lib/locales/ar/questions.mjs.map +1 -0
- package/src/lib/locales/ar/refusals.d.mts +2 -0
- package/src/lib/locales/ar/refusals.d.ts +2 -0
- package/src/lib/locales/ar/refusals.js +145 -0
- package/src/lib/locales/ar/refusals.js.map +1 -0
- package/src/lib/locales/ar/refusals.mjs +142 -0
- package/src/lib/locales/ar/refusals.mjs.map +1 -0
- package/src/lib/locales/ar/rules-ui.d.mts +2 -0
- package/src/lib/locales/ar/rules-ui.d.ts +2 -0
- package/src/lib/locales/ar/rules-ui.js +139 -0
- package/src/lib/locales/ar/rules-ui.js.map +1 -0
- package/src/lib/locales/ar/rules-ui.mjs +136 -0
- package/src/lib/locales/ar/rules-ui.mjs.map +1 -0
- package/src/lib/locales/ar/rules.d.mts +2 -0
- package/src/lib/locales/ar/rules.d.ts +2 -0
- package/src/lib/locales/ar/rules.js +153 -0
- package/src/lib/locales/ar/rules.js.map +1 -0
- package/src/lib/locales/ar/rules.mjs +150 -0
- package/src/lib/locales/ar/rules.mjs.map +1 -0
- package/src/lib/locales/ar/saved-forms.d.mts +2 -0
- package/src/lib/locales/ar/saved-forms.d.ts +2 -0
- package/src/lib/locales/ar/saved-forms.js +48 -0
- package/src/lib/locales/ar/saved-forms.js.map +1 -0
- package/src/lib/locales/ar/saved-forms.mjs +45 -0
- package/src/lib/locales/ar/saved-forms.mjs.map +1 -0
- package/src/lib/locales/ar/settings-changes.d.mts +2 -0
- package/src/lib/locales/ar/settings-changes.d.ts +2 -0
- package/src/lib/locales/ar/settings-changes.js +59 -0
- package/src/lib/locales/ar/settings-changes.js.map +1 -0
- package/src/lib/locales/ar/settings-changes.mjs +56 -0
- package/src/lib/locales/ar/settings-changes.mjs.map +1 -0
- package/src/lib/locales/ar/shortcuts.d.mts +2 -0
- package/src/lib/locales/ar/shortcuts.d.ts +2 -0
- package/src/lib/locales/ar/shortcuts.js +36 -0
- package/src/lib/locales/ar/shortcuts.js.map +1 -0
- package/src/lib/locales/ar/shortcuts.mjs +33 -0
- package/src/lib/locales/ar/shortcuts.mjs.map +1 -0
- package/src/lib/locales/ar/steps.d.mts +2 -0
- package/src/lib/locales/ar/steps.d.ts +2 -0
- package/src/lib/locales/ar/steps.js +155 -0
- package/src/lib/locales/ar/steps.js.map +1 -0
- package/src/lib/locales/ar/steps.mjs +152 -0
- package/src/lib/locales/ar/steps.mjs.map +1 -0
- package/src/lib/locales/ar/templates.d.mts +3 -0
- package/src/lib/locales/ar/templates.d.ts +3 -0
- package/src/lib/locales/ar/templates.js +114 -0
- package/src/lib/locales/ar/templates.js.map +1 -0
- package/src/lib/locales/ar/templates.mjs +111 -0
- package/src/lib/locales/ar/templates.mjs.map +1 -0
- package/src/lib/locales/ar/toolbox.d.mts +2 -0
- package/src/lib/locales/ar/toolbox.d.ts +2 -0
- package/src/lib/locales/ar/toolbox.js +50 -0
- package/src/lib/locales/ar/toolbox.js.map +1 -0
- package/src/lib/locales/ar/toolbox.mjs +47 -0
- package/src/lib/locales/ar/toolbox.mjs.map +1 -0
- package/src/lib/locales/ar/translations.d.mts +2 -0
- package/src/lib/locales/ar/translations.d.ts +2 -0
- package/src/lib/locales/ar/translations.js +69 -0
- package/src/lib/locales/ar/translations.js.map +1 -0
- package/src/lib/locales/ar/translations.mjs +66 -0
- package/src/lib/locales/ar/translations.mjs.map +1 -0
- package/src/lib/locales/ar/try-it.d.mts +2 -0
- package/src/lib/locales/ar/try-it.d.ts +2 -0
- package/src/lib/locales/ar/try-it.js +29 -0
- package/src/lib/locales/ar/try-it.js.map +1 -0
- package/src/lib/locales/ar/try-it.mjs +26 -0
- package/src/lib/locales/ar/try-it.mjs.map +1 -0
- package/src/lib/locales/en/bar.d.mts +56 -0
- package/src/lib/locales/en/bar.d.ts +56 -0
- package/src/lib/locales/en/bar.js +66 -0
- package/src/lib/locales/en/bar.js.map +1 -0
- package/src/lib/locales/en/bar.mjs +63 -0
- package/src/lib/locales/en/bar.mjs.map +1 -0
- package/src/lib/locales/en/canvas.d.mts +106 -0
- package/src/lib/locales/en/canvas.d.ts +106 -0
- package/src/lib/locales/en/canvas.js +123 -0
- package/src/lib/locales/en/canvas.js.map +1 -0
- package/src/lib/locales/en/canvas.mjs +120 -0
- package/src/lib/locales/en/canvas.mjs.map +1 -0
- package/src/lib/locales/en/changes.d.mts +139 -0
- package/src/lib/locales/en/changes.d.ts +139 -0
- package/src/lib/locales/en/changes.js +162 -0
- package/src/lib/locales/en/changes.js.map +1 -0
- package/src/lib/locales/en/changes.mjs +159 -0
- package/src/lib/locales/en/changes.mjs.map +1 -0
- package/src/lib/locales/en/checks.d.mts +32 -0
- package/src/lib/locales/en/checks.d.ts +32 -0
- package/src/lib/locales/en/checks.js +38 -0
- package/src/lib/locales/en/checks.js.map +1 -0
- package/src/lib/locales/en/checks.mjs +35 -0
- package/src/lib/locales/en/checks.mjs.map +1 -0
- package/src/lib/locales/en/defaults.d.mts +37 -0
- package/src/lib/locales/en/defaults.d.ts +37 -0
- package/src/lib/locales/en/defaults.js +41 -0
- package/src/lib/locales/en/defaults.js.map +1 -0
- package/src/lib/locales/en/defaults.mjs +38 -0
- package/src/lib/locales/en/defaults.mjs.map +1 -0
- package/src/lib/locales/en/index.d.mts +2287 -0
- package/src/lib/locales/en/index.d.ts +2287 -0
- package/src/lib/locales/en/index.js +34 -0
- package/src/lib/locales/en/index.js.map +1 -0
- package/src/lib/locales/en/index.mjs +31 -0
- package/src/lib/locales/en/index.mjs.map +1 -0
- package/src/lib/locales/en/json.d.mts +51 -0
- package/src/lib/locales/en/json.d.ts +51 -0
- package/src/lib/locales/en/json.js +52 -0
- package/src/lib/locales/en/json.js.map +1 -0
- package/src/lib/locales/en/json.mjs +49 -0
- package/src/lib/locales/en/json.mjs.map +1 -0
- package/src/lib/locales/en/kinds.d.mts +74 -0
- package/src/lib/locales/en/kinds.d.ts +74 -0
- package/src/lib/locales/en/kinds.js +78 -0
- package/src/lib/locales/en/kinds.js.map +1 -0
- package/src/lib/locales/en/kinds.mjs +75 -0
- package/src/lib/locales/en/kinds.mjs.map +1 -0
- package/src/lib/locales/en/languages.d.mts +5 -0
- package/src/lib/locales/en/languages.d.ts +5 -0
- package/src/lib/locales/en/languages.js +10 -0
- package/src/lib/locales/en/languages.js.map +1 -0
- package/src/lib/locales/en/languages.mjs +7 -0
- package/src/lib/locales/en/languages.mjs.map +1 -0
- package/src/lib/locales/en/layout.d.mts +102 -0
- package/src/lib/locales/en/layout.d.ts +102 -0
- package/src/lib/locales/en/layout.js +85 -0
- package/src/lib/locales/en/layout.js.map +1 -0
- package/src/lib/locales/en/layout.mjs +82 -0
- package/src/lib/locales/en/layout.mjs.map +1 -0
- package/src/lib/locales/en/list.d.mts +63 -0
- package/src/lib/locales/en/list.d.ts +63 -0
- package/src/lib/locales/en/list.js +72 -0
- package/src/lib/locales/en/list.js.map +1 -0
- package/src/lib/locales/en/list.mjs +69 -0
- package/src/lib/locales/en/list.mjs.map +1 -0
- package/src/lib/locales/en/looks.d.mts +35 -0
- package/src/lib/locales/en/looks.d.ts +35 -0
- package/src/lib/locales/en/looks.js +39 -0
- package/src/lib/locales/en/looks.js.map +1 -0
- package/src/lib/locales/en/looks.mjs +36 -0
- package/src/lib/locales/en/looks.mjs.map +1 -0
- package/src/lib/locales/en/options.d.mts +15 -0
- package/src/lib/locales/en/options.d.ts +15 -0
- package/src/lib/locales/en/options.js +19 -0
- package/src/lib/locales/en/options.js.map +1 -0
- package/src/lib/locales/en/options.mjs +16 -0
- package/src/lib/locales/en/options.mjs.map +1 -0
- package/src/lib/locales/en/outline.d.mts +91 -0
- package/src/lib/locales/en/outline.d.ts +91 -0
- package/src/lib/locales/en/outline.js +120 -0
- package/src/lib/locales/en/outline.js.map +1 -0
- package/src/lib/locales/en/outline.mjs +117 -0
- package/src/lib/locales/en/outline.mjs.map +1 -0
- package/src/lib/locales/en/panel.d.mts +289 -0
- package/src/lib/locales/en/panel.d.ts +289 -0
- package/src/lib/locales/en/panel.js +260 -0
- package/src/lib/locales/en/panel.js.map +1 -0
- package/src/lib/locales/en/panel.mjs +257 -0
- package/src/lib/locales/en/panel.mjs.map +1 -0
- package/src/lib/locales/en/part-looks.d.mts +49 -0
- package/src/lib/locales/en/part-looks.d.ts +49 -0
- package/src/lib/locales/en/part-looks.js +42 -0
- package/src/lib/locales/en/part-looks.js.map +1 -0
- package/src/lib/locales/en/part-looks.mjs +39 -0
- package/src/lib/locales/en/part-looks.mjs.map +1 -0
- package/src/lib/locales/en/parts.d.mts +30 -0
- package/src/lib/locales/en/parts.d.ts +30 -0
- package/src/lib/locales/en/parts.js +27 -0
- package/src/lib/locales/en/parts.js.map +1 -0
- package/src/lib/locales/en/parts.mjs +24 -0
- package/src/lib/locales/en/parts.mjs.map +1 -0
- package/src/lib/locales/en/questions.d.mts +266 -0
- package/src/lib/locales/en/questions.d.ts +266 -0
- package/src/lib/locales/en/questions.js +252 -0
- package/src/lib/locales/en/questions.js.map +1 -0
- package/src/lib/locales/en/questions.mjs +249 -0
- package/src/lib/locales/en/questions.mjs.map +1 -0
- package/src/lib/locales/en/refusals.d.mts +146 -0
- package/src/lib/locales/en/refusals.d.ts +146 -0
- package/src/lib/locales/en/refusals.js +159 -0
- package/src/lib/locales/en/refusals.js.map +1 -0
- package/src/lib/locales/en/refusals.mjs +156 -0
- package/src/lib/locales/en/refusals.mjs.map +1 -0
- package/src/lib/locales/en/rules-ui.d.mts +160 -0
- package/src/lib/locales/en/rules-ui.d.ts +160 -0
- package/src/lib/locales/en/rules-ui.js +156 -0
- package/src/lib/locales/en/rules-ui.js.map +1 -0
- package/src/lib/locales/en/rules-ui.mjs +153 -0
- package/src/lib/locales/en/rules-ui.mjs.map +1 -0
- package/src/lib/locales/en/rules.d.mts +152 -0
- package/src/lib/locales/en/rules.d.ts +152 -0
- package/src/lib/locales/en/rules.js +157 -0
- package/src/lib/locales/en/rules.js.map +1 -0
- package/src/lib/locales/en/rules.mjs +154 -0
- package/src/lib/locales/en/rules.mjs.map +1 -0
- package/src/lib/locales/en/saved-forms.d.mts +44 -0
- package/src/lib/locales/en/saved-forms.d.ts +44 -0
- package/src/lib/locales/en/saved-forms.js +53 -0
- package/src/lib/locales/en/saved-forms.js.map +1 -0
- package/src/lib/locales/en/saved-forms.mjs +50 -0
- package/src/lib/locales/en/saved-forms.mjs.map +1 -0
- package/src/lib/locales/en/settings-changes.d.mts +68 -0
- package/src/lib/locales/en/settings-changes.d.ts +68 -0
- package/src/lib/locales/en/settings-changes.js +64 -0
- package/src/lib/locales/en/settings-changes.js.map +1 -0
- package/src/lib/locales/en/settings-changes.mjs +61 -0
- package/src/lib/locales/en/settings-changes.mjs.map +1 -0
- package/src/lib/locales/en/shortcuts.d.mts +25 -0
- package/src/lib/locales/en/shortcuts.d.ts +25 -0
- package/src/lib/locales/en/shortcuts.js +38 -0
- package/src/lib/locales/en/shortcuts.js.map +1 -0
- package/src/lib/locales/en/shortcuts.mjs +35 -0
- package/src/lib/locales/en/shortcuts.mjs.map +1 -0
- package/src/lib/locales/en/steps.d.mts +187 -0
- package/src/lib/locales/en/steps.d.ts +187 -0
- package/src/lib/locales/en/steps.js +172 -0
- package/src/lib/locales/en/steps.js.map +1 -0
- package/src/lib/locales/en/steps.mjs +169 -0
- package/src/lib/locales/en/steps.mjs.map +1 -0
- package/src/lib/locales/en/templates.d.mts +114 -0
- package/src/lib/locales/en/templates.d.ts +114 -0
- package/src/lib/locales/en/templates.js +122 -0
- package/src/lib/locales/en/templates.js.map +1 -0
- package/src/lib/locales/en/templates.mjs +119 -0
- package/src/lib/locales/en/templates.mjs.map +1 -0
- package/src/lib/locales/en/toolbox.d.mts +37 -0
- package/src/lib/locales/en/toolbox.d.ts +37 -0
- package/src/lib/locales/en/toolbox.js +53 -0
- package/src/lib/locales/en/toolbox.js.map +1 -0
- package/src/lib/locales/en/toolbox.mjs +50 -0
- package/src/lib/locales/en/toolbox.mjs.map +1 -0
- package/src/lib/locales/en/translations.d.mts +58 -0
- package/src/lib/locales/en/translations.d.ts +58 -0
- package/src/lib/locales/en/translations.js +68 -0
- package/src/lib/locales/en/translations.js.map +1 -0
- package/src/lib/locales/en/translations.mjs +65 -0
- package/src/lib/locales/en/translations.mjs.map +1 -0
- package/src/lib/locales/en/try-it.d.mts +30 -0
- package/src/lib/locales/en/try-it.d.ts +30 -0
- package/src/lib/locales/en/try-it.js +32 -0
- package/src/lib/locales/en/try-it.js.map +1 -0
- package/src/lib/locales/en/try-it.mjs +29 -0
- package/src/lib/locales/en/try-it.mjs.map +1 -0
- package/src/lib/locales/speak.d.mts +23 -0
- package/src/lib/locales/speak.d.ts +23 -0
- package/src/lib/locales/speak.js +38 -0
- package/src/lib/locales/speak.js.map +1 -0
- package/src/lib/locales/speak.mjs +30 -0
- package/src/lib/locales/speak.mjs.map +1 -0
- package/src/lib/look-hub.d.mts +31 -0
- package/src/lib/look-hub.d.ts +31 -0
- package/src/lib/look-hub.js +78 -0
- package/src/lib/look-hub.js.map +1 -0
- package/src/lib/look-hub.mjs +73 -0
- package/src/lib/look-hub.mjs.map +1 -0
- package/src/lib/look-parts-words.d.mts +15 -0
- package/src/lib/look-parts-words.d.ts +15 -0
- package/src/lib/look-parts-words.js +19 -0
- package/src/lib/look-parts-words.js.map +1 -0
- package/src/lib/look-parts-words.mjs +15 -0
- package/src/lib/look-parts-words.mjs.map +1 -0
- package/src/lib/look-presets.d.mts +38 -0
- package/src/lib/look-presets.d.ts +38 -0
- package/src/lib/look-presets.js +61 -0
- package/src/lib/look-presets.js.map +1 -0
- package/src/lib/look-presets.mjs +53 -0
- package/src/lib/look-presets.mjs.map +1 -0
- package/src/lib/look-row.d.mts +22 -0
- package/src/lib/look-row.d.ts +22 -0
- package/src/lib/look-row.js +282 -0
- package/src/lib/look-row.js.map +1 -0
- package/src/lib/look-row.mjs +277 -0
- package/src/lib/look-row.mjs.map +1 -0
- package/src/lib/look-store.d.mts +16 -0
- package/src/lib/look-store.d.ts +16 -0
- package/src/lib/look-store.js +151 -0
- package/src/lib/look-store.js.map +1 -0
- package/src/lib/look-store.mjs +145 -0
- package/src/lib/look-store.mjs.map +1 -0
- package/src/lib/menu.d.mts +37 -0
- package/src/lib/menu.d.ts +37 -0
- package/src/lib/menu.js +96 -0
- package/src/lib/menu.js.map +1 -0
- package/src/lib/menu.mjs +93 -0
- package/src/lib/menu.mjs.map +1 -0
- package/src/lib/outline-drag.d.mts +30 -0
- package/src/lib/outline-drag.d.ts +30 -0
- package/src/lib/outline-drag.js +223 -0
- package/src/lib/outline-drag.js.map +1 -0
- package/src/lib/outline-drag.mjs +220 -0
- package/src/lib/outline-drag.mjs.map +1 -0
- package/src/lib/outline-drop.d.mts +27 -0
- package/src/lib/outline-drop.d.ts +27 -0
- package/src/lib/outline-drop.js +53 -0
- package/src/lib/outline-drop.js.map +1 -0
- package/src/lib/outline-drop.mjs +50 -0
- package/src/lib/outline-drop.mjs.map +1 -0
- package/src/lib/outline-key-moves.d.mts +26 -0
- package/src/lib/outline-key-moves.d.ts +26 -0
- package/src/lib/outline-key-moves.js +70 -0
- package/src/lib/outline-key-moves.js.map +1 -0
- package/src/lib/outline-key-moves.mjs +67 -0
- package/src/lib/outline-key-moves.mjs.map +1 -0
- package/src/lib/outline-keys.d.mts +49 -0
- package/src/lib/outline-keys.d.ts +49 -0
- package/src/lib/outline-keys.js +68 -0
- package/src/lib/outline-keys.js.map +1 -0
- package/src/lib/outline-keys.mjs +63 -0
- package/src/lib/outline-keys.mjs.map +1 -0
- package/src/lib/outline-moves.d.mts +27 -0
- package/src/lib/outline-moves.d.ts +27 -0
- package/src/lib/outline-moves.js +159 -0
- package/src/lib/outline-moves.js.map +1 -0
- package/src/lib/outline-moves.mjs +151 -0
- package/src/lib/outline-moves.mjs.map +1 -0
- package/src/lib/outline-picks.d.mts +9 -0
- package/src/lib/outline-picks.d.ts +9 -0
- package/src/lib/outline-picks.js +21 -0
- package/src/lib/outline-picks.js.map +1 -0
- package/src/lib/outline-picks.mjs +18 -0
- package/src/lib/outline-picks.mjs.map +1 -0
- package/src/lib/outline-rows.d.mts +41 -0
- package/src/lib/outline-rows.d.ts +41 -0
- package/src/lib/outline-rows.js +120 -0
- package/src/lib/outline-rows.js.map +1 -0
- package/src/lib/outline-rows.mjs +115 -0
- package/src/lib/outline-rows.mjs.map +1 -0
- package/src/lib/outline-view.d.mts +35 -0
- package/src/lib/outline-view.d.ts +35 -0
- package/src/lib/outline-view.js +317 -0
- package/src/lib/outline-view.js.map +1 -0
- package/src/lib/outline-view.mjs +314 -0
- package/src/lib/outline-view.mjs.map +1 -0
- package/src/lib/page-checks.d.mts +58 -0
- package/src/lib/page-checks.d.ts +58 -0
- package/src/lib/page-checks.js +419 -0
- package/src/lib/page-checks.js.map +1 -0
- package/src/lib/page-checks.mjs +414 -0
- package/src/lib/page-checks.mjs.map +1 -0
- package/src/lib/page-json.d.mts +42 -0
- package/src/lib/page-json.d.ts +42 -0
- package/src/lib/page-json.js +46 -0
- package/src/lib/page-json.js.map +1 -0
- package/src/lib/page-json.mjs +41 -0
- package/src/lib/page-json.mjs.map +1 -0
- package/src/lib/page-tree.d.mts +43 -0
- package/src/lib/page-tree.d.ts +43 -0
- package/src/lib/page-tree.js +163 -0
- package/src/lib/page-tree.js.map +1 -0
- package/src/lib/page-tree.mjs +148 -0
- package/src/lib/page-tree.mjs.map +1 -0
- package/src/lib/panel-block.d.mts +15 -0
- package/src/lib/panel-block.d.ts +15 -0
- package/src/lib/panel-block.js +114 -0
- package/src/lib/panel-block.js.map +1 -0
- package/src/lib/panel-block.mjs +111 -0
- package/src/lib/panel-block.mjs.map +1 -0
- package/src/lib/panel-controls.d.mts +39 -0
- package/src/lib/panel-controls.d.ts +39 -0
- package/src/lib/panel-controls.js +69 -0
- package/src/lib/panel-controls.js.map +1 -0
- package/src/lib/panel-controls.mjs +63 -0
- package/src/lib/panel-controls.mjs.map +1 -0
- package/src/lib/panel-field.d.mts +5 -0
- package/src/lib/panel-field.d.ts +5 -0
- package/src/lib/panel-field.js +170 -0
- package/src/lib/panel-field.js.map +1 -0
- package/src/lib/panel-field.mjs +167 -0
- package/src/lib/panel-field.mjs.map +1 -0
- package/src/lib/panel-fold.d.mts +12 -0
- package/src/lib/panel-fold.d.ts +12 -0
- package/src/lib/panel-fold.js +34 -0
- package/src/lib/panel-fold.js.map +1 -0
- package/src/lib/panel-fold.mjs +31 -0
- package/src/lib/panel-fold.mjs.map +1 -0
- package/src/lib/panel-form.d.mts +4 -0
- package/src/lib/panel-form.d.ts +4 -0
- package/src/lib/panel-form.js +107 -0
- package/src/lib/panel-form.js.map +1 -0
- package/src/lib/panel-form.mjs +104 -0
- package/src/lib/panel-form.mjs.map +1 -0
- package/src/lib/panel-group.d.mts +12 -0
- package/src/lib/panel-group.d.ts +12 -0
- package/src/lib/panel-group.js +75 -0
- package/src/lib/panel-group.js.map +1 -0
- package/src/lib/panel-group.mjs +71 -0
- package/src/lib/panel-group.mjs.map +1 -0
- package/src/lib/panel-inspector.d.mts +54 -0
- package/src/lib/panel-inspector.d.ts +54 -0
- package/src/lib/panel-inspector.js +131 -0
- package/src/lib/panel-inspector.js.map +1 -0
- package/src/lib/panel-inspector.mjs +127 -0
- package/src/lib/panel-inspector.mjs.map +1 -0
- package/src/lib/panel-layout.d.mts +26 -0
- package/src/lib/panel-layout.d.ts +26 -0
- package/src/lib/panel-layout.js +244 -0
- package/src/lib/panel-layout.js.map +1 -0
- package/src/lib/panel-layout.mjs +236 -0
- package/src/lib/panel-layout.mjs.map +1 -0
- package/src/lib/panel-look-parts.d.mts +16 -0
- package/src/lib/panel-look-parts.d.ts +16 -0
- package/src/lib/panel-look-parts.js +86 -0
- package/src/lib/panel-look-parts.js.map +1 -0
- package/src/lib/panel-look-parts.mjs +83 -0
- package/src/lib/panel-look-parts.mjs.map +1 -0
- package/src/lib/panel-look-sheet.d.mts +20 -0
- package/src/lib/panel-look-sheet.d.ts +20 -0
- package/src/lib/panel-look-sheet.js +60 -0
- package/src/lib/panel-look-sheet.js.map +1 -0
- package/src/lib/panel-look-sheet.mjs +57 -0
- package/src/lib/panel-look-sheet.mjs.map +1 -0
- package/src/lib/panel-look.d.mts +26 -0
- package/src/lib/panel-look.d.ts +26 -0
- package/src/lib/panel-look.js +169 -0
- package/src/lib/panel-look.js.map +1 -0
- package/src/lib/panel-look.mjs +163 -0
- package/src/lib/panel-look.mjs.map +1 -0
- package/src/lib/panel-page.d.mts +9 -0
- package/src/lib/panel-page.d.ts +9 -0
- package/src/lib/panel-page.js +48 -0
- package/src/lib/panel-page.js.map +1 -0
- package/src/lib/panel-page.mjs +45 -0
- package/src/lib/panel-page.mjs.map +1 -0
- package/src/lib/panel-parts.d.mts +14 -0
- package/src/lib/panel-parts.d.ts +14 -0
- package/src/lib/panel-parts.js +113 -0
- package/src/lib/panel-parts.js.map +1 -0
- package/src/lib/panel-parts.mjs +109 -0
- package/src/lib/panel-parts.mjs.map +1 -0
- package/src/lib/panel-screen.d.mts +34 -0
- package/src/lib/panel-screen.d.ts +34 -0
- package/src/lib/panel-screen.js +195 -0
- package/src/lib/panel-screen.js.map +1 -0
- package/src/lib/panel-screen.mjs +191 -0
- package/src/lib/panel-screen.mjs.map +1 -0
- package/src/lib/panel-search.d.mts +24 -0
- package/src/lib/panel-search.d.ts +24 -0
- package/src/lib/panel-search.js +128 -0
- package/src/lib/panel-search.js.map +1 -0
- package/src/lib/panel-search.mjs +124 -0
- package/src/lib/panel-search.mjs.map +1 -0
- package/src/lib/panel-several-required.d.mts +7 -0
- package/src/lib/panel-several-required.d.ts +7 -0
- package/src/lib/panel-several-required.js +33 -0
- package/src/lib/panel-several-required.js.map +1 -0
- package/src/lib/panel-several-required.mjs +30 -0
- package/src/lib/panel-several-required.mjs.map +1 -0
- package/src/lib/panel-tabs.d.mts +41 -0
- package/src/lib/panel-tabs.d.ts +41 -0
- package/src/lib/panel-tabs.js +128 -0
- package/src/lib/panel-tabs.js.map +1 -0
- package/src/lib/panel-tabs.mjs +122 -0
- package/src/lib/panel-tabs.mjs.map +1 -0
- package/src/lib/picture-upload.d.mts +9 -0
- package/src/lib/picture-upload.d.ts +9 -0
- package/src/lib/picture-upload.js +38 -0
- package/src/lib/picture-upload.js.map +1 -0
- package/src/lib/picture-upload.mjs +34 -0
- package/src/lib/picture-upload.mjs.map +1 -0
- package/src/lib/publish-ui.d.mts +22 -0
- package/src/lib/publish-ui.d.ts +22 -0
- package/src/lib/publish-ui.js +199 -0
- package/src/lib/publish-ui.js.map +1 -0
- package/src/lib/publish-ui.mjs +193 -0
- package/src/lib/publish-ui.mjs.map +1 -0
- package/src/lib/rail.d.mts +31 -0
- package/src/lib/rail.d.ts +31 -0
- package/src/lib/rail.js +91 -0
- package/src/lib/rail.js.map +1 -0
- package/src/lib/rail.mjs +88 -0
- package/src/lib/rail.mjs.map +1 -0
- package/src/lib/refusal.d.mts +13 -0
- package/src/lib/refusal.d.ts +13 -0
- package/src/lib/refusal.js +21 -0
- package/src/lib/refusal.js.map +1 -0
- package/src/lib/refusal.mjs +17 -0
- package/src/lib/refusal.mjs.map +1 -0
- package/src/lib/rules-answers.d.mts +25 -0
- package/src/lib/rules-answers.d.ts +25 -0
- package/src/lib/rules-answers.js +339 -0
- package/src/lib/rules-answers.js.map +1 -0
- package/src/lib/rules-answers.mjs +336 -0
- package/src/lib/rules-answers.mjs.map +1 -0
- package/src/lib/rules-card.d.mts +22 -0
- package/src/lib/rules-card.d.ts +22 -0
- package/src/lib/rules-card.js +51 -0
- package/src/lib/rules-card.js.map +1 -0
- package/src/lib/rules-card.mjs +48 -0
- package/src/lib/rules-card.mjs.map +1 -0
- package/src/lib/rules-changes.d.mts +3 -0
- package/src/lib/rules-changes.d.ts +3 -0
- package/src/lib/rules-changes.js +64 -0
- package/src/lib/rules-changes.js.map +1 -0
- package/src/lib/rules-changes.mjs +61 -0
- package/src/lib/rules-changes.mjs.map +1 -0
- package/src/lib/rules-checks.d.mts +42 -0
- package/src/lib/rules-checks.d.ts +42 -0
- package/src/lib/rules-checks.js +177 -0
- package/src/lib/rules-checks.js.map +1 -0
- package/src/lib/rules-checks.mjs +173 -0
- package/src/lib/rules-checks.mjs.map +1 -0
- package/src/lib/rules-commands.d.mts +36 -0
- package/src/lib/rules-commands.d.ts +36 -0
- package/src/lib/rules-commands.js +202 -0
- package/src/lib/rules-commands.js.map +1 -0
- package/src/lib/rules-commands.mjs +197 -0
- package/src/lib/rules-commands.mjs.map +1 -0
- package/src/lib/rules-formula-box.d.mts +46 -0
- package/src/lib/rules-formula-box.d.ts +46 -0
- package/src/lib/rules-formula-box.js +191 -0
- package/src/lib/rules-formula-box.js.map +1 -0
- package/src/lib/rules-formula-box.mjs +188 -0
- package/src/lib/rules-formula-box.mjs.map +1 -0
- package/src/lib/rules-formula.d.mts +75 -0
- package/src/lib/rules-formula.d.ts +75 -0
- package/src/lib/rules-formula.js +360 -0
- package/src/lib/rules-formula.js.map +1 -0
- package/src/lib/rules-formula.mjs +347 -0
- package/src/lib/rules-formula.mjs.map +1 -0
- package/src/lib/rules-marks.d.mts +4 -0
- package/src/lib/rules-marks.d.ts +4 -0
- package/src/lib/rules-marks.js +111 -0
- package/src/lib/rules-marks.js.map +1 -0
- package/src/lib/rules-marks.mjs +108 -0
- package/src/lib/rules-marks.mjs.map +1 -0
- package/src/lib/rules-open.d.mts +16 -0
- package/src/lib/rules-open.d.ts +16 -0
- package/src/lib/rules-open.js +51 -0
- package/src/lib/rules-open.js.map +1 -0
- package/src/lib/rules-open.mjs +48 -0
- package/src/lib/rules-open.mjs.map +1 -0
- package/src/lib/rules-overview.d.mts +32 -0
- package/src/lib/rules-overview.d.ts +32 -0
- package/src/lib/rules-overview.js +193 -0
- package/src/lib/rules-overview.js.map +1 -0
- package/src/lib/rules-overview.mjs +190 -0
- package/src/lib/rules-overview.mjs.map +1 -0
- package/src/lib/rules-panel.d.mts +18 -0
- package/src/lib/rules-panel.d.ts +18 -0
- package/src/lib/rules-panel.js +21 -0
- package/src/lib/rules-panel.js.map +1 -0
- package/src/lib/rules-panel.mjs +18 -0
- package/src/lib/rules-panel.mjs.map +1 -0
- package/src/lib/rules-reads.d.mts +9 -0
- package/src/lib/rules-reads.d.ts +9 -0
- package/src/lib/rules-reads.js +79 -0
- package/src/lib/rules-reads.js.map +1 -0
- package/src/lib/rules-reads.mjs +75 -0
- package/src/lib/rules-reads.mjs.map +1 -0
- package/src/lib/rules-sample.d.mts +43 -0
- package/src/lib/rules-sample.d.ts +43 -0
- package/src/lib/rules-sample.js +321 -0
- package/src/lib/rules-sample.js.map +1 -0
- package/src/lib/rules-sample.mjs +317 -0
- package/src/lib/rules-sample.mjs.map +1 -0
- package/src/lib/rules-words.d.mts +60 -0
- package/src/lib/rules-words.d.ts +60 -0
- package/src/lib/rules-words.js +232 -0
- package/src/lib/rules-words.js.map +1 -0
- package/src/lib/rules-words.mjs +220 -0
- package/src/lib/rules-words.mjs.map +1 -0
- package/src/lib/rules-worked-out.d.mts +9 -0
- package/src/lib/rules-worked-out.d.ts +9 -0
- package/src/lib/rules-worked-out.js +257 -0
- package/src/lib/rules-worked-out.js.map +1 -0
- package/src/lib/rules-worked-out.mjs +253 -0
- package/src/lib/rules-worked-out.mjs.map +1 -0
- package/src/lib/samples.d.mts +5 -0
- package/src/lib/samples.d.ts +5 -0
- package/src/lib/samples.js +69 -0
- package/src/lib/samples.js.map +1 -0
- package/src/lib/samples.mjs +65 -0
- package/src/lib/samples.mjs.map +1 -0
- package/src/lib/saved-forms.d.mts +93 -0
- package/src/lib/saved-forms.d.ts +93 -0
- package/src/lib/saved-forms.js +211 -0
- package/src/lib/saved-forms.js.map +1 -0
- package/src/lib/saved-forms.mjs +200 -0
- package/src/lib/saved-forms.mjs.map +1 -0
- package/src/lib/screen-canvas.d.mts +57 -0
- package/src/lib/screen-canvas.d.ts +57 -0
- package/src/lib/screen-canvas.js +691 -0
- package/src/lib/screen-canvas.js.map +1 -0
- package/src/lib/screen-canvas.mjs +688 -0
- package/src/lib/screen-canvas.mjs.map +1 -0
- package/src/lib/screen-editor.d.mts +32 -0
- package/src/lib/screen-editor.d.ts +32 -0
- package/src/lib/screen-editor.js +377 -0
- package/src/lib/screen-editor.js.map +1 -0
- package/src/lib/screen-editor.mjs +374 -0
- package/src/lib/screen-editor.mjs.map +1 -0
- package/src/lib/screen-properties.d.mts +28 -0
- package/src/lib/screen-properties.d.ts +28 -0
- package/src/lib/screen-properties.js +69 -0
- package/src/lib/screen-properties.js.map +1 -0
- package/src/lib/screen-properties.mjs +63 -0
- package/src/lib/screen-properties.mjs.map +1 -0
- package/src/lib/shortcuts-list.d.mts +24 -0
- package/src/lib/shortcuts-list.d.ts +24 -0
- package/src/lib/shortcuts-list.js +25 -0
- package/src/lib/shortcuts-list.js.map +1 -0
- package/src/lib/shortcuts-list.mjs +21 -0
- package/src/lib/shortcuts-list.mjs.map +1 -0
- package/src/lib/shortcuts-sheet.d.mts +27 -0
- package/src/lib/shortcuts-sheet.d.ts +27 -0
- package/src/lib/shortcuts-sheet.js +95 -0
- package/src/lib/shortcuts-sheet.js.map +1 -0
- package/src/lib/shortcuts-sheet.mjs +92 -0
- package/src/lib/shortcuts-sheet.mjs.map +1 -0
- package/src/lib/steps-checks.d.mts +33 -0
- package/src/lib/steps-checks.d.ts +33 -0
- package/src/lib/steps-checks.js +112 -0
- package/src/lib/steps-checks.js.map +1 -0
- package/src/lib/steps-checks.mjs +107 -0
- package/src/lib/steps-checks.mjs.map +1 -0
- package/src/lib/steps-commands.d.mts +54 -0
- package/src/lib/steps-commands.d.ts +54 -0
- package/src/lib/steps-commands.js +188 -0
- package/src/lib/steps-commands.js.map +1 -0
- package/src/lib/steps-commands.mjs +183 -0
- package/src/lib/steps-commands.mjs.map +1 -0
- package/src/lib/steps-editor.d.mts +25 -0
- package/src/lib/steps-editor.d.ts +25 -0
- package/src/lib/steps-editor.js +381 -0
- package/src/lib/steps-editor.js.map +1 -0
- package/src/lib/steps-editor.mjs +378 -0
- package/src/lib/steps-editor.mjs.map +1 -0
- package/src/lib/steps-map.d.mts +38 -0
- package/src/lib/steps-map.d.ts +38 -0
- package/src/lib/steps-map.js +124 -0
- package/src/lib/steps-map.js.map +1 -0
- package/src/lib/steps-map.mjs +121 -0
- package/src/lib/steps-map.mjs.map +1 -0
- package/src/lib/steps-marks.d.mts +20 -0
- package/src/lib/steps-marks.d.ts +20 -0
- package/src/lib/steps-marks.js +84 -0
- package/src/lib/steps-marks.js.map +1 -0
- package/src/lib/steps-marks.mjs +77 -0
- package/src/lib/steps-marks.mjs.map +1 -0
- package/src/lib/steps-panel.d.mts +24 -0
- package/src/lib/steps-panel.d.ts +24 -0
- package/src/lib/steps-panel.js +89 -0
- package/src/lib/steps-panel.js.map +1 -0
- package/src/lib/steps-panel.mjs +84 -0
- package/src/lib/steps-panel.mjs.map +1 -0
- package/src/lib/steps-places.d.mts +69 -0
- package/src/lib/steps-places.d.ts +69 -0
- package/src/lib/steps-places.js +280 -0
- package/src/lib/steps-places.js.map +1 -0
- package/src/lib/steps-places.mjs +261 -0
- package/src/lib/steps-places.mjs.map +1 -0
- package/src/lib/steps-settings.d.mts +31 -0
- package/src/lib/steps-settings.d.ts +31 -0
- package/src/lib/steps-settings.js +351 -0
- package/src/lib/steps-settings.js.map +1 -0
- package/src/lib/steps-settings.mjs +347 -0
- package/src/lib/steps-settings.mjs.map +1 -0
- package/src/lib/steps-words.d.mts +41 -0
- package/src/lib/steps-words.d.ts +41 -0
- package/src/lib/steps-words.js +139 -0
- package/src/lib/steps-words.js.map +1 -0
- package/src/lib/steps-words.mjs +131 -0
- package/src/lib/steps-words.mjs.map +1 -0
- package/src/lib/structure-changes.d.mts +14 -0
- package/src/lib/structure-changes.d.ts +14 -0
- package/src/lib/structure-changes.js +25 -0
- package/src/lib/structure-changes.js.map +1 -0
- package/src/lib/structure-changes.mjs +22 -0
- package/src/lib/structure-changes.mjs.map +1 -0
- package/src/lib/structure-commands.d.mts +31 -0
- package/src/lib/structure-commands.d.ts +31 -0
- package/src/lib/structure-commands.js +59 -0
- package/src/lib/structure-commands.js.map +1 -0
- package/src/lib/structure-commands.mjs +56 -0
- package/src/lib/structure-commands.mjs.map +1 -0
- package/src/lib/styles-canvas.d.mts +11 -0
- package/src/lib/styles-canvas.d.ts +11 -0
- package/src/lib/styles-canvas.js +199 -0
- package/src/lib/styles-canvas.js.map +1 -0
- package/src/lib/styles-canvas.mjs +196 -0
- package/src/lib/styles-canvas.mjs.map +1 -0
- package/src/lib/styles-choices.d.mts +6 -0
- package/src/lib/styles-choices.d.ts +6 -0
- package/src/lib/styles-choices.js +25 -0
- package/src/lib/styles-choices.js.map +1 -0
- package/src/lib/styles-choices.mjs +22 -0
- package/src/lib/styles-choices.mjs.map +1 -0
- package/src/lib/styles-extend.d.mts +6 -0
- package/src/lib/styles-extend.d.ts +6 -0
- package/src/lib/styles-extend.js +71 -0
- package/src/lib/styles-extend.js.map +1 -0
- package/src/lib/styles-extend.mjs +68 -0
- package/src/lib/styles-extend.mjs.map +1 -0
- package/src/lib/styles-gap.d.mts +6 -0
- package/src/lib/styles-gap.d.ts +6 -0
- package/src/lib/styles-gap.js +68 -0
- package/src/lib/styles-gap.js.map +1 -0
- package/src/lib/styles-gap.mjs +65 -0
- package/src/lib/styles-gap.mjs.map +1 -0
- package/src/lib/styles-json.d.mts +5 -0
- package/src/lib/styles-json.d.ts +5 -0
- package/src/lib/styles-json.js +109 -0
- package/src/lib/styles-json.js.map +1 -0
- package/src/lib/styles-json.mjs +106 -0
- package/src/lib/styles-json.mjs.map +1 -0
- package/src/lib/styles-kinds.d.mts +7 -0
- package/src/lib/styles-kinds.d.ts +7 -0
- package/src/lib/styles-kinds.js +56 -0
- package/src/lib/styles-kinds.js.map +1 -0
- package/src/lib/styles-kinds.mjs +53 -0
- package/src/lib/styles-kinds.mjs.map +1 -0
- package/src/lib/styles-outline.d.mts +7 -0
- package/src/lib/styles-outline.d.ts +7 -0
- package/src/lib/styles-outline.js +95 -0
- package/src/lib/styles-outline.js.map +1 -0
- package/src/lib/styles-outline.mjs +92 -0
- package/src/lib/styles-outline.mjs.map +1 -0
- package/src/lib/styles-panel.d.mts +7 -0
- package/src/lib/styles-panel.d.ts +7 -0
- package/src/lib/styles-panel.js +150 -0
- package/src/lib/styles-panel.js.map +1 -0
- package/src/lib/styles-panel.mjs +147 -0
- package/src/lib/styles-panel.mjs.map +1 -0
- package/src/lib/styles-rules.d.mts +7 -0
- package/src/lib/styles-rules.d.ts +7 -0
- package/src/lib/styles-rules.js +201 -0
- package/src/lib/styles-rules.js.map +1 -0
- package/src/lib/styles-rules.mjs +198 -0
- package/src/lib/styles-rules.mjs.map +1 -0
- package/src/lib/styles-steps.d.mts +9 -0
- package/src/lib/styles-steps.d.ts +9 -0
- package/src/lib/styles-steps.js +84 -0
- package/src/lib/styles-steps.js.map +1 -0
- package/src/lib/styles-steps.mjs +81 -0
- package/src/lib/styles-steps.mjs.map +1 -0
- package/src/lib/styles-translations.d.mts +7 -0
- package/src/lib/styles-translations.d.ts +7 -0
- package/src/lib/styles-translations.js +104 -0
- package/src/lib/styles-translations.js.map +1 -0
- package/src/lib/styles-translations.mjs +101 -0
- package/src/lib/styles-translations.mjs.map +1 -0
- package/src/lib/styles.d.mts +3 -0
- package/src/lib/styles.d.ts +3 -0
- package/src/lib/styles.js +676 -0
- package/src/lib/styles.js.map +1 -0
- package/src/lib/styles.mjs +672 -0
- package/src/lib/styles.mjs.map +1 -0
- package/src/lib/survey-editor.d.mts +42 -0
- package/src/lib/survey-editor.d.ts +42 -0
- package/src/lib/survey-editor.js +651 -0
- package/src/lib/survey-editor.js.map +1 -0
- package/src/lib/survey-editor.mjs +647 -0
- package/src/lib/survey-editor.mjs.map +1 -0
- package/src/lib/templates-notice.d.mts +16 -0
- package/src/lib/templates-notice.d.ts +16 -0
- package/src/lib/templates-notice.js +45 -0
- package/src/lib/templates-notice.js.map +1 -0
- package/src/lib/templates-notice.mjs +42 -0
- package/src/lib/templates-notice.mjs.map +1 -0
- package/src/lib/templates-start.d.mts +41 -0
- package/src/lib/templates-start.d.ts +41 -0
- package/src/lib/templates-start.js +117 -0
- package/src/lib/templates-start.js.map +1 -0
- package/src/lib/templates-start.mjs +114 -0
- package/src/lib/templates-start.mjs.map +1 -0
- package/src/lib/templates.d.mts +35 -0
- package/src/lib/templates.d.ts +35 -0
- package/src/lib/templates.js +195 -0
- package/src/lib/templates.js.map +1 -0
- package/src/lib/templates.mjs +186 -0
- package/src/lib/templates.mjs.map +1 -0
- package/src/lib/toolbox.d.mts +49 -0
- package/src/lib/toolbox.d.ts +49 -0
- package/src/lib/toolbox.js +160 -0
- package/src/lib/toolbox.js.map +1 -0
- package/src/lib/toolbox.mjs +154 -0
- package/src/lib/toolbox.mjs.map +1 -0
- package/src/lib/translations-csv.d.mts +20 -0
- package/src/lib/translations-csv.d.ts +20 -0
- package/src/lib/translations-csv.js +138 -0
- package/src/lib/translations-csv.js.map +1 -0
- package/src/lib/translations-csv.mjs +132 -0
- package/src/lib/translations-csv.mjs.map +1 -0
- package/src/lib/translations-grid.d.mts +30 -0
- package/src/lib/translations-grid.d.ts +30 -0
- package/src/lib/translations-grid.js +198 -0
- package/src/lib/translations-grid.js.map +1 -0
- package/src/lib/translations-grid.mjs +195 -0
- package/src/lib/translations-grid.mjs.map +1 -0
- package/src/lib/translations-view.d.mts +29 -0
- package/src/lib/translations-view.d.ts +29 -0
- package/src/lib/translations-view.js +248 -0
- package/src/lib/translations-view.js.map +1 -0
- package/src/lib/translations-view.mjs +245 -0
- package/src/lib/translations-view.mjs.map +1 -0
- package/src/lib/translations.d.mts +57 -0
- package/src/lib/translations.d.ts +57 -0
- package/src/lib/translations.js +211 -0
- package/src/lib/translations.js.map +1 -0
- package/src/lib/translations.mjs +198 -0
- package/src/lib/translations.mjs.map +1 -0
- package/src/lib/try-drawer.d.mts +4 -0
- package/src/lib/try-drawer.d.ts +4 -0
- package/src/lib/try-drawer.js +139 -0
- package/src/lib/try-drawer.js.map +1 -0
- package/src/lib/try-drawer.mjs +136 -0
- package/src/lib/try-drawer.mjs.map +1 -0
- package/src/lib/try-it.d.mts +37 -0
- package/src/lib/try-it.d.ts +37 -0
- package/src/lib/try-it.js +153 -0
- package/src/lib/try-it.js.map +1 -0
- package/src/lib/try-it.mjs +150 -0
- package/src/lib/try-it.mjs.map +1 -0
- package/src/lib/try-language.d.mts +25 -0
- package/src/lib/try-language.d.ts +25 -0
- package/src/lib/try-language.js +57 -0
- package/src/lib/try-language.js.map +1 -0
- package/src/lib/try-language.mjs +54 -0
- package/src/lib/try-language.mjs.map +1 -0
- package/src/lib/validate-edit.d.mts +19 -0
- package/src/lib/validate-edit.d.ts +19 -0
- package/src/lib/validate-edit.js +51 -0
- package/src/lib/validate-edit.js.map +1 -0
- package/src/lib/validate-edit.mjs +48 -0
- package/src/lib/validate-edit.mjs.map +1 -0
- package/src/lib/writes.d.mts +14 -0
- package/src/lib/writes.d.ts +14 -0
- package/src/lib/writes.js +41 -0
- package/src/lib/writes.js.map +1 -0
- package/src/lib/writes.mjs +35 -0
- package/src/lib/writes.mjs.map +1 -0
- package/src/react.d.mts +21 -0
- package/src/react.d.ts +21 -0
- package/src/react.js +35 -0
- package/src/react.js.map +1 -0
- package/src/react.mjs +32 -0
- package/src/react.mjs.map +1 -0
- package/src/vue.d.mts +65 -0
- package/src/vue.d.ts +65 -0
- package/src/vue.js +57 -0
- package/src/vue.js.map +1 -0
- package/src/vue.mjs +54 -0
- package/src/vue.mjs.map +1 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { containers } from './page-tree.mjs';
|
|
2
|
+
import { formulaInWords } from './rules-formula.mjs';
|
|
3
|
+
import { answerRuleMust, setValueInWords } from './rules-words.mjs';
|
|
4
|
+
import { en } from './locales/en/index.mjs';
|
|
5
|
+
/**
|
|
6
|
+
* The rules' part of what changed since the last version, in words for the
|
|
7
|
+
* Publish dialog: "“Total” is worked out from Price × Quantity", "“Email”: a
|
|
8
|
+
* rule — Must end with @acme.com (only warns)". Field by field, in reading
|
|
9
|
+
* order; a field taken off the page is said to be removed elsewhere.
|
|
10
|
+
*/
|
|
11
|
+
/** Each field's place on the page, in reading order. */
|
|
12
|
+
function fieldNodes(page) {
|
|
13
|
+
return containers(page).flatMap((c) => c.children.filter((n) => n.type === 'field'));
|
|
14
|
+
}
|
|
15
|
+
/** What is in `a` and not in `b`, as many times as it is. */
|
|
16
|
+
function without(a, b) {
|
|
17
|
+
const left = b.map((rule) => JSON.stringify(rule));
|
|
18
|
+
return a.filter((rule) => {
|
|
19
|
+
const at = left.indexOf(JSON.stringify(rule));
|
|
20
|
+
if (at === -1)
|
|
21
|
+
return true;
|
|
22
|
+
left.splice(at, 1);
|
|
23
|
+
return false;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
function answerRuleChanges(before, after, was, now, name, words) {
|
|
27
|
+
const w = words.changes;
|
|
28
|
+
if (JSON.stringify(was) === JSON.stringify(now))
|
|
29
|
+
return [];
|
|
30
|
+
// One rule changed where it stands: said as changed, not as one gone and one added.
|
|
31
|
+
if (was.length === now.length) {
|
|
32
|
+
const changed = now.filter((rule, i) => JSON.stringify(rule) !== JSON.stringify(was[i]));
|
|
33
|
+
if (changed.length === 1)
|
|
34
|
+
return [w.ruleChanged(name, answerRuleMust(after, changed[0], words))];
|
|
35
|
+
}
|
|
36
|
+
return [...without(was, now).map((rule) => w.ruleRemoved(name, answerRuleMust(before, rule, words))), ...without(now, was).map((rule) => w.ruleAdded(name, answerRuleMust(after, rule, words)))];
|
|
37
|
+
}
|
|
38
|
+
export function ruleChanges(before, after, words = en) {
|
|
39
|
+
const w = words.changes;
|
|
40
|
+
const out = [];
|
|
41
|
+
const wasNodes = new Map(fieldNodes(before).map((n) => [n.id, n]));
|
|
42
|
+
const said = new Set();
|
|
43
|
+
for (const node of fieldNodes(after)) {
|
|
44
|
+
const def = after.fields[node.field];
|
|
45
|
+
const name = node.label ?? def?.label ?? node.field;
|
|
46
|
+
out.push(...answerRuleChanges(before, after, wasNodes.get(node.id)?.validate ?? [], node.validate ?? [], name, words));
|
|
47
|
+
// A field's own rules once, where it first shows.
|
|
48
|
+
if (said.has(node.field) || !def)
|
|
49
|
+
continue;
|
|
50
|
+
said.add(node.field);
|
|
51
|
+
const was = before.fields[node.field];
|
|
52
|
+
if ((was?.compute ?? '') !== (def.compute ?? ''))
|
|
53
|
+
out.push(def.compute ? w.workedOut(name, formulaInWords(after, def.compute, words)) : w.noLongerWorkedOut(name));
|
|
54
|
+
if (JSON.stringify(was?.setWhen ?? []) !== JSON.stringify(def.setWhen ?? [])) {
|
|
55
|
+
const items = def.setWhen ?? [];
|
|
56
|
+
out.push(items.length ? w.setWhenJoin(items.map((item) => w.setWhen(name, setValueInWords(after, def, item.value, words), formulaInWords(after, item.when, words)))) : w.noLongerSet(name));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return out;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=rules-changes.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules-changes.mjs","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/rules-changes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Page, SetWhen } from '@fieldia/core';
|
|
2
|
+
import { type Condition } from './conditions.mjs';
|
|
3
|
+
import type { PageCheck } from './page-checks.mjs';
|
|
4
|
+
import { type RuleKind } from './rules-words.mjs';
|
|
5
|
+
import type { DesignerWords } from './designer-words.mjs';
|
|
6
|
+
/**
|
|
7
|
+
* What would trip people up in a page's rules, each with a fix: a rule
|
|
8
|
+
* reading a field no longer on the page, or waiting for a choice the field
|
|
9
|
+
* no longer offers; a formula that no longer reads; an answer rule that
|
|
10
|
+
* checks nothing; a value set that its field cannot hold. The page's own
|
|
11
|
+
* check says some of these in its words; these say them in a person's, and
|
|
12
|
+
* the same thing is not said twice.
|
|
13
|
+
*/
|
|
14
|
+
/** Take a rule away, or the parts of its condition that cannot hold. */
|
|
15
|
+
export interface RuleFix {
|
|
16
|
+
kind: 'remove-rule';
|
|
17
|
+
/** The part the rule acts on. */
|
|
18
|
+
id: string;
|
|
19
|
+
rule: RuleKind;
|
|
20
|
+
/** Which answer rule, or value set. */
|
|
21
|
+
index?: number;
|
|
22
|
+
/** Only these fields' parts of a condition; none takes the whole rule. */
|
|
23
|
+
fields?: string[];
|
|
24
|
+
/** Only these parts of a condition, by place. */
|
|
25
|
+
parts?: number[];
|
|
26
|
+
}
|
|
27
|
+
/** What a fix needs of the designer. */
|
|
28
|
+
export interface RuleFixer {
|
|
29
|
+
getPage(): Page;
|
|
30
|
+
setCondition(id: string, condition: Condition | null): boolean;
|
|
31
|
+
setRule(id: string, which: 'required' | 'readonly', condition: Condition | null): boolean;
|
|
32
|
+
setCompute(id: string, expression: string | null): boolean;
|
|
33
|
+
setSetWhen(id: string, items: SetWhen[] | null): boolean;
|
|
34
|
+
removeAnswerRule(id: string, index: number): boolean;
|
|
35
|
+
}
|
|
36
|
+
/** The rules' checks, and whether the page's own check said one of the same things at a path. */
|
|
37
|
+
export declare function ruleChecks(page: Page, words?: DesignerWords): {
|
|
38
|
+
checks: PageCheck[];
|
|
39
|
+
covers(path: string): boolean;
|
|
40
|
+
};
|
|
41
|
+
/** Do a rule check's fix. */
|
|
42
|
+
export declare function fixRuleCheck(designer: RuleFixer, fix: RuleFix): boolean;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Page, SetWhen } from '@fieldia/core';
|
|
2
|
+
import { type Condition } from './conditions';
|
|
3
|
+
import type { PageCheck } from './page-checks';
|
|
4
|
+
import { type RuleKind } from './rules-words';
|
|
5
|
+
import type { DesignerWords } from './designer-words';
|
|
6
|
+
/**
|
|
7
|
+
* What would trip people up in a page's rules, each with a fix: a rule
|
|
8
|
+
* reading a field no longer on the page, or waiting for a choice the field
|
|
9
|
+
* no longer offers; a formula that no longer reads; an answer rule that
|
|
10
|
+
* checks nothing; a value set that its field cannot hold. The page's own
|
|
11
|
+
* check says some of these in its words; these say them in a person's, and
|
|
12
|
+
* the same thing is not said twice.
|
|
13
|
+
*/
|
|
14
|
+
/** Take a rule away, or the parts of its condition that cannot hold. */
|
|
15
|
+
export interface RuleFix {
|
|
16
|
+
kind: 'remove-rule';
|
|
17
|
+
/** The part the rule acts on. */
|
|
18
|
+
id: string;
|
|
19
|
+
rule: RuleKind;
|
|
20
|
+
/** Which answer rule, or value set. */
|
|
21
|
+
index?: number;
|
|
22
|
+
/** Only these fields' parts of a condition; none takes the whole rule. */
|
|
23
|
+
fields?: string[];
|
|
24
|
+
/** Only these parts of a condition, by place. */
|
|
25
|
+
parts?: number[];
|
|
26
|
+
}
|
|
27
|
+
/** What a fix needs of the designer. */
|
|
28
|
+
export interface RuleFixer {
|
|
29
|
+
getPage(): Page;
|
|
30
|
+
setCondition(id: string, condition: Condition | null): boolean;
|
|
31
|
+
setRule(id: string, which: 'required' | 'readonly', condition: Condition | null): boolean;
|
|
32
|
+
setCompute(id: string, expression: string | null): boolean;
|
|
33
|
+
setSetWhen(id: string, items: SetWhen[] | null): boolean;
|
|
34
|
+
removeAnswerRule(id: string, index: number): boolean;
|
|
35
|
+
}
|
|
36
|
+
/** The rules' checks, and whether the page's own check said one of the same things at a path. */
|
|
37
|
+
export declare function ruleChecks(page: Page, words?: DesignerWords): {
|
|
38
|
+
checks: PageCheck[];
|
|
39
|
+
covers(path: string): boolean;
|
|
40
|
+
};
|
|
41
|
+
/** Do a rule check's fix. */
|
|
42
|
+
export declare function fixRuleCheck(designer: RuleFixer, fix: RuleFix): boolean;
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ruleChecks = ruleChecks;
|
|
4
|
+
exports.fixRuleCheck = fixRuleCheck;
|
|
5
|
+
const conditions_1 = require("./conditions");
|
|
6
|
+
const header_commands_1 = require("./header-commands");
|
|
7
|
+
const kinds_1 = require("./kinds");
|
|
8
|
+
const page_tree_1 = require("./page-tree");
|
|
9
|
+
const rules_commands_1 = require("./rules-commands");
|
|
10
|
+
const rules_formula_1 = require("./rules-formula");
|
|
11
|
+
const rules_words_1 = require("./rules-words");
|
|
12
|
+
const en_1 = require("./locales/en");
|
|
13
|
+
/** Where each part sits in the page, as the page's own check names it: `layout.children[0].children[3]`. */
|
|
14
|
+
function nodePaths(page) {
|
|
15
|
+
const paths = new Map();
|
|
16
|
+
const walk = (node, path) => {
|
|
17
|
+
if (node.id)
|
|
18
|
+
paths.set(node.id, path);
|
|
19
|
+
node.children?.forEach((child, i) => walk(child, `${path}.children[${i}]`));
|
|
20
|
+
};
|
|
21
|
+
walk(page.layout, 'layout');
|
|
22
|
+
return paths;
|
|
23
|
+
}
|
|
24
|
+
const CONDITION_KEY = { shows: 'invisible', required: 'required', readonly: 'readonly' };
|
|
25
|
+
/** The rules' checks, and whether the page's own check said one of the same things at a path. */
|
|
26
|
+
function ruleChecks(page, words = en_1.en) {
|
|
27
|
+
const w = words.checks;
|
|
28
|
+
const checks = [];
|
|
29
|
+
const covered = [];
|
|
30
|
+
if (page.layout.type === 'list')
|
|
31
|
+
return { checks, covers: () => false };
|
|
32
|
+
const shown = (0, page_tree_1.shownFields)(page);
|
|
33
|
+
const paths = nodePaths(page);
|
|
34
|
+
const label = (name) => page.fields[name]?.label || name;
|
|
35
|
+
/** Where the page's own check would name this rule. */
|
|
36
|
+
const pathOf = (rule) => {
|
|
37
|
+
if (rule.kind === 'compute')
|
|
38
|
+
return `fields.${rule.field}.compute`;
|
|
39
|
+
if (rule.kind === 'set')
|
|
40
|
+
return `fields.${rule.field}.setWhen[${rule.index}]`;
|
|
41
|
+
const at = rule.part ? paths.get(rule.part) : undefined;
|
|
42
|
+
if (!at)
|
|
43
|
+
return null;
|
|
44
|
+
return rule.kind === 'answer' ? `${at}.validate[${rule.index}]` : `${at}.${CONDITION_KEY[rule.kind]}`;
|
|
45
|
+
};
|
|
46
|
+
const say = (rule, severity, text, fix, extra = {}) => {
|
|
47
|
+
if (!rule.part)
|
|
48
|
+
return;
|
|
49
|
+
checks.push({ at: rule.part, severity, text, fix: { label: fix, action: { kind: 'remove-rule', id: rule.part, rule: rule.kind, ...(rule.index !== undefined ? { index: rule.index } : {}), ...extra } } });
|
|
50
|
+
const path = pathOf(rule);
|
|
51
|
+
if (path)
|
|
52
|
+
covered.push(path);
|
|
53
|
+
};
|
|
54
|
+
for (const rule of (0, rules_words_1.pageRules)(page, words)) {
|
|
55
|
+
// A field it reads that no one can fill in here any more.
|
|
56
|
+
const gone = rule.reads.filter((name) => !shown.has(name));
|
|
57
|
+
if (gone.length) {
|
|
58
|
+
// In a survey nothing else fills it in, and a field not even defined cannot be read; a record may still hold one defined.
|
|
59
|
+
const severity = page.data.kind === 'responses' || gone.some((name) => !page.fields[name]) ? 'must' : 'should';
|
|
60
|
+
say(rule, severity, w.readsGone(rule.name, rule.sentence, gone.map(label)), w.removeTheRule, { fields: gone });
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
const def = rule.field ? page.fields[rule.field] : undefined;
|
|
64
|
+
if (rule.kind === 'compute' && def?.compute !== undefined && rule.field) {
|
|
65
|
+
const problem = (0, rules_formula_1.formulaProblem)(page, def.compute, words);
|
|
66
|
+
const said = problem ? (0, rules_formula_1.problemWords)(problem, words) : (0, rules_formula_1.wouldCircle)(page, rule.field, def.compute, words);
|
|
67
|
+
if (said)
|
|
68
|
+
say(rule, 'must', w.formulaBroken(rule.name, said), w.removeTheFormula);
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (rule.kind === 'set' && def?.setWhen && rule.index !== undefined) {
|
|
72
|
+
const item = def.setWhen[rule.index];
|
|
73
|
+
const problem = (0, rules_formula_1.formulaProblem)(page, item.when, words) ?? (0, rules_formula_1.formulaProblem)(page, item.value, words);
|
|
74
|
+
if (problem) {
|
|
75
|
+
say(rule, 'must', w.setBroken(rule.name, rule.sentence, (0, rules_formula_1.problemWords)(problem, words)), w.removeIt);
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
const wrong = (0, rules_commands_1.cannotHold)(def, rule.name, item.value, words);
|
|
79
|
+
if (wrong) {
|
|
80
|
+
say(rule, 'must', w.setCannotHold(rule.name, rule.sentence, wrong), w.removeIt);
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (rule.kind === 'answer' && rule.index !== undefined && rule.part) {
|
|
85
|
+
const node = (0, page_tree_1.findNode)(page, rule.part)?.node;
|
|
86
|
+
const answer = node?.validate?.[rule.index];
|
|
87
|
+
const field = node ? page.fields[node.field] : undefined;
|
|
88
|
+
if (answer && field && answerCheck(rule, answer, field, say, words))
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
// A condition waiting for a choice no longer offered (when a part shows is the page's older check's).
|
|
92
|
+
if (rule.kind !== 'shows' && rule.kind !== 'compute' && rule.part)
|
|
93
|
+
choiceGone(page, rule, say, words);
|
|
94
|
+
}
|
|
95
|
+
// A path names the rule itself, or something inside it: its pattern, its condition.
|
|
96
|
+
return { checks, covers: (path) => covered.some((at) => path === at || path.startsWith(`${at}.`)) };
|
|
97
|
+
}
|
|
98
|
+
/** An answer rule that checks nothing, or cannot be read: said, and true. */
|
|
99
|
+
function answerCheck(rule, answer, field, say, words) {
|
|
100
|
+
const w = words.checks;
|
|
101
|
+
if (answer.pattern !== undefined) {
|
|
102
|
+
try {
|
|
103
|
+
new RegExp(answer.pattern);
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
say(rule, 'must', w.patternBroken(rule.name, answer.pattern), w.removeTheRule);
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
const asks = (0, rules_words_1.ruleAsks)(answer);
|
|
111
|
+
if (!asks.length) {
|
|
112
|
+
say(rule, 'should', w.asksNothing(rule.name), w.removeTheRule);
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
if ((0, rules_words_1.asksNotFitting)(field, answer).length === asks.length) {
|
|
116
|
+
say(rule, 'should', w.checksNothing(rule.name, rule.sentence, (0, kinds_1.storedAs)(field, words)), w.removeTheRule);
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
/** The condition a rule holds by, as the designer builds it; null for one written another way, or none. */
|
|
122
|
+
function conditionOf(page, rule) {
|
|
123
|
+
const value = conditionValue(page, rule);
|
|
124
|
+
const held = rule.kind === 'shows' ? (0, conditions_1.readCondition)(value) : (0, conditions_1.readHolds)(value);
|
|
125
|
+
return held && held !== 'custom' && held !== 'always' ? held : null;
|
|
126
|
+
}
|
|
127
|
+
/** What a rule's condition is written as, where it is kept. */
|
|
128
|
+
function conditionValue(page, rule) {
|
|
129
|
+
if (!rule.part)
|
|
130
|
+
return undefined;
|
|
131
|
+
const node = ((0, page_tree_1.findNode)(page, rule.part)?.node ?? (0, page_tree_1.findContainer)(page, rule.part) ?? (0, header_commands_1.findHeaderPart)(page, rule.part)?.part);
|
|
132
|
+
if (rule.kind === 'answer')
|
|
133
|
+
return node?.['validate']?.[rule.index ?? 0]?.when;
|
|
134
|
+
if (rule.kind === 'set')
|
|
135
|
+
return rule.field ? page.fields[rule.field]?.setWhen?.[rule.index ?? 0]?.when : undefined;
|
|
136
|
+
const key = CONDITION_KEY[rule.kind];
|
|
137
|
+
return key ? node?.[key] : undefined;
|
|
138
|
+
}
|
|
139
|
+
function choiceGone(page, rule, say, words) {
|
|
140
|
+
// A group's read-only rule is written by hand: there is nothing here to take part of it away with.
|
|
141
|
+
if (!rule.field)
|
|
142
|
+
return;
|
|
143
|
+
const condition = conditionOf(page, rule);
|
|
144
|
+
condition?.rules.forEach((part, index) => {
|
|
145
|
+
const tested = page.fields[part.field];
|
|
146
|
+
if (part.op !== 'is' || tested?.type !== 'selection' || typeof part.value !== 'string' || tested.options.some((o) => o.value === part.value))
|
|
147
|
+
return;
|
|
148
|
+
// A field's own rule loses only that part; an answer rule or a value set goes whole (the fix takes those whole).
|
|
149
|
+
say(rule, 'should', words.checks.neverHolds(rule.name, tested.label, part.value), words.checks.removeTheRule, { parts: [index] });
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
/** Do a rule check's fix. */
|
|
153
|
+
function fixRuleCheck(designer, fix) {
|
|
154
|
+
const page = designer.getPage();
|
|
155
|
+
const rule = (0, rules_words_1.pageRules)(page).find((r) => r.part === fix.id && r.kind === fix.rule && (fix.index === undefined || r.index === fix.index));
|
|
156
|
+
if (!rule)
|
|
157
|
+
return false;
|
|
158
|
+
switch (fix.rule) {
|
|
159
|
+
case 'compute':
|
|
160
|
+
return designer.setCompute(fix.id, null);
|
|
161
|
+
case 'set': {
|
|
162
|
+
const items = (rule.field ? page.fields[rule.field]?.setWhen : undefined) ?? [];
|
|
163
|
+
const left = items.filter((_, i) => i !== fix.index);
|
|
164
|
+
return designer.setSetWhen(fix.id, left.length ? left : null);
|
|
165
|
+
}
|
|
166
|
+
case 'answer':
|
|
167
|
+
return designer.removeAnswerRule(fix.id, fix.index ?? 0);
|
|
168
|
+
default: {
|
|
169
|
+
// A condition: only the parts that cannot hold go, when it is one the designer builds.
|
|
170
|
+
const condition = conditionOf(page, rule);
|
|
171
|
+
const keep = condition && (fix.fields || fix.parts) ? condition.rules.filter((part, i) => !fix.fields?.includes(part.field) && !fix.parts?.includes(i)) : [];
|
|
172
|
+
const next = keep.length && condition ? { join: condition.join, rules: keep } : null;
|
|
173
|
+
return fix.rule === 'shows' ? designer.setCondition(fix.id, next) : designer.setRule(fix.id, fix.rule, next);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=rules-checks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules-checks.js","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/rules-checks.ts"],"names":[],"mappings":";;AA4DA,gCA+DC;AAyDD,oCAsBC;AAzMD,6CAAwE;AACxE,uDAAmD;AACnD,mCAAmC;AACnC,2CAAmE;AAEnE,qDAA8C;AAC9C,mDAA4E;AAC5E,+CAAmG;AAEnG,qCAAkC;AAoClC,4GAA4G;AAC5G,SAAS,SAAS,CAAC,IAAU;IAC3B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,IAAI,GAAG,CAAC,IAA2C,EAAE,IAAY,EAAE,EAAE;QACzE,IAAI,IAAI,CAAC,EAAE;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAA8C,EAAE,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IACvH,CAAC,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,MAA+C,EAAE,QAAQ,CAAC,CAAC;IACrE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,aAAa,GAAsC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAE5H,iGAAiG;AACjG,SAAgB,UAAU,CAAC,IAAU,EAAE,QAAuB,OAAE;IAC9D,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;IACxE,MAAM,KAAK,GAAG,IAAA,uBAAW,EAAC,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;IACjE,uDAAuD;IACvD,MAAM,MAAM,GAAG,CAAC,IAAe,EAAE,EAAE;QACjC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,UAAU,IAAI,CAAC,KAAK,UAAU,CAAC;QACnE,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,UAAU,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,GAAG,CAAC;QAC9E,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxD,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,aAAa,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACxG,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,CAAC,IAAe,EAAE,QAA+B,EAAE,IAAY,EAAE,GAAW,EAAE,QAA0B,EAAE,EAAE,EAAE;QACxH,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO;QACvB,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3M,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,IAAA,uBAAS,EAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QAC1C,0DAA0D;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,0HAA0H;YAC1H,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC/G,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/G,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,EAAE,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACxE,MAAM,OAAO,GAAG,IAAA,8BAAc,EAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACzD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAA,4BAAY,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,2BAAW,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACxG,IAAI,IAAI;gBAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC;YAClF,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACpE,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,OAAO,GAAG,IAAA,8BAAc,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAA,8BAAc,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAClG,IAAI,OAAO,EAAE,CAAC;gBACZ,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAA,4BAAY,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACnG,SAAS;YACX,CAAC;YACD,MAAM,KAAK,GAAG,IAAA,2BAAU,EAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5D,IAAI,KAAK,EAAE,CAAC;gBACV,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAChF,SAAS;YACX,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACpE,MAAM,IAAI,GAAG,IAAA,oBAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAA6B,CAAC;YACtE,MAAM,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzD,IAAI,MAAM,IAAI,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC;gBAAE,SAAS;QAChF,CAAC;QACD,sGAAsG;QACtG,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI;YAAE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACxG,CAAC;IACD,oFAAoF;IACpF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;AACtG,CAAC;AAID,6EAA6E;AAC7E,SAAS,WAAW,CAAC,IAAe,EAAE,MAAkD,EAAE,KAAY,EAAE,GAAQ,EAAE,KAAoB;IACpI,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;YAC/E,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,IAAA,sBAAQ,EAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAA,4BAAc,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QACzD,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAA,gBAAQ,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;QACxG,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2GAA2G;AAC3G,SAAS,WAAW,CAAC,IAAU,EAAE,IAAe;IAC9C,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAA,0BAAa,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,sBAAS,EAAC,KAAK,CAAC,CAAC;IAC7E,OAAO,IAAI,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACtE,CAAC;AAED,+DAA+D;AAC/D,SAAS,cAAc,CAAC,IAAU,EAAE,IAAe;IACjD,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,IAAI,GAAG,CAAC,IAAA,oBAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,IAAA,yBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAA,gCAAc,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAwC,CAAC;IACjK,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAQ,IAAI,EAAE,CAAC,UAAU,CAAsC,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;IACrH,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACnH,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACvC,CAAC;AAED,SAAS,UAAU,CAAC,IAAU,EAAE,IAAe,EAAE,GAAQ,EAAE,KAAoB;IAC7E,mGAAmG;IACnG,IAAI,CAAC,IAAI,CAAC,KAAK;QAAE,OAAO;IACxB,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO;QACrJ,iHAAiH;QACjH,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpI,CAAC,CAAC,CAAC;AACL,CAAC;AAED,6BAA6B;AAC7B,SAAgB,YAAY,CAAC,QAAmB,EAAE,GAAY;IAC5D,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,IAAA,uBAAS,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACzI,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3C,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAChF,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;YACrD,OAAO,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;QACD,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,CAAC,CAAC;YACR,uFAAuF;YACvF,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAG,SAAS,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7J,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACrF,OAAO,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/G,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { readCondition, readHolds } from './conditions.mjs';
|
|
2
|
+
import { findHeaderPart } from './header-commands.mjs';
|
|
3
|
+
import { storedAs } from './kinds.mjs';
|
|
4
|
+
import { findContainer, findNode, shownFields } from './page-tree.mjs';
|
|
5
|
+
import { cannotHold } from './rules-commands.mjs';
|
|
6
|
+
import { formulaProblem, problemWords, wouldCircle } from './rules-formula.mjs';
|
|
7
|
+
import { asksNotFitting, pageRules, ruleAsks } from './rules-words.mjs';
|
|
8
|
+
import { en } from './locales/en/index.mjs';
|
|
9
|
+
/** Where each part sits in the page, as the page's own check names it: `layout.children[0].children[3]`. */
|
|
10
|
+
function nodePaths(page) {
|
|
11
|
+
const paths = new Map();
|
|
12
|
+
const walk = (node, path) => {
|
|
13
|
+
if (node.id)
|
|
14
|
+
paths.set(node.id, path);
|
|
15
|
+
node.children?.forEach((child, i) => walk(child, `${path}.children[${i}]`));
|
|
16
|
+
};
|
|
17
|
+
walk(page.layout, 'layout');
|
|
18
|
+
return paths;
|
|
19
|
+
}
|
|
20
|
+
const CONDITION_KEY = { shows: 'invisible', required: 'required', readonly: 'readonly' };
|
|
21
|
+
/** The rules' checks, and whether the page's own check said one of the same things at a path. */
|
|
22
|
+
export function ruleChecks(page, words = en) {
|
|
23
|
+
const w = words.checks;
|
|
24
|
+
const checks = [];
|
|
25
|
+
const covered = [];
|
|
26
|
+
if (page.layout.type === 'list')
|
|
27
|
+
return { checks, covers: () => false };
|
|
28
|
+
const shown = shownFields(page);
|
|
29
|
+
const paths = nodePaths(page);
|
|
30
|
+
const label = (name) => page.fields[name]?.label || name;
|
|
31
|
+
/** Where the page's own check would name this rule. */
|
|
32
|
+
const pathOf = (rule) => {
|
|
33
|
+
if (rule.kind === 'compute')
|
|
34
|
+
return `fields.${rule.field}.compute`;
|
|
35
|
+
if (rule.kind === 'set')
|
|
36
|
+
return `fields.${rule.field}.setWhen[${rule.index}]`;
|
|
37
|
+
const at = rule.part ? paths.get(rule.part) : undefined;
|
|
38
|
+
if (!at)
|
|
39
|
+
return null;
|
|
40
|
+
return rule.kind === 'answer' ? `${at}.validate[${rule.index}]` : `${at}.${CONDITION_KEY[rule.kind]}`;
|
|
41
|
+
};
|
|
42
|
+
const say = (rule, severity, text, fix, extra = {}) => {
|
|
43
|
+
if (!rule.part)
|
|
44
|
+
return;
|
|
45
|
+
checks.push({ at: rule.part, severity, text, fix: { label: fix, action: { kind: 'remove-rule', id: rule.part, rule: rule.kind, ...(rule.index !== undefined ? { index: rule.index } : {}), ...extra } } });
|
|
46
|
+
const path = pathOf(rule);
|
|
47
|
+
if (path)
|
|
48
|
+
covered.push(path);
|
|
49
|
+
};
|
|
50
|
+
for (const rule of pageRules(page, words)) {
|
|
51
|
+
// A field it reads that no one can fill in here any more.
|
|
52
|
+
const gone = rule.reads.filter((name) => !shown.has(name));
|
|
53
|
+
if (gone.length) {
|
|
54
|
+
// In a survey nothing else fills it in, and a field not even defined cannot be read; a record may still hold one defined.
|
|
55
|
+
const severity = page.data.kind === 'responses' || gone.some((name) => !page.fields[name]) ? 'must' : 'should';
|
|
56
|
+
say(rule, severity, w.readsGone(rule.name, rule.sentence, gone.map(label)), w.removeTheRule, { fields: gone });
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
const def = rule.field ? page.fields[rule.field] : undefined;
|
|
60
|
+
if (rule.kind === 'compute' && def?.compute !== undefined && rule.field) {
|
|
61
|
+
const problem = formulaProblem(page, def.compute, words);
|
|
62
|
+
const said = problem ? problemWords(problem, words) : wouldCircle(page, rule.field, def.compute, words);
|
|
63
|
+
if (said)
|
|
64
|
+
say(rule, 'must', w.formulaBroken(rule.name, said), w.removeTheFormula);
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (rule.kind === 'set' && def?.setWhen && rule.index !== undefined) {
|
|
68
|
+
const item = def.setWhen[rule.index];
|
|
69
|
+
const problem = formulaProblem(page, item.when, words) ?? formulaProblem(page, item.value, words);
|
|
70
|
+
if (problem) {
|
|
71
|
+
say(rule, 'must', w.setBroken(rule.name, rule.sentence, problemWords(problem, words)), w.removeIt);
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
const wrong = cannotHold(def, rule.name, item.value, words);
|
|
75
|
+
if (wrong) {
|
|
76
|
+
say(rule, 'must', w.setCannotHold(rule.name, rule.sentence, wrong), w.removeIt);
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (rule.kind === 'answer' && rule.index !== undefined && rule.part) {
|
|
81
|
+
const node = findNode(page, rule.part)?.node;
|
|
82
|
+
const answer = node?.validate?.[rule.index];
|
|
83
|
+
const field = node ? page.fields[node.field] : undefined;
|
|
84
|
+
if (answer && field && answerCheck(rule, answer, field, say, words))
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
// A condition waiting for a choice no longer offered (when a part shows is the page's older check's).
|
|
88
|
+
if (rule.kind !== 'shows' && rule.kind !== 'compute' && rule.part)
|
|
89
|
+
choiceGone(page, rule, say, words);
|
|
90
|
+
}
|
|
91
|
+
// A path names the rule itself, or something inside it: its pattern, its condition.
|
|
92
|
+
return { checks, covers: (path) => covered.some((at) => path === at || path.startsWith(`${at}.`)) };
|
|
93
|
+
}
|
|
94
|
+
/** An answer rule that checks nothing, or cannot be read: said, and true. */
|
|
95
|
+
function answerCheck(rule, answer, field, say, words) {
|
|
96
|
+
const w = words.checks;
|
|
97
|
+
if (answer.pattern !== undefined) {
|
|
98
|
+
try {
|
|
99
|
+
new RegExp(answer.pattern);
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
say(rule, 'must', w.patternBroken(rule.name, answer.pattern), w.removeTheRule);
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
const asks = ruleAsks(answer);
|
|
107
|
+
if (!asks.length) {
|
|
108
|
+
say(rule, 'should', w.asksNothing(rule.name), w.removeTheRule);
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
if (asksNotFitting(field, answer).length === asks.length) {
|
|
112
|
+
say(rule, 'should', w.checksNothing(rule.name, rule.sentence, storedAs(field, words)), w.removeTheRule);
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
/** The condition a rule holds by, as the designer builds it; null for one written another way, or none. */
|
|
118
|
+
function conditionOf(page, rule) {
|
|
119
|
+
const value = conditionValue(page, rule);
|
|
120
|
+
const held = rule.kind === 'shows' ? readCondition(value) : readHolds(value);
|
|
121
|
+
return held && held !== 'custom' && held !== 'always' ? held : null;
|
|
122
|
+
}
|
|
123
|
+
/** What a rule's condition is written as, where it is kept. */
|
|
124
|
+
function conditionValue(page, rule) {
|
|
125
|
+
if (!rule.part)
|
|
126
|
+
return undefined;
|
|
127
|
+
const node = (findNode(page, rule.part)?.node ?? findContainer(page, rule.part) ?? findHeaderPart(page, rule.part)?.part);
|
|
128
|
+
if (rule.kind === 'answer')
|
|
129
|
+
return node?.['validate']?.[rule.index ?? 0]?.when;
|
|
130
|
+
if (rule.kind === 'set')
|
|
131
|
+
return rule.field ? page.fields[rule.field]?.setWhen?.[rule.index ?? 0]?.when : undefined;
|
|
132
|
+
const key = CONDITION_KEY[rule.kind];
|
|
133
|
+
return key ? node?.[key] : undefined;
|
|
134
|
+
}
|
|
135
|
+
function choiceGone(page, rule, say, words) {
|
|
136
|
+
// A group's read-only rule is written by hand: there is nothing here to take part of it away with.
|
|
137
|
+
if (!rule.field)
|
|
138
|
+
return;
|
|
139
|
+
const condition = conditionOf(page, rule);
|
|
140
|
+
condition?.rules.forEach((part, index) => {
|
|
141
|
+
const tested = page.fields[part.field];
|
|
142
|
+
if (part.op !== 'is' || tested?.type !== 'selection' || typeof part.value !== 'string' || tested.options.some((o) => o.value === part.value))
|
|
143
|
+
return;
|
|
144
|
+
// A field's own rule loses only that part; an answer rule or a value set goes whole (the fix takes those whole).
|
|
145
|
+
say(rule, 'should', words.checks.neverHolds(rule.name, tested.label, part.value), words.checks.removeTheRule, { parts: [index] });
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
/** Do a rule check's fix. */
|
|
149
|
+
export function fixRuleCheck(designer, fix) {
|
|
150
|
+
const page = designer.getPage();
|
|
151
|
+
const rule = pageRules(page).find((r) => r.part === fix.id && r.kind === fix.rule && (fix.index === undefined || r.index === fix.index));
|
|
152
|
+
if (!rule)
|
|
153
|
+
return false;
|
|
154
|
+
switch (fix.rule) {
|
|
155
|
+
case 'compute':
|
|
156
|
+
return designer.setCompute(fix.id, null);
|
|
157
|
+
case 'set': {
|
|
158
|
+
const items = (rule.field ? page.fields[rule.field]?.setWhen : undefined) ?? [];
|
|
159
|
+
const left = items.filter((_, i) => i !== fix.index);
|
|
160
|
+
return designer.setSetWhen(fix.id, left.length ? left : null);
|
|
161
|
+
}
|
|
162
|
+
case 'answer':
|
|
163
|
+
return designer.removeAnswerRule(fix.id, fix.index ?? 0);
|
|
164
|
+
default: {
|
|
165
|
+
// A condition: only the parts that cannot hold go, when it is one the designer builds.
|
|
166
|
+
const condition = conditionOf(page, rule);
|
|
167
|
+
const keep = condition && (fix.fields || fix.parts) ? condition.rules.filter((part, i) => !fix.fields?.includes(part.field) && !fix.parts?.includes(i)) : [];
|
|
168
|
+
const next = keep.length && condition ? { join: condition.join, rules: keep } : null;
|
|
169
|
+
return fix.rule === 'shows' ? designer.setCondition(fix.id, next) : designer.setRule(fix.id, fix.rule, next);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=rules-checks.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules-checks.mjs","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/rules-checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { AnswerRule, Field, FieldNode, Page, SetWhen } from '@fieldia/core';
|
|
2
|
+
import type { DesignerWords } from './designer-words.mjs';
|
|
3
|
+
/**
|
|
4
|
+
* The store's rules: a field's value worked out from others ("Worked out
|
|
5
|
+
* from"), values set when something holds ("Set when…"), and the rules an
|
|
6
|
+
* answer must keep. Each goes through the designer's `apply`, so it is one
|
|
7
|
+
* undo step, checked before it is kept and saved like every other edit; and
|
|
8
|
+
* typing in one box is one step, through the merge key. What cannot be done
|
|
9
|
+
* is refused in words, with the place in a formula where it stops.
|
|
10
|
+
*/
|
|
11
|
+
/** A change to an answer rule: a value sets that ask, `null` takes it away. */
|
|
12
|
+
export type AnswerRulePatch = {
|
|
13
|
+
[K in keyof AnswerRule]?: AnswerRule[K] | null;
|
|
14
|
+
};
|
|
15
|
+
export interface RulesCommands {
|
|
16
|
+
/** A field's value worked out from others, such as `price * qty`; `null` makes it a field to fill in again. */
|
|
17
|
+
setCompute(id: string, expression: string | null): boolean;
|
|
18
|
+
/** Values set when a condition starts to hold, in order; `null` or none takes them all away. */
|
|
19
|
+
setSetWhen(id: string, items: SetWhen[] | null): boolean;
|
|
20
|
+
/** A rule the answer must keep, after the others. */
|
|
21
|
+
addAnswerRule(id: string, rule: AnswerRule): boolean;
|
|
22
|
+
/** One rule changed: a value sets what it asks, `null` takes that away. Typing in one box is one undo step. */
|
|
23
|
+
updateAnswerRule(id: string, index: number, patch: AnswerRulePatch): boolean;
|
|
24
|
+
removeAnswerRule(id: string, index: number): boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface RulesCommandsDeps {
|
|
27
|
+
apply(edit: (draft: Page) => void, merge?: string | null): boolean;
|
|
28
|
+
getPage(): Page;
|
|
29
|
+
/** Whether a field is the backend's, whose definition the page does not change. */
|
|
30
|
+
fromModel(name: string): boolean;
|
|
31
|
+
}
|
|
32
|
+
/** What is wrong with setting this value on this field, in words; null when it can hold it, or it is worked out as it goes. */
|
|
33
|
+
export declare function cannotHold(field: Field, label: string, value: string, words?: DesignerWords): string | null;
|
|
34
|
+
/** What is wrong with an answer rule on this field, in words; null when it can be kept. */
|
|
35
|
+
export declare function ruleRefusal(draft: Page, node: FieldNode, rule: AnswerRule, words?: DesignerWords): string | null;
|
|
36
|
+
export declare function rulesCommands({ apply, getPage, fromModel }: RulesCommandsDeps): RulesCommands;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { AnswerRule, Field, FieldNode, Page, SetWhen } from '@fieldia/core';
|
|
2
|
+
import type { DesignerWords } from './designer-words';
|
|
3
|
+
/**
|
|
4
|
+
* The store's rules: a field's value worked out from others ("Worked out
|
|
5
|
+
* from"), values set when something holds ("Set when…"), and the rules an
|
|
6
|
+
* answer must keep. Each goes through the designer's `apply`, so it is one
|
|
7
|
+
* undo step, checked before it is kept and saved like every other edit; and
|
|
8
|
+
* typing in one box is one step, through the merge key. What cannot be done
|
|
9
|
+
* is refused in words, with the place in a formula where it stops.
|
|
10
|
+
*/
|
|
11
|
+
/** A change to an answer rule: a value sets that ask, `null` takes it away. */
|
|
12
|
+
export type AnswerRulePatch = {
|
|
13
|
+
[K in keyof AnswerRule]?: AnswerRule[K] | null;
|
|
14
|
+
};
|
|
15
|
+
export interface RulesCommands {
|
|
16
|
+
/** A field's value worked out from others, such as `price * qty`; `null` makes it a field to fill in again. */
|
|
17
|
+
setCompute(id: string, expression: string | null): boolean;
|
|
18
|
+
/** Values set when a condition starts to hold, in order; `null` or none takes them all away. */
|
|
19
|
+
setSetWhen(id: string, items: SetWhen[] | null): boolean;
|
|
20
|
+
/** A rule the answer must keep, after the others. */
|
|
21
|
+
addAnswerRule(id: string, rule: AnswerRule): boolean;
|
|
22
|
+
/** One rule changed: a value sets what it asks, `null` takes that away. Typing in one box is one undo step. */
|
|
23
|
+
updateAnswerRule(id: string, index: number, patch: AnswerRulePatch): boolean;
|
|
24
|
+
removeAnswerRule(id: string, index: number): boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface RulesCommandsDeps {
|
|
27
|
+
apply(edit: (draft: Page) => void, merge?: string | null): boolean;
|
|
28
|
+
getPage(): Page;
|
|
29
|
+
/** Whether a field is the backend's, whose definition the page does not change. */
|
|
30
|
+
fromModel(name: string): boolean;
|
|
31
|
+
}
|
|
32
|
+
/** What is wrong with setting this value on this field, in words; null when it can hold it, or it is worked out as it goes. */
|
|
33
|
+
export declare function cannotHold(field: Field, label: string, value: string, words?: DesignerWords): string | null;
|
|
34
|
+
/** What is wrong with an answer rule on this field, in words; null when it can be kept. */
|
|
35
|
+
export declare function ruleRefusal(draft: Page, node: FieldNode, rule: AnswerRule, words?: DesignerWords): string | null;
|
|
36
|
+
export declare function rulesCommands({ apply, getPage, fromModel }: RulesCommandsDeps): RulesCommands;
|