@fieldia/designer 0.0.0-stage → 0.12.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 +134 -0
- package/src/lib/canvas-form.js.map +1 -0
- package/src/lib/canvas-form.mjs +131 -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 +29 -0
- package/src/lib/canvas-header.d.ts +29 -0
- package/src/lib/canvas-header.js +245 -0
- package/src/lib/canvas-header.js.map +1 -0
- package/src/lib/canvas-header.mjs +242 -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 +40 -0
- package/src/lib/choice-commands.d.ts +40 -0
- package/src/lib/choice-commands.js +149 -0
- package/src/lib/choice-commands.js.map +1 -0
- package/src/lib/choice-commands.mjs +145 -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 +163 -0
- package/src/lib/clipboard-names.js.map +1 -0
- package/src/lib/clipboard-names.mjs +158 -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 +39 -0
- package/src/lib/conditions.d.ts +39 -0
- package/src/lib/conditions.js +100 -0
- package/src/lib/conditions.js.map +1 -0
- package/src/lib/conditions.mjs +92 -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 +475 -0
- package/src/lib/designer.d.ts +475 -0
- package/src/lib/designer.js +1289 -0
- package/src/lib/designer.js.map +1 -0
- package/src/lib/designer.mjs +1265 -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 +105 -0
- package/src/lib/header-commands.d.ts +105 -0
- package/src/lib/header-commands.js +453 -0
- package/src/lib/header-commands.js.map +1 -0
- package/src/lib/header-commands.mjs +447 -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 +272 -0
- package/src/lib/header-properties.js.map +1 -0
- package/src/lib/header-properties.mjs +268 -0
- package/src/lib/header-properties.mjs.map +1 -0
- package/src/lib/hotkey-setting.d.mts +8 -0
- package/src/lib/hotkey-setting.d.ts +8 -0
- package/src/lib/hotkey-setting.js +25 -0
- package/src/lib/hotkey-setting.js.map +1 -0
- package/src/lib/hotkey-setting.mjs +20 -0
- package/src/lib/hotkey-setting.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 +106 -0
- package/src/lib/icons.js.map +1 -0
- package/src/lib/icons.mjs +102 -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 +241 -0
- package/src/lib/inline-settings.js.map +1 -0
- package/src/lib/inline-settings.mjs +238 -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 +92 -0
- package/src/lib/input-changes.js.map +1 -0
- package/src/lib/input-changes.mjs +89 -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 +194 -0
- package/src/lib/kind-settings-choices.js.map +1 -0
- package/src/lib/kind-settings-choices.mjs +191 -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 +349 -0
- package/src/lib/kind-settings-inputs.js.map +1 -0
- package/src/lib/kind-settings-inputs.mjs +346 -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 +68 -0
- package/src/lib/kinds.d.ts +68 -0
- package/src/lib/kinds.js +276 -0
- package/src/lib/kinds.js.map +1 -0
- package/src/lib/kinds.mjs +263 -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 +75 -0
- package/src/lib/layout-settings.d.ts +75 -0
- package/src/lib/layout-settings.js +291 -0
- package/src/lib/layout-settings.js.map +1 -0
- package/src/lib/layout-settings.mjs +279 -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 +121 -0
- package/src/lib/locales/ar/canvas.js.map +1 -0
- package/src/lib/locales/ar/canvas.mjs +118 -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 +40 -0
- package/src/lib/locales/ar/defaults.js.map +1 -0
- package/src/lib/locales/ar/defaults.mjs +37 -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 +57 -0
- package/src/lib/locales/ar/index.js.map +1 -0
- package/src/lib/locales/ar/index.mjs +54 -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 +89 -0
- package/src/lib/locales/ar/kinds.js.map +1 -0
- package/src/lib/locales/ar/kinds.mjs +86 -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 +78 -0
- package/src/lib/locales/ar/layout.js.map +1 -0
- package/src/lib/locales/ar/layout.mjs +75 -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 +389 -0
- package/src/lib/locales/ar/panel.js.map +1 -0
- package/src/lib/locales/ar/panel.mjs +386 -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 +265 -0
- package/src/lib/locales/ar/questions.js.map +1 -0
- package/src/lib/locales/ar/questions.mjs +262 -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 +167 -0
- package/src/lib/locales/ar/refusals.js.map +1 -0
- package/src/lib/locales/ar/refusals.mjs +164 -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 +158 -0
- package/src/lib/locales/ar/rules-ui.js.map +1 -0
- package/src/lib/locales/ar/rules-ui.mjs +155 -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 +160 -0
- package/src/lib/locales/ar/rules.js.map +1 -0
- package/src/lib/locales/ar/rules.mjs +157 -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 +79 -0
- package/src/lib/locales/ar/settings-changes.js.map +1 -0
- package/src/lib/locales/ar/settings-changes.mjs +76 -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 +185 -0
- package/src/lib/locales/ar/steps.js.map +1 -0
- package/src/lib/locales/ar/steps.mjs +182 -0
- package/src/lib/locales/ar/steps.mjs.map +1 -0
- package/src/lib/locales/ar/tables.d.mts +2 -0
- package/src/lib/locales/ar/tables.d.ts +2 -0
- package/src/lib/locales/ar/tables.js +69 -0
- package/src/lib/locales/ar/tables.js.map +1 -0
- package/src/lib/locales/ar/tables.mjs +66 -0
- package/src/lib/locales/ar/tables.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 +119 -0
- package/src/lib/locales/en/canvas.d.ts +119 -0
- package/src/lib/locales/en/canvas.js +129 -0
- package/src/lib/locales/en/canvas.js.map +1 -0
- package/src/lib/locales/en/canvas.mjs +126 -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 +45 -0
- package/src/lib/locales/en/defaults.d.ts +45 -0
- package/src/lib/locales/en/defaults.js +49 -0
- package/src/lib/locales/en/defaults.js.map +1 -0
- package/src/lib/locales/en/defaults.mjs +46 -0
- package/src/lib/locales/en/defaults.mjs.map +1 -0
- package/src/lib/locales/en/index.d.mts +2591 -0
- package/src/lib/locales/en/index.d.ts +2591 -0
- package/src/lib/locales/en/index.js +35 -0
- package/src/lib/locales/en/index.js.map +1 -0
- package/src/lib/locales/en/index.mjs +32 -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 +89 -0
- package/src/lib/locales/en/kinds.d.ts +89 -0
- package/src/lib/locales/en/kinds.js +93 -0
- package/src/lib/locales/en/kinds.js.map +1 -0
- package/src/lib/locales/en/kinds.mjs +90 -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 +104 -0
- package/src/lib/locales/en/layout.d.ts +104 -0
- package/src/lib/locales/en/layout.js +87 -0
- package/src/lib/locales/en/layout.js.map +1 -0
- package/src/lib/locales/en/layout.mjs +84 -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 +370 -0
- package/src/lib/locales/en/panel.d.ts +370 -0
- package/src/lib/locales/en/panel.js +322 -0
- package/src/lib/locales/en/panel.js.map +1 -0
- package/src/lib/locales/en/panel.mjs +319 -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 +286 -0
- package/src/lib/locales/en/questions.d.ts +286 -0
- package/src/lib/locales/en/questions.js +273 -0
- package/src/lib/locales/en/questions.js.map +1 -0
- package/src/lib/locales/en/questions.mjs +270 -0
- package/src/lib/locales/en/questions.mjs.map +1 -0
- package/src/lib/locales/en/refusals.d.mts +168 -0
- package/src/lib/locales/en/refusals.d.ts +168 -0
- package/src/lib/locales/en/refusals.js +182 -0
- package/src/lib/locales/en/refusals.js.map +1 -0
- package/src/lib/locales/en/refusals.mjs +179 -0
- package/src/lib/locales/en/refusals.mjs.map +1 -0
- package/src/lib/locales/en/rules-ui.d.mts +184 -0
- package/src/lib/locales/en/rules-ui.d.ts +184 -0
- package/src/lib/locales/en/rules-ui.js +176 -0
- package/src/lib/locales/en/rules-ui.js.map +1 -0
- package/src/lib/locales/en/rules-ui.mjs +173 -0
- package/src/lib/locales/en/rules-ui.mjs.map +1 -0
- package/src/lib/locales/en/rules.d.mts +160 -0
- package/src/lib/locales/en/rules.d.ts +160 -0
- package/src/lib/locales/en/rules.js +165 -0
- package/src/lib/locales/en/rules.js.map +1 -0
- package/src/lib/locales/en/rules.mjs +162 -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 +88 -0
- package/src/lib/locales/en/settings-changes.d.ts +88 -0
- package/src/lib/locales/en/settings-changes.js +85 -0
- package/src/lib/locales/en/settings-changes.js.map +1 -0
- package/src/lib/locales/en/settings-changes.mjs +82 -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 +222 -0
- package/src/lib/locales/en/steps.d.ts +222 -0
- package/src/lib/locales/en/steps.js +203 -0
- package/src/lib/locales/en/steps.js.map +1 -0
- package/src/lib/locales/en/steps.mjs +200 -0
- package/src/lib/locales/en/steps.mjs.map +1 -0
- package/src/lib/locales/en/tables.d.mts +73 -0
- package/src/lib/locales/en/tables.d.ts +73 -0
- package/src/lib/locales/en/tables.js +85 -0
- package/src/lib/locales/en/tables.js.map +1 -0
- package/src/lib/locales/en/tables.mjs +82 -0
- package/src/lib/locales/en/tables.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 +422 -0
- package/src/lib/page-checks.js.map +1 -0
- package/src/lib/page-checks.mjs +417 -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 +47 -0
- package/src/lib/page-tree.d.ts +47 -0
- package/src/lib/page-tree.js +189 -0
- package/src/lib/page-tree.js.map +1 -0
- package/src/lib/page-tree.mjs +173 -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 +133 -0
- package/src/lib/panel-block.js.map +1 -0
- package/src/lib/panel-block.mjs +130 -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 +190 -0
- package/src/lib/panel-field.js.map +1 -0
- package/src/lib/panel-field.mjs +187 -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 +81 -0
- package/src/lib/panel-group.js.map +1 -0
- package/src/lib/panel-group.mjs +77 -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 +250 -0
- package/src/lib/panel-layout.js.map +1 -0
- package/src/lib/panel-layout.mjs +242 -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 +179 -0
- package/src/lib/panel-look.js.map +1 -0
- package/src/lib/panel-look.mjs +173 -0
- package/src/lib/panel-look.mjs.map +1 -0
- package/src/lib/panel-page.d.mts +11 -0
- package/src/lib/panel-page.d.ts +11 -0
- package/src/lib/panel-page.js +86 -0
- package/src/lib/panel-page.js.map +1 -0
- package/src/lib/panel-page.mjs +83 -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/placeholder-when.d.mts +13 -0
- package/src/lib/placeholder-when.d.ts +13 -0
- package/src/lib/placeholder-when.js +83 -0
- package/src/lib/placeholder-when.js.map +1 -0
- package/src/lib/placeholder-when.mjs +80 -0
- package/src/lib/placeholder-when.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/roles-setting.d.mts +18 -0
- package/src/lib/roles-setting.d.ts +18 -0
- package/src/lib/roles-setting.js +48 -0
- package/src/lib/roles-setting.js.map +1 -0
- package/src/lib/roles-setting.mjs +43 -0
- package/src/lib/roles-setting.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 +354 -0
- package/src/lib/rules-answers.js.map +1 -0
- package/src/lib/rules-answers.mjs +351 -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 +42 -0
- package/src/lib/rules-commands.d.ts +42 -0
- package/src/lib/rules-commands.js +262 -0
- package/src/lib/rules-commands.js.map +1 -0
- package/src/lib/rules-commands.mjs +257 -0
- package/src/lib/rules-commands.mjs.map +1 -0
- package/src/lib/rules-defaults.d.mts +8 -0
- package/src/lib/rules-defaults.d.ts +8 -0
- package/src/lib/rules-defaults.js +77 -0
- package/src/lib/rules-defaults.js.map +1 -0
- package/src/lib/rules-defaults.mjs +74 -0
- package/src/lib/rules-defaults.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 +369 -0
- package/src/lib/rules-formula.js.map +1 -0
- package/src/lib/rules-formula.mjs +356 -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 +24 -0
- package/src/lib/rules-panel.js.map +1 -0
- package/src/lib/rules-panel.mjs +21 -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 +67 -0
- package/src/lib/rules-words.d.ts +67 -0
- package/src/lib/rules-words.js +247 -0
- package/src/lib/rules-words.js.map +1 -0
- package/src/lib/rules-words.mjs +234 -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 +282 -0
- package/src/lib/rules-worked-out.js.map +1 -0
- package/src/lib/rules-worked-out.mjs +278 -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/shown-while.d.mts +16 -0
- package/src/lib/shown-while.d.ts +16 -0
- package/src/lib/shown-while.js +28 -0
- package/src/lib/shown-while.js.map +1 -0
- package/src/lib/shown-while.mjs +25 -0
- package/src/lib/shown-while.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 +191 -0
- package/src/lib/steps-commands.js.map +1 -0
- package/src/lib/steps-commands.mjs +186 -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 +390 -0
- package/src/lib/steps-editor.js.map +1 -0
- package/src/lib/steps-editor.mjs +387 -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 +291 -0
- package/src/lib/steps-places.js.map +1 -0
- package/src/lib/steps-places.mjs +272 -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 +425 -0
- package/src/lib/steps-settings.js.map +1 -0
- package/src/lib/steps-settings.mjs +421 -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 +160 -0
- package/src/lib/steps-words.js.map +1 -0
- package/src/lib/steps-words.mjs +152 -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 +31 -0
- package/src/lib/structure-changes.js.map +1 -0
- package/src/lib/structure-changes.mjs +28 -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 +213 -0
- package/src/lib/styles-rules.js.map +1 -0
- package/src/lib/styles-rules.mjs +210 -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 +683 -0
- package/src/lib/styles.js.map +1 -0
- package/src/lib/styles.mjs +679 -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/table-commands.d.mts +76 -0
- package/src/lib/table-commands.d.ts +76 -0
- package/src/lib/table-commands.js +248 -0
- package/src/lib/table-commands.js.map +1 -0
- package/src/lib/table-commands.mjs +244 -0
- package/src/lib/table-commands.mjs.map +1 -0
- package/src/lib/table-panel.d.mts +8 -0
- package/src/lib/table-panel.d.ts +8 -0
- package/src/lib/table-panel.js +276 -0
- package/src/lib/table-panel.js.map +1 -0
- package/src/lib/table-panel.mjs +273 -0
- package/src/lib/table-panel.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 +161 -0
- package/src/lib/toolbox.js.map +1 -0
- package/src/lib/toolbox.mjs +155 -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,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.choicesOf = choicesOf;
|
|
4
|
+
exports.conditionEditor = conditionEditor;
|
|
5
|
+
const chrome_1 = require("./chrome");
|
|
6
|
+
const conditions_1 = require("./conditions");
|
|
7
|
+
const writes_1 = require("./writes");
|
|
8
|
+
const en_1 = require("./locales/en");
|
|
9
|
+
/** The answers a condition can test: a choice of one, or yes or no. */
|
|
10
|
+
function choicesOf(field, words = en_1.en) {
|
|
11
|
+
if (field?.type === 'selection' && !field.multiple)
|
|
12
|
+
return field.options.map((o) => ({ key: String(o.value), label: o.label, value: o.value }));
|
|
13
|
+
if (field?.type === 'boolean')
|
|
14
|
+
return [{ key: 'true', label: words.rules.yes, value: true }, { key: 'false', label: words.rules.no, value: false }];
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* When a page or a question shows: "Always", or rules on the answers to
|
|
19
|
+
* questions before it — "is Yes", "is not Manager" — all of them or any of
|
|
20
|
+
* them. A condition written by hand is shown as it is, with Replace. The
|
|
21
|
+
* same, for when a field is required or read-only (`kind`).
|
|
22
|
+
*/
|
|
23
|
+
function conditionEditor(el, designer, targetId, what, kind = 'shows',
|
|
24
|
+
/** A rule kept elsewhere, such as when an answer rule holds: its own words, and where it is saved. Read as it holds. */
|
|
25
|
+
custom) {
|
|
26
|
+
const words = designer.words;
|
|
27
|
+
const w = words.rulesUi;
|
|
28
|
+
const lead = custom?.lead ?? (kind === 'shows' ? w.show[what] : kind === 'required' ? w.required : w.readonly);
|
|
29
|
+
const match = el('select', { class: 'fd-input fd-select fd-when-match', 'aria-label': w.match }, el('option', { value: 'all' }, w.allOfThese), el('option', { value: 'any' }, w.anyOfThese));
|
|
30
|
+
const matchRow = el('div', { class: 'fd-when-match-row', hidden: '' }, el('span', {}, w.matchBefore(lead)), match, el('span', {}, w.matchAfter));
|
|
31
|
+
const rows = el('div', { class: 'fd-when-rules' });
|
|
32
|
+
const add = el('button', { type: 'button', class: 'fd-button fd-button-link fd-when-add' }, w.addACondition);
|
|
33
|
+
const customText = el('code', {});
|
|
34
|
+
const replace = el('button', { type: 'button', class: 'fd-button fd-button-link' }, w.replace);
|
|
35
|
+
const customBox = el('div', { class: 'fd-when-custom', hidden: '' }, el('span', {}, kind === 'shows' ? w.shownByHand : w.byHand(lead)), customText, replace);
|
|
36
|
+
// One rule for a field's required or read-only: said what it is for; several say it in their match row.
|
|
37
|
+
const caption = el('span', { class: 'fd-when-lead', hidden: '' }, w.whenLead(lead));
|
|
38
|
+
const element = el('div', { class: 'fd-when', role: 'group', 'aria-label': custom?.label ?? (kind === 'shows' ? w.whenShows[what] : w.whenItIs[kind]) }, caption, matchRow, rows, add, customBox);
|
|
39
|
+
let available = [];
|
|
40
|
+
let page = null;
|
|
41
|
+
/** What each row's lists were drawn from: the questions it offers, and the field its answers are of. Drawn again only when one changes. */
|
|
42
|
+
const drawn = new WeakMap();
|
|
43
|
+
const same = (a, b) => a.length === b.length && a.every((item, i) => item === b[i]);
|
|
44
|
+
/** The rules as the selects show them now. */
|
|
45
|
+
function read() {
|
|
46
|
+
const rules = [...rows.children].flatMap((row) => {
|
|
47
|
+
const [field, answer] = [...row.querySelectorAll('select')];
|
|
48
|
+
const choice = choicesOf(page?.fields[field.value], words)?.find((c) => c.key === answer.value.slice(answer.value.indexOf(':') + 1));
|
|
49
|
+
return field.value && choice ? [{ field: field.value, op: answer.value.startsWith('not:') ? 'is not' : 'is', value: choice.value }] : [];
|
|
50
|
+
});
|
|
51
|
+
return { join: match.value, rules };
|
|
52
|
+
}
|
|
53
|
+
const save = (condition) => (custom ? custom.save(condition) : kind === 'shows' ? designer.setCondition(targetId, condition) : designer.setRule(targetId, kind, condition));
|
|
54
|
+
/** A first rule: the first question it can test, its first answer. */
|
|
55
|
+
function start(field) {
|
|
56
|
+
const name = field ?? available[0]?.field;
|
|
57
|
+
const first = name ? choicesOf(page?.fields[name], words)?.[0] : undefined;
|
|
58
|
+
if (name && first)
|
|
59
|
+
save({ join: 'all', rules: [...read().rules, { field: name, op: 'is', value: first.value }] });
|
|
60
|
+
}
|
|
61
|
+
function row(index) {
|
|
62
|
+
const field = el('select', { class: 'fd-input fd-select fd-when-field', 'aria-label': index === 0 ? (kind === 'shows' ? lead : w.whenLead(lead)) : w.condition(index + 1) });
|
|
63
|
+
const answer = el('select', { class: 'fd-input fd-select fd-when-answer', 'aria-label': index === 0 ? w.whenTheAnswerIs : w.answer(index + 1) });
|
|
64
|
+
const remove = (0, chrome_1.iconButton)(el, w.removeCondition(index + 1), '×', () => {
|
|
65
|
+
const current = read();
|
|
66
|
+
current.rules.splice(index, 1);
|
|
67
|
+
save(current);
|
|
68
|
+
});
|
|
69
|
+
field.addEventListener('change', () => {
|
|
70
|
+
const current = read();
|
|
71
|
+
if (!field.value)
|
|
72
|
+
return void save({ join: 'all', rules: [] });
|
|
73
|
+
// A new question: its first answer.
|
|
74
|
+
const first = choicesOf(page?.fields[field.value], words)?.[0];
|
|
75
|
+
if (!first)
|
|
76
|
+
return;
|
|
77
|
+
current.rules[index] = { field: field.value, op: 'is', value: first.value };
|
|
78
|
+
save(current);
|
|
79
|
+
});
|
|
80
|
+
answer.addEventListener('change', () => save(read()));
|
|
81
|
+
return el('div', { class: 'fd-when-rule' }, field, answer, remove);
|
|
82
|
+
}
|
|
83
|
+
add.addEventListener('click', () => start(available.find((n) => !read().rules.some((r) => r.field === n.field))?.field));
|
|
84
|
+
match.addEventListener('change', () => save(read()));
|
|
85
|
+
replace.addEventListener('click', () => save({ join: 'all', rules: [] }));
|
|
86
|
+
return {
|
|
87
|
+
element,
|
|
88
|
+
/** Begin with a first rule, for a question that had none. */
|
|
89
|
+
start: () => start(),
|
|
90
|
+
/** Whether there is something to test: a question before it with answers to choose from. */
|
|
91
|
+
canStart: () => available.length > 0,
|
|
92
|
+
update(current, before, invisible) {
|
|
93
|
+
page = current;
|
|
94
|
+
available = before.filter((n) => choicesOf(current.fields[n.field], words) !== null);
|
|
95
|
+
const held = kind === 'shows' ? (0, conditions_1.readCondition)(invisible) : (0, conditions_1.readHolds)(invisible);
|
|
96
|
+
// Always required is the Required box's, not a rule's.
|
|
97
|
+
const condition = held === 'always' ? null : held;
|
|
98
|
+
(0, writes_1.setHidden)(customBox, condition !== 'custom');
|
|
99
|
+
if (condition === 'custom')
|
|
100
|
+
(0, writes_1.setText)(customText, String(invisible));
|
|
101
|
+
const rules = condition && condition !== 'custom' ? condition.rules : [];
|
|
102
|
+
// A page shows "Always" in its first row; a question shows nothing until it has a rule.
|
|
103
|
+
const shown = what === 'page' && condition !== 'custom' ? Math.max(rules.length, 1) : rules.length;
|
|
104
|
+
while (rows.children.length > shown)
|
|
105
|
+
rows.lastElementChild?.remove();
|
|
106
|
+
while (rows.children.length < shown)
|
|
107
|
+
rows.append(row(rows.children.length));
|
|
108
|
+
// The questions offered, and what they are: the same objects while an edit leaves them alone.
|
|
109
|
+
const offered = available.flatMap((n) => [n, current.fields[n.field]]);
|
|
110
|
+
[...rows.children].forEach((r, i) => {
|
|
111
|
+
const [field, answer] = [...r.querySelectorAll('select')];
|
|
112
|
+
const rule = rules[i];
|
|
113
|
+
const answersOf = rule ? current.fields[rule.field] : undefined;
|
|
114
|
+
const was = drawn.get(r);
|
|
115
|
+
if (!was || !same(was.offered, offered) || was.first !== (i === 0)) {
|
|
116
|
+
const options = available.map((n) => el('option', { value: n.field }, current.fields[n.field].label));
|
|
117
|
+
field.replaceChildren(...(i === 0 ? [el('option', { value: '' }, w.always)] : []), ...options);
|
|
118
|
+
}
|
|
119
|
+
field.value = rule?.field ?? '';
|
|
120
|
+
if (!was || was.answersOf !== answersOf) {
|
|
121
|
+
const choices = rule ? choicesOf(answersOf, words) ?? [] : [];
|
|
122
|
+
answer.replaceChildren(...choices.map((c) => el('option', { value: `is:${c.key}` }, w.answerIs(c.label))), ...choices.map((c) => el('option', { value: `not:${c.key}` }, w.answerIsNot(c.label))));
|
|
123
|
+
}
|
|
124
|
+
drawn.set(r, { offered, first: i === 0, answersOf });
|
|
125
|
+
(0, writes_1.setHidden)(answer, !rule);
|
|
126
|
+
if (rule)
|
|
127
|
+
answer.value = `${rule.op === 'is' ? 'is' : 'not'}:${String(rule.value)}`;
|
|
128
|
+
(0, writes_1.setHidden)(r.querySelector('button'), rules.length < 2);
|
|
129
|
+
});
|
|
130
|
+
(0, writes_1.setHidden)(matchRow, rules.length < 2);
|
|
131
|
+
(0, writes_1.setHidden)(caption, kind === 'shows' || rules.length !== 1);
|
|
132
|
+
match.value = condition && condition !== 'custom' ? condition.join : 'all';
|
|
133
|
+
(0, writes_1.setHidden)(add, !rules.length);
|
|
134
|
+
(0, writes_1.setHidden)(element, what !== 'page' && !rules.length && condition !== 'custom');
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=condition-editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condition-editor.js","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/condition-editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { iconButton } from './chrome.mjs';
|
|
2
|
+
import { readCondition, readHolds } from './conditions.mjs';
|
|
3
|
+
import { setHidden, setText } from './writes.mjs';
|
|
4
|
+
import { en } from './locales/en/index.mjs';
|
|
5
|
+
/** The answers a condition can test: a choice of one, or yes or no. */
|
|
6
|
+
export function choicesOf(field, words = en) {
|
|
7
|
+
if (field?.type === 'selection' && !field.multiple)
|
|
8
|
+
return field.options.map((o) => ({ key: String(o.value), label: o.label, value: o.value }));
|
|
9
|
+
if (field?.type === 'boolean')
|
|
10
|
+
return [{ key: 'true', label: words.rules.yes, value: true }, { key: 'false', label: words.rules.no, value: false }];
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* When a page or a question shows: "Always", or rules on the answers to
|
|
15
|
+
* questions before it — "is Yes", "is not Manager" — all of them or any of
|
|
16
|
+
* them. A condition written by hand is shown as it is, with Replace. The
|
|
17
|
+
* same, for when a field is required or read-only (`kind`).
|
|
18
|
+
*/
|
|
19
|
+
export function conditionEditor(el, designer, targetId, what, kind = 'shows',
|
|
20
|
+
/** A rule kept elsewhere, such as when an answer rule holds: its own words, and where it is saved. Read as it holds. */
|
|
21
|
+
custom) {
|
|
22
|
+
const words = designer.words;
|
|
23
|
+
const w = words.rulesUi;
|
|
24
|
+
const lead = custom?.lead ?? (kind === 'shows' ? w.show[what] : kind === 'required' ? w.required : w.readonly);
|
|
25
|
+
const match = el('select', { class: 'fd-input fd-select fd-when-match', 'aria-label': w.match }, el('option', { value: 'all' }, w.allOfThese), el('option', { value: 'any' }, w.anyOfThese));
|
|
26
|
+
const matchRow = el('div', { class: 'fd-when-match-row', hidden: '' }, el('span', {}, w.matchBefore(lead)), match, el('span', {}, w.matchAfter));
|
|
27
|
+
const rows = el('div', { class: 'fd-when-rules' });
|
|
28
|
+
const add = el('button', { type: 'button', class: 'fd-button fd-button-link fd-when-add' }, w.addACondition);
|
|
29
|
+
const customText = el('code', {});
|
|
30
|
+
const replace = el('button', { type: 'button', class: 'fd-button fd-button-link' }, w.replace);
|
|
31
|
+
const customBox = el('div', { class: 'fd-when-custom', hidden: '' }, el('span', {}, kind === 'shows' ? w.shownByHand : w.byHand(lead)), customText, replace);
|
|
32
|
+
// One rule for a field's required or read-only: said what it is for; several say it in their match row.
|
|
33
|
+
const caption = el('span', { class: 'fd-when-lead', hidden: '' }, w.whenLead(lead));
|
|
34
|
+
const element = el('div', { class: 'fd-when', role: 'group', 'aria-label': custom?.label ?? (kind === 'shows' ? w.whenShows[what] : w.whenItIs[kind]) }, caption, matchRow, rows, add, customBox);
|
|
35
|
+
let available = [];
|
|
36
|
+
let page = null;
|
|
37
|
+
/** What each row's lists were drawn from: the questions it offers, and the field its answers are of. Drawn again only when one changes. */
|
|
38
|
+
const drawn = new WeakMap();
|
|
39
|
+
const same = (a, b) => a.length === b.length && a.every((item, i) => item === b[i]);
|
|
40
|
+
/** The rules as the selects show them now. */
|
|
41
|
+
function read() {
|
|
42
|
+
const rules = [...rows.children].flatMap((row) => {
|
|
43
|
+
const [field, answer] = [...row.querySelectorAll('select')];
|
|
44
|
+
const choice = choicesOf(page?.fields[field.value], words)?.find((c) => c.key === answer.value.slice(answer.value.indexOf(':') + 1));
|
|
45
|
+
return field.value && choice ? [{ field: field.value, op: answer.value.startsWith('not:') ? 'is not' : 'is', value: choice.value }] : [];
|
|
46
|
+
});
|
|
47
|
+
return { join: match.value, rules };
|
|
48
|
+
}
|
|
49
|
+
const save = (condition) => (custom ? custom.save(condition) : kind === 'shows' ? designer.setCondition(targetId, condition) : designer.setRule(targetId, kind, condition));
|
|
50
|
+
/** A first rule: the first question it can test, its first answer. */
|
|
51
|
+
function start(field) {
|
|
52
|
+
const name = field ?? available[0]?.field;
|
|
53
|
+
const first = name ? choicesOf(page?.fields[name], words)?.[0] : undefined;
|
|
54
|
+
if (name && first)
|
|
55
|
+
save({ join: 'all', rules: [...read().rules, { field: name, op: 'is', value: first.value }] });
|
|
56
|
+
}
|
|
57
|
+
function row(index) {
|
|
58
|
+
const field = el('select', { class: 'fd-input fd-select fd-when-field', 'aria-label': index === 0 ? (kind === 'shows' ? lead : w.whenLead(lead)) : w.condition(index + 1) });
|
|
59
|
+
const answer = el('select', { class: 'fd-input fd-select fd-when-answer', 'aria-label': index === 0 ? w.whenTheAnswerIs : w.answer(index + 1) });
|
|
60
|
+
const remove = iconButton(el, w.removeCondition(index + 1), '×', () => {
|
|
61
|
+
const current = read();
|
|
62
|
+
current.rules.splice(index, 1);
|
|
63
|
+
save(current);
|
|
64
|
+
});
|
|
65
|
+
field.addEventListener('change', () => {
|
|
66
|
+
const current = read();
|
|
67
|
+
if (!field.value)
|
|
68
|
+
return void save({ join: 'all', rules: [] });
|
|
69
|
+
// A new question: its first answer.
|
|
70
|
+
const first = choicesOf(page?.fields[field.value], words)?.[0];
|
|
71
|
+
if (!first)
|
|
72
|
+
return;
|
|
73
|
+
current.rules[index] = { field: field.value, op: 'is', value: first.value };
|
|
74
|
+
save(current);
|
|
75
|
+
});
|
|
76
|
+
answer.addEventListener('change', () => save(read()));
|
|
77
|
+
return el('div', { class: 'fd-when-rule' }, field, answer, remove);
|
|
78
|
+
}
|
|
79
|
+
add.addEventListener('click', () => start(available.find((n) => !read().rules.some((r) => r.field === n.field))?.field));
|
|
80
|
+
match.addEventListener('change', () => save(read()));
|
|
81
|
+
replace.addEventListener('click', () => save({ join: 'all', rules: [] }));
|
|
82
|
+
return {
|
|
83
|
+
element,
|
|
84
|
+
/** Begin with a first rule, for a question that had none. */
|
|
85
|
+
start: () => start(),
|
|
86
|
+
/** Whether there is something to test: a question before it with answers to choose from. */
|
|
87
|
+
canStart: () => available.length > 0,
|
|
88
|
+
update(current, before, invisible) {
|
|
89
|
+
page = current;
|
|
90
|
+
available = before.filter((n) => choicesOf(current.fields[n.field], words) !== null);
|
|
91
|
+
const held = kind === 'shows' ? readCondition(invisible) : readHolds(invisible);
|
|
92
|
+
// Always required is the Required box's, not a rule's.
|
|
93
|
+
const condition = held === 'always' ? null : held;
|
|
94
|
+
setHidden(customBox, condition !== 'custom');
|
|
95
|
+
if (condition === 'custom')
|
|
96
|
+
setText(customText, String(invisible));
|
|
97
|
+
const rules = condition && condition !== 'custom' ? condition.rules : [];
|
|
98
|
+
// A page shows "Always" in its first row; a question shows nothing until it has a rule.
|
|
99
|
+
const shown = what === 'page' && condition !== 'custom' ? Math.max(rules.length, 1) : rules.length;
|
|
100
|
+
while (rows.children.length > shown)
|
|
101
|
+
rows.lastElementChild?.remove();
|
|
102
|
+
while (rows.children.length < shown)
|
|
103
|
+
rows.append(row(rows.children.length));
|
|
104
|
+
// The questions offered, and what they are: the same objects while an edit leaves them alone.
|
|
105
|
+
const offered = available.flatMap((n) => [n, current.fields[n.field]]);
|
|
106
|
+
[...rows.children].forEach((r, i) => {
|
|
107
|
+
const [field, answer] = [...r.querySelectorAll('select')];
|
|
108
|
+
const rule = rules[i];
|
|
109
|
+
const answersOf = rule ? current.fields[rule.field] : undefined;
|
|
110
|
+
const was = drawn.get(r);
|
|
111
|
+
if (!was || !same(was.offered, offered) || was.first !== (i === 0)) {
|
|
112
|
+
const options = available.map((n) => el('option', { value: n.field }, current.fields[n.field].label));
|
|
113
|
+
field.replaceChildren(...(i === 0 ? [el('option', { value: '' }, w.always)] : []), ...options);
|
|
114
|
+
}
|
|
115
|
+
field.value = rule?.field ?? '';
|
|
116
|
+
if (!was || was.answersOf !== answersOf) {
|
|
117
|
+
const choices = rule ? choicesOf(answersOf, words) ?? [] : [];
|
|
118
|
+
answer.replaceChildren(...choices.map((c) => el('option', { value: `is:${c.key}` }, w.answerIs(c.label))), ...choices.map((c) => el('option', { value: `not:${c.key}` }, w.answerIsNot(c.label))));
|
|
119
|
+
}
|
|
120
|
+
drawn.set(r, { offered, first: i === 0, answersOf });
|
|
121
|
+
setHidden(answer, !rule);
|
|
122
|
+
if (rule)
|
|
123
|
+
answer.value = `${rule.op === 'is' ? 'is' : 'not'}:${String(rule.value)}`;
|
|
124
|
+
setHidden(r.querySelector('button'), rules.length < 2);
|
|
125
|
+
});
|
|
126
|
+
setHidden(matchRow, rules.length < 2);
|
|
127
|
+
setHidden(caption, kind === 'shows' || rules.length !== 1);
|
|
128
|
+
match.value = condition && condition !== 'custom' ? condition.join : 'all';
|
|
129
|
+
setHidden(add, !rules.length);
|
|
130
|
+
setHidden(element, what !== 'page' && !rules.length && condition !== 'custom');
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=condition-editor.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condition-editor.mjs","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/condition-editor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAuB,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,SAAS,EAAsC,MAAM,cAAc,CAAC;AAE5F,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,uEAAuE;AACvE,MAAM,UAAU,SAAS,CAAC,KAAwB,EAAE,QAAuB,EAAE;IAC3E,IAAI,KAAK,EAAE,IAAI,KAAK,WAAW,IAAI,CAAC,KAAK,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAChJ,IAAI,KAAK,EAAE,IAAI,KAAK,SAAS;QAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACpJ,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,EAAkB,EAClB,QAAkB,EAClB,QAAgB,EAChB,IAAmC,EACnC,OAA0C,OAAO;AACjD,wHAAwH;AACxH,MAA6E;IAE7E,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7B,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;IACxB,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC/G,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,kCAAkC,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7L,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IACjJ,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,sCAAsC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;IAC7G,MAAM,UAAU,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IAC/F,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC7J,wGAAwG;IACxG,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACpF,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IAClM,IAAI,SAAS,GAAgB,EAAE,CAAC;IAChC,IAAI,IAAI,GAAgB,IAAI,CAAC;IAC7B,2IAA2I;IAC3I,MAAM,KAAK,GAAG,IAAI,OAAO,EAAiF,CAAC;IAC3G,MAAM,IAAI,GAAG,CAAC,CAAY,EAAE,CAAY,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1G,8CAA8C;IAC9C,SAAS,IAAI;QACX,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAmB,EAAE;YAChE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAwB,CAAC;YACnF,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrI,OAAO,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3I,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,KAA0B,EAAE,KAAK,EAAE,CAAC;IAC3D,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,SAAoB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAEvL,sEAAsE;IACtE,SAAS,KAAK,CAAC,KAAc;QAC3B,MAAM,IAAI,GAAG,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,IAAI,IAAI,IAAI,KAAK;YAAE,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACpH,CAAC;IAED,SAAS,GAAG,CAAC,KAAa;QACxB,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,kCAAkC,EAAE,YAAY,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7K,MAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,mCAAmC,EAAE,YAAY,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QACjJ,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE;YACpE,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;YACpC,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,KAAK;gBAAE,OAAO,KAAK,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/D,oCAAoC;YACpC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5E,IAAI,CAAC,OAAO,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACtD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAED,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACzH,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAE1E,OAAO;QACL,OAAO;QACP,6DAA6D;QAC7D,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE;QACpB,4FAA4F;QAC5F,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QACpC,MAAM,CAAC,OAAa,EAAE,MAAmB,EAAE,SAAkB;YAC3D,IAAI,GAAG,OAAO,CAAC;YACf,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;YACrF,MAAM,IAAI,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAChF,uDAAuD;YACvD,MAAM,SAAS,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAClD,SAAS,CAAC,SAAS,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC;YAC7C,IAAI,SAAS,KAAK,QAAQ;gBAAE,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YACnE,MAAM,KAAK,GAAG,SAAS,IAAI,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,wFAAwF;YACxF,MAAM,KAAK,GAAG,IAAI,KAAK,MAAM,IAAI,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;YACnG,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK;gBAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5E,8FAA8F;YAC9F,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAClC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAwB,CAAC;gBACjF,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAChE,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBACnE,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtG,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC;gBACjG,CAAC;gBACD,KAAK,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBACxC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9D,MAAM,CAAC,eAAe,CACpB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAClF,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACvF,CAAC;gBACJ,CAAC;gBACD,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;gBACrD,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,IAAI;oBAAE,MAAM,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpF,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAsB,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC9E,CAAC,CAAC,CAAC;YACH,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACtC,SAAS,CAAC,OAAO,EAAE,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;YAC3D,KAAK,CAAC,KAAK,GAAG,SAAS,IAAI,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YAC3E,SAAS,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC9B,SAAS,CAAC,OAAO,EAAE,IAAI,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,KAAK,QAAQ,CAAC,CAAC;QACjF,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* When a page or a question shows, as the designer builds it: rules on
|
|
3
|
+
* earlier answers, all of them or any of them. The page format says when a
|
|
4
|
+
* node is *hidden*, so a condition is written as its opposite, without
|
|
5
|
+
* brackets: "show when A and B" hides when not A or not B. Only that shape is
|
|
6
|
+
* read back; a condition written by hand is left as it is.
|
|
7
|
+
*/
|
|
8
|
+
export interface ConditionRule {
|
|
9
|
+
field: string;
|
|
10
|
+
op: 'is' | 'is not';
|
|
11
|
+
value: string | number | boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface Condition {
|
|
14
|
+
join: 'all' | 'any';
|
|
15
|
+
rules: ConditionRule[];
|
|
16
|
+
}
|
|
17
|
+
/** The `invisible` expression that hides a node unless the condition holds. */
|
|
18
|
+
export declare function conditionToHide(condition: Condition): string;
|
|
19
|
+
/** When a part shows of a record's being edited: always, only while it is edited (Flectra's oe_edit_only), or only while it is read. */
|
|
20
|
+
export type ShownWhile = 'always' | 'editing' | 'reading';
|
|
21
|
+
/**
|
|
22
|
+
* A part's `invisible` cut in two: when it shows of the record's being edited
|
|
23
|
+
* — the `not editing` or `editing` the designer puts last — and the rest.
|
|
24
|
+
*/
|
|
25
|
+
export declare function splitShownWhile(invisible: unknown): {
|
|
26
|
+
mode: ShownWhile;
|
|
27
|
+
rest: unknown;
|
|
28
|
+
};
|
|
29
|
+
/** A part's `invisible` again, from the rest and when it shows of the record's being edited. */
|
|
30
|
+
export declare function withShownWhile(rest: string | undefined, mode: ShownWhile): string | undefined;
|
|
31
|
+
/** The condition a node's `invisible` holds: null when it always shows, `custom` when it was written another way. When it shows of the record's being edited is said apart. */
|
|
32
|
+
export declare function readCondition(shown: unknown): Condition | null | 'custom';
|
|
33
|
+
/**
|
|
34
|
+
* A rule as it holds — "required when", "read-only when" — rather than its
|
|
35
|
+
* opposite: "state is Blocked" is `state == 'blocked'`.
|
|
36
|
+
*/
|
|
37
|
+
export declare function conditionToHold(condition: Condition): string;
|
|
38
|
+
/** A rule written as it holds, read back: `always` for `true`, null for none, `custom` when written another way. */
|
|
39
|
+
export declare function readHolds(value: unknown): Condition | null | 'custom' | 'always';
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* When a page or a question shows, as the designer builds it: rules on
|
|
3
|
+
* earlier answers, all of them or any of them. The page format says when a
|
|
4
|
+
* node is *hidden*, so a condition is written as its opposite, without
|
|
5
|
+
* brackets: "show when A and B" hides when not A or not B. Only that shape is
|
|
6
|
+
* read back; a condition written by hand is left as it is.
|
|
7
|
+
*/
|
|
8
|
+
export interface ConditionRule {
|
|
9
|
+
field: string;
|
|
10
|
+
op: 'is' | 'is not';
|
|
11
|
+
value: string | number | boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface Condition {
|
|
14
|
+
join: 'all' | 'any';
|
|
15
|
+
rules: ConditionRule[];
|
|
16
|
+
}
|
|
17
|
+
/** The `invisible` expression that hides a node unless the condition holds. */
|
|
18
|
+
export declare function conditionToHide(condition: Condition): string;
|
|
19
|
+
/** When a part shows of a record's being edited: always, only while it is edited (Flectra's oe_edit_only), or only while it is read. */
|
|
20
|
+
export type ShownWhile = 'always' | 'editing' | 'reading';
|
|
21
|
+
/**
|
|
22
|
+
* A part's `invisible` cut in two: when it shows of the record's being edited
|
|
23
|
+
* — the `not editing` or `editing` the designer puts last — and the rest.
|
|
24
|
+
*/
|
|
25
|
+
export declare function splitShownWhile(invisible: unknown): {
|
|
26
|
+
mode: ShownWhile;
|
|
27
|
+
rest: unknown;
|
|
28
|
+
};
|
|
29
|
+
/** A part's `invisible` again, from the rest and when it shows of the record's being edited. */
|
|
30
|
+
export declare function withShownWhile(rest: string | undefined, mode: ShownWhile): string | undefined;
|
|
31
|
+
/** The condition a node's `invisible` holds: null when it always shows, `custom` when it was written another way. When it shows of the record's being edited is said apart. */
|
|
32
|
+
export declare function readCondition(shown: unknown): Condition | null | 'custom';
|
|
33
|
+
/**
|
|
34
|
+
* A rule as it holds — "required when", "read-only when" — rather than its
|
|
35
|
+
* opposite: "state is Blocked" is `state == 'blocked'`.
|
|
36
|
+
*/
|
|
37
|
+
export declare function conditionToHold(condition: Condition): string;
|
|
38
|
+
/** A rule written as it holds, read back: `always` for `true`, null for none, `custom` when written another way. */
|
|
39
|
+
export declare function readHolds(value: unknown): Condition | null | 'custom' | 'always';
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* When a page or a question shows, as the designer builds it: rules on
|
|
4
|
+
* earlier answers, all of them or any of them. The page format says when a
|
|
5
|
+
* node is *hidden*, so a condition is written as its opposite, without
|
|
6
|
+
* brackets: "show when A and B" hides when not A or not B. Only that shape is
|
|
7
|
+
* read back; a condition written by hand is left as it is.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.conditionToHide = conditionToHide;
|
|
11
|
+
exports.splitShownWhile = splitShownWhile;
|
|
12
|
+
exports.withShownWhile = withShownWhile;
|
|
13
|
+
exports.readCondition = readCondition;
|
|
14
|
+
exports.conditionToHold = conditionToHold;
|
|
15
|
+
exports.readHolds = readHolds;
|
|
16
|
+
/** A value as the expression language writes it. A quote cannot sit inside a string there, so it is left out. */
|
|
17
|
+
function literal(value) {
|
|
18
|
+
if (typeof value === 'string')
|
|
19
|
+
return `'${value.replace(/'/g, '')}'`;
|
|
20
|
+
if (typeof value === 'boolean')
|
|
21
|
+
return value ? 'True' : 'False';
|
|
22
|
+
return String(value);
|
|
23
|
+
}
|
|
24
|
+
/** The `invisible` expression that hides a node unless the condition holds. */
|
|
25
|
+
function conditionToHide(condition) {
|
|
26
|
+
// Each rule turned round, and the join with it: all → or, any → and.
|
|
27
|
+
const parts = condition.rules.map((rule) => `${rule.field} ${rule.op === 'is' ? '!=' : '=='} ${literal(rule.value)}`);
|
|
28
|
+
return parts.join(condition.join === 'all' ? ' or ' : ' and ');
|
|
29
|
+
}
|
|
30
|
+
const RULE = /^\s*([A-Za-z_]\w*)\s*(==|!=)\s*('[^']*'|True|False|-?\d+(?:\.\d+)?)\s*/;
|
|
31
|
+
/**
|
|
32
|
+
* A part's `invisible` cut in two: when it shows of the record's being edited
|
|
33
|
+
* — the `not editing` or `editing` the designer puts last — and the rest.
|
|
34
|
+
*/
|
|
35
|
+
function splitShownWhile(invisible) {
|
|
36
|
+
if (typeof invisible !== 'string')
|
|
37
|
+
return { mode: 'always', rest: invisible };
|
|
38
|
+
const found = /^(?:(.+) or )?(not )?editing$/.exec(invisible.trim());
|
|
39
|
+
if (!found)
|
|
40
|
+
return { mode: 'always', rest: invisible };
|
|
41
|
+
const rest = found[1]?.replace(/^\((.*)\)$/, '$1');
|
|
42
|
+
return { mode: found[2] ? 'editing' : 'reading', rest: rest || undefined };
|
|
43
|
+
}
|
|
44
|
+
/** A part's `invisible` again, from the rest and when it shows of the record's being edited. */
|
|
45
|
+
function withShownWhile(rest, mode) {
|
|
46
|
+
const clause = mode === 'editing' ? 'not editing' : mode === 'reading' ? 'editing' : '';
|
|
47
|
+
if (!clause)
|
|
48
|
+
return rest || undefined;
|
|
49
|
+
return rest ? `(${rest}) or ${clause}` : clause;
|
|
50
|
+
}
|
|
51
|
+
/** The condition a node's `invisible` holds: null when it always shows, `custom` when it was written another way. When it shows of the record's being edited is said apart. */
|
|
52
|
+
function readCondition(shown) {
|
|
53
|
+
const invisible = splitShownWhile(shown).rest;
|
|
54
|
+
if (invisible === undefined || invisible === null || invisible === '' || invisible === false)
|
|
55
|
+
return null;
|
|
56
|
+
if (typeof invisible !== 'string')
|
|
57
|
+
return 'custom';
|
|
58
|
+
const rules = [];
|
|
59
|
+
const joins = new Set();
|
|
60
|
+
let rest = invisible;
|
|
61
|
+
for (;;) {
|
|
62
|
+
const match = RULE.exec(rest);
|
|
63
|
+
if (!match)
|
|
64
|
+
return 'custom';
|
|
65
|
+
const raw = match[3];
|
|
66
|
+
const value = raw.startsWith("'") ? raw.slice(1, -1) : raw === 'True' ? true : raw === 'False' ? false : Number(raw);
|
|
67
|
+
rules.push({ field: match[1], op: match[2] === '!=' ? 'is' : 'is not', value });
|
|
68
|
+
rest = rest.slice(match[0].length);
|
|
69
|
+
if (!rest)
|
|
70
|
+
break;
|
|
71
|
+
const join = /^(and|or)\s+/.exec(rest);
|
|
72
|
+
if (!join)
|
|
73
|
+
return 'custom';
|
|
74
|
+
joins.add(join[1]);
|
|
75
|
+
rest = rest.slice(join[0].length);
|
|
76
|
+
}
|
|
77
|
+
// Both joins at once would need brackets the designer never writes.
|
|
78
|
+
if (joins.size > 1)
|
|
79
|
+
return 'custom';
|
|
80
|
+
return { join: joins.has('and') ? 'any' : 'all', rules };
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* A rule as it holds — "required when", "read-only when" — rather than its
|
|
84
|
+
* opposite: "state is Blocked" is `state == 'blocked'`.
|
|
85
|
+
*/
|
|
86
|
+
function conditionToHold(condition) {
|
|
87
|
+
const parts = condition.rules.map((rule) => `${rule.field} ${rule.op === 'is' ? '==' : '!='} ${literal(rule.value)}`);
|
|
88
|
+
return parts.join(condition.join === 'all' ? ' and ' : ' or ');
|
|
89
|
+
}
|
|
90
|
+
/** A rule written as it holds, read back: `always` for `true`, null for none, `custom` when written another way. */
|
|
91
|
+
function readHolds(value) {
|
|
92
|
+
if (value === true)
|
|
93
|
+
return 'always';
|
|
94
|
+
// The same words as a hiding rule, each turned round: a rule that hides is the opposite of one that holds.
|
|
95
|
+
const opposite = readCondition(value);
|
|
96
|
+
if (!opposite || opposite === 'custom')
|
|
97
|
+
return opposite;
|
|
98
|
+
return { join: opposite.join === 'all' ? 'any' : 'all', rules: opposite.rules.map((rule) => ({ ...rule, op: rule.op === 'is' ? 'is not' : 'is' })) };
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=conditions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conditions.js","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/conditions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* When a page or a question shows, as the designer builds it: rules on
|
|
3
|
+
* earlier answers, all of them or any of them. The page format says when a
|
|
4
|
+
* node is *hidden*, so a condition is written as its opposite, without
|
|
5
|
+
* brackets: "show when A and B" hides when not A or not B. Only that shape is
|
|
6
|
+
* read back; a condition written by hand is left as it is.
|
|
7
|
+
*/
|
|
8
|
+
/** A value as the expression language writes it. A quote cannot sit inside a string there, so it is left out. */
|
|
9
|
+
function literal(value) {
|
|
10
|
+
if (typeof value === 'string')
|
|
11
|
+
return `'${value.replace(/'/g, '')}'`;
|
|
12
|
+
if (typeof value === 'boolean')
|
|
13
|
+
return value ? 'True' : 'False';
|
|
14
|
+
return String(value);
|
|
15
|
+
}
|
|
16
|
+
/** The `invisible` expression that hides a node unless the condition holds. */
|
|
17
|
+
export function conditionToHide(condition) {
|
|
18
|
+
// Each rule turned round, and the join with it: all → or, any → and.
|
|
19
|
+
const parts = condition.rules.map((rule) => `${rule.field} ${rule.op === 'is' ? '!=' : '=='} ${literal(rule.value)}`);
|
|
20
|
+
return parts.join(condition.join === 'all' ? ' or ' : ' and ');
|
|
21
|
+
}
|
|
22
|
+
const RULE = /^\s*([A-Za-z_]\w*)\s*(==|!=)\s*('[^']*'|True|False|-?\d+(?:\.\d+)?)\s*/;
|
|
23
|
+
/**
|
|
24
|
+
* A part's `invisible` cut in two: when it shows of the record's being edited
|
|
25
|
+
* — the `not editing` or `editing` the designer puts last — and the rest.
|
|
26
|
+
*/
|
|
27
|
+
export function splitShownWhile(invisible) {
|
|
28
|
+
if (typeof invisible !== 'string')
|
|
29
|
+
return { mode: 'always', rest: invisible };
|
|
30
|
+
const found = /^(?:(.+) or )?(not )?editing$/.exec(invisible.trim());
|
|
31
|
+
if (!found)
|
|
32
|
+
return { mode: 'always', rest: invisible };
|
|
33
|
+
const rest = found[1]?.replace(/^\((.*)\)$/, '$1');
|
|
34
|
+
return { mode: found[2] ? 'editing' : 'reading', rest: rest || undefined };
|
|
35
|
+
}
|
|
36
|
+
/** A part's `invisible` again, from the rest and when it shows of the record's being edited. */
|
|
37
|
+
export function withShownWhile(rest, mode) {
|
|
38
|
+
const clause = mode === 'editing' ? 'not editing' : mode === 'reading' ? 'editing' : '';
|
|
39
|
+
if (!clause)
|
|
40
|
+
return rest || undefined;
|
|
41
|
+
return rest ? `(${rest}) or ${clause}` : clause;
|
|
42
|
+
}
|
|
43
|
+
/** The condition a node's `invisible` holds: null when it always shows, `custom` when it was written another way. When it shows of the record's being edited is said apart. */
|
|
44
|
+
export function readCondition(shown) {
|
|
45
|
+
const invisible = splitShownWhile(shown).rest;
|
|
46
|
+
if (invisible === undefined || invisible === null || invisible === '' || invisible === false)
|
|
47
|
+
return null;
|
|
48
|
+
if (typeof invisible !== 'string')
|
|
49
|
+
return 'custom';
|
|
50
|
+
const rules = [];
|
|
51
|
+
const joins = new Set();
|
|
52
|
+
let rest = invisible;
|
|
53
|
+
for (;;) {
|
|
54
|
+
const match = RULE.exec(rest);
|
|
55
|
+
if (!match)
|
|
56
|
+
return 'custom';
|
|
57
|
+
const raw = match[3];
|
|
58
|
+
const value = raw.startsWith("'") ? raw.slice(1, -1) : raw === 'True' ? true : raw === 'False' ? false : Number(raw);
|
|
59
|
+
rules.push({ field: match[1], op: match[2] === '!=' ? 'is' : 'is not', value });
|
|
60
|
+
rest = rest.slice(match[0].length);
|
|
61
|
+
if (!rest)
|
|
62
|
+
break;
|
|
63
|
+
const join = /^(and|or)\s+/.exec(rest);
|
|
64
|
+
if (!join)
|
|
65
|
+
return 'custom';
|
|
66
|
+
joins.add(join[1]);
|
|
67
|
+
rest = rest.slice(join[0].length);
|
|
68
|
+
}
|
|
69
|
+
// Both joins at once would need brackets the designer never writes.
|
|
70
|
+
if (joins.size > 1)
|
|
71
|
+
return 'custom';
|
|
72
|
+
return { join: joins.has('and') ? 'any' : 'all', rules };
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* A rule as it holds — "required when", "read-only when" — rather than its
|
|
76
|
+
* opposite: "state is Blocked" is `state == 'blocked'`.
|
|
77
|
+
*/
|
|
78
|
+
export function conditionToHold(condition) {
|
|
79
|
+
const parts = condition.rules.map((rule) => `${rule.field} ${rule.op === 'is' ? '==' : '!='} ${literal(rule.value)}`);
|
|
80
|
+
return parts.join(condition.join === 'all' ? ' and ' : ' or ');
|
|
81
|
+
}
|
|
82
|
+
/** A rule written as it holds, read back: `always` for `true`, null for none, `custom` when written another way. */
|
|
83
|
+
export function readHolds(value) {
|
|
84
|
+
if (value === true)
|
|
85
|
+
return 'always';
|
|
86
|
+
// The same words as a hiding rule, each turned round: a rule that hides is the opposite of one that holds.
|
|
87
|
+
const opposite = readCondition(value);
|
|
88
|
+
if (!opposite || opposite === 'custom')
|
|
89
|
+
return opposite;
|
|
90
|
+
return { join: opposite.join === 'all' ? 'any' : 'all', rules: opposite.rules.map((rule) => ({ ...rule, op: rule.op === 'is' ? 'is not' : 'is' })) };
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=conditions.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conditions.mjs","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/conditions.ts"],"names":[],"mappings":"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"}
|