@qoretechnologies/reqraft 0.10.64 → 0.10.65-pr.137.g62fcecc
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -1
- package/dist/components/Description/describedControl.d.ts +54 -0
- package/dist/components/Description/describedControl.d.ts.map +1 -0
- package/dist/components/Description/describedControl.js +81 -0
- package/dist/components/Description/describedControl.js.map +1 -0
- package/dist/components/Description/index.d.ts.map +1 -1
- package/dist/components/Description/index.js +3 -2
- package/dist/components/Description/index.js.map +1 -1
- package/dist/components/colorValue/colorValue.d.ts +59 -0
- package/dist/components/colorValue/colorValue.d.ts.map +1 -0
- package/dist/components/colorValue/colorValue.js +245 -0
- package/dist/components/colorValue/colorValue.js.map +1 -0
- package/dist/components/colorValue/index.d.ts +34 -0
- package/dist/components/colorValue/index.d.ts.map +1 -0
- package/dist/components/colorValue/index.js +136 -0
- package/dist/components/colorValue/index.js.map +1 -0
- package/dist/components/colorValue/labels.d.ts +12 -0
- package/dist/components/colorValue/labels.d.ts.map +1 -0
- package/dist/components/colorValue/labels.js +11 -0
- package/dist/components/colorValue/labels.js.map +1 -0
- package/dist/components/composer/Composer.d.ts +1 -1
- package/dist/components/composer/Composer.d.ts.map +1 -1
- package/dist/components/composer/Composer.js +2 -2
- 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 +25 -5
- package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
- package/dist/components/dpqlEditor/dpqlHelpers.d.ts +36 -5
- package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
- package/dist/components/dpqlEditor/dpqlHelpers.js +340 -62
- package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
- package/dist/components/dpqlEditor/dpqlTags.d.ts +11 -7
- package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
- package/dist/components/dpqlEditor/dpqlTags.js +35 -17
- package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
- package/dist/components/dpqlEditor/types.d.ts +54 -8
- package/dist/components/dpqlEditor/types.d.ts.map +1 -1
- package/dist/components/dpqlEditor/useDpqlSession.d.ts +2 -2
- package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
- package/dist/components/dpqlEditor/useDpqlSession.js +16 -7
- 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 +207 -97
- 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 +29 -3
- package/dist/components/form/engine/CompactToolbar.js.map +1 -1
- package/dist/components/form/engine/FormEngine.d.ts +58 -10
- package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
- package/dist/components/form/engine/FormEngine.js +542 -112
- package/dist/components/form/engine/FormEngine.js.map +1 -1
- package/dist/components/form/engine/HiddenFieldsNote.d.ts +28 -0
- package/dist/components/form/engine/HiddenFieldsNote.d.ts.map +1 -0
- package/dist/components/form/engine/HiddenFieldsNote.js +32 -0
- package/dist/components/form/engine/HiddenFieldsNote.js.map +1 -0
- package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
- package/dist/components/form/engine/OptionFieldMessages.js +24 -3
- package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
- package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts +2 -2
- package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
- package/dist/components/form/engine/_structuredData/SchemaDataView.js +12 -6
- package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
- package/dist/components/form/engine/compactRowContext.d.ts +21 -0
- 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 +20 -10
- package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
- package/dist/components/form/engine/compactRowStyles.js +36 -30
- package/dist/components/form/engine/compactRowStyles.js.map +1 -1
- package/dist/components/form/engine/compactToolbarColors.d.ts +16 -0
- package/dist/components/form/engine/compactToolbarColors.d.ts.map +1 -0
- package/dist/components/form/engine/compactToolbarColors.js +21 -0
- package/dist/components/form/engine/compactToolbarColors.js.map +1 -0
- package/dist/components/form/engine/readFirst.d.ts +24 -8
- package/dist/components/form/engine/readFirst.d.ts.map +1 -1
- package/dist/components/form/engine/readFirst.js +77 -109
- package/dist/components/form/engine/readFirst.js.map +1 -1
- package/dist/components/form/engine/readFirstColors.d.ts +30 -0
- package/dist/components/form/engine/readFirstColors.d.ts.map +1 -0
- package/dist/components/form/engine/readFirstColors.js +51 -0
- package/dist/components/form/engine/readFirstColors.js.map +1 -0
- package/dist/components/form/engine/rowFocus.d.ts +2 -0
- package/dist/components/form/engine/rowFocus.d.ts.map +1 -1
- package/dist/components/form/engine/rowFocus.js +26 -3
- package/dist/components/form/engine/rowFocus.js.map +1 -1
- package/dist/components/form/engine/typeChoices.d.ts +1 -1
- package/dist/components/form/engine/variants/VariantCalmTable.d.ts.map +1 -1
- package/dist/components/form/engine/variants/VariantCalmTable.js +2 -1
- package/dist/components/form/engine/variants/VariantCalmTable.js.map +1 -1
- package/dist/components/form/engine/variants/VariantCards.d.ts.map +1 -1
- package/dist/components/form/engine/variants/VariantCards.js +2 -1
- package/dist/components/form/engine/variants/VariantCards.js.map +1 -1
- package/dist/components/form/engine/variants/VariantFocus.js +1 -1
- package/dist/components/form/engine/variants/VariantFocus.js.map +1 -1
- package/dist/components/form/engine/variants/VariantMinimal.d.ts.map +1 -1
- package/dist/components/form/engine/variants/VariantMinimal.js +2 -1
- package/dist/components/form/engine/variants/VariantMinimal.js.map +1 -1
- package/dist/components/form/engine/variants/variantParts.d.ts +1 -1
- package/dist/components/form/engine/variants/variantParts.d.ts.map +1 -1
- package/dist/components/form/engine/variants/variantParts.js +25 -17
- package/dist/components/form/engine/variants/variantParts.js.map +1 -1
- package/dist/components/form/expressions/DpqlRendering.d.ts +1 -1
- package/dist/components/form/expressions/DpqlRendering.d.ts.map +1 -1
- package/dist/components/form/expressions/DpqlRendering.js +3 -3
- package/dist/components/form/expressions/DpqlRendering.js.map +1 -1
- package/dist/components/form/expressions/ExpressionField.d.ts +64 -3
- package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
- package/dist/components/form/expressions/ExpressionField.js +459 -100
- package/dist/components/form/expressions/ExpressionField.js.map +1 -1
- package/dist/components/form/expressions/argumentPresence.d.ts +14 -0
- package/dist/components/form/expressions/argumentPresence.d.ts.map +1 -1
- package/dist/components/form/expressions/argumentPresence.js +16 -1
- package/dist/components/form/expressions/argumentPresence.js.map +1 -1
- package/dist/components/form/expressions/builder/argumentDetail.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/argumentDetail.js +4 -1
- package/dist/components/form/expressions/builder/argumentDetail.js.map +1 -1
- package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/argumentLabel.js +27 -9
- package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
- package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/argumentWrapper.js +3 -1
- package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
- package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +5 -4
- package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js.map +1 -1
- package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts +1 -1
- package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js +6 -3
- package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
- package/dist/components/form/expressions/builder/index.d.ts +24 -2
- package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/index.js +138 -78
- package/dist/components/form/expressions/builder/index.js.map +1 -1
- package/dist/components/form/expressions/builder/item.d.ts +6 -2
- package/dist/components/form/expressions/builder/item.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/item.js +19 -5
- package/dist/components/form/expressions/builder/item.js.map +1 -1
- package/dist/components/form/expressions/builder/renderTemplate.js +1 -1
- package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
- package/dist/components/form/expressions/dpqlMockRecordPath.d.ts +11 -0
- package/dist/components/form/expressions/dpqlMockRecordPath.d.ts.map +1 -0
- package/dist/components/form/expressions/dpqlMockRecordPath.js +254 -0
- package/dist/components/form/expressions/dpqlMockRecordPath.js.map +1 -0
- package/dist/components/form/expressions/expressionOperands.d.ts +16 -0
- package/dist/components/form/expressions/expressionOperands.d.ts.map +1 -0
- package/dist/components/form/expressions/expressionOperands.js +97 -0
- package/dist/components/form/expressions/expressionOperands.js.map +1 -0
- package/dist/components/form/expressions/fieldPath.d.ts +24 -0
- package/dist/components/form/expressions/fieldPath.d.ts.map +1 -0
- package/dist/components/form/expressions/fieldPath.js +152 -0
- package/dist/components/form/expressions/fieldPath.js.map +1 -0
- package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
- package/dist/components/form/expressions/mockExpressions.js +22 -5
- package/dist/components/form/expressions/mockExpressions.js.map +1 -1
- package/dist/components/form/expressions/renderExpressionToText.d.ts +2 -0
- package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
- package/dist/components/form/expressions/renderExpressionToText.js +40 -9
- package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
- package/dist/components/form/expressions/textOfExpression.d.ts +18 -0
- package/dist/components/form/expressions/textOfExpression.d.ts.map +1 -0
- package/dist/components/form/expressions/textOfExpression.js +49 -0
- package/dist/components/form/expressions/textOfExpression.js.map +1 -0
- 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/types.js +6 -1
- package/dist/components/form/expressions/types.js.map +1 -1
- package/dist/components/form/expressions/useExpressionType.d.ts +26 -0
- package/dist/components/form/expressions/useExpressionType.d.ts.map +1 -0
- package/dist/components/form/expressions/useExpressionType.js +181 -0
- package/dist/components/form/expressions/useExpressionType.js.map +1 -0
- package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
- package/dist/components/form/expressions/useRenderExpression.js +13 -9
- package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
- package/dist/components/form/expressions/wildcardExpressions.d.ts +27 -0
- package/dist/components/form/expressions/wildcardExpressions.d.ts.map +1 -0
- package/dist/components/form/expressions/wildcardExpressions.js +101 -0
- package/dist/components/form/expressions/wildcardExpressions.js.map +1 -0
- package/dist/components/form/fields/Field.d.ts.map +1 -1
- package/dist/components/form/fields/Field.js +26 -9
- package/dist/components/form/fields/Field.js.map +1 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.js +17 -4
- package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
- package/dist/components/form/fields/array/ArrayAuto.d.ts.map +1 -1
- package/dist/components/form/fields/array/ArrayAuto.js +24 -0
- package/dist/components/form/fields/array/ArrayAuto.js.map +1 -1
- package/dist/components/form/fields/array/ArrayAutoField.d.ts.map +1 -1
- package/dist/components/form/fields/array/ArrayAutoField.js +36 -13
- package/dist/components/form/fields/array/ArrayAutoField.js.map +1 -1
- package/dist/components/form/fields/auto/AutoFormField.d.ts +20 -1
- package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
- package/dist/components/form/fields/auto/AutoFormField.js +81 -36
- package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
- package/dist/components/form/fields/auto/hostEditorValue.d.ts +30 -0
- package/dist/components/form/fields/auto/hostEditorValue.d.ts.map +1 -0
- package/dist/components/form/fields/auto/hostEditorValue.js +53 -0
- package/dist/components/form/fields/auto/hostEditorValue.js.map +1 -0
- package/dist/components/form/fields/binary/Binary.d.ts.map +1 -1
- package/dist/components/form/fields/binary/Binary.js +23 -3
- package/dist/components/form/fields/binary/Binary.js.map +1 -1
- package/dist/components/form/fields/boolean/Boolean.d.ts +5 -0
- package/dist/components/form/fields/boolean/Boolean.d.ts.map +1 -1
- package/dist/components/form/fields/boolean/Boolean.js +9 -1
- package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
- package/dist/components/form/fields/color/Color.d.ts +103 -16
- package/dist/components/form/fields/color/Color.d.ts.map +1 -1
- package/dist/components/form/fields/color/Color.js +616 -16
- package/dist/components/form/fields/color/Color.js.map +1 -1
- package/dist/components/form/fields/emittedValues.d.ts +34 -3
- package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
- package/dist/components/form/fields/emittedValues.js +24 -1
- package/dist/components/form/fields/emittedValues.js.map +1 -1
- package/dist/components/form/fields/file/File.d.ts +1 -1
- package/dist/components/form/fields/file/File.d.ts.map +1 -1
- package/dist/components/form/fields/file/File.js +4 -2
- package/dist/components/form/fields/file/File.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 +17 -3
- package/dist/components/form/fields/long-string/LongString.js.map +1 -1
- package/dist/components/form/fields/markdown/MarkdownView.js +1 -1
- package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
- package/dist/components/form/fields/multi-select/MultiSelectFormField.js +4 -1
- package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
- package/dist/components/form/fields/number/Number.d.ts +6 -0
- package/dist/components/form/fields/number/Number.d.ts.map +1 -1
- package/dist/components/form/fields/number/Number.js +41 -6
- package/dist/components/form/fields/number/Number.js.map +1 -1
- package/dist/components/form/fields/object/Object.d.ts +1 -1
- package/dist/components/form/fields/object/Object.d.ts.map +1 -1
- package/dist/components/form/fields/object/Object.js +4 -2
- package/dist/components/form/fields/object/Object.js.map +1 -1
- package/dist/components/form/fields/pendingEdit.d.ts +52 -0
- package/dist/components/form/fields/pendingEdit.d.ts.map +1 -0
- package/dist/components/form/fields/pendingEdit.js +79 -0
- package/dist/components/form/fields/pendingEdit.js.map +1 -0
- package/dist/components/form/fields/rich-text/RichText.d.ts +8 -1
- package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
- package/dist/components/form/fields/rich-text/RichText.js +188 -82
- package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
- package/dist/components/form/fields/rich-text/useTemplateTags.d.ts +18 -0
- package/dist/components/form/fields/rich-text/useTemplateTags.d.ts.map +1 -0
- package/dist/components/form/fields/rich-text/useTemplateTags.js +49 -0
- package/dist/components/form/fields/rich-text/useTemplateTags.js.map +1 -0
- package/dist/components/form/fields/schema-definition/CatalogLeafForm.d.ts.map +1 -1
- package/dist/components/form/fields/schema-definition/CatalogLeafForm.js +4 -1
- package/dist/components/form/fields/schema-definition/CatalogLeafForm.js.map +1 -1
- package/dist/components/form/fields/schema-definition/CatalogNodeEditor.d.ts.map +1 -1
- package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +20 -5
- package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
- package/dist/components/form/fields/schema-definition/TableEditor.d.ts.map +1 -1
- package/dist/components/form/fields/schema-definition/TableEditor.js +10 -2
- package/dist/components/form/fields/schema-definition/TableEditor.js.map +1 -1
- package/dist/components/form/fields/schema-definition/index.d.ts.map +1 -1
- package/dist/components/form/fields/schema-definition/index.js +8 -4
- package/dist/components/form/fields/schema-definition/index.js.map +1 -1
- package/dist/components/form/fields/select/Select.d.ts +2 -0
- package/dist/components/form/fields/select/Select.d.ts.map +1 -1
- package/dist/components/form/fields/select/Select.js +19 -10
- package/dist/components/form/fields/select/Select.js.map +1 -1
- package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
- package/dist/components/form/fields/select/SelectCollection.js +8 -2
- package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
- package/dist/components/form/fields/select/unavailableRow.d.ts +23 -0
- package/dist/components/form/fields/select/unavailableRow.d.ts.map +1 -0
- package/dist/components/form/fields/select/unavailableRow.js +55 -0
- package/dist/components/form/fields/select/unavailableRow.js.map +1 -0
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +11 -5
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +13 -5
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
- package/dist/components/form/fields/template/TemplateBrowser.d.ts +22 -0
- package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
- package/dist/components/form/fields/template/TemplateBrowser.js +54 -0
- package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
- package/dist/components/form/fields/template/TemplateField.d.ts +102 -1
- package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
- package/dist/components/form/fields/template/TemplateField.js +572 -85
- package/dist/components/form/fields/template/TemplateField.js.map +1 -1
- package/dist/components/form/fields/template/TemplateText.d.ts +0 -17
- package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -1
- package/dist/components/form/fields/template/TemplateText.js +9 -11
- package/dist/components/form/fields/template/TemplateText.js.map +1 -1
- package/dist/components/form/fields/template/writtenAsText.d.ts +61 -0
- package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
- package/dist/components/form/fields/template/writtenAsText.js +204 -0
- package/dist/components/form/fields/template/writtenAsText.js.map +1 -0
- package/dist/components/form/index.d.ts +10 -0
- package/dist/components/form/index.d.ts.map +1 -1
- package/dist/components/form/index.js +23 -1
- package/dist/components/form/index.js.map +1 -1
- package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
- package/dist/components/imageLightbox/ImageLightbox.js +19 -7
- package/dist/components/imageLightbox/ImageLightbox.js.map +1 -1
- package/dist/components/log/Log.d.ts.map +1 -1
- package/dist/components/log/Log.js +16 -8
- package/dist/components/log/Log.js.map +1 -1
- package/dist/components/menu/Menu.d.ts.map +1 -1
- package/dist/components/menu/Menu.js +19 -10
- package/dist/components/menu/Menu.js.map +1 -1
- package/dist/components/smartEditor/CompletionMenu.d.ts +43 -0
- package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
- package/dist/components/smartEditor/CompletionMenu.js +196 -0
- package/dist/components/smartEditor/CompletionMenu.js.map +1 -0
- package/dist/components/smartEditor/MarkdownDoc.d.ts +1 -1
- package/dist/components/smartEditor/MarkdownDoc.js +3 -3
- package/dist/components/smartEditor/MarkdownDoc.js.map +1 -1
- package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
- package/dist/components/smartEditor/SmartEditor.js +164 -180
- package/dist/components/smartEditor/SmartEditor.js.map +1 -1
- package/dist/components/smartEditor/completionStyle.d.ts +27 -0
- package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
- package/dist/components/smartEditor/completionStyle.js +68 -0
- package/dist/components/smartEditor/completionStyle.js.map +1 -0
- package/dist/components/smartEditor/index.d.ts +5 -1
- package/dist/components/smartEditor/index.d.ts.map +1 -1
- package/dist/components/smartEditor/index.js +19 -1
- package/dist/components/smartEditor/index.js.map +1 -1
- package/dist/components/smartEditor/templateCompletions.d.ts +18 -0
- package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
- package/dist/components/smartEditor/templateCompletions.js +94 -0
- package/dist/components/smartEditor/templateCompletions.js.map +1 -0
- package/dist/components/smartEditor/typedReferences.d.ts +21 -0
- package/dist/components/smartEditor/typedReferences.d.ts.map +1 -0
- package/dist/components/smartEditor/typedReferences.js +82 -0
- package/dist/components/smartEditor/typedReferences.js.map +1 -0
- package/dist/components/smartEditor/types.d.ts +33 -1
- package/dist/components/smartEditor/types.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspAutocomplete.d.ts +32 -0
- package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspAutocomplete.js +228 -118
- package/dist/components/smartEditor/useLspAutocomplete.js.map +1 -1
- package/dist/components/smartEditor/useLspHover.d.ts +33 -7
- package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspHover.js +279 -35
- package/dist/components/smartEditor/useLspHover.js.map +1 -1
- package/dist/components/smartEditor/useLspSemanticTokens.js +1 -1
- package/dist/components/smartEditor/useLspSemanticTokens.js.map +1 -1
- package/dist/components/smartEditor/useLspSession.d.ts +6 -0
- package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspSession.js +7 -6
- package/dist/components/smartEditor/useLspSession.js.map +1 -1
- package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -1
- package/dist/components/supportTicket/AttachmentChips.js +15 -5
- package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
- package/dist/components/supportTicket/ReferencePicker.d.ts +9 -2
- package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
- package/dist/components/supportTicket/ReferencePicker.js +27 -6
- package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
- package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
- package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
- package/dist/components/supportTicket/TicketHeader.js +20 -2
- package/dist/components/supportTicket/TicketHeader.js.map +1 -1
- package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
- package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
- package/dist/components/ticketReferences/TicketReferences.js +9 -4
- package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
- package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
- package/dist/components/ticketThread/TicketThread.js +38 -13
- package/dist/components/ticketThread/TicketThread.js.map +1 -1
- package/dist/helpers/descriptionTooltip.d.ts +43 -0
- package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
- package/dist/helpers/descriptionTooltip.js +70 -0
- package/dist/helpers/descriptionTooltip.js.map +1 -0
- package/dist/helpers/domProps.d.ts +5 -0
- package/dist/helpers/domProps.d.ts.map +1 -0
- package/dist/helpers/domProps.js +47 -0
- package/dist/helpers/domProps.js.map +1 -0
- package/dist/helpers/expressions.d.ts +107 -2
- package/dist/helpers/expressions.d.ts.map +1 -1
- package/dist/helpers/expressions.js +223 -8
- package/dist/helpers/expressions.js.map +1 -1
- package/dist/helpers/hoveringPointer.d.ts +26 -0
- package/dist/helpers/hoveringPointer.d.ts.map +1 -0
- package/dist/helpers/hoveringPointer.js +29 -0
- package/dist/helpers/hoveringPointer.js.map +1 -0
- package/dist/helpers/markdownText.d.ts +14 -0
- package/dist/helpers/markdownText.d.ts.map +1 -0
- package/dist/helpers/markdownText.js +160 -0
- package/dist/helpers/markdownText.js.map +1 -0
- package/dist/helpers/qorusTypeCatalogue.d.ts +53 -0
- package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
- package/dist/helpers/qorusTypeCatalogue.js +262 -0
- package/dist/helpers/qorusTypeCatalogue.js.map +1 -0
- package/dist/helpers/readableColors.d.ts +36 -0
- package/dist/helpers/readableColors.d.ts.map +1 -0
- package/dist/helpers/readableColors.js +116 -0
- package/dist/helpers/readableColors.js.map +1 -0
- package/dist/helpers/recordFieldReference.d.ts +15 -0
- package/dist/helpers/recordFieldReference.d.ts.map +1 -0
- package/dist/helpers/recordFieldReference.js +89 -0
- package/dist/helpers/recordFieldReference.js.map +1 -0
- package/dist/helpers/templateItems.d.ts +2 -2
- package/dist/helpers/templateItems.d.ts.map +1 -1
- package/dist/helpers/templateItems.js +6 -4
- package/dist/helpers/templateItems.js.map +1 -1
- package/dist/helpers/templateText.js +5 -2
- package/dist/helpers/templateText.js.map +1 -1
- package/dist/helpers/templates.d.ts +41 -14
- package/dist/helpers/templates.d.ts.map +1 -1
- package/dist/helpers/templates.js +152 -9
- package/dist/helpers/templates.js.map +1 -1
- package/dist/helpers/validations.d.ts +9 -0
- package/dist/helpers/validations.d.ts.map +1 -1
- package/dist/helpers/validations.js +139 -33
- package/dist/helpers/validations.js.map +1 -1
- package/dist/hooks/useQorusTypes.d.ts +7 -15
- package/dist/hooks/useQorusTypes.d.ts.map +1 -1
- package/dist/hooks/useQorusTypes.js +25 -166
- package/dist/hooks/useQorusTypes.js.map +1 -1
- package/dist/hooks/useReadableIntentShade.d.ts +9 -0
- package/dist/hooks/useReadableIntentShade.d.ts.map +1 -0
- package/dist/hooks/useReadableIntentShade.js +23 -0
- package/dist/hooks/useReadableIntentShade.js.map +1 -0
- package/dist/hooks/useReadableOpacity.d.ts +6 -0
- package/dist/hooks/useReadableOpacity.d.ts.map +1 -0
- package/dist/hooks/useReadableOpacity.js +17 -0
- package/dist/hooks/useReadableOpacity.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/tracking/ui/ExperimentCard.d.ts +1 -1
- package/dist/tracking/ui/ExperimentCard.d.ts.map +1 -1
- package/dist/tracking/ui/ExperimentCard.js +26 -10
- package/dist/tracking/ui/ExperimentCard.js.map +1 -1
- package/dist/tracking/ui/card.d.ts +2 -2
- package/dist/tracking/ui/card.d.ts.map +1 -1
- package/dist/tracking/ui/card.js +2 -2
- package/dist/tracking/ui/card.js.map +1 -1
- package/dist/tracking/ui/readable.d.ts +14 -0
- package/dist/tracking/ui/readable.d.ts.map +1 -0
- package/dist/tracking/ui/readable.js +60 -0
- package/dist/tracking/ui/readable.js.map +1 -0
- package/dist/utils/fetch.d.ts +9 -2
- package/dist/utils/fetch.d.ts.map +1 -1
- package/dist/utils/fetch.js +6 -5
- package/dist/utils/fetch.js.map +1 -1
- package/dist/utils/websocket.d.ts +65 -2
- package/dist/utils/websocket.d.ts.map +1 -1
- package/dist/utils/websocket.js +276 -44
- package/dist/utils/websocket.js.map +1 -1
- package/package.json +14 -5
- package/.claude/CLAUDE.md +0 -317
- package/.tasks/EXPORT_EXPRESSION_BUILDER.md +0 -38
- package/.tasks/EXPRESSION_BUILDER_REPORT.md +0 -149
- package/.tasks/EXPRESSION_FIELD_SEAMS.md +0 -66
- package/.tasks/FIELD_STACK_REPORT.md +0 -234
- package/.tasks/FORM_ENGINE_COMPACT_READ_FIRST.md +0 -558
- package/.tasks/FORM_ENGINE_EXPRESSIONS.md +0 -197
- package/.tasks/FORM_ENGINE_OPTIONS_SYNC.md +0 -95
- package/.tasks/FORM_FIELD_EXTRAS.md +0 -72
- package/.tasks/INDEX.md +0 -111
- package/.tasks/LSP_SHARED_CONNECTION.md +0 -75
- package/.tasks/QONSOLE_ASSIST_FEATURES.md +0 -306
- package/.tasks/RENDER_EXPRESSION_LSP.md +0 -159
- package/.tasks/REQRAFT_AUTO_FIELD.md +0 -176
- package/.tasks/SCHEMA_DEFINITION_FIELD.md +0 -250
- package/.tasks/SMART_EDITOR_CONTEXT_AND_POLISH.md +0 -340
- package/.tasks/SMART_EDITOR_LSP_FEATURES.md +0 -299
- package/.tasks/SMART_EDITOR_REVIEW_FOLLOWUPS.md +0 -280
- package/.tasks/SMART_EDITOR_UX_POLISH.md +0 -383
- package/.tasks/SMART_EDITOR_VISUAL_POLISH.md +0 -246
- package/.tasks/STORY_NETWORK_ISOLATION.md +0 -98
- package/.tasks/TEMPLATE_TOKEN_GRAMMAR.md +0 -72
- package/CODE_OF_CONDUCT.md +0 -105
- package/CONTRIBUTING.MD +0 -78
- package/SECURITY.md +0 -3
- package/chromatic.config.json +0 -5
- package/design/COMPACT_ENGINE_REDESIGN.md +0 -156
- package/design/COMPACT_INFO_DISPLAY.md +0 -87
- package/design/COMPACT_PARITY.md +0 -85
- package/design/EXPRESSION_BUILDER_REPORT_STRATEGY.md +0 -92
- package/design/FORM_ENGINE_COMPACT.md +0 -300
- package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +0 -353
- package/design/FORM_ENGINE_EXPRESSIONS.md +0 -257
- package/design/FORM_ENGINE_FIELD_MIGRATION.md +0 -419
- package/design/IDE_INTEGRATION.md +0 -64
- package/design/RENDER_EXPRESSION_TRANSPORT.md +0 -156
- package/design/SELECT_DIALOG_FLOOR.md +0 -86
- package/design/SMART_EDITOR_UX.md +0 -438
- package/design/TRACKING.md +0 -290
- package/design/UNAVAILABLE_ALLOWED_VALUES.md +0 -226
- package/src/components/Description/index.tsx +0 -254
- package/src/components/Description/markdownRendererContext.tsx +0 -29
- package/src/components/FocusedEditing/index.tsx +0 -50
- package/src/components/codeSize/index.tsx +0 -79
- package/src/components/composer/Composer.stories.tsx +0 -238
- package/src/components/composer/Composer.tsx +0 -554
- package/src/components/composer/helpers.ts +0 -74
- package/src/components/composer/index.ts +0 -2
- package/src/components/dpqlEditor/DpqlEditor.stories.tsx +0 -1183
- package/src/components/dpqlEditor/DpqlEditor.tsx +0 -219
- package/src/components/dpqlEditor/dpqlHelpers.ts +0 -287
- package/src/components/dpqlEditor/dpqlInserter.ts +0 -121
- package/src/components/dpqlEditor/dpqlProbe.ts +0 -165
- package/src/components/dpqlEditor/dpqlTags.ts +0 -114
- package/src/components/dpqlEditor/index.ts +0 -41
- package/src/components/dpqlEditor/types.ts +0 -203
- package/src/components/dpqlEditor/useDpqlProbe.ts +0 -33
- package/src/components/dpqlEditor/useDpqlSession.ts +0 -411
- package/src/components/form/engine/CompactRow.tsx +0 -2620
- package/src/components/form/engine/CompactToolbar.tsx +0 -330
- package/src/components/form/engine/FormEngine.stories.tsx +0 -9920
- package/src/components/form/engine/FormEngine.tsx +0 -4569
- package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
- package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -331
- package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
- package/src/components/form/engine/OptionFieldMessages.tsx +0 -477
- package/src/components/form/engine/OptionsHelpDialog.tsx +0 -29
- package/src/components/form/engine/__fixtures__/basicFormOptions.ts +0 -309
- package/src/components/form/engine/__fixtures__/fieldChromeOptions.ts +0 -45
- package/src/components/form/engine/_structuredData/SchemaDataView.stories.tsx +0 -233
- package/src/components/form/engine/_structuredData/SchemaDataView.tsx +0 -742
- package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +0 -85
- package/src/components/form/engine/_structuredData/StructuredDataView.tsx +0 -75
- package/src/components/form/engine/_structuredData/structuredData.ts +0 -145
- package/src/components/form/engine/compactRowContext.ts +0 -148
- package/src/components/form/engine/compactRowStyles.ts +0 -898
- package/src/components/form/engine/compactToolbarContext.ts +0 -69
- package/src/components/form/engine/optionActions.ts +0 -128
- package/src/components/form/engine/optionsContext.ts +0 -24
- package/src/components/form/engine/readFirst.ts +0 -1077
- package/src/components/form/engine/rendererTypes.ts +0 -107
- package/src/components/form/engine/revealRow.ts +0 -123
- package/src/components/form/engine/rowFocus.ts +0 -101
- package/src/components/form/engine/rowMenuContext.ts +0 -159
- package/src/components/form/engine/rowOpenPicker.ts +0 -27
- package/src/components/form/engine/typeChoices.ts +0 -63
- package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +0 -159
- package/src/components/form/engine/variants/VariantCalmTable.tsx +0 -244
- package/src/components/form/engine/variants/VariantCards.tsx +0 -212
- package/src/components/form/engine/variants/VariantFocus.tsx +0 -382
- package/src/components/form/engine/variants/VariantMinimal.tsx +0 -170
- package/src/components/form/engine/variants/focusDemo.ts +0 -145
- package/src/components/form/engine/variants/variantModel.ts +0 -223
- package/src/components/form/engine/variants/variantParts.tsx +0 -313
- package/src/components/form/expressions/DpqlRendering.tsx +0 -85
- package/src/components/form/expressions/ExpressionField.stories.tsx +0 -1395
- package/src/components/form/expressions/ExpressionField.tsx +0 -503
- package/src/components/form/expressions/argumentPresence.ts +0 -213
- package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +0 -1683
- package/src/components/form/expressions/builder/argumentDetail.tsx +0 -17
- package/src/components/form/expressions/builder/argumentLabel.tsx +0 -146
- package/src/components/form/expressions/builder/argumentSlot.tsx +0 -101
- package/src/components/form/expressions/builder/argumentWrapper.tsx +0 -243
- package/src/components/form/expressions/builder/confirmMismatchedTypesModal.tsx +0 -120
- package/src/components/form/expressions/builder/confirmUnsupportedTypeModal.tsx +0 -69
- package/src/components/form/expressions/builder/index.tsx +0 -1545
- package/src/components/form/expressions/builder/item.tsx +0 -89
- package/src/components/form/expressions/builder/moveToPositionStrip.tsx +0 -156
- package/src/components/form/expressions/builder/renderTemplate.tsx +0 -42
- package/src/components/form/expressions/dpqlMockLanguage.ts +0 -566
- package/src/components/form/expressions/dpqlMockLsp.ts +0 -126
- package/src/components/form/expressions/mockExpressions.ts +0 -317
- package/src/components/form/expressions/renderExpressionToText.ts +0 -137
- package/src/components/form/expressions/types.ts +0 -110
- package/src/components/form/expressions/useExpressions.ts +0 -101
- package/src/components/form/expressions/useRenderExpression.ts +0 -165
- package/src/components/form/fields/Field.stories.tsx +0 -143
- package/src/components/form/fields/Field.tsx +0 -732
- package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -297
- package/src/components/form/fields/array/ArrayAuto.tsx +0 -237
- package/src/components/form/fields/array/ArrayAutoField.stories.tsx +0 -475
- package/src/components/form/fields/array/ArrayAutoField.tsx +0 -367
- package/src/components/form/fields/auto/AutoFormField.stories.tsx +0 -825
- package/src/components/form/fields/auto/AutoFormField.tsx +0 -1164
- package/src/components/form/fields/binary/Binary.stories.tsx +0 -122
- package/src/components/form/fields/binary/Binary.tsx +0 -91
- package/src/components/form/fields/boolean/Boolean.stories.tsx +0 -125
- package/src/components/form/fields/boolean/Boolean.tsx +0 -34
- package/src/components/form/fields/byte-size/ByteSize.stories.tsx +0 -87
- package/src/components/form/fields/byte-size/ByteSize.tsx +0 -58
- package/src/components/form/fields/color/Color.stories.tsx +0 -99
- package/src/components/form/fields/color/Color.tsx +0 -46
- package/src/components/form/fields/cron/Cron.stories.tsx +0 -68
- package/src/components/form/fields/cron/Cron.tsx +0 -80
- package/src/components/form/fields/date/Date.stories.tsx +0 -77
- package/src/components/form/fields/date/Date.tsx +0 -55
- package/src/components/form/fields/emittedValues.ts +0 -70
- package/src/components/form/fields/file/File.stories.tsx +0 -161
- package/src/components/form/fields/file/File.tsx +0 -227
- package/src/components/form/fields/long-string/LongString.stories.tsx +0 -120
- package/src/components/form/fields/long-string/LongString.tsx +0 -130
- package/src/components/form/fields/markdown/Markdown.stories.tsx +0 -76
- package/src/components/form/fields/markdown/Markdown.tsx +0 -81
- package/src/components/form/fields/markdown/MarkdownView.tsx +0 -222
- package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +0 -139
- package/src/components/form/fields/number/Number.stories.tsx +0 -159
- package/src/components/form/fields/number/Number.tsx +0 -160
- package/src/components/form/fields/object/Object.stories.tsx +0 -398
- package/src/components/form/fields/object/Object.tsx +0 -255
- package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +0 -95
- package/src/components/form/fields/radio-group/RadioGroup.tsx +0 -46
- package/src/components/form/fields/radio-group/images/java-96x128.png +0 -0
- package/src/components/form/fields/radio-group/images/python-129x128.png +0 -0
- package/src/components/form/fields/radio-group/images/qore-106x128.png +0 -0
- package/src/components/form/fields/rich-text/RichText.stories.tsx +0 -260
- package/src/components/form/fields/rich-text/RichText.tsx +0 -537
- package/src/components/form/fields/schema-definition/CatalogLeafForm.tsx +0 -242
- package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +0 -758
- package/src/components/form/fields/schema-definition/Hint.tsx +0 -22
- package/src/components/form/fields/schema-definition/InlineValidationBanner.tsx +0 -138
- package/src/components/form/fields/schema-definition/Loader.tsx +0 -20
- package/src/components/form/fields/schema-definition/MigrationsTab.tsx +0 -187
- package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +0 -286
- package/src/components/form/fields/schema-definition/TableEditor.tsx +0 -155
- package/src/components/form/fields/schema-definition/TablesTab.tsx +0 -138
- package/src/components/form/fields/schema-definition/catalog.ts +0 -237
- package/src/components/form/fields/schema-definition/helpers.ts +0 -90
- package/src/components/form/fields/schema-definition/index.tsx +0 -418
- package/src/components/form/fields/schema-definition/mockCatalog.ts +0 -325
- package/src/components/form/fields/schema-definition/mockDefinition.ts +0 -111
- package/src/components/form/fields/schema-definition/referenceSuggestions.tsx +0 -152
- package/src/components/form/fields/schema-definition/starterTemplate.ts +0 -68
- package/src/components/form/fields/schema-definition/types.ts +0 -185
- package/src/components/form/fields/schema-definition/useSchemaOptionCatalog.ts +0 -49
- package/src/components/form/fields/select/Select.stories.tsx +0 -872
- package/src/components/form/fields/select/Select.tsx +0 -624
- package/src/components/form/fields/select/SelectCollection.tsx +0 -594
- package/src/components/form/fields/string/String.stories.tsx +0 -86
- package/src/components/form/fields/string/String.tsx +0 -43
- package/src/components/form/fields/template/ExampleValueModal.stories.tsx +0 -114
- package/src/components/form/fields/template/ExampleValueModal.tsx +0 -99
- package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +0 -47
- package/src/components/form/fields/template/TemplateField.stories.tsx +0 -1121
- package/src/components/form/fields/template/TemplateField.tsx +0 -1717
- package/src/components/form/fields/template/TemplateText.tsx +0 -115
- package/src/components/form/fields/template/__fixtures__/longExampleValue.ts +0 -7
- package/src/components/form/fields/template/__fixtures__/multiLevelTemplates.json +0 -147
- package/src/components/form/fields/template/__fixtures__/templates.json +0 -83
- package/src/components/form/fields/timeout/Timeout.stories.tsx +0 -228
- package/src/components/form/fields/timeout/Timeout.tsx +0 -87
- package/src/components/form/fields/url/Url.stories.tsx +0 -94
- package/src/components/form/fields/url/Url.tsx +0 -85
- package/src/components/form/index.tsx +0 -47
- package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
- package/src/components/imageLightbox/ImageLightbox.tsx +0 -236
- package/src/components/imageLightbox/index.ts +0 -1
- package/src/components/log/Log.stories.tsx +0 -333
- package/src/components/log/Log.tsx +0 -285
- package/src/components/menu/Menu.stories.tsx +0 -155
- package/src/components/menu/Menu.tsx +0 -312
- package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +0 -797
- package/src/components/qonsoleSmartInput/QonsoleSmartInput.tsx +0 -105
- package/src/components/qonsoleSmartInput/index.ts +0 -16
- package/src/components/qonsoleSmartInput/qonsoleInserter.ts +0 -77
- package/src/components/qonsoleSmartInput/types.ts +0 -133
- package/src/components/qonsoleSmartInput/useQonsoleSession.ts +0 -124
- package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +0 -62
- package/src/components/searchFilterBar/SearchFilterBar.tsx +0 -144
- package/src/components/searchFilterBar/index.ts +0 -1
- package/src/components/smartEditor/MarkdownDoc.tsx +0 -190
- package/src/components/smartEditor/SmartEditor.stories.tsx +0 -475
- package/src/components/smartEditor/SmartEditor.tsx +0 -808
- package/src/components/smartEditor/__fixtures__/mockLspServer.ts +0 -205
- package/src/components/smartEditor/helpers.ts +0 -217
- package/src/components/smartEditor/index.ts +0 -35
- package/src/components/smartEditor/styling.ts +0 -45
- package/src/components/smartEditor/types.ts +0 -211
- package/src/components/smartEditor/useLspAutocomplete.ts +0 -758
- package/src/components/smartEditor/useLspDiagnosticDecorations.ts +0 -125
- package/src/components/smartEditor/useLspHover.ts +0 -230
- package/src/components/smartEditor/useLspSemanticTokens.ts +0 -298
- package/src/components/smartEditor/useLspSession.ts +0 -231
- package/src/components/smartEditor/useLspSignatureHelp.ts +0 -198
- package/src/components/supportTicket/AttachmentChips.stories.tsx +0 -171
- package/src/components/supportTicket/AttachmentChips.tsx +0 -147
- package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +0 -257
- package/src/components/supportTicket/InterfaceReferenceTags.tsx +0 -129
- package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -584
- package/src/components/supportTicket/ReferencePicker.tsx +0 -563
- package/src/components/supportTicket/TicketConversation.stories.tsx +0 -121
- package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
- package/src/components/supportTicket/TicketHeader.tsx +0 -247
- package/src/components/supportTicket/TicketMetaTags.stories.tsx +0 -103
- package/src/components/supportTicket/TicketMetaTags.tsx +0 -85
- package/src/components/supportTicket/TicketReplyBox.stories.tsx +0 -354
- package/src/components/supportTicket/TicketReplyBox.tsx +0 -150
- package/src/components/supportTicket/__fixtures__/kindMarks.ts +0 -28
- package/src/components/supportTicket/attachmentAccess.ts +0 -97
- package/src/components/supportTicket/fileToAttachment.ts +0 -24
- package/src/components/supportTicket/index.ts +0 -10
- package/src/components/supportTicket/meta.ts +0 -206
- package/src/components/supportTicket/ticketModel.ts +0 -131
- package/src/components/supportTicket/useLoadedImages.ts +0 -73
- package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -315
- package/src/components/ticketReferences/TicketReferences.tsx +0 -906
- package/src/components/ticketReferences/index.ts +0 -2
- package/src/components/ticketThread/TicketThread.stories.tsx +0 -829
- package/src/components/ticketThread/TicketThread.tsx +0 -719
- package/src/components/ticketThread/index.ts +0 -6
- package/src/contexts/FetchContext.tsx +0 -25
- package/src/contexts/ReqraftContext.tsx +0 -9
- package/src/contexts/StorageContext.tsx +0 -33
- package/src/global.d.ts +0 -4
- package/src/helpers/allowedValues.ts +0 -249
- package/src/helpers/choiceChip.ts +0 -227
- package/src/helpers/common.ts +0 -326
- package/src/helpers/dpqlDetection.ts +0 -209
- package/src/helpers/expressions.ts +0 -140
- package/src/helpers/optionUiTypes.ts +0 -199
- package/src/helpers/options.ts +0 -150
- package/src/helpers/providerValue.ts +0 -125
- package/src/helpers/scrollbar.ts +0 -32
- package/src/helpers/singleLineString.ts +0 -61
- package/src/helpers/templateItems.ts +0 -81
- package/src/helpers/templateText.ts +0 -350
- package/src/helpers/templates.ts +0 -602
- package/src/helpers/validations.ts +0 -2085
- package/src/hooks/useArgSchema.ts +0 -37
- package/src/hooks/useCoarsePointer.ts +0 -30
- package/src/hooks/useFetch/useFetch.stories.tsx +0 -379
- package/src/hooks/useFetch/useFetch.tsx +0 -154
- package/src/hooks/usePhoneViewport.ts +0 -34
- package/src/hooks/useQorusTypes.ts +0 -233
- package/src/hooks/useReqraftProperty.ts +0 -16
- package/src/hooks/useStorage/useStorage.stories.tsx +0 -168
- package/src/hooks/useStorage/useStorage.ts +0 -35
- package/src/hooks/useTemplates.ts +0 -123
- package/src/hooks/useValidation.ts +0 -9
- package/src/hooks/useWebSocket/useWebSocket.ts +0 -224
- package/src/hooks/useWebSocket/useWebsocket.stories.tsx +0 -640
- package/src/hooks/useWhyDidYouUpdate.ts +0 -38
- package/src/index.tsx +0 -86
- package/src/providers/FetchProvider.tsx +0 -40
- package/src/providers/ReqraftProvider.tsx +0 -52
- package/src/providers/StorageProvider.tsx +0 -131
- package/src/stores/currentUser/currentUser.stories.tsx +0 -100
- package/src/stores/currentUser/currentUser.tsx +0 -94
- package/src/stories/Data/fileFieldArgSchema.json +0 -86
- package/src/stories/Tests/utils.ts +0 -320
- package/src/stories/storyNetwork.ts +0 -92
- package/src/stories/tracking.tsx +0 -206
- package/src/tracking/browser/attach.ts +0 -186
- package/src/tracking/browser/env.ts +0 -78
- package/src/tracking/core/consent.ts +0 -37
- package/src/tracking/core/engagement.ts +0 -47
- package/src/tracking/core/experiments.ts +0 -258
- package/src/tracking/core/hash.ts +0 -26
- package/src/tracking/core/ids.ts +0 -25
- package/src/tracking/core/observable.ts +0 -23
- package/src/tracking/core/queue.ts +0 -131
- package/src/tracking/core/sections.ts +0 -166
- package/src/tracking/core/storage.ts +0 -69
- package/src/tracking/core/tracker.ts +0 -417
- package/src/tracking/core/types.ts +0 -162
- package/src/tracking/core/utm.ts +0 -23
- package/src/tracking/index.ts +0 -72
- package/src/tracking/markup.ts +0 -17
- package/src/tracking/react/Experiment.tsx +0 -44
- package/src/tracking/react/TrackingProvider.tsx +0 -56
- package/src/tracking/react/hooks.ts +0 -106
- package/src/tracking/react/index.ts +0 -13
- package/src/tracking/testing.ts +0 -108
- package/src/tracking/ui/ExperimentCard.stories.tsx +0 -296
- package/src/tracking/ui/ExperimentCard.tsx +0 -667
- package/src/tracking/ui/ExperimentsOverlay.stories.tsx +0 -155
- package/src/tracking/ui/ExperimentsOverlay.tsx +0 -437
- package/src/tracking/ui/anchor.ts +0 -180
- package/src/tracking/ui/card.ts +0 -464
- package/src/tracking/ui/client.ts +0 -117
- package/src/tracking/ui/index.ts +0 -77
- package/src/tracking/ui/types.ts +0 -110
- package/src/tracking/ui/useExperimentsAdmin.ts +0 -103
- package/src/types/Form.ts +0 -29
- package/src/types.ts +0 -14
- package/src/utils/datetime.ts +0 -10
- package/src/utils/fetch.ts +0 -457
- package/src/utils/lspClient.ts +0 -711
- package/src/utils/lspClient.types.ts +0 -211
- package/src/utils/queryUnlessCancelled.ts +0 -28
- package/src/utils/websocket.ts +0 -293
- package/vite.config.ts +0 -58
- package/vitest.config.ts +0 -69
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
14
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
15
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -36,7 +47,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
36
47
|
}
|
|
37
48
|
};
|
|
38
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.ExpressionField = void 0;
|
|
50
|
+
exports.ExpressionField = exports.DEFAULT_EXPRESSION_MODE_LABELS = void 0;
|
|
40
51
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
41
52
|
// Copyright 2026 Qore Technologies, s.r.o.
|
|
42
53
|
// The shell `TemplateField` renders when a field is in expression mode.
|
|
@@ -49,11 +60,15 @@ var jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
49
60
|
var reqore_1 = require("@qoretechnologies/reqore");
|
|
50
61
|
var react_1 = require("react");
|
|
51
62
|
var dpqlEditor_1 = require("../../dpqlEditor");
|
|
63
|
+
var TemplateBrowser_1 = require("../fields/template/TemplateBrowser");
|
|
52
64
|
var dpqlHelpers_1 = require("../../dpqlEditor/dpqlHelpers");
|
|
53
65
|
var builder_1 = require("./builder");
|
|
54
66
|
var DpqlRendering_1 = require("./DpqlRendering");
|
|
67
|
+
var textOfExpression_1 = require("./textOfExpression");
|
|
55
68
|
var useExpressions_1 = require("./useExpressions");
|
|
56
69
|
var useRenderExpression_1 = require("./useRenderExpression");
|
|
70
|
+
var expressions_1 = require("../../../helpers/expressions");
|
|
71
|
+
var useQorusTypes_1 = require("../../../hooks/useQorusTypes");
|
|
57
72
|
var optionUiTypes_1 = require("../../../helpers/optionUiTypes");
|
|
58
73
|
var PARSE_DEBOUNCE_MS = 300;
|
|
59
74
|
/**
|
|
@@ -65,24 +80,184 @@ var PARSE_DEBOUNCE_MS = 300;
|
|
|
65
80
|
* has stopped moving rather than twitching on the way there.
|
|
66
81
|
*/
|
|
67
82
|
var PREVIEW_DEBOUNCE_MS = 400;
|
|
68
|
-
/**
|
|
69
|
-
|
|
70
|
-
|
|
83
|
+
/**
|
|
84
|
+
* A control in the field's column at its own width: the column stretches what it holds across it. The Text /
|
|
85
|
+
* Visual toggle is as wide as what the two say, not across the form: a control is its own width on any screen
|
|
86
|
+
* wider than a phone's (qorus#646, David's width rule), so it is not fluid either.
|
|
87
|
+
*/
|
|
88
|
+
var OWN_WIDTH_STYLE = { alignSelf: 'flex-start' };
|
|
89
|
+
exports.DEFAULT_EXPRESSION_MODE_LABELS = {
|
|
90
|
+
text: 'Text',
|
|
91
|
+
visual: 'Visual',
|
|
92
|
+
textUnavailable: 'The expression language server is not available',
|
|
93
|
+
};
|
|
94
|
+
/** A diagnostic that is an error: the server marks one severity 1, or `error`. */
|
|
95
|
+
var isErrorDiagnostic = function (diagnostic) {
|
|
96
|
+
return diagnostic.severity === 1 || diagnostic.severity === 'error';
|
|
97
|
+
};
|
|
98
|
+
/** What the server says of a condition as a condition: drawn by the builder, on the cards it is about. */
|
|
99
|
+
var CONDITION_DIAGNOSTIC_CODES = ['NOT_A_CONDITION', 'CONDITION_BY_TRUTHINESS'];
|
|
100
|
+
/**
|
|
101
|
+
* What the server says of an expression built in the Visual view: its errors, in its words, at the danger
|
|
102
|
+
* intent. It writes the expression as DPQL (`dpql/serialize`) and reads it back (`dpql/parse`) on a document
|
|
103
|
+
* bound to the record's fields, as the Text view's document is - so the server judges what is built as it
|
|
104
|
+
* judges what is written. Mounted only while the Visual view shows a whole expression it can type.
|
|
105
|
+
*
|
|
106
|
+
* A condition is read as one (`condition: true`): what the server says of the whole condition and of each part
|
|
107
|
+
* of its `&&`, `||` and `!` goes to `onConditionParts`, for the builder to draw on the cards it is about, and is
|
|
108
|
+
* not repeated here.
|
|
109
|
+
*/
|
|
110
|
+
var ExpressionServerErrors = (0, react_1.memo)(function (_a) {
|
|
111
|
+
var expression = _a.expression, fields = _a.fields, provider = _a.provider, recordType = _a.recordType, condition = _a.condition, onConditionParts = _a.onConditionParts;
|
|
112
|
+
var dpql = (0, dpqlEditor_1.useDpqlSession)({ fields: fields, provider: provider, recordType: recordType });
|
|
113
|
+
var ready = dpql.session.isReady && dpql.session.isContextReady;
|
|
114
|
+
var _b = (0, react_1.useState)([]), errors = _b[0], setErrors = _b[1];
|
|
115
|
+
var expressionKey = JSON.stringify(expression);
|
|
116
|
+
var serialize = dpql.serialize, parse = dpql.parse;
|
|
117
|
+
(0, react_1.useEffect)(function () {
|
|
118
|
+
if (!ready)
|
|
119
|
+
return undefined;
|
|
120
|
+
var cancelled = false;
|
|
121
|
+
var check = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
122
|
+
var said, parts, whole, text, result, _a;
|
|
123
|
+
return __generator(this, function (_b) {
|
|
124
|
+
switch (_b.label) {
|
|
125
|
+
case 0:
|
|
126
|
+
said = [];
|
|
127
|
+
_b.label = 1;
|
|
128
|
+
case 1:
|
|
129
|
+
_b.trys.push([1, 5, , 6]);
|
|
130
|
+
return [4 /*yield*/, serialize(JSON.parse(expressionKey))];
|
|
131
|
+
case 2:
|
|
132
|
+
text = _b.sent();
|
|
133
|
+
if (!text) return [3 /*break*/, 4];
|
|
134
|
+
return [4 /*yield*/, parse(text, undefined, condition ? { condition: true } : undefined)];
|
|
135
|
+
case 3:
|
|
136
|
+
result = _b.sent();
|
|
137
|
+
parts = (0, expressions_1.conditionPartsWithMessages)(result.parts, result.inferred_type, result.diagnostics);
|
|
138
|
+
whole =
|
|
139
|
+
condition ? (0, expressions_1.conditionWholeMessage)(result.inferred_type, result.diagnostics) : undefined;
|
|
140
|
+
said = result.diagnostics
|
|
141
|
+
.filter(function (d) {
|
|
142
|
+
var _a;
|
|
143
|
+
return isErrorDiagnostic(d) &&
|
|
144
|
+
!(condition && CONDITION_DIAGNOSTIC_CODES.includes(String((_a = d.code) !== null && _a !== void 0 ? _a : '')));
|
|
145
|
+
})
|
|
146
|
+
.map(function (d) { return d.message; });
|
|
147
|
+
_b.label = 4;
|
|
148
|
+
case 4: return [3 /*break*/, 6];
|
|
149
|
+
case 5:
|
|
150
|
+
_a = _b.sent();
|
|
151
|
+
// a server that cannot write or read it says nothing about it here
|
|
152
|
+
said = [];
|
|
153
|
+
parts = undefined;
|
|
154
|
+
whole = undefined;
|
|
155
|
+
return [3 /*break*/, 6];
|
|
156
|
+
case 6:
|
|
157
|
+
if (cancelled)
|
|
158
|
+
return [2 /*return*/];
|
|
159
|
+
setErrors(said);
|
|
160
|
+
onConditionParts === null || onConditionParts === void 0 ? void 0 : onConditionParts(expressionKey, parts, whole);
|
|
161
|
+
return [2 /*return*/];
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}); };
|
|
165
|
+
void check();
|
|
166
|
+
return function () {
|
|
167
|
+
cancelled = true;
|
|
168
|
+
};
|
|
169
|
+
}, [ready, expressionKey, serialize, parse, condition, onConditionParts]);
|
|
170
|
+
if (!errors.length)
|
|
171
|
+
return null;
|
|
172
|
+
return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreControlGroup, { vertical: true, fluid: true, size: 'small', className: 'expression-server-errors', children: errors.map(function (message, index) { return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMessage, { intent: 'danger', "data-severity": 'danger', size: 'small', flat: true, opaque: false, children: message }, index)); }) }));
|
|
173
|
+
});
|
|
71
174
|
exports.ExpressionField = (0, react_1.memo)(function (_a) {
|
|
72
|
-
var _b;
|
|
73
|
-
var value = _a.value, onChange = _a.onChange, type = _a.type, returnType = _a.returnType, readOnly = _a.readOnly, expressionsOverride = _a.expressions, expressionsUrl = _a.expressionsUrl, localTemplates = _a.localTemplates, serverHandled = _a.serverHandled, extraActions = _a.extraActions, provider = _a.provider, fields = _a.fields, recordType = _a.recordType,
|
|
175
|
+
var _b, _c, _d, _e;
|
|
176
|
+
var value = _a.value, onChange = _a.onChange, type = _a.type, returnType = _a.returnType, readOnly = _a.readOnly, expressionsOverride = _a.expressions, expressionsUrl = _a.expressionsUrl, localTemplates = _a.localTemplates, serverHandled = _a.serverHandled, condition = _a.condition, extraActions = _a.extraActions, provider = _a.provider, fields = _a.fields, recordType = _a.recordType, _f = _a.defaultMode, defaultMode = _f === void 0 ? 'text' : _f, initialText = _a.initialText, draftText = _a.draftText, onDraftChange = _a.onDraftChange, heldAsValue = _a.heldAsValue, requestedMode = _a.requestedMode, hideModeToggle = _a.hideModeToggle, modeLabels = _a.modeLabels, onTextUnavailable = _a.onTextUnavailable, onModeChange = _a.onModeChange, flushRef = _a.flushRef, size = _a.size, componentOverrides = _a.componentOverrides, reorder = _a.reorder;
|
|
74
177
|
var expressions = (0, useExpressions_1.useExpressions)({
|
|
75
178
|
override: expressionsOverride,
|
|
76
179
|
expressionsUrl: expressionsUrl,
|
|
77
180
|
}).expressions;
|
|
78
181
|
var renderRich = (0, useRenderExpression_1.useRenderExpression)().renderRich;
|
|
79
|
-
var
|
|
182
|
+
var _g = (0, react_1.useState)(defaultMode), mode = _g[0], setMode = _g[1];
|
|
183
|
+
var modeWords = (0, react_1.useMemo)(function () { return (__assign(__assign({}, exports.DEFAULT_EXPRESSION_MODE_LABELS), modeLabels)); }, [modeLabels]);
|
|
184
|
+
var onModeChangeRef = (0, react_1.useRef)(onModeChange);
|
|
185
|
+
onModeChangeRef.current = onModeChange;
|
|
186
|
+
(0, react_1.useEffect)(function () {
|
|
187
|
+
var _a;
|
|
188
|
+
(_a = onModeChangeRef.current) === null || _a === void 0 ? void 0 : _a.call(onModeChangeRef, mode);
|
|
189
|
+
}, [mode]);
|
|
80
190
|
/* The server's rendering of the current AST; empty until it has one. There is
|
|
81
191
|
no client-side stand-in — see `useRenderExpression`. */
|
|
82
|
-
var
|
|
192
|
+
var _h = (0, react_1.useState)(''), preview = _h[0], setPreview = _h[1];
|
|
83
193
|
// Text mode state. `text` is the DPQL string the editor shows; the AST
|
|
84
194
|
// (`value`) stays the source of truth, kept in sync via parse-on-edit.
|
|
85
|
-
var
|
|
195
|
+
var _j = (0, react_1.useState)((_b = draftText !== null && draftText !== void 0 ? draftText : initialText) !== null && _b !== void 0 ? _b : ''), text = _j[0], setText = _j[1];
|
|
196
|
+
/* What the author wrote in the Text view that the value does not hold (see `onDraftChange`): it is this
|
|
197
|
+
field's text until it parses or is cleared, so a later visit to the Text view shows it, not the value
|
|
198
|
+
written out. */
|
|
199
|
+
var draftRef = (0, react_1.useRef)(draftText);
|
|
200
|
+
var onDraftChangeRef = (0, react_1.useRef)(onDraftChange);
|
|
201
|
+
onDraftChangeRef.current = onDraftChange;
|
|
202
|
+
var setDraft = (0, react_1.useCallback)(function (next) {
|
|
203
|
+
var _a;
|
|
204
|
+
if (draftRef.current === next)
|
|
205
|
+
return;
|
|
206
|
+
draftRef.current = next;
|
|
207
|
+
(_a = onDraftChangeRef.current) === null || _a === void 0 ? void 0 : _a.call(onDraftChangeRef, next);
|
|
208
|
+
}, []);
|
|
209
|
+
/** The text the editor was given, for its echo of that text to be told from typing. */
|
|
210
|
+
var textRef = (0, react_1.useRef)(text);
|
|
211
|
+
textRef.current = text;
|
|
212
|
+
/* No language server to parse or write the text: the Text view cannot work, so the field shows the
|
|
213
|
+
Visual view, which needs none, and says why (qorus#646). */
|
|
214
|
+
var _k = (0, react_1.useState)(false), textUnavailable = _k[0], setTextUnavailable = _k[1];
|
|
215
|
+
/* Why the server would not write this value as text, or null. The field is then built in Visual: an empty
|
|
216
|
+
Text view would be one the author types over, replacing the value (qorus#646). */
|
|
217
|
+
var _l = (0, react_1.useState)(null), textRefused = _l[0], setTextRefused = _l[1];
|
|
218
|
+
// read when a refusal lands, so a host's new callback on each render does not restart the seed
|
|
219
|
+
var onTextUnavailableRef = (0, react_1.useRef)(onTextUnavailable);
|
|
220
|
+
onTextUnavailableRef.current = onTextUnavailable;
|
|
221
|
+
/* Whether the Text view's language server can parse and write its text - the session's own signal
|
|
222
|
+
(`onReady`), never a guess by time. Typed text waits for it; it is not asked of a session that is not
|
|
223
|
+
up, whose answer is "nothing parsed" (qorus#646: under load, text typed before the session was up
|
|
224
|
+
never reached the value). Each visit to the Text view opens a session of its own. */
|
|
225
|
+
var _m = (0, react_1.useState)(false), sessionReady = _m[0], setSessionReady = _m[1];
|
|
226
|
+
var sessionReadyRef = (0, react_1.useRef)(false);
|
|
227
|
+
/** Who waits for the session: told true when it is ready, false when it cannot be reached or goes. */
|
|
228
|
+
var sessionWaiters = (0, react_1.useRef)([]);
|
|
229
|
+
var settleSessionWaiters = (0, react_1.useCallback)(function (ready) {
|
|
230
|
+
var waiters = sessionWaiters.current;
|
|
231
|
+
sessionWaiters.current = [];
|
|
232
|
+
waiters.forEach(function (resolve) { return resolve(ready); });
|
|
233
|
+
}, []);
|
|
234
|
+
var whenSessionReady = (0, react_1.useCallback)(function () {
|
|
235
|
+
return sessionReadyRef.current ?
|
|
236
|
+
Promise.resolve(true)
|
|
237
|
+
: new Promise(function (resolve) { return sessionWaiters.current.push(resolve); });
|
|
238
|
+
}, []);
|
|
239
|
+
var handleTextReady = (0, react_1.useCallback)(function () {
|
|
240
|
+
sessionReadyRef.current = true;
|
|
241
|
+
setSessionReady(true);
|
|
242
|
+
settleSessionWaiters(true);
|
|
243
|
+
}, [settleSessionWaiters]);
|
|
244
|
+
(0, react_1.useEffect)(function () {
|
|
245
|
+
if (mode === 'text')
|
|
246
|
+
return;
|
|
247
|
+
sessionReadyRef.current = false;
|
|
248
|
+
setSessionReady(false);
|
|
249
|
+
settleSessionWaiters(false);
|
|
250
|
+
}, [mode, settleSessionWaiters]);
|
|
251
|
+
(0, react_1.useEffect)(function () { return function () { return settleSessionWaiters(false); }; }, [settleSessionWaiters]);
|
|
252
|
+
var handleTextUnavailable = (0, react_1.useCallback)(function () {
|
|
253
|
+
setTextUnavailable(true);
|
|
254
|
+
settleSessionWaiters(false);
|
|
255
|
+
onTextUnavailable === null || onTextUnavailable === void 0 ? void 0 : onTextUnavailable();
|
|
256
|
+
// text typed and not read stays as typed, in the Text view, with the reason under it: nothing is lost
|
|
257
|
+
if (pendingParse.current !== null)
|
|
258
|
+
return;
|
|
259
|
+
setMode('visual');
|
|
260
|
+
}, [onTextUnavailable, settleSessionWaiters]);
|
|
86
261
|
/* The text the current AST was parsed FROM.
|
|
87
262
|
*
|
|
88
263
|
* The preview renders the AST, and the AST only moves on a SUCCESSFUL
|
|
@@ -91,15 +266,17 @@ exports.ExpressionField = (0, react_1.memo)(function (_a) {
|
|
|
91
266
|
* the editor does not contain: deleting the `2` from `1 + 2` left
|
|
92
267
|
* "Unexpected end of input" sitting directly above a Preview confidently
|
|
93
268
|
* reading `1 + 2`. */
|
|
94
|
-
var
|
|
269
|
+
var _o = (0, react_1.useState)(''), astText = _o[0], setAstText = _o[1];
|
|
95
270
|
/**
|
|
96
271
|
* The server's answer to "can this expression's result satisfy the type
|
|
97
272
|
* this field declares?". `null` when nothing has been asked, or when the
|
|
98
273
|
* field declares no type worth asking about.
|
|
99
274
|
*/
|
|
100
|
-
var
|
|
275
|
+
var _p = (0, react_1.useState)(null), typeCheck = _p[0], setTypeCheck = _p[1];
|
|
101
276
|
var dpqlRef = (0, react_1.useRef)(null);
|
|
102
277
|
var parseTimer = (0, react_1.useRef)(null);
|
|
278
|
+
/** The text typed whose parse is still waiting on the debounce, or null. */
|
|
279
|
+
var pendingParse = (0, react_1.useRef)(null);
|
|
103
280
|
var ast = (0, react_1.useMemo)(function () { return value === null || value === void 0 ? void 0 : value.value; }, [value]);
|
|
104
281
|
/**
|
|
105
282
|
* The type the expression's result has to satisfy, sent with every parse.
|
|
@@ -113,6 +290,36 @@ exports.ExpressionField = (0, react_1.memo)(function (_a) {
|
|
|
113
290
|
var declared = Array.isArray(returnType) ? undefined : (returnType !== null && returnType !== void 0 ? returnType : type);
|
|
114
291
|
return declared && !(0, optionUiTypes_1.isUntypedOptionType)(declared) ? declared : undefined;
|
|
115
292
|
}, [returnType, type]);
|
|
293
|
+
/** A condition is asked as one, not as a type to fit. */
|
|
294
|
+
var parseOptions = (0, react_1.useMemo)(function () { return (condition ? { condition: true } : undefined); }, [condition]);
|
|
295
|
+
/**
|
|
296
|
+
* The expression built in the Visual view, as the server is asked about it (qorus#646): whole, and only
|
|
297
|
+
* where the server can type its operands - with the record's fields or a provider's. The server refuses
|
|
298
|
+
* operands its operators cannot combine (DPQL-E050, `@create + 1` with `create` a hash), which nothing
|
|
299
|
+
* on this side can tell; the Text view shows it as the server publishes it, and so does this view.
|
|
300
|
+
*/
|
|
301
|
+
var serverCheckable = (0, react_1.useMemo)(function () {
|
|
302
|
+
return (mode === 'visual' &&
|
|
303
|
+
((!!fields && Object.keys(fields).length > 0) || !!provider || !!condition)) ?
|
|
304
|
+
(0, textOfExpression_1.serializableExpression)(ast)
|
|
305
|
+
: undefined;
|
|
306
|
+
}, [mode, fields, provider, condition, ast]);
|
|
307
|
+
/* What the server said of each part of the condition built in the Visual view (qorus#646), for the
|
|
308
|
+
expression it was said of: an answer about an expression since edited is not drawn on it. */
|
|
309
|
+
var _q = (0, react_1.useState)(), conditionParts = _q[0], setConditionParts = _q[1];
|
|
310
|
+
var onConditionParts = (0, react_1.useCallback)(function (key, parts, whole) {
|
|
311
|
+
return setConditionParts({ key: key, parts: parts, whole: whole });
|
|
312
|
+
}, []);
|
|
313
|
+
var currentCondition = serverCheckable && (conditionParts === null || conditionParts === void 0 ? void 0 : conditionParts.key) === JSON.stringify(serverCheckable) ?
|
|
314
|
+
conditionParts
|
|
315
|
+
: undefined;
|
|
316
|
+
var currentConditionParts = currentCondition === null || currentCondition === void 0 ? void 0 : currentCondition.parts;
|
|
317
|
+
/* What the server says of the whole condition built in the Visual view, in its words: drawn there as the
|
|
318
|
+
Text view draws it, in place of the builder's own fallback. */
|
|
319
|
+
var currentConditionMessage = currentCondition === null || currentCondition === void 0 ? void 0 : currentCondition.whole;
|
|
320
|
+
var qorusTypes = (0, useQorusTypes_1.useQorusTypes)();
|
|
321
|
+
/** A type named inside a sentence: the sentence form of what it is ("a whole number"), or nothing (qorus#646). */
|
|
322
|
+
var typeInSentence = (0, react_1.useCallback)(function (type) { var _a; return (_a = qorusTypes.getTypeSentenceForm((0, expressions_1.conditionBaseType)(type))) !== null && _a !== void 0 ? _a : 'nothing'; }, [qorusTypes]);
|
|
116
323
|
/**
|
|
117
324
|
* Read the type analysis off a parse result, or clear it.
|
|
118
325
|
*
|
|
@@ -122,7 +329,27 @@ exports.ExpressionField = (0, react_1.memo)(function (_a) {
|
|
|
122
329
|
* noise the message below is written to avoid.
|
|
123
330
|
*/
|
|
124
331
|
var readTypeCheck = (0, react_1.useCallback)(function (result) {
|
|
125
|
-
var _a;
|
|
332
|
+
var _a, _b, _c;
|
|
333
|
+
/* A condition is not a type to fit (qorus#646): the server reads it as true unless its value is
|
|
334
|
+
zero or empty, so it is said as every condition editor says it - a number accepted with a warning,
|
|
335
|
+
text refused. The server's reading, with its own words, when it gave one; the inferred type read
|
|
336
|
+
the same way when it did not (a server that does not know the question). */
|
|
337
|
+
if (condition) {
|
|
338
|
+
if (!result) {
|
|
339
|
+
setTypeCheck(null);
|
|
340
|
+
return;
|
|
341
|
+
}
|
|
342
|
+
var reading = result.condition_reading;
|
|
343
|
+
var verdict_1 = reading === 'not_a_condition' ? 'error'
|
|
344
|
+
: reading === 'truthiness' ? 'warning'
|
|
345
|
+
: reading ? undefined
|
|
346
|
+
: (0, expressions_1.conditionVerdict)(result.inferred_type);
|
|
347
|
+
var said = (_b = (_a = result.diagnostics) === null || _a === void 0 ? void 0 : _a.find(function (d) {
|
|
348
|
+
return verdict_1 === 'error' ? d.code === 'NOT_A_CONDITION' : d.code === 'CONDITION_BY_TRUTHINESS';
|
|
349
|
+
})) === null || _b === void 0 ? void 0 : _b.message;
|
|
350
|
+
setTypeCheck(verdict_1 ? __assign({ compatible: verdict_1 !== 'error', mayFail: false, inferred: result.inferred_type, condition: verdict_1 }, (said ? { message: said } : {})) : null);
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
126
353
|
if (!result || result.type_compatible === undefined) {
|
|
127
354
|
setTypeCheck(null);
|
|
128
355
|
return;
|
|
@@ -133,9 +360,9 @@ exports.ExpressionField = (0, react_1.memo)(function (_a) {
|
|
|
133
360
|
mayFail: !!result.coercion_may_fail,
|
|
134
361
|
inferred: result.inferred_type,
|
|
135
362
|
target: result.target_type,
|
|
136
|
-
fix: (
|
|
363
|
+
fix: (_c = result.suggested_fix) === null || _c === void 0 ? void 0 : _c.text,
|
|
137
364
|
});
|
|
138
|
-
}, []);
|
|
365
|
+
}, [condition]);
|
|
139
366
|
// Keep a readable rendering of the current expression in sync — the
|
|
140
367
|
// single live mirror of the AST (the server's `dpql/renderExpression`).
|
|
141
368
|
//
|
|
@@ -189,65 +416,97 @@ exports.ExpressionField = (0, react_1.memo)(function (_a) {
|
|
|
189
416
|
hadExpression.current = true;
|
|
190
417
|
return;
|
|
191
418
|
}
|
|
419
|
+
// a template or a literal written here is held as itself: the text stands for it, and stays
|
|
420
|
+
if (heldAsValue) {
|
|
421
|
+
hadExpression.current = false;
|
|
422
|
+
return;
|
|
423
|
+
}
|
|
192
424
|
if (hadExpression.current) {
|
|
193
425
|
hadExpression.current = false;
|
|
194
426
|
userTypedRef.current = false;
|
|
195
427
|
setText('');
|
|
196
428
|
}
|
|
197
|
-
}, [ast]);
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
429
|
+
}, [ast, heldAsValue]);
|
|
430
|
+
/* Read the text typed and not yet read: once the session is ready, however long that takes, and the
|
|
431
|
+
latest text typed by then. Gives the expression it is, or nothing. The debounce, the host leaving the
|
|
432
|
+
Text view (its tabs) and the session coming up all read through here. */
|
|
433
|
+
var flushPendingParse = (0, react_1.useCallback)(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
434
|
+
var pending, parse, result;
|
|
435
|
+
var _a;
|
|
436
|
+
return __generator(this, function (_b) {
|
|
437
|
+
switch (_b.label) {
|
|
438
|
+
case 0:
|
|
439
|
+
if (pendingParse.current === null)
|
|
440
|
+
return [2 /*return*/, undefined];
|
|
441
|
+
/* An emptied text is no value, as an emptied Value tab is: the field holds nothing. It stayed what it
|
|
442
|
+
was, and came back on the next visit (qorus#646: the text's × left the 201). */
|
|
443
|
+
if (!pendingParse.current.trim()) {
|
|
444
|
+
if (parseTimer.current)
|
|
445
|
+
clearTimeout(parseTimer.current);
|
|
446
|
+
pendingParse.current = null;
|
|
447
|
+
setDraft(undefined);
|
|
448
|
+
if (ast || heldAsValue)
|
|
449
|
+
onChange({ is_expression: true }, true);
|
|
450
|
+
return [2 /*return*/, undefined];
|
|
451
|
+
}
|
|
452
|
+
return [4 /*yield*/, whenSessionReady()];
|
|
453
|
+
case 1:
|
|
454
|
+
if (!(_b.sent()))
|
|
455
|
+
return [2 /*return*/, undefined];
|
|
456
|
+
pending = pendingParse.current;
|
|
457
|
+
parse = (_a = dpqlRef.current) === null || _a === void 0 ? void 0 : _a.parse;
|
|
458
|
+
if (pending === null || !parse)
|
|
459
|
+
return [2 /*return*/, undefined];
|
|
460
|
+
if (parseTimer.current)
|
|
461
|
+
clearTimeout(parseTimer.current);
|
|
462
|
+
pendingParse.current = null;
|
|
463
|
+
return [4 /*yield*/, parse(pending, targetType, parseOptions)];
|
|
464
|
+
case 2:
|
|
465
|
+
result = _b.sent();
|
|
466
|
+
readTypeCheck(result);
|
|
467
|
+
// not parsed: the value keeps what it held, and the text stays the author's (see `onDraftChange`)
|
|
468
|
+
if (!(result === null || result === void 0 ? void 0 : result.success) || !result.expression)
|
|
469
|
+
return [2 /*return*/, undefined];
|
|
470
|
+
setDraft(undefined);
|
|
471
|
+
setAstText(pending);
|
|
472
|
+
// `dpql/parse` returns the field-ready `{ is_expression, value }`.
|
|
473
|
+
onChange(result.expression);
|
|
474
|
+
return [2 /*return*/, result.expression];
|
|
475
|
+
}
|
|
476
|
+
});
|
|
477
|
+
}); }, [
|
|
478
|
+
onChange,
|
|
479
|
+
targetType,
|
|
480
|
+
parseOptions,
|
|
481
|
+
readTypeCheck,
|
|
482
|
+
whenSessionReady,
|
|
483
|
+
setDraft,
|
|
484
|
+
ast,
|
|
485
|
+
heldAsValue,
|
|
486
|
+
]);
|
|
487
|
+
// the latest reader, for the seeding below, which is not run again for a new one
|
|
488
|
+
var flushLatest = (0, react_1.useRef)(flushPendingParse);
|
|
489
|
+
flushLatest.current = flushPendingParse;
|
|
490
|
+
// Text mode: parse the DPQL into the AST, debounced, once the session can read it.
|
|
215
491
|
var handleDpqlChange = (0, react_1.useCallback)(function (next) {
|
|
492
|
+
/* The editor reports the text it was given back as a change (Slate's first operation after the
|
|
493
|
+
value is set). That is not typing: counted as such it stopped the session from writing the
|
|
494
|
+
expression into the view once it was ready. */
|
|
495
|
+
if (next === textRef.current)
|
|
496
|
+
return;
|
|
216
497
|
userTypedRef.current = true;
|
|
217
498
|
setText(next);
|
|
499
|
+
// the value does not hold it until it parses
|
|
500
|
+
setDraft(next);
|
|
218
501
|
if (parseTimer.current)
|
|
219
502
|
clearTimeout(parseTimer.current);
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
parse = (_a = dpqlRef.current) === null || _a === void 0 ? void 0 : _a.parse;
|
|
228
|
-
if (!parse) {
|
|
229
|
-
if (++tries < SEED_MAX_TRIES) {
|
|
230
|
-
parseTimer.current = setTimeout(runParse, SEED_RETRY_MS);
|
|
231
|
-
}
|
|
232
|
-
return [2 /*return*/];
|
|
233
|
-
}
|
|
234
|
-
return [4 /*yield*/, parse(next, targetType)];
|
|
235
|
-
case 1:
|
|
236
|
-
result = _b.sent();
|
|
237
|
-
readTypeCheck(result);
|
|
238
|
-
if ((result === null || result === void 0 ? void 0 : result.success) && result.expression) {
|
|
239
|
-
setAstText(next);
|
|
240
|
-
// `dpql/parse` returns the field-ready `{ is_expression, value }`.
|
|
241
|
-
onChange(result.expression);
|
|
242
|
-
}
|
|
243
|
-
return [2 /*return*/];
|
|
244
|
-
}
|
|
245
|
-
});
|
|
246
|
-
}); };
|
|
247
|
-
parseTimer.current = setTimeout(runParse, PARSE_DEBOUNCE_MS);
|
|
248
|
-
}, [onChange, targetType, readTypeCheck]);
|
|
249
|
-
/** Whether this visit to Text mode has already put the AST in the editor. */
|
|
250
|
-
var seededRef = (0, react_1.useRef)(false);
|
|
503
|
+
pendingParse.current = next;
|
|
504
|
+
parseTimer.current = setTimeout(function () { return void flushPendingParse(); }, PARSE_DEBOUNCE_MS);
|
|
505
|
+
}, [flushPendingParse, setDraft]);
|
|
506
|
+
/** Whether this visit to Text mode has already put the AST in the editor. The host's own text for the
|
|
507
|
+
* first visit (`initialText`, such as the value written as `concat("SUP-", $record:{pos})`) is that visit's
|
|
508
|
+
* text: the session does not write over it once it is ready. */
|
|
509
|
+
var seededRef = (0, react_1.useRef)(!!initialText);
|
|
251
510
|
/* Seed the Text editor from the AST whenever Text mode becomes active
|
|
252
511
|
* (including a `defaultMode='text'` mount). This must run as an effect: the
|
|
253
512
|
* editor only mounts on the same render that flips the mode (so `dpqlRef`
|
|
@@ -278,41 +537,89 @@ exports.ExpressionField = (0, react_1.memo)(function (_a) {
|
|
|
278
537
|
}
|
|
279
538
|
if (seededRef.current || userTypedRef.current)
|
|
280
539
|
return undefined;
|
|
540
|
+
/* What was written and does not parse is this visit's text, read again so its error is said again: not the
|
|
541
|
+
value written out over it. */
|
|
542
|
+
if (draftRef.current !== undefined) {
|
|
543
|
+
seededRef.current = true;
|
|
544
|
+
setText(draftRef.current);
|
|
545
|
+
pendingParse.current = draftRef.current;
|
|
546
|
+
void flushLatest.current();
|
|
547
|
+
return undefined;
|
|
548
|
+
}
|
|
281
549
|
if (!(ast === null || ast === void 0 ? void 0 : ast.exp))
|
|
282
550
|
return undefined;
|
|
283
|
-
|
|
551
|
+
/* Only what DPQL can write is serialized. An operand whose operation is not
|
|
552
|
+
chosen yet, or that is not filled in, has no text; handed to serialize as
|
|
553
|
+
it was, it came back as the server's (or a stand-in's) rendering of a hash:
|
|
554
|
+
`{args=(null)} > {type=int}`. The Text view shows the expression with a hole
|
|
555
|
+
for each part not filled in instead - `… > …`, as the row's summary does -
|
|
556
|
+
and serialize gets custom Text values as the strings or templates they are. */
|
|
557
|
+
var seedAst = (0, textOfExpression_1.serializableExpression)(ast);
|
|
558
|
+
if (!seedAst) {
|
|
559
|
+
var holes = (0, textOfExpression_1.incompleteExpressionText)(ast, expressions);
|
|
560
|
+
seededRef.current = true;
|
|
561
|
+
setText(holes);
|
|
562
|
+
setAstText(holes);
|
|
563
|
+
return undefined;
|
|
564
|
+
}
|
|
565
|
+
// written by the session once it is ready, as the session says it - not asked of it before
|
|
566
|
+
if (!sessionReady)
|
|
567
|
+
return undefined;
|
|
284
568
|
var cancelled = false;
|
|
285
|
-
var timer = null;
|
|
286
|
-
var tries = 0;
|
|
287
569
|
var seed = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
288
|
-
var t;
|
|
289
|
-
var _a, _b;
|
|
290
|
-
return __generator(this, function (
|
|
291
|
-
switch (
|
|
292
|
-
case 0:
|
|
570
|
+
var t, error_1, result;
|
|
571
|
+
var _a, _b, _c, _d, _e, _f;
|
|
572
|
+
return __generator(this, function (_g) {
|
|
573
|
+
switch (_g.label) {
|
|
574
|
+
case 0:
|
|
575
|
+
_g.trys.push([0, 2, , 3]);
|
|
576
|
+
return [4 /*yield*/, ((_b = (_a = dpqlRef.current) === null || _a === void 0 ? void 0 : _a.serialize) === null || _b === void 0 ? void 0 : _b.call(_a, seedAst))];
|
|
293
577
|
case 1:
|
|
294
|
-
t =
|
|
578
|
+
t = _g.sent();
|
|
579
|
+
return [3 /*break*/, 3];
|
|
580
|
+
case 2:
|
|
581
|
+
error_1 = _g.sent();
|
|
295
582
|
if (cancelled || userTypedRef.current)
|
|
296
583
|
return [2 /*return*/];
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
}
|
|
302
|
-
else if (++tries < SEED_MAX_TRIES) {
|
|
303
|
-
timer = setTimeout(seed, SEED_RETRY_MS);
|
|
304
|
-
}
|
|
584
|
+
setTextRefused(String((_c = error_1 === null || error_1 === void 0 ? void 0 : error_1.message) !== null && _c !== void 0 ? _c : error_1));
|
|
585
|
+
setMode('visual');
|
|
586
|
+
// a host drawing the views as tabs follows: the Visual tab
|
|
587
|
+
(_d = onTextUnavailableRef.current) === null || _d === void 0 ? void 0 : _d.call(onTextUnavailableRef);
|
|
305
588
|
return [2 /*return*/];
|
|
589
|
+
case 3:
|
|
590
|
+
if (cancelled || userTypedRef.current)
|
|
591
|
+
return [2 /*return*/];
|
|
592
|
+
setTextRefused(null);
|
|
593
|
+
if (!t) return [3 /*break*/, 5];
|
|
594
|
+
seededRef.current = true;
|
|
595
|
+
setText(t);
|
|
596
|
+
setAstText(t);
|
|
597
|
+
if (!(targetType || condition)) return [3 /*break*/, 5];
|
|
598
|
+
return [4 /*yield*/, ((_f = (_e = dpqlRef.current) === null || _e === void 0 ? void 0 : _e.parse) === null || _f === void 0 ? void 0 : _f.call(_e, t, targetType, parseOptions))];
|
|
599
|
+
case 4:
|
|
600
|
+
result = _g.sent();
|
|
601
|
+
if (!cancelled && !userTypedRef.current)
|
|
602
|
+
readTypeCheck(result);
|
|
603
|
+
_g.label = 5;
|
|
604
|
+
case 5: return [2 /*return*/];
|
|
306
605
|
}
|
|
307
606
|
});
|
|
308
607
|
}); };
|
|
309
608
|
void seed();
|
|
310
609
|
return function () {
|
|
311
610
|
cancelled = true;
|
|
312
|
-
if (timer)
|
|
313
|
-
clearTimeout(timer);
|
|
314
611
|
};
|
|
315
|
-
}, [mode, ast]);
|
|
612
|
+
}, [mode, ast, expressions, targetType, parseOptions, condition, readTypeCheck, sessionReady]);
|
|
613
|
+
/** The field's templates, its catalogue's entries, for the Text view's picker. */
|
|
614
|
+
var templateItems = (0, react_1.useMemo)(function () { var _a; return ((_a = localTemplates === null || localTemplates === void 0 ? void 0 : localTemplates.items) !== null && _a !== void 0 ? _a : []); }, [localTemplates]);
|
|
615
|
+
/* A template chosen from the picker goes in after the text, as a chip, and is parsed as typed text is:
|
|
616
|
+
the editor keeps no caret the field can reach, so the end of the text is where it is put. */
|
|
617
|
+
var insertTemplate = (0, react_1.useCallback)(function (item) {
|
|
618
|
+
if (typeof (item === null || item === void 0 ? void 0 : item.value) !== 'string' || !item.value)
|
|
619
|
+
return;
|
|
620
|
+
var current = text.trimEnd();
|
|
621
|
+
handleDpqlChange(current ? "".concat(current, " ").concat(item.value) : item.value);
|
|
622
|
+
}, [text, handleDpqlChange]);
|
|
316
623
|
// Switch to Text: the seeding effect above serializes the AST once
|
|
317
624
|
// the editor's session is up.
|
|
318
625
|
var enterTextMode = (0, react_1.useCallback)(function () {
|
|
@@ -320,28 +627,55 @@ exports.ExpressionField = (0, react_1.memo)(function (_a) {
|
|
|
320
627
|
}, []);
|
|
321
628
|
// Switch to Visual: flush any pending parse so the AST is current.
|
|
322
629
|
var enterVisualMode = (0, react_1.useCallback)(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
323
|
-
var result;
|
|
324
|
-
var
|
|
325
|
-
return __generator(this, function (
|
|
326
|
-
switch (
|
|
630
|
+
var edited, _a, result;
|
|
631
|
+
var _b, _c;
|
|
632
|
+
return __generator(this, function (_d) {
|
|
633
|
+
switch (_d.label) {
|
|
327
634
|
case 0:
|
|
328
635
|
if (parseTimer.current)
|
|
329
636
|
clearTimeout(parseTimer.current);
|
|
330
|
-
|
|
331
|
-
|
|
637
|
+
pendingParse.current = null;
|
|
638
|
+
edited = text !== astText && userTypedRef.current;
|
|
639
|
+
_a = mode === 'text' && text && edited;
|
|
640
|
+
if (!_a) return [3 /*break*/, 2];
|
|
641
|
+
return [4 /*yield*/, whenSessionReady()];
|
|
332
642
|
case 1:
|
|
333
|
-
|
|
643
|
+
_a = (_d.sent());
|
|
644
|
+
_d.label = 2;
|
|
645
|
+
case 2:
|
|
646
|
+
if (!_a) return [3 /*break*/, 4];
|
|
647
|
+
return [4 /*yield*/, ((_c = (_b = dpqlRef.current) === null || _b === void 0 ? void 0 : _b.parse) === null || _c === void 0 ? void 0 : _c.call(_b, text, targetType, parseOptions))];
|
|
648
|
+
case 3:
|
|
649
|
+
result = _d.sent();
|
|
334
650
|
readTypeCheck(result);
|
|
335
651
|
if ((result === null || result === void 0 ? void 0 : result.success) && result.expression) {
|
|
336
652
|
onChange(result.expression);
|
|
337
653
|
}
|
|
338
|
-
|
|
339
|
-
case
|
|
654
|
+
_d.label = 4;
|
|
655
|
+
case 4:
|
|
340
656
|
setMode('visual');
|
|
341
657
|
return [2 /*return*/];
|
|
342
658
|
}
|
|
343
659
|
});
|
|
344
|
-
}); }, [mode, text, onChange, targetType, readTypeCheck]);
|
|
660
|
+
}); }, [mode, text, astText, onChange, targetType, parseOptions, readTypeCheck, whenSessionReady]);
|
|
661
|
+
// the host's tabs: followed as the toggle is (see `requestedMode`)
|
|
662
|
+
(0, react_1.useEffect)(function () {
|
|
663
|
+
if (!requestedMode || requestedMode === mode)
|
|
664
|
+
return;
|
|
665
|
+
if (requestedMode === 'visual')
|
|
666
|
+
void enterVisualMode();
|
|
667
|
+
else if (!textUnavailable)
|
|
668
|
+
enterTextMode();
|
|
669
|
+
}, [requestedMode]);
|
|
670
|
+
(0, react_1.useEffect)(function () {
|
|
671
|
+
if (!flushRef)
|
|
672
|
+
return undefined;
|
|
673
|
+
flushRef.current = flushPendingParse;
|
|
674
|
+
return function () {
|
|
675
|
+
if (flushRef.current === flushPendingParse)
|
|
676
|
+
flushRef.current = null;
|
|
677
|
+
};
|
|
678
|
+
}, [flushRef, flushPendingParse]);
|
|
345
679
|
(0, react_1.useEffect)(function () { return function () {
|
|
346
680
|
if (parseTimer.current)
|
|
347
681
|
clearTimeout(parseTimer.current);
|
|
@@ -353,13 +687,38 @@ exports.ExpressionField = (0, react_1.memo)(function (_a) {
|
|
|
353
687
|
var previewState = !preview || astText.trim() !== text.trim() ? 'none'
|
|
354
688
|
: (0, dpqlHelpers_1.dpqlDisplayedText)(preview).trim() === (0, dpqlHelpers_1.dpqlDisplayedText)(text).trim() ? 'repeats'
|
|
355
689
|
: 'shown';
|
|
356
|
-
return ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { vertical: true, fluid: true, gapSize: 'small', className: 'expression-field', "data-preview": mode === 'text' ? previewState : undefined, children: [(0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { gapSize: 'small', fluid:
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
690
|
+
return ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { vertical: true, fluid: true, gapSize: 'small', className: 'expression-field', "data-preview": mode === 'text' ? previewState : undefined, children: [hideModeToggle ? null : ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { gapSize: 'small', fluid: false, className: 'expression-mode-toggle', style: OWN_WIDTH_STYLE, children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { icon: 'CodeLine', active: mode === 'text', onClick: enterTextMode, disabled: readOnly || textUnavailable, tooltip: textUnavailable ? modeWords.textUnavailable : undefined, size: size, children: modeWords.text }), (0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { icon: 'NodeTree', active: mode === 'visual', onClick: enterVisualMode, disabled: readOnly, size: size, children: modeWords.visual })] })), mode === 'text' ?
|
|
691
|
+
(0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [textUnavailable ?
|
|
692
|
+
(0, jsx_runtime_1.jsx)(reqore_1.ReqoreMessage, { intent: 'warning', size: 'small', flat: true, opaque: false, className: 'expression-text-unavailable', children: "The expression language server is not available, so this text cannot be read yet. It is kept as you typed it; the Visual view builds the expression without the server." })
|
|
693
|
+
: null, (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { gapSize: 'small', fluid: true, verticalAlign: 'flex-start', children: [(0, jsx_runtime_1.jsx)(dpqlEditor_1.DpqlEditor, { ref: dpqlRef, value: text, onChange: handleDpqlChange, provider: provider, recordType: recordType, fields: fields,
|
|
694
|
+
// the field's own templates name the chips as its catalogue names them
|
|
695
|
+
templates: localTemplates, readOnly: readOnly,
|
|
696
|
+
// the field's size, as its Value tab draws the same value: a reference is the same chip in both
|
|
697
|
+
size: size,
|
|
698
|
+
// no floor of its own: one line as tall as the text it shows, growing with its lines - a
|
|
699
|
+
// 48px floor left an empty strip under the text, which the picker beside it could not match
|
|
700
|
+
onUnavailable: handleTextUnavailable, onReady: handleTextReady }), templateItems.length && !readOnly ?
|
|
701
|
+
(0, jsx_runtime_1.jsx)(TemplateBrowser_1.TemplateBrowser, { className: 'expression-text-template-picker', icon: 'MoneyDollarCircleLine', "aria-label": 'Insert a template', tooltip: 'Insert a template',
|
|
702
|
+
// the size of the text it inserts into, so the two are as tall as each other
|
|
703
|
+
size: (_c = size) !== null && _c !== void 0 ? _c : 'normal', fixed: true, templates: localTemplates, focusFilter: true, onItemSelect: insertTemplate })
|
|
704
|
+
: null] }), (typeCheck === null || typeCheck === void 0 ? void 0 : typeCheck.condition) && ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMessage, { className: 'expression-condition-verdict', intent: typeCheck.condition === 'error' ? 'danger' : 'warning', size: 'small', flat: true, opaque: false, children: (_d = typeCheck.message) !== null && _d !== void 0 ? _d : (typeCheck.condition === 'error' ?
|
|
705
|
+
(0, expressions_1.conditionErrorText)(typeInSentence(typeCheck.inferred), typeCheck.inferred)
|
|
706
|
+
: (0, expressions_1.conditionByTruthinessText)(typeCheck.inferred)) })), typeCheck && !typeCheck.compatible && !typeCheck.condition && ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreMessage, { intent: typeCheck.mayFail ? 'warning' : 'danger', size: 'small', flat: true, opaque: false, title: typeCheck.mayFail ? 'This may not fit' : 'This does not fit', children: ["The expression gives ".concat(typeInSentence(typeCheck.inferred), ", and this field takes ").concat(typeInSentence(typeCheck.target), "."), typeCheck.mayFail ? ' Qorus converts the value when it runs, and checks it then.' : '', typeCheck.fix ?
|
|
707
|
+
(0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreVerticalSpacer, { height: 6 }), (0, jsx_runtime_1.jsx)(DpqlRendering_1.DpqlRendering, { text: typeCheck.fix, "data-testid": 'expression-type-fix' })] })
|
|
708
|
+
: null] })), previewState === 'shown' ?
|
|
709
|
+
(0, jsx_runtime_1.jsx)(reqore_1.ReqoreMessage, { intent: 'info', size: 'small', title: 'Preview', flat: true, opaque: false, children: (0, jsx_runtime_1.jsx)(DpqlRendering_1.DpqlRendering, { text: preview, "data-testid": 'expression-preview' }) })
|
|
710
|
+
: null] })
|
|
711
|
+
: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [textRefused ?
|
|
712
|
+
(0, jsx_runtime_1.jsxs)(reqore_1.ReqoreMessage, { intent: 'warning', size: 'small', flat: true, opaque: false, className: 'expression-text-refused', children: ["This expression cannot be shown as text, so it is built here: ", textRefused] })
|
|
713
|
+
: null, textUnavailable ?
|
|
714
|
+
(0, jsx_runtime_1.jsx)(reqore_1.ReqoreMessage, { intent: 'muted', size: 'small', flat: true, opaque: false, className: 'expression-text-unavailable', children: "The Text view needs the expression language server, which is not available: the expression is built here instead." })
|
|
715
|
+
: null, (0, jsx_runtime_1.jsx)(builder_1.ExpressionBuilder, { value: value, onChange: function (v, remove) { return onChange(v, remove); }, expressions: expressions,
|
|
716
|
+
// Default to `auto` when the field declares no return type, so a
|
|
717
|
+
// valid expression renders `muted` rather than `danger` (the
|
|
718
|
+
// builder's intent requires a truthy returnType).
|
|
719
|
+
returnType: ((_e = returnType !== null && returnType !== void 0 ? returnType : type) !== null && _e !== void 0 ? _e : 'auto'), readOnly: readOnly, localTemplates: localTemplates !== null && localTemplates !== void 0 ? localTemplates : { items: [] }, serverHandled: serverHandled, condition: condition, conditionParts: currentConditionParts, conditionMessage: currentConditionMessage, componentOverrides: componentOverrides, extraActions: extraActions, size: size, reorder: reorder }), serverCheckable ?
|
|
720
|
+
(0, jsx_runtime_1.jsx)(ExpressionServerErrors, { expression: serverCheckable, fields: fields, provider: provider, recordType: recordType, condition: condition, onConditionParts: condition ? onConditionParts : undefined })
|
|
721
|
+
: null] })] }));
|
|
363
722
|
});
|
|
364
723
|
exports.default = exports.ExpressionField;
|
|
365
724
|
//# sourceMappingURL=ExpressionField.js.map
|