@qoretechnologies/reqraft 0.10.54 → 0.10.55-pr.115.g37abdfc
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/.claude/CLAUDE.md +25 -0
- package/.tasks/INDEX.md +1 -0
- package/.tasks/STORY_NETWORK_ISOLATION.md +98 -0
- package/README.md +1 -1
- package/design/FORM_ENGINE_COMPACT.md +34 -0
- package/design/FORM_ENGINE_EXPRESSIONS.md +110 -0
- package/design/FORM_ENGINE_FIELD_MIGRATION.md +155 -1
- package/design/IDE_INTEGRATION.md +13 -0
- package/design/RENDER_EXPRESSION_TRANSPORT.md +76 -10
- package/design/SELECT_DIALOG_FLOOR.md +86 -0
- package/design/SMART_EDITOR_UX.md +21 -0
- package/design/UNAVAILABLE_ALLOWED_VALUES.md +226 -0
- package/dist/components/composer/Composer.d.ts +8 -3
- package/dist/components/composer/Composer.d.ts.map +1 -1
- package/dist/components/composer/Composer.js.map +1 -1
- package/dist/components/dpqlEditor/DpqlEditor.d.ts.map +1 -1
- package/dist/components/dpqlEditor/DpqlEditor.js +3 -3
- package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
- package/dist/components/dpqlEditor/dpqlHelpers.d.ts +6 -0
- package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
- package/dist/components/dpqlEditor/dpqlHelpers.js +21 -2
- package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
- package/dist/components/dpqlEditor/dpqlProbe.d.ts +37 -0
- package/dist/components/dpqlEditor/dpqlProbe.d.ts.map +1 -0
- package/dist/components/dpqlEditor/dpqlProbe.js +203 -0
- package/dist/components/dpqlEditor/dpqlProbe.js.map +1 -0
- package/dist/components/dpqlEditor/dpqlTags.d.ts +8 -0
- package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
- package/dist/components/dpqlEditor/dpqlTags.js +5 -1
- package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
- package/dist/components/dpqlEditor/index.d.ts +4 -0
- package/dist/components/dpqlEditor/index.d.ts.map +1 -1
- package/dist/components/dpqlEditor/index.js +5 -1
- package/dist/components/dpqlEditor/index.js.map +1 -1
- package/dist/components/dpqlEditor/types.d.ts +42 -2
- package/dist/components/dpqlEditor/types.d.ts.map +1 -1
- package/dist/components/dpqlEditor/types.js +0 -4
- package/dist/components/dpqlEditor/types.js.map +1 -1
- package/dist/components/dpqlEditor/useDpqlProbe.d.ts +4 -0
- package/dist/components/dpqlEditor/useDpqlProbe.d.ts.map +1 -0
- package/dist/components/dpqlEditor/useDpqlProbe.js +29 -0
- package/dist/components/dpqlEditor/useDpqlProbe.js.map +1 -0
- package/dist/components/dpqlEditor/useDpqlSession.d.ts +5 -2
- package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
- package/dist/components/dpqlEditor/useDpqlSession.js +8 -2
- package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
- package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
- package/dist/components/form/engine/CompactRow.js +414 -128
- package/dist/components/form/engine/CompactRow.js.map +1 -1
- package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
- package/dist/components/form/engine/CompactToolbar.js +5 -2
- package/dist/components/form/engine/CompactToolbar.js.map +1 -1
- package/dist/components/form/engine/FormEngine.d.ts +272 -19
- package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
- package/dist/components/form/engine/FormEngine.js +666 -161
- package/dist/components/form/engine/FormEngine.js.map +1 -1
- package/dist/components/form/engine/FormFieldsSkeleton.d.ts +48 -0
- package/dist/components/form/engine/FormFieldsSkeleton.d.ts.map +1 -0
- package/dist/components/form/engine/FormFieldsSkeleton.js +41 -0
- package/dist/components/form/engine/FormFieldsSkeleton.js.map +1 -0
- package/dist/components/form/engine/OptionFieldMessages.d.ts +108 -2
- package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
- package/dist/components/form/engine/OptionFieldMessages.js +203 -13
- package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
- package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
- package/dist/components/form/engine/_structuredData/SchemaDataView.js +68 -5
- package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
- package/dist/components/form/engine/compactRowContext.d.ts +15 -1
- package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
- package/dist/components/form/engine/compactRowContext.js.map +1 -1
- package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
- package/dist/components/form/engine/compactRowStyles.js +55 -29
- package/dist/components/form/engine/compactRowStyles.js.map +1 -1
- package/dist/components/form/engine/compactToolbarContext.d.ts +1 -0
- package/dist/components/form/engine/compactToolbarContext.d.ts.map +1 -1
- package/dist/components/form/engine/optionActions.d.ts +37 -1
- package/dist/components/form/engine/optionActions.d.ts.map +1 -1
- package/dist/components/form/engine/optionActions.js +71 -1
- package/dist/components/form/engine/optionActions.js.map +1 -1
- package/dist/components/form/engine/optionsContext.d.ts +22 -0
- package/dist/components/form/engine/optionsContext.d.ts.map +1 -0
- package/dist/components/form/engine/optionsContext.js +20 -0
- package/dist/components/form/engine/optionsContext.js.map +1 -0
- package/dist/components/form/engine/readFirst.d.ts +42 -1
- package/dist/components/form/engine/readFirst.d.ts.map +1 -1
- package/dist/components/form/engine/readFirst.js +76 -8
- package/dist/components/form/engine/readFirst.js.map +1 -1
- package/dist/components/form/engine/rendererTypes.d.ts +42 -3
- package/dist/components/form/engine/rendererTypes.d.ts.map +1 -1
- package/dist/components/form/engine/rendererTypes.js +3 -1
- package/dist/components/form/engine/rendererTypes.js.map +1 -1
- package/dist/components/form/engine/rowFocus.d.ts +30 -0
- package/dist/components/form/engine/rowFocus.d.ts.map +1 -0
- package/dist/components/form/engine/rowFocus.js +93 -0
- package/dist/components/form/engine/rowFocus.js.map +1 -0
- package/dist/components/form/engine/rowMenuContext.d.ts +78 -0
- package/dist/components/form/engine/rowMenuContext.d.ts.map +1 -0
- package/dist/components/form/engine/rowMenuContext.js +103 -0
- package/dist/components/form/engine/rowMenuContext.js.map +1 -0
- package/dist/components/form/engine/rowOpenPicker.d.ts +27 -0
- package/dist/components/form/engine/rowOpenPicker.d.ts.map +1 -0
- package/dist/components/form/engine/rowOpenPicker.js +30 -0
- package/dist/components/form/engine/rowOpenPicker.js.map +1 -0
- package/dist/components/form/engine/typeChoices.d.ts +42 -0
- package/dist/components/form/engine/typeChoices.d.ts.map +1 -0
- package/dist/components/form/engine/typeChoices.js +33 -0
- package/dist/components/form/engine/typeChoices.js.map +1 -0
- package/dist/components/form/expressions/DpqlRendering.d.ts +26 -0
- package/dist/components/form/expressions/DpqlRendering.d.ts.map +1 -0
- package/dist/components/form/expressions/DpqlRendering.js +53 -0
- package/dist/components/form/expressions/DpqlRendering.js.map +1 -0
- package/dist/components/form/expressions/ExpressionField.d.ts +7 -1
- package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
- package/dist/components/form/expressions/ExpressionField.js +203 -45
- package/dist/components/form/expressions/ExpressionField.js.map +1 -1
- package/dist/components/form/expressions/argumentPresence.d.ts +84 -0
- package/dist/components/form/expressions/argumentPresence.d.ts.map +1 -0
- package/dist/components/form/expressions/argumentPresence.js +217 -0
- package/dist/components/form/expressions/argumentPresence.js.map +1 -0
- package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/argumentLabel.js +9 -4
- package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
- package/dist/components/form/expressions/builder/index.d.ts +15 -2
- package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/index.js +21 -65
- package/dist/components/form/expressions/builder/index.js.map +1 -1
- package/dist/components/form/expressions/builder/renderTemplate.d.ts +4 -1
- package/dist/components/form/expressions/builder/renderTemplate.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/renderTemplate.js +10 -67
- package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
- package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
- package/dist/components/form/expressions/mockExpressions.js +8 -4
- package/dist/components/form/expressions/mockExpressions.js.map +1 -1
- package/dist/components/form/expressions/renderExpressionToText.d.ts +1 -1
- package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
- package/dist/components/form/expressions/renderExpressionToText.js +95 -19
- package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
- package/dist/components/form/expressions/types.d.ts +7 -0
- package/dist/components/form/expressions/types.d.ts.map +1 -1
- package/dist/components/form/expressions/useExpressions.d.ts.map +1 -1
- package/dist/components/form/expressions/useExpressions.js +5 -2
- package/dist/components/form/expressions/useExpressions.js.map +1 -1
- package/dist/components/form/expressions/useRenderExpression.d.ts +7 -16
- package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
- package/dist/components/form/expressions/useRenderExpression.js +50 -126
- package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
- package/dist/components/form/fields/Field.d.ts +18 -0
- package/dist/components/form/fields/Field.d.ts.map +1 -1
- package/dist/components/form/fields/Field.js +54 -8
- package/dist/components/form/fields/Field.js.map +1 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.d.ts +11 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.js +52 -8
- package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
- package/dist/components/form/fields/auto/AutoFormField.d.ts +7 -1
- package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
- package/dist/components/form/fields/auto/AutoFormField.js +91 -28
- package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
- package/dist/components/form/fields/date/Date.d.ts +1 -1
- package/dist/components/form/fields/date/Date.d.ts.map +1 -1
- package/dist/components/form/fields/date/Date.js +16 -2
- package/dist/components/form/fields/date/Date.js.map +1 -1
- package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
- package/dist/components/form/fields/long-string/LongString.js +14 -2
- package/dist/components/form/fields/long-string/LongString.js.map +1 -1
- package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
- package/dist/components/form/fields/multi-select/MultiSelectFormField.js +50 -4
- package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
- package/dist/components/form/fields/rich-text/RichText.d.ts +47 -2
- package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
- package/dist/components/form/fields/rich-text/RichText.js +153 -12
- package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
- package/dist/components/form/fields/select/Select.d.ts.map +1 -1
- package/dist/components/form/fields/select/Select.js +120 -20
- package/dist/components/form/fields/select/Select.js.map +1 -1
- package/dist/components/form/fields/select/SelectCollection.d.ts +166 -9
- package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
- package/dist/components/form/fields/select/SelectCollection.js +200 -7
- package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +2 -1
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +3 -2
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
- package/dist/components/form/fields/template/TemplateField.d.ts +34 -2
- package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
- package/dist/components/form/fields/template/TemplateField.js +606 -58
- package/dist/components/form/fields/template/TemplateField.js.map +1 -1
- package/dist/components/form/fields/template/TemplateText.d.ts +36 -0
- package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -0
- package/dist/components/form/fields/template/TemplateText.js +80 -0
- package/dist/components/form/fields/template/TemplateText.js.map +1 -0
- package/dist/components/form/index.d.ts +2 -0
- package/dist/components/form/index.d.ts.map +1 -1
- package/dist/components/form/index.js +4 -0
- package/dist/components/form/index.js.map +1 -1
- package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
- package/dist/components/smartEditor/SmartEditor.js +29 -8
- package/dist/components/smartEditor/SmartEditor.js.map +1 -1
- package/dist/components/smartEditor/useLspSession.d.ts +5 -1
- package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspSession.js +16 -2
- package/dist/components/smartEditor/useLspSession.js.map +1 -1
- package/dist/components/supportTicket/TicketReplyBox.d.ts +8 -4
- package/dist/components/supportTicket/TicketReplyBox.d.ts.map +1 -1
- package/dist/components/supportTicket/TicketReplyBox.js.map +1 -1
- package/dist/helpers/common.d.ts.map +1 -1
- package/dist/helpers/common.js +7 -3
- package/dist/helpers/common.js.map +1 -1
- package/dist/helpers/dpqlDetection.d.ts +58 -0
- package/dist/helpers/dpqlDetection.d.ts.map +1 -0
- package/dist/helpers/dpqlDetection.js +164 -0
- package/dist/helpers/dpqlDetection.js.map +1 -0
- package/dist/helpers/optionUiTypes.d.ts +31 -3
- package/dist/helpers/optionUiTypes.d.ts.map +1 -1
- package/dist/helpers/optionUiTypes.js +36 -1
- package/dist/helpers/optionUiTypes.js.map +1 -1
- package/dist/helpers/options.d.ts +57 -0
- package/dist/helpers/options.d.ts.map +1 -1
- package/dist/helpers/options.js +97 -1
- package/dist/helpers/options.js.map +1 -1
- package/dist/helpers/templateItems.d.ts +47 -0
- package/dist/helpers/templateItems.d.ts.map +1 -0
- package/dist/helpers/templateItems.js +88 -0
- package/dist/helpers/templateItems.js.map +1 -0
- package/dist/helpers/templateText.d.ts +80 -0
- package/dist/helpers/templateText.d.ts.map +1 -0
- package/dist/helpers/templateText.js +291 -0
- package/dist/helpers/templateText.js.map +1 -0
- package/dist/helpers/templates.d.ts +30 -12
- package/dist/helpers/templates.d.ts.map +1 -1
- package/dist/helpers/templates.js +91 -33
- package/dist/helpers/templates.js.map +1 -1
- package/dist/helpers/validations.d.ts +17 -8
- package/dist/helpers/validations.d.ts.map +1 -1
- package/dist/helpers/validations.js +117 -22
- package/dist/helpers/validations.js.map +1 -1
- package/dist/hooks/useArgSchema.d.ts +2 -1
- package/dist/hooks/useArgSchema.d.ts.map +1 -1
- package/dist/hooks/useFetch/useFetch.d.ts +3 -1
- package/dist/hooks/useFetch/useFetch.d.ts.map +1 -1
- package/dist/hooks/useFetch/useFetch.js +47 -9
- package/dist/hooks/useFetch/useFetch.js.map +1 -1
- package/dist/hooks/useTemplates.d.ts +20 -0
- package/dist/hooks/useTemplates.d.ts.map +1 -1
- package/dist/hooks/useTemplates.js +34 -2
- package/dist/hooks/useTemplates.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/fetch.d.ts +151 -1
- package/dist/utils/fetch.d.ts.map +1 -1
- package/dist/utils/fetch.js +256 -44
- package/dist/utils/fetch.js.map +1 -1
- package/dist/utils/lspClient.d.ts +6 -0
- package/dist/utils/lspClient.d.ts.map +1 -1
- package/dist/utils/lspClient.js +62 -11
- package/dist/utils/lspClient.js.map +1 -1
- package/dist/utils/websocket.d.ts +6 -0
- package/dist/utils/websocket.d.ts.map +1 -1
- package/dist/utils/websocket.js +15 -7
- package/dist/utils/websocket.js.map +1 -1
- package/package.json +8 -4
- package/src/components/composer/Composer.tsx +7 -2
- package/src/components/dpqlEditor/DpqlEditor.stories.tsx +3 -119
- package/src/components/dpqlEditor/DpqlEditor.tsx +5 -2
- package/src/components/dpqlEditor/dpqlHelpers.ts +20 -1
- package/src/components/dpqlEditor/dpqlProbe.ts +165 -0
- package/src/components/dpqlEditor/dpqlTags.ts +13 -0
- package/src/components/dpqlEditor/index.ts +4 -0
- package/src/components/dpqlEditor/types.ts +38 -2
- package/src/components/dpqlEditor/useDpqlProbe.ts +33 -0
- package/src/components/dpqlEditor/useDpqlSession.ts +20 -4
- package/src/components/form/engine/CompactRow.tsx +487 -160
- package/src/components/form/engine/CompactToolbar.tsx +10 -3
- package/src/components/form/engine/FormEngine.stories.tsx +1294 -161
- package/src/components/form/engine/FormEngine.tsx +916 -213
- package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +331 -0
- package/src/components/form/engine/FormFieldsSkeleton.tsx +77 -0
- package/src/components/form/engine/OptionFieldMessages.tsx +300 -14
- package/src/components/form/engine/_structuredData/SchemaDataView.tsx +94 -3
- package/src/components/form/engine/compactRowContext.ts +15 -6
- package/src/components/form/engine/compactRowStyles.ts +56 -2
- package/src/components/form/engine/compactToolbarContext.ts +1 -1
- package/src/components/form/engine/optionActions.ts +89 -1
- package/src/components/form/engine/optionsContext.ts +24 -0
- package/src/components/form/engine/readFirst.ts +88 -8
- package/src/components/form/engine/rendererTypes.ts +48 -4
- package/src/components/form/engine/rowFocus.ts +101 -0
- package/src/components/form/engine/rowMenuContext.ts +159 -0
- package/src/components/form/engine/rowOpenPicker.ts +27 -0
- package/src/components/form/engine/typeChoices.ts +63 -0
- package/src/components/form/expressions/DpqlRendering.tsx +85 -0
- package/src/components/form/expressions/ExpressionField.stories.tsx +826 -48
- package/src/components/form/expressions/ExpressionField.tsx +269 -55
- package/src/components/form/expressions/argumentPresence.ts +213 -0
- package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +38 -21
- package/src/components/form/expressions/builder/argumentLabel.tsx +10 -4
- package/src/components/form/expressions/builder/index.tsx +39 -81
- package/src/components/form/expressions/builder/renderTemplate.tsx +23 -56
- package/src/components/form/expressions/dpqlMockLanguage.ts +565 -0
- package/src/components/form/expressions/dpqlMockLsp.ts +109 -83
- package/src/components/form/expressions/mockExpressions.ts +8 -4
- package/src/components/form/expressions/renderExpressionToText.ts +112 -22
- package/src/components/form/expressions/types.ts +7 -0
- package/src/components/form/expressions/useExpressions.ts +5 -1
- package/src/components/form/expressions/useRenderExpression.ts +43 -127
- package/src/components/form/fields/Field.tsx +99 -20
- package/src/components/form/fields/allowed-values/AllowedValues.tsx +106 -44
- package/src/components/form/fields/auto/AutoFormField.stories.tsx +85 -18
- package/src/components/form/fields/auto/AutoFormField.tsx +97 -21
- package/src/components/form/fields/date/Date.tsx +17 -1
- package/src/components/form/fields/long-string/LongString.tsx +15 -3
- package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +65 -6
- package/src/components/form/fields/rich-text/RichText.tsx +248 -30
- package/src/components/form/fields/select/Select.stories.tsx +392 -0
- package/src/components/form/fields/select/Select.tsx +164 -27
- package/src/components/form/fields/select/SelectCollection.tsx +350 -6
- package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +4 -2
- package/src/components/form/fields/template/TemplateField.stories.tsx +93 -14
- package/src/components/form/fields/template/TemplateField.tsx +825 -131
- package/src/components/form/fields/template/TemplateText.tsx +115 -0
- package/src/components/form/index.tsx +4 -0
- package/src/components/log/Log.stories.tsx +2 -1
- package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +3 -3
- package/src/components/smartEditor/SmartEditor.tsx +41 -9
- package/src/components/smartEditor/__fixtures__/mockLspServer.ts +52 -3
- package/src/components/smartEditor/useLspSession.ts +21 -3
- package/src/components/supportTicket/TicketReplyBox.tsx +8 -4
- package/src/components/ticketThread/TicketThread.stories.tsx +1 -0
- package/src/helpers/common.ts +7 -3
- package/src/helpers/dpqlDetection.ts +209 -0
- package/src/helpers/optionUiTypes.ts +38 -0
- package/src/helpers/options.ts +96 -0
- package/src/helpers/templateItems.ts +81 -0
- package/src/helpers/templateText.ts +350 -0
- package/src/helpers/templates.ts +94 -41
- package/src/helpers/validations.ts +138 -39
- package/src/hooks/useFetch/useFetch.stories.tsx +6 -5
- package/src/hooks/useFetch/useFetch.tsx +53 -7
- package/src/hooks/useStorage/useStorage.stories.tsx +2 -1
- package/src/hooks/useTemplates.ts +41 -0
- package/src/hooks/useWebSocket/useWebsocket.stories.tsx +2 -1
- package/src/index.tsx +14 -1
- package/src/stores/currentUser/currentUser.stories.tsx +2 -1
- package/src/stories/storyNetwork.ts +92 -0
- package/src/utils/fetch.ts +311 -21
- package/src/utils/lspClient.ts +68 -11
- package/src/utils/websocket.ts +20 -9
- package/dist/components/form/engine/__fixtures__/basicFormOptions.d.ts +0 -73
- package/dist/components/form/engine/__fixtures__/basicFormOptions.d.ts.map +0 -1
- package/dist/components/form/engine/__fixtures__/basicFormOptions.js +0 -317
- package/dist/components/form/engine/__fixtures__/basicFormOptions.js.map +0 -1
- package/dist/components/form/engine/__fixtures__/fieldChromeOptions.d.ts +0 -41
- package/dist/components/form/engine/__fixtures__/fieldChromeOptions.d.ts.map +0 -1
- package/dist/components/form/engine/__fixtures__/fieldChromeOptions.js +0 -45
- package/dist/components/form/engine/__fixtures__/fieldChromeOptions.js.map +0 -1
- package/dist/components/form/expressions/dpqlMockLsp.d.ts +0 -3
- package/dist/components/form/expressions/dpqlMockLsp.d.ts.map +0 -1
- package/dist/components/form/expressions/dpqlMockLsp.js +0 -91
- package/dist/components/form/expressions/dpqlMockLsp.js.map +0 -1
- package/dist/components/form/fields/template/__fixtures__/longExampleValue.d.ts +0 -2
- package/dist/components/form/fields/template/__fixtures__/longExampleValue.d.ts.map +0 -1
- package/dist/components/form/fields/template/__fixtures__/longExampleValue.js +0 -9
- package/dist/components/form/fields/template/__fixtures__/longExampleValue.js.map +0 -1
- package/dist/components/smartEditor/__fixtures__/mockLspServer.d.ts +0 -55
- package/dist/components/smartEditor/__fixtures__/mockLspServer.d.ts.map +0 -1
- package/dist/components/smartEditor/__fixtures__/mockLspServer.js +0 -126
- package/dist/components/smartEditor/__fixtures__/mockLspServer.js.map +0 -1
- package/dist/stories/Data/fileFieldArgSchema.json +0 -86
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2026 Qore Technologies, s.r.o.
|
|
3
|
+
/**
|
|
4
|
+
* Is this expression argument SUPPLIED, or is it still missing?
|
|
5
|
+
*
|
|
6
|
+
* DPQL has a null literal: `null` parses to `{exp: "value", args: [null]}` and
|
|
7
|
+
* round-trips, and an author writing it in the text editor means *"this is the
|
|
8
|
+
* value — nothing"*. It is the only way to assert that a call returned no
|
|
9
|
+
* value, which is how it was reported.
|
|
10
|
+
*
|
|
11
|
+
* The rule, stated once here because three different places had drawn it
|
|
12
|
+
* differently: **an argument that is explicitly null is supplied; one that is
|
|
13
|
+
* absent or `undefined` is still missing.**
|
|
14
|
+
*
|
|
15
|
+
* The builder used to ask `size(arg) === 0`, and lodash answers `0` for `null`
|
|
16
|
+
* as readily as for `{}`. So an explicit null was read as a missing argument
|
|
17
|
+
* and reset from the catalogue's declaration — which is how a saved draft ended
|
|
18
|
+
* up holding `{"type": "any", "required": true}`, an argument DEFINITION where
|
|
19
|
+
* its value should be, with the author's `null` gone and `required` (a schema
|
|
20
|
+
* key, never a value key) left behind to give it away.
|
|
21
|
+
*/
|
|
22
|
+
var __assign = (this && this.__assign) || function () {
|
|
23
|
+
__assign = Object.assign || function(t) {
|
|
24
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
25
|
+
s = arguments[i];
|
|
26
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
27
|
+
t[p] = s[p];
|
|
28
|
+
}
|
|
29
|
+
return t;
|
|
30
|
+
};
|
|
31
|
+
return __assign.apply(this, arguments);
|
|
32
|
+
};
|
|
33
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
34
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
35
|
+
if (ar || !(i in from)) {
|
|
36
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
37
|
+
ar[i] = from[i];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
41
|
+
};
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.addMissingExpressionArgs = exports.shouldMarkAsExpression = exports.looksLikeExpressionAst = exports.asExpressionArgumentEnvelope = exports.isExpressionArgumentMissing = void 0;
|
|
44
|
+
/**
|
|
45
|
+
* True when `arg` carries no value yet — `undefined`, the `{}` the builder
|
|
46
|
+
* writes when a type change resets an argument, or any envelope with no
|
|
47
|
+
* `value` in it.
|
|
48
|
+
*
|
|
49
|
+
* `null` is NOT missing: it is the null literal.
|
|
50
|
+
*
|
|
51
|
+
* The rule used to be "an object with no keys at all", which let an envelope
|
|
52
|
+
* holding nothing but SCHEMA keys pass as a supplied value. That is how a saved
|
|
53
|
+
* draft kept `{type: 'any', required: true}` — an argument DEFINITION where the
|
|
54
|
+
* author's value belonged — and why re-opening the expression never repaired
|
|
55
|
+
* it: the builder looked at those two keys, concluded the argument was already
|
|
56
|
+
* supplied, and left the definition in place as data. `required` is a schema
|
|
57
|
+
* key; nothing ever reads it back off a stored value.
|
|
58
|
+
*
|
|
59
|
+
* Asking for the `value` instead makes the question the one that was always
|
|
60
|
+
* meant: has the author put something here?
|
|
61
|
+
*
|
|
62
|
+
* @param arg one entry of an expression's `args`
|
|
63
|
+
*/
|
|
64
|
+
var isExpressionArgumentMissing = function (arg) {
|
|
65
|
+
if (arg === null) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
if (arg === undefined) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
if (typeof arg !== 'object') {
|
|
72
|
+
// a raw scalar argument — `0`, `false` and `''` are values too
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
return arg.value === undefined;
|
|
76
|
+
};
|
|
77
|
+
exports.isExpressionArgumentMissing = isExpressionArgumentMissing;
|
|
78
|
+
/**
|
|
79
|
+
* The shape the builder stores an argument in: `{type, value}`.
|
|
80
|
+
*
|
|
81
|
+
* A parse result carries its arguments RAW — `args: [null]`, `args: [3]` —
|
|
82
|
+
* because that is what the grammar produced. The builder's editors read
|
|
83
|
+
* `arg.value`, so a raw argument has to be widened before it is stored, and
|
|
84
|
+
* widening `null` is the whole point: dropped instead, the author's null
|
|
85
|
+
* becomes an argument with no `value` key at all, which every later reader
|
|
86
|
+
* treats as an empty field.
|
|
87
|
+
*
|
|
88
|
+
* An argument that is already an envelope is returned untouched.
|
|
89
|
+
*
|
|
90
|
+
* @param arg one entry of an expression's `args`
|
|
91
|
+
* @param uiType the type the catalogue declares for that position
|
|
92
|
+
*/
|
|
93
|
+
var asExpressionArgumentEnvelope = function (arg, uiType) {
|
|
94
|
+
if (arg !== null && (arg === undefined || typeof arg === 'object')) {
|
|
95
|
+
return arg;
|
|
96
|
+
}
|
|
97
|
+
return __assign({ value: arg }, (uiType ? { type: uiType } : {}));
|
|
98
|
+
};
|
|
99
|
+
exports.asExpressionArgumentEnvelope = asExpressionArgumentEnvelope;
|
|
100
|
+
/**
|
|
101
|
+
* Does this value still look like an expression AST?
|
|
102
|
+
*
|
|
103
|
+
* `{exp, args}` is the shape the builder and `dpql/parse` both produce. The
|
|
104
|
+
* check is structural on purpose: the flag that marks an option as holding an
|
|
105
|
+
* expression describes its VALUE, so the value is what should decide whether
|
|
106
|
+
* the flag survives a change that said nothing about it.
|
|
107
|
+
*/
|
|
108
|
+
var looksLikeExpressionAst = function (value) {
|
|
109
|
+
return !!value &&
|
|
110
|
+
typeof value === 'object' &&
|
|
111
|
+
!Array.isArray(value) &&
|
|
112
|
+
typeof value.exp === 'string';
|
|
113
|
+
};
|
|
114
|
+
exports.looksLikeExpressionAst = looksLikeExpressionAst;
|
|
115
|
+
/**
|
|
116
|
+
* Whether an option should still be marked as holding an expression.
|
|
117
|
+
*
|
|
118
|
+
* The form engine used to delete the flag on ANY change that did not re-assert
|
|
119
|
+
* it, and most changes do not: an editor re-mounting, a revert, a validation
|
|
120
|
+
* pass. The value stayed the AST while the flag went, so the option degraded
|
|
121
|
+
* into a plain hash — which is how an assertion's Expected Value came back
|
|
122
|
+
* from a saved draft as a two-field object showing `exp` and `args`, and why
|
|
123
|
+
* `encodeTestValue` then stored it with `source: "literal"`.
|
|
124
|
+
*
|
|
125
|
+
* @param isFunction what the caller said: `true` sets the flag, `false` clears
|
|
126
|
+
* it deliberately (choosing a concrete type does this), `undefined` is no
|
|
127
|
+
* opinion at all
|
|
128
|
+
* @param value the option's new value
|
|
129
|
+
* @param wasExpression whether the option was marked before this change
|
|
130
|
+
*/
|
|
131
|
+
var shouldMarkAsExpression = function (isFunction, value, wasExpression) {
|
|
132
|
+
if (isFunction === true) {
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
if (isFunction === false) {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
// No opinion: the flag belongs to the value, so it survives exactly as long
|
|
139
|
+
// as the value is still an expression.
|
|
140
|
+
return !!wasExpression && (0, exports.looksLikeExpressionAst)(value);
|
|
141
|
+
};
|
|
142
|
+
exports.shouldMarkAsExpression = shouldMarkAsExpression;
|
|
143
|
+
/**
|
|
144
|
+
* Fill in an expression's missing arguments, leaving the supplied ones alone.
|
|
145
|
+
*
|
|
146
|
+
* Extracted from the builder so the decision it makes can be tested directly:
|
|
147
|
+
* a component test of the same behaviour passed just as happily with the defect
|
|
148
|
+
* in place, because the builder normalises on an interaction the harness never
|
|
149
|
+
* performed. A test that cannot fail is worse than none.
|
|
150
|
+
*
|
|
151
|
+
* @param expressions the served expression catalogue
|
|
152
|
+
* @param expression the chosen expression's `name`
|
|
153
|
+
* @param args the arguments so far — raw from a parse, or envelopes from the
|
|
154
|
+
* builder's own editors
|
|
155
|
+
*/
|
|
156
|
+
/**
|
|
157
|
+
* An argument slot with nothing in it yet: the catalogue's default when it has
|
|
158
|
+
* one, otherwise an envelope typed for the editors that need a type to mount.
|
|
159
|
+
* `false`, `0` and `''` are defaults too — a truthiness test dropped them.
|
|
160
|
+
*/
|
|
161
|
+
var emptyArgumentSlot = function (arg) {
|
|
162
|
+
return (arg === null || arg === void 0 ? void 0 : arg.default_value) != null ?
|
|
163
|
+
{ value: arg.default_value, type: arg.ui_type }
|
|
164
|
+
: {
|
|
165
|
+
type: (arg === null || arg === void 0 ? void 0 : arg.ui_type) === 'richtext' || (arg === null || arg === void 0 ? void 0 : arg.ui_type) === 'number' || (arg === null || arg === void 0 ? void 0 : arg.ui_type) === 'bool' ?
|
|
166
|
+
arg.ui_type
|
|
167
|
+
: undefined,
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
var addMissingExpressionArgs = function (expressions, expression, args) {
|
|
171
|
+
var _a, _b;
|
|
172
|
+
if (args === void 0) { args = []; }
|
|
173
|
+
var newArgs = __spreadArray([], args, true);
|
|
174
|
+
var selected = expressions === null || expressions === void 0 ? void 0 : expressions.find(function (exp) { return (exp === null || exp === void 0 ? void 0 : exp.name) === expression; });
|
|
175
|
+
if (!selected) {
|
|
176
|
+
return newArgs;
|
|
177
|
+
}
|
|
178
|
+
if (selected.varargs) {
|
|
179
|
+
if (selected.subtype === 2) {
|
|
180
|
+
newArgs.push({ is_expression: true, value: { args: [] } });
|
|
181
|
+
return newArgs;
|
|
182
|
+
}
|
|
183
|
+
/* Every operand follows the one schema argument. Slots are added up to
|
|
184
|
+
`min_args`, and EVERY missing one is filled, not only the new ones: the
|
|
185
|
+
builder leaves an empty slot behind for each argument the previous value
|
|
186
|
+
had no operand for (a fresh builder has none), and an operand editor or
|
|
187
|
+
the validator reading such a slot for its `type` crashed the builder. A
|
|
188
|
+
raw operand from a parse is a value, so it is left alone. */
|
|
189
|
+
var schema_1 = ((_a = selected.args) !== null && _a !== void 0 ? _a : [])[0];
|
|
190
|
+
newArgs.push.apply(newArgs, Array.from({ length: ((_b = selected.min_args) !== null && _b !== void 0 ? _b : 1) - 1 }, function () { return undefined; }));
|
|
191
|
+
newArgs.forEach(function (slot, index) {
|
|
192
|
+
if ((0, exports.isExpressionArgumentMissing)(slot)) {
|
|
193
|
+
newArgs[index] = emptyArgumentSlot(schema_1);
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
return newArgs;
|
|
197
|
+
}
|
|
198
|
+
selected.args.forEach(function (arg, index) {
|
|
199
|
+
/* A RAW argument, as `dpql/parse` produces it — `args: [null]`, `args: [3]`
|
|
200
|
+
— is widened into the `{type, value}` envelope the editors read. Widening
|
|
201
|
+
the null is the point: dropped instead, the author's `null` became an
|
|
202
|
+
argument with no `value` key, and the branch below then filled the gap
|
|
203
|
+
from the catalogue's DECLARATION, which is how a saved draft came back
|
|
204
|
+
holding `{type: "any", required: true}` where its value belonged. */
|
|
205
|
+
newArgs[index] = (0, exports.asExpressionArgumentEnvelope)(newArgs[index], arg.ui_type);
|
|
206
|
+
/* "Missing" already means "carries no value", so an argument waiting for
|
|
207
|
+
its catalogue default is simply a missing one — it needs no separate
|
|
208
|
+
test. */
|
|
209
|
+
if (!(0, exports.isExpressionArgumentMissing)(newArgs[index])) {
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
newArgs[index] = emptyArgumentSlot(arg);
|
|
213
|
+
});
|
|
214
|
+
return newArgs;
|
|
215
|
+
};
|
|
216
|
+
exports.addMissingExpressionArgs = addMissingExpressionArgs;
|
|
217
|
+
//# sourceMappingURL=argumentPresence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argumentPresence.js","sourceRoot":"","sources":["../../../../src/components/form/expressions/argumentPresence.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argumentLabel.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/argumentLabel.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhF,MAAM,WAAW,oCAAoC;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,8BAA8B,+CAMxC,oCAAoC,
|
|
1
|
+
{"version":3,"file":"argumentLabel.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/argumentLabel.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhF,MAAM,WAAW,oCAAoC;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,8BAA8B,+CAMxC,oCAAoC,4CA4HtC,CAAC"}
|
|
@@ -34,9 +34,14 @@ var ExpressionBuilderArgumentLabel = function (_a) {
|
|
|
34
34
|
types.getExactMatches(schema.ui_type).includes('any') ||
|
|
35
35
|
type === 'any';
|
|
36
36
|
var acceptedTypes = (0, lodash_1.uniq)(__spreadArray(__spreadArray([], types.getExactMatches(schema.ui_type), true), types.getAcceptedTypes(schema.ui_type), true));
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
/* `arg` is optional — an operand the author has not filled in yet has no
|
|
38
|
+
entry at all, and a literal carried straight from a parse can be the null
|
|
39
|
+
literal itself. Both were dereferenced unguarded here, which took the whole
|
|
40
|
+
expression editor down to its error boundary rather than drawing an empty
|
|
41
|
+
argument. */
|
|
42
|
+
var _c = (arg === null || arg === void 0 ? void 0 : arg.is_expression) ?
|
|
43
|
+
(0, validations_1.validateFieldWithResult)('expression', arg, { expressions: expressions })
|
|
44
|
+
: (0, validations_1.validateFieldWithResult)(argumentType, arg === null || arg === void 0 ? void 0 : arg.value, schema, !schema.required), isValid = _c.isValid, reason = _c.reason;
|
|
40
45
|
return ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreP, { size: 'tiny', effect: {
|
|
41
46
|
uppercase: true,
|
|
42
47
|
spaced: 1,
|
|
@@ -52,7 +57,7 @@ var ExpressionBuilderArgumentLabel = function (_a) {
|
|
|
52
57
|
italic: true,
|
|
53
58
|
weight: 'light',
|
|
54
59
|
opacity: 0.5,
|
|
55
|
-
}, children: ['[', types.getTypeDisplayName(schema.ui_type)] }), !matchesType ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'ErrorWarningLine', color: 'warning', size: '10px', margin: 'both' })) : null, (argumentType || (arg.is_expression && ((_b = arg.value) === null || _b === void 0 ? void 0 : _b.exp))) &&
|
|
60
|
+
}, children: ['[', types.getTypeDisplayName(schema.ui_type)] }), !matchesType ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'ErrorWarningLine', color: 'warning', size: '10px', margin: 'both' })) : null, (argumentType || ((arg === null || arg === void 0 ? void 0 : arg.is_expression) && ((_b = arg.value) === null || _b === void 0 ? void 0 : _b.exp))) &&
|
|
56
61
|
types.getTypeDisplayName(argumentType) !== types.getTypeDisplayName(schema.ui_type) &&
|
|
57
62
|
!matchesTypeExactly ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [matchesType ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'CheckLine', color: 'pending', size: '10px', margin: 'both', tooltip: 'Type matches, but a transformation may be applied' })) : null, (0, jsx_runtime_1.jsx)(reqore_1.ReqoreSpan, { effect: {
|
|
58
63
|
italic: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argumentLabel.js","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/argumentLabel.tsx"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mDAA2E;AAC3E,iCAA8B;AAC9B,+DAAuF;AACvF,+DAA0E;AAC1E,iEAAgE;AAWzD,IAAM,8BAA8B,GAAG,UAAC,EAMR;;QALrC,KAAK,WAAA,EACL,GAAG,SAAA,EACH,MAAM,YAAA,EACN,WAAW,iBAAA,EACX,IAAI,UAAA;IAEJ,IAAM,KAAK,GAAG,IAAA,6BAAa,GAAE,CAAC;IAE9B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CACL,uBAAC,gBAAO,IACN,IAAI,EAAC,MAAM,EACX,MAAM,EAAE;gBACN,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,GAAG;aACb,YAEA,KAAK,GACE,CACX,CAAC;IACJ,CAAC;IAED,IAAM,WAAW,GAAG,IAAA,iCAAmB,EAAC,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAElE,IAAM,YAAY,GAAG,IAAA,6BAAe,EAAC,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC/D,IAAM,kBAAkB,GACtB,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC5D,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACrD,IAAI,KAAK,KAAK,CAAC;IACjB,IAAM,aAAa,GAAG,IAAA,aAAI,kCACrB,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,SACrC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,QACzC,CAAC;
|
|
1
|
+
{"version":3,"file":"argumentLabel.js","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/argumentLabel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IReqorePanelAction } from '@qoretechnologies/reqore/dist/components/Panel';
|
|
2
2
|
import { IReqoreFormTemplates } from '@qoretechnologies/reqore/dist/components/Textarea';
|
|
3
3
|
import { TQorusType } from '@qoretechnologies/ts-toolkit';
|
|
4
|
+
import React from 'react';
|
|
4
5
|
import { IExpression, IExpressionSchema, TExpressionReorder } from '../types';
|
|
5
6
|
export interface IExpressionBuilderProps {
|
|
6
7
|
localTemplates?: IReqoreFormTemplates;
|
|
@@ -21,6 +22,18 @@ export interface IExpressionBuilderProps {
|
|
|
21
22
|
expressions?: IExpressionSchema[];
|
|
22
23
|
expressionsUrl?: string;
|
|
23
24
|
serverHandled?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* SEAM (reqraft): the host's per-`ui_type` editors, forwarded to the operand
|
|
27
|
+
* fields below.
|
|
28
|
+
*
|
|
29
|
+
* Without them an operand whose type is one of the CONSUMER's own ui_types
|
|
30
|
+
* falls through `AutoFormField`'s switch to the literal "Unknown type!" tag.
|
|
31
|
+
* That is what an assertion's `Value` did the moment it was turned into an
|
|
32
|
+
* expression: the field is `test-reference`, an IDE ui_type whose editor the
|
|
33
|
+
* IDE registers through `componentOverrides`, and the builder rendered its
|
|
34
|
+
* operands without them.
|
|
35
|
+
*/
|
|
36
|
+
componentOverrides?: Record<string, React.FC<any>>;
|
|
24
37
|
size?: string;
|
|
25
38
|
/**
|
|
26
39
|
* SEAM (reqraft): extra hover actions prepended to each expression card —
|
|
@@ -40,6 +53,6 @@ export interface IExpressionBuilderProps {
|
|
|
40
53
|
}
|
|
41
54
|
export interface IExpressionProps extends IExpressionBuilderProps {
|
|
42
55
|
}
|
|
43
|
-
export declare const Expression: ({ localTemplates, value, isChild, index, type, level, path, onValueChange, group, returnType, readOnly, id, expressionsUrl, serverHandled, extraActions, ...props }: IExpressionProps) => import("react/jsx-runtime").JSX.Element;
|
|
44
|
-
export declare const ExpressionBuilder: ({ localTemplates, value, isChild, level, index, path, type, returnType, group, onChange, onValueChange, readOnly, expressions, expressionsUrl, serverHandled, extraActions, reorder, }: IExpressionBuilderProps) => import("react/jsx-runtime").JSX.Element;
|
|
56
|
+
export declare const Expression: ({ localTemplates, value, isChild, index, type, level, path, onValueChange, group, returnType, readOnly, id, expressionsUrl, serverHandled, extraActions, componentOverrides, ...props }: IExpressionProps) => import("react/jsx-runtime").JSX.Element;
|
|
57
|
+
export declare const ExpressionBuilder: ({ localTemplates, value, isChild, level, index, path, type, returnType, group, onChange, onValueChange, readOnly, expressions, expressionsUrl, serverHandled, extraActions, componentOverrides, reorder, }: IExpressionBuilderProps) => import("react/jsx-runtime").JSX.Element;
|
|
45
58
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAGpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAGpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D,OAAO,KAA4D,MAAM,OAAO,CAAC;AAkBjF,OAAO,EAEL,WAAW,EACX,iBAAiB,EAEjB,kBAAkB,EAEnB,MAAM,UAAU,CAAC;AAelB,MAAM,WAAW,uBAAuB;IACtC,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IACvC,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7E,6FAA6F;IAC7F,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;;;OAUG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EACT,kBAAkB,EAAE,GACpB,CAAC,CAAC,OAAO,EAAE;QACT,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;QACvC,KAAK,CAAC,EAAE,WAAW,CAAC;KACrB,KAAK,kBAAkB,EAAE,CAAC,CAAC;CACjC;AAiBD,MAAM,WAAW,gBAAiB,SAAQ,uBAAuB;CAAG;AAEpE,eAAO,MAAM,UAAU,4LAkBpB,gBAAgB,4CAinClB,CAAC;AAEF,eAAO,MAAM,iBAAiB,+MAmB3B,uBAAuB,4CAgMzB,CAAC"}
|
|
@@ -70,6 +70,7 @@ var react_1 = __importStar(require("react"));
|
|
|
70
70
|
var styled_components_1 = __importDefault(require("styled-components"));
|
|
71
71
|
var common_1 = require("../../../../helpers/common");
|
|
72
72
|
var expressions_1 = require("../../../../helpers/expressions");
|
|
73
|
+
var argumentPresence_1 = require("../argumentPresence");
|
|
73
74
|
var templates_1 = require("../../../../helpers/templates");
|
|
74
75
|
var validations_1 = require("../../../../helpers/validations");
|
|
75
76
|
var useQorusTypes_1 = require("../../../../hooks/useQorusTypes");
|
|
@@ -99,7 +100,7 @@ var noopUseRegisterHintView = function () {
|
|
|
99
100
|
var StyledExpressionItemLabel = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: absolute;\n text-orientation: upright;\n writing-mode: vertical-rl;\n top: calc(50%);\n transform: translateY(-50%);\n white-space: nowrap;\n height: calc(100% - 24px);\n // Centered flex\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid ", ";\n"], ["\n position: absolute;\n text-orientation: upright;\n writing-mode: vertical-rl;\n top: calc(50%);\n transform: translateY(-50%);\n white-space: nowrap;\n height: calc(100% - 24px);\n // Centered flex\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid ", ";\n"])), function () { return (0, polished_1.rgba)('#fff', 0.3); });
|
|
100
101
|
var Expression = function (_a) {
|
|
101
102
|
var _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
102
|
-
var localTemplates = _a.localTemplates, _p = _a.value, value = _p === void 0 ? types_1.ExpressionDefaultValue : _p, isChild = _a.isChild, index = _a.index, type = _a.type, level = _a.level, path = _a.path, onValueChange = _a.onValueChange, group = _a.group, returnType = _a.returnType, readOnly = _a.readOnly, id = _a.id, expressionsUrl = _a.expressionsUrl, serverHandled = _a.serverHandled, extraActions = _a.extraActions, props = __rest(_a, ["localTemplates", "value", "isChild", "index", "type", "level", "path", "onValueChange", "group", "returnType", "readOnly", "id", "expressionsUrl", "serverHandled", "extraActions"]);
|
|
103
|
+
var localTemplates = _a.localTemplates, _p = _a.value, value = _p === void 0 ? types_1.ExpressionDefaultValue : _p, isChild = _a.isChild, index = _a.index, type = _a.type, level = _a.level, path = _a.path, onValueChange = _a.onValueChange, group = _a.group, returnType = _a.returnType, readOnly = _a.readOnly, id = _a.id, expressionsUrl = _a.expressionsUrl, serverHandled = _a.serverHandled, extraActions = _a.extraActions, componentOverrides = _a.componentOverrides, props = __rest(_a, ["localTemplates", "value", "isChild", "index", "type", "level", "path", "onValueChange", "group", "returnType", "readOnly", "id", "expressionsUrl", "serverHandled", "extraActions", "componentOverrides"]);
|
|
103
104
|
var types = (0, useQorusTypes_1.useQorusTypes)();
|
|
104
105
|
var _q = (0, react_1.useState)(false), showSummary = _q[0], setShowSummary = _q[1];
|
|
105
106
|
var _r = (0, react_1.useState)(undefined), confirmDialogData = _r[0], setConfirmDialogData = _r[1];
|
|
@@ -172,59 +173,8 @@ var Expression = function (_a) {
|
|
|
172
173
|
}, path);
|
|
173
174
|
}, [onValueChange, JSON.stringify(value), path]);
|
|
174
175
|
var addMissingArgs = (0, react_1.useCallback)(function (expression, args) {
|
|
175
|
-
var _a;
|
|
176
176
|
if (args === void 0) { args = []; }
|
|
177
|
-
|
|
178
|
-
// Check if this expression has variable arguments
|
|
179
|
-
var selectedExpression = (_a = expressions.value) === null || _a === void 0 ? void 0 : _a.find(function (exp) { return exp.name === expression; });
|
|
180
|
-
// An operand slot with nothing in it yet: the schema's default value
|
|
181
|
-
// when it has one, otherwise an envelope typed after the schema for
|
|
182
|
-
// the editors that need a type to mount. `updateExp` leaves such a
|
|
183
|
-
// slot behind for every catalogue argument the previous value had no
|
|
184
|
-
// operand for (a fresh builder has none), so every branch below has
|
|
185
|
-
// to fill them — an `undefined` operand that reaches the validator or
|
|
186
|
-
// an operand editor is read for its `type` and crashes the builder.
|
|
187
|
-
var isEmptySlot = function (slot, arg) {
|
|
188
|
-
return slot === undefined || (0, lodash_1.size)(slot) === 0 || (arg.default_value && !('value' in slot));
|
|
189
|
-
};
|
|
190
|
-
var emptySlot = function (arg) {
|
|
191
|
-
return arg.default_value
|
|
192
|
-
? { value: arg.default_value, type: arg.ui_type }
|
|
193
|
-
: {
|
|
194
|
-
type: arg.ui_type === 'richtext' || arg.ui_type === 'number' || arg.ui_type === 'bool'
|
|
195
|
-
? arg.ui_type
|
|
196
|
-
: undefined,
|
|
197
|
-
};
|
|
198
|
-
};
|
|
199
|
-
if (selectedExpression.varargs) {
|
|
200
|
-
if (selectedExpression.subtype === 2) {
|
|
201
|
-
newArgs.push({
|
|
202
|
-
is_expression: true,
|
|
203
|
-
value: {
|
|
204
|
-
args: [],
|
|
205
|
-
},
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
// Every operand follows the one schema argument; add slots up to
|
|
210
|
-
// min_args and fill the empty ones.
|
|
211
|
-
var schema_1 = selectedExpression.args[0];
|
|
212
|
-
newArgs.push.apply(newArgs, Array.from({ length: selectedExpression.min_args - 1 }, function () { return emptySlot(schema_1); }));
|
|
213
|
-
newArgs.forEach(function (slot, index) {
|
|
214
|
-
if (isEmptySlot(slot, schema_1)) {
|
|
215
|
-
newArgs[index] = emptySlot(schema_1);
|
|
216
|
-
}
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
else {
|
|
221
|
-
selectedExpression.args.forEach(function (arg, index) {
|
|
222
|
-
if (isEmptySlot(newArgs[index], arg)) {
|
|
223
|
-
newArgs[index] = emptySlot(arg);
|
|
224
|
-
}
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
return newArgs;
|
|
177
|
+
return (0, argumentPresence_1.addMissingExpressionArgs)(expressions.value, expression, args);
|
|
228
178
|
}, [JSON.stringify(expressions.value)]);
|
|
229
179
|
var updateExp = (0, react_1.useCallback)(function (val) {
|
|
230
180
|
var _a;
|
|
@@ -331,7 +281,7 @@ var Expression = function (_a) {
|
|
|
331
281
|
var updateMultipleArgs = (0, react_1.useCallback)(function (args) {
|
|
332
282
|
onValueChange(__assign(__assign({}, value), { value: __assign(__assign({}, value.value), { args: addMissingArgs(value.value.exp, args) }) }), path);
|
|
333
283
|
}, [onValueChange, JSON.stringify(value), path, addMissingArgs]);
|
|
334
|
-
var updateArg = (0, react_1.useCallback)(function (val, index, type, isFunction
|
|
284
|
+
var updateArg = (0, react_1.useCallback)(function (val, index, type, isFunction) {
|
|
335
285
|
var _a;
|
|
336
286
|
if (index === void 0) { index = 0; }
|
|
337
287
|
var args = (0, lodash_1.clone)(value.value.args);
|
|
@@ -339,7 +289,14 @@ var Expression = function (_a) {
|
|
|
339
289
|
if (newVal === null || newVal === void 0 ? void 0 : newVal.exp) {
|
|
340
290
|
newVal.args = addMissingArgs(newVal.exp, newVal.args);
|
|
341
291
|
}
|
|
342
|
-
|
|
292
|
+
/* `required` is NOT written here. It is a schema key — it describes the
|
|
293
|
+
catalogue's declaration of the argument, not the author's value, and
|
|
294
|
+
nothing reads it back off a stored argument (validation takes it from
|
|
295
|
+
the schema). Persisting it made a cleared argument indistinguishable
|
|
296
|
+
from real data: the value dropped out as `undefined`, `required: true`
|
|
297
|
+
stayed, and what was saved to the draft was `{type, required}` — an
|
|
298
|
+
argument DEFINITION sitting where its value should be. */
|
|
299
|
+
args[index] = __assign(__assign({}, args[index]), { value: newVal, type: !isFunction ? type || ((_a = args[index]) === null || _a === void 0 ? void 0 : _a.type) : undefined, is_expression: isFunction });
|
|
343
300
|
onValueChange(__assign(__assign({}, value), { value: __assign(__assign({}, value.value), { args: args }) }), path);
|
|
344
301
|
}, [addMissingArgs, onValueChange, JSON.stringify(value), path]);
|
|
345
302
|
var handleRemoveClick = (0, react_1.useCallback)(function () {
|
|
@@ -511,11 +468,10 @@ var Expression = function (_a) {
|
|
|
511
468
|
updateType(value === 'context' ? undefined : value, true);
|
|
512
469
|
}, [updateType]);
|
|
513
470
|
var handleFirstParamChange = (0, react_1.useCallback)(function (_name, value, type, isFunction) {
|
|
514
|
-
var _a, _b;
|
|
515
471
|
if (isFunction || (type !== 'any' && type !== 'auto')) {
|
|
516
|
-
updateArg(value, 0, isFunction ? undefined : type, isFunction
|
|
472
|
+
updateArg(value, 0, isFunction ? undefined : type, isFunction);
|
|
517
473
|
}
|
|
518
|
-
}, [updateArg
|
|
474
|
+
}, [updateArg]);
|
|
519
475
|
var buildCustomTemplateItems = (0, react_1.useCallback)(function (arg, onClick) {
|
|
520
476
|
var _a, _b;
|
|
521
477
|
// If the argument has allowed values or element allowed values, do not allow type changing
|
|
@@ -713,13 +669,13 @@ var Expression = function (_a) {
|
|
|
713
669
|
setConfirmDialogData(undefined);
|
|
714
670
|
},
|
|
715
671
|
},
|
|
716
|
-
], children: confirmDialogData.children })), showSummary && (0, jsx_runtime_1.jsx)(renderTemplate_1.ExpressionRenderTemplate, { exp: value, expressions: expressions.value }), !selectedExpression && !serverExpression && !(firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.value) && level === 0 ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMessage, { size: 'small', opaque: false, intent: 'info', children: "Select an operation to start building your expression" })) : ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup
|
|
672
|
+
], children: confirmDialogData.children })), showSummary && ((0, jsx_runtime_1.jsx)(renderTemplate_1.ExpressionRenderTemplate, { exp: value, expressions: expressions.value, templates: localTemplates })), !selectedExpression && !serverExpression && !(firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.value) && level === 0 ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMessage, { size: 'small', opaque: false, intent: 'info', children: "Select an operation to start building your expression" })) : ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup
|
|
717
673
|
// On a phone every operand is a full-width row, so the group spans
|
|
718
674
|
// the panel; on desktop it hugs its content and wraps.
|
|
719
675
|
, {
|
|
720
676
|
// On a phone every operand is a full-width row, so the group spans
|
|
721
677
|
// the panel; on desktop it hugs its content and wraps.
|
|
722
|
-
fluid: phone, style: { maxWidth: '100%' }, wrap: true, verticalAlign: 'flex-start', size: 'normal', gapSize: 'big', children: [(firstArgSchema === null || firstArgSchema === void 0 ? void 0 : firstArgSchema.label_before) && ((0, jsx_runtime_1.jsx)(argumentDetail_1.ExpressionArgumentDetail, { label: firstArgSchema.label_before })), (0, jsx_runtime_1.jsx)(argumentWrapper_1.ExpressionBuilderArgumentWrapper, { expressions: expressions.value, arg: firstArgument, schema: firstArgSchema, onTypeChange: handleUpdateTypeChange, onRemoveArgClick: handleRemoveFirstArg, hasMultipleArgs: removeArgInline, fluid: phone, readOnly: readOnly, reorder: argReorderSurfaces, argIndex: 0, argCount: argCount, dragOver: isDragOverArg(0), onMoveArg: moveVarArg, onArgDragStart: handleArgDragStart, onArgDragOver: handleArgDragOver, onArgDrop: handleArgDrop, onArgDragEnd: handleArgDragEnd, children: (0, jsx_runtime_1.jsx)(TemplateField_1.TemplateField, { component: AutoFormField_1.AutoFormField,
|
|
678
|
+
fluid: phone, style: { maxWidth: '100%' }, wrap: true, verticalAlign: 'flex-start', size: 'normal', gapSize: 'big', children: [(firstArgSchema === null || firstArgSchema === void 0 ? void 0 : firstArgSchema.label_before) && ((0, jsx_runtime_1.jsx)(argumentDetail_1.ExpressionArgumentDetail, { label: firstArgSchema.label_before })), (0, jsx_runtime_1.jsx)(argumentWrapper_1.ExpressionBuilderArgumentWrapper, { expressions: expressions.value, arg: firstArgument, schema: firstArgSchema, onTypeChange: handleUpdateTypeChange, onRemoveArgClick: handleRemoveFirstArg, hasMultipleArgs: removeArgInline, fluid: phone, readOnly: readOnly, reorder: argReorderSurfaces, argIndex: 0, argCount: argCount, dragOver: isDragOverArg(0), onMoveArg: moveVarArg, onArgDragStart: handleArgDragStart, onArgDragOver: handleArgDragOver, onArgDrop: handleArgDrop, onArgDragEnd: handleArgDragEnd, children: (0, jsx_runtime_1.jsx)(TemplateField_1.TemplateField, { component: AutoFormField_1.AutoFormField, componentOverrides: componentOverrides,
|
|
723
679
|
// SEAM (reqraft): an operand that becomes an expression mounts
|
|
724
680
|
// its own builder through this TemplateField — hand the host's
|
|
725
681
|
// actions on, or nesting silently drops them (the group
|
|
@@ -759,7 +715,7 @@ var Expression = function (_a) {
|
|
|
759
715
|
updateArg(undefined, index + 1, value === 'context' ? undefined : value);
|
|
760
716
|
}, onRemoveArgClick: function () {
|
|
761
717
|
removeVarArg(index + 1);
|
|
762
|
-
}, hasMultipleArgs: removeArgInline, fluid: phone, reorder: argReorderSurfaces, argIndex: index + 1, argCount: argCount, dragOver: isDragOverArg(index + 1), onMoveArg: moveVarArg, onArgDragStart: handleArgDragStart, onArgDragOver: handleArgDragOver, onArgDrop: handleArgDrop, onArgDragEnd: handleArgDragEnd, children: (0, jsx_runtime_1.jsx)(TemplateField_1.TemplateField, { minimal: true, component: AutoFormField_1.AutoFormField,
|
|
718
|
+
}, hasMultipleArgs: removeArgInline, fluid: phone, reorder: argReorderSurfaces, argIndex: index + 1, argCount: argCount, dragOver: isDragOverArg(index + 1), onMoveArg: moveVarArg, onArgDragStart: handleArgDragStart, onArgDragOver: handleArgDragOver, onArgDrop: handleArgDrop, onArgDragEnd: handleArgDragEnd, children: (0, jsx_runtime_1.jsx)(TemplateField_1.TemplateField, { minimal: true, component: AutoFormField_1.AutoFormField, componentOverrides: componentOverrides,
|
|
763
719
|
// SEAM (reqraft): same as the first operand above.
|
|
764
720
|
extraActions: extraActions, noSoft: true, level: level + 1, allowFunctions: !(arg === null || arg === void 0 ? void 0 : arg.allowed_values) && !(arg === null || arg === void 0 ? void 0 : arg.element_allowed_values), isFunction: (_a = rest[index]) === null || _a === void 0 ? void 0 : _a.is_expression,
|
|
765
721
|
// An empty argument has no value to take a type from; fall
|
|
@@ -776,7 +732,7 @@ var Expression = function (_a) {
|
|
|
776
732
|
!!arg.element_allowed_values ||
|
|
777
733
|
!!((_h = rest[index]) === null || _h === void 0 ? void 0 : _h.type) ||
|
|
778
734
|
!!arg.default_value, onChange: (function (_name, value, type, isFunction) {
|
|
779
|
-
updateArg(value, index + 1, isFunction ? undefined : type, isFunction
|
|
735
|
+
updateArg(value, index + 1, isFunction ? undefined : type, isFunction);
|
|
780
736
|
}), fluid: phone, fixed: !phone, disableManagement: true, disabled: readOnly, menuItems: buildCustomTemplateItems(arg, function (type, removeTemplate) {
|
|
781
737
|
removeTemplate === null || removeTemplate === void 0 ? void 0 : removeTemplate();
|
|
782
738
|
updateArg(undefined, index + 1, type.name === 'context' ? undefined : type.name);
|
|
@@ -787,7 +743,7 @@ var Expression = function (_a) {
|
|
|
787
743
|
exports.Expression = Expression;
|
|
788
744
|
var ExpressionBuilder = function (_a) {
|
|
789
745
|
var _b, _c, _d;
|
|
790
|
-
var localTemplates = _a.localTemplates, _f = _a.value, value = _f === void 0 ? types_1.ExpressionDefaultValue : _f, isChild = _a.isChild, _g = _a.level, level = _g === void 0 ? 0 : _g, _h = _a.index, index = _h === void 0 ? 0 : _h, path = _a.path, type = _a.type, returnType = _a.returnType, group = _a.group, onChange = _a.onChange, onValueChange = _a.onValueChange, readOnly = _a.readOnly, expressions = _a.expressions, expressionsUrl = _a.expressionsUrl, serverHandled = _a.serverHandled, extraActions = _a.extraActions, reorder = _a.reorder;
|
|
746
|
+
var localTemplates = _a.localTemplates, _f = _a.value, value = _f === void 0 ? types_1.ExpressionDefaultValue : _f, isChild = _a.isChild, _g = _a.level, level = _g === void 0 ? 0 : _g, _h = _a.index, index = _h === void 0 ? 0 : _h, path = _a.path, type = _a.type, returnType = _a.returnType, group = _a.group, onChange = _a.onChange, onValueChange = _a.onValueChange, readOnly = _a.readOnly, expressions = _a.expressions, expressionsUrl = _a.expressionsUrl, serverHandled = _a.serverHandled, extraActions = _a.extraActions, componentOverrides = _a.componentOverrides, reorder = _a.reorder;
|
|
791
747
|
var templates = (0, useTemplates_1.useTemplates)(!isChild, localTemplates);
|
|
792
748
|
var theme = (0, reqore_1.useReqoreTheme)();
|
|
793
749
|
var _j = (0, react_1.useState)(false), showSummary = _j[0], setShowSummary = _j[1];
|
|
@@ -866,11 +822,11 @@ var ExpressionBuilder = function (_a) {
|
|
|
866
822
|
: 'Show explanation of this expression',
|
|
867
823
|
fixed: true,
|
|
868
824
|
},
|
|
869
|
-
], children: (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { vertical: true, fluid: true, size: 'normal', style: { position: 'relative' }, wrap: true, children: [showSummary && ((0, jsx_runtime_1.jsx)(renderTemplate_1.ExpressionRenderTemplate, { exp: value, expressions: _expressions.expressions })), (0, jsx_runtime_1.jsx)(StyledExpressionItemLabel, { as: reqore_1.ReqoreP, color: 'transparent', className: 'expression-operator' }), (_d = value.value.args) === null || _d === void 0 ? void 0 : _d.map(function (arg, index) { return ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [(0, jsx_runtime_1.jsx)(exports.ExpressionBuilder, { value: arg, localTemplates: templates.value, isChild: true, path: "".concat(path ? "".concat(path, ".") : '', "value.args.").concat(index), level: level + 1, index: index, type: type, onValueChange: handleChange, returnType: 'bool', group: value.value.exp, readOnly: readOnly, expressions: expressions, expressionsUrl: expressionsUrl, serverHandled: serverHandled, extraActions: extraActions, reorder: reorder }), index < (0, lodash_1.size)(value.value.args) - 1 && ((0, jsx_runtime_1.jsx)(argumentDetail_1.ExpressionArgumentDetail, { label: value.value.exp === '||' ? 'OR' : 'AND', align: 'left', style: {
|
|
825
|
+
], children: (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { vertical: true, fluid: true, size: 'normal', style: { position: 'relative' }, wrap: true, children: [showSummary && ((0, jsx_runtime_1.jsx)(renderTemplate_1.ExpressionRenderTemplate, { exp: value, expressions: _expressions.expressions, templates: localTemplates })), (0, jsx_runtime_1.jsx)(StyledExpressionItemLabel, { as: reqore_1.ReqoreP, color: 'transparent', className: 'expression-operator' }), (_d = value.value.args) === null || _d === void 0 ? void 0 : _d.map(function (arg, index) { return ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [(0, jsx_runtime_1.jsx)(exports.ExpressionBuilder, { value: arg, localTemplates: templates.value, isChild: true, path: "".concat(path ? "".concat(path, ".") : '', "value.args.").concat(index), level: level + 1, index: index, type: type, onValueChange: handleChange, returnType: 'bool', group: value.value.exp, readOnly: readOnly, expressions: expressions, expressionsUrl: expressionsUrl, serverHandled: serverHandled, extraActions: extraActions, reorder: reorder }), index < (0, lodash_1.size)(value.value.args) - 1 && ((0, jsx_runtime_1.jsx)(argumentDetail_1.ExpressionArgumentDetail, { label: value.value.exp === '||' ? 'OR' : 'AND', align: 'left', style: {
|
|
870
826
|
marginLeft: 10,
|
|
871
827
|
} }))] }, index)); })] }) }) }));
|
|
872
828
|
}
|
|
873
|
-
return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreErrorBoundary, { children: (0, jsx_runtime_1.jsx)(exports.Expression, { localTemplates: templates.value, value: value, isChild: isChild, type: type, returnType: returnType, level: level, path: path, index: index, onValueChange: handleChange, group: group, readOnly: readOnly, expressions: expressions, expressionsUrl: expressionsUrl, id: level === 0 && index === 0 ? 'expression-builder' : undefined, serverHandled: serverHandled, extraActions: extraActions, reorder: reorder }) }));
|
|
829
|
+
return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreErrorBoundary, { children: (0, jsx_runtime_1.jsx)(exports.Expression, { localTemplates: templates.value, value: value, isChild: isChild, type: type, returnType: returnType, level: level, path: path, index: index, onValueChange: handleChange, group: group, readOnly: readOnly, expressions: expressions, expressionsUrl: expressionsUrl, id: level === 0 && index === 0 ? 'expression-builder' : undefined, serverHandled: serverHandled, extraActions: extraActions, componentOverrides: componentOverrides, reorder: reorder }) }));
|
|
874
830
|
};
|
|
875
831
|
exports.ExpressionBuilder = ExpressionBuilder;
|
|
876
832
|
var templateObject_1;
|