@qoretechnologies/reqraft 0.10.66-pr.145.gcb1e59d → 0.10.66
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/AllowedValuesHelp.d.ts +20 -0
- package/dist/components/Description/AllowedValuesHelp.d.ts.map +1 -0
- package/dist/components/Description/AllowedValuesHelp.js +86 -0
- package/dist/components/Description/AllowedValuesHelp.js.map +1 -0
- 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 +156 -10
- package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
- package/dist/components/dpqlEditor/dpqlCompletions.d.ts +39 -0
- package/dist/components/dpqlEditor/dpqlCompletions.d.ts.map +1 -0
- package/dist/components/dpqlEditor/dpqlCompletions.js +294 -0
- package/dist/components/dpqlEditor/dpqlCompletions.js.map +1 -0
- package/dist/components/dpqlEditor/dpqlHelpers.d.ts +54 -5
- package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
- package/dist/components/dpqlEditor/dpqlHelpers.js +420 -63
- package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
- package/dist/components/dpqlEditor/dpqlInserter.d.ts.map +1 -1
- package/dist/components/dpqlEditor/dpqlInserter.js +67 -29
- package/dist/components/dpqlEditor/dpqlInserter.js.map +1 -1
- package/dist/components/dpqlEditor/dpqlTags.d.ts +17 -7
- package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
- package/dist/components/dpqlEditor/dpqlTags.js +44 -17
- package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
- package/dist/components/dpqlEditor/types.d.ts +94 -8
- package/dist/components/dpqlEditor/types.d.ts.map +1 -1
- package/dist/components/dpqlEditor/useDpqlSession.d.ts +7 -2
- package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
- package/dist/components/dpqlEditor/useDpqlSession.js +49 -17
- 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 +336 -243
- 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 +20 -57
- package/dist/components/form/engine/CompactToolbar.js.map +1 -1
- package/dist/components/form/engine/FormEngine.d.ts +67 -59
- package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
- package/dist/components/form/engine/FormEngine.js +606 -409
- 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 +2 -18
- package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
- package/dist/components/form/engine/OptionFieldMessages.js +28 -25
- package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
- package/dist/components/form/engine/OptionsHelpDialog.d.ts.map +1 -1
- package/dist/components/form/engine/OptionsHelpDialog.js +19 -2
- package/dist/components/form/engine/OptionsHelpDialog.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 +11 -31
- package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
- package/dist/components/form/engine/compactRowContext.d.ts +30 -6
- 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 +56 -31
- package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
- package/dist/components/form/engine/compactRowStyles.js +121 -110
- 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/compactToolbarContext.d.ts +0 -3
- package/dist/components/form/engine/compactToolbarContext.d.ts.map +1 -1
- package/dist/components/form/engine/compactToolbarContext.js.map +1 -1
- package/dist/components/form/engine/inheritProps.d.ts +29 -0
- package/dist/components/form/engine/inheritProps.d.ts.map +1 -0
- package/dist/components/form/engine/inheritProps.js +43 -0
- package/dist/components/form/engine/inheritProps.js.map +1 -0
- package/dist/components/form/engine/operatorSummary.d.ts +26 -0
- package/dist/components/form/engine/operatorSummary.d.ts.map +1 -0
- package/dist/components/form/engine/operatorSummary.js +35 -0
- package/dist/components/form/engine/operatorSummary.js.map +1 -0
- package/dist/components/form/engine/readFirst.d.ts +26 -22
- package/dist/components/form/engine/readFirst.d.ts.map +1 -1
- package/dist/components/form/engine/readFirst.js +79 -115
- 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 +3 -9
- package/dist/components/form/engine/rowFocus.d.ts.map +1 -1
- package/dist/components/form/engine/rowFocus.js +30 -19
- 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 +7 -6
- package/dist/components/form/expressions/DpqlRendering.js.map +1 -1
- package/dist/components/form/expressions/ExpressionField.d.ts +67 -3
- package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
- package/dist/components/form/expressions/ExpressionField.js +536 -114
- 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 +30 -11
- 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 +9 -0
- package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +30 -27
- 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 +7 -5
- package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
- package/dist/components/form/expressions/builder/index.d.ts +34 -2
- package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/index.js +170 -80
- 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/loneValue.d.ts +17 -0
- package/dist/components/form/expressions/loneValue.d.ts.map +1 -0
- package/dist/components/form/expressions/loneValue.js +33 -0
- package/dist/components/form/expressions/loneValue.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 +37 -25
- 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 +12 -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 +39 -18
- package/dist/components/form/fields/Field.js.map +1 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.d.ts +0 -7
- package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.js +46 -35
- package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
- package/dist/components/form/fields/allowed-values/choicePicture.d.ts +37 -0
- package/dist/components/form/fields/allowed-values/choicePicture.d.ts.map +1 -0
- package/dist/components/form/fields/allowed-values/choicePicture.js +64 -0
- package/dist/components/form/fields/allowed-values/choicePicture.js.map +1 -0
- 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 +30 -1
- package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
- package/dist/components/form/fields/auto/AutoFormField.js +123 -79
- 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 +1 -7
- package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
- package/dist/components/form/fields/long-string/LongString.js +30 -13
- 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 +10 -7
- package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
- package/dist/components/form/fields/number/Number.d.ts +7 -4
- package/dist/components/form/fields/number/Number.d.ts.map +1 -1
- package/dist/components/form/fields/number/Number.js +45 -18
- 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/radio-group/RadioGroup.d.ts.map +1 -1
- package/dist/components/form/fields/radio-group/RadioGroup.js +8 -13
- package/dist/components/form/fields/radio-group/RadioGroup.js.map +1 -1
- package/dist/components/form/fields/rich-text/RichText.d.ts +20 -1
- package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
- package/dist/components/form/fields/rich-text/RichText.js +426 -91
- 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 +80 -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 +10 -1
- package/dist/components/form/fields/select/Select.d.ts.map +1 -1
- package/dist/components/form/fields/select/Select.js +28 -14
- package/dist/components/form/fields/select/Select.js.map +1 -1
- package/dist/components/form/fields/select/SelectCollection.d.ts +5 -0
- package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
- package/dist/components/form/fields/select/SelectCollection.js +25 -12
- 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 +21 -5
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
- package/dist/components/form/fields/template/TemplateBrowser.d.ts +16 -0
- package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
- package/dist/components/form/fields/template/TemplateBrowser.js +89 -0
- package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
- package/dist/components/form/fields/template/TemplateField.d.ts +105 -1
- package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
- package/dist/components/form/fields/template/TemplateField.js +706 -168
- package/dist/components/form/fields/template/TemplateField.js.map +1 -1
- package/dist/components/form/fields/template/TemplatePicker.d.ts +54 -0
- package/dist/components/form/fields/template/TemplatePicker.d.ts.map +1 -0
- package/dist/components/form/fields/template/TemplatePicker.js +459 -0
- package/dist/components/form/fields/template/TemplatePicker.js.map +1 -0
- 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 +22 -16
- package/dist/components/form/fields/template/TemplateText.js.map +1 -1
- package/dist/components/form/fields/template/referenceNames.d.ts +63 -0
- package/dist/components/form/fields/template/referenceNames.d.ts.map +1 -0
- package/dist/components/form/fields/template/referenceNames.js +69 -0
- package/dist/components/form/fields/template/referenceNames.js.map +1 -0
- 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 +12 -2
- package/dist/components/form/index.d.ts.map +1 -1
- package/dist/components/form/index.js +25 -3
- package/dist/components/form/index.js.map +1 -1
- package/dist/components/form/typeSentenceForm.d.ts +17 -0
- package/dist/components/form/typeSentenceForm.d.ts.map +1 -0
- package/dist/components/form/typeSentenceForm.js +54 -0
- package/dist/components/form/typeSentenceForm.js.map +1 -0
- package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
- package/dist/components/imageLightbox/ImageLightbox.js +19 -9
- 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 +20 -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 +53 -0
- package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
- package/dist/components/smartEditor/CompletionMenu.js +302 -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 +616 -190
- package/dist/components/smartEditor/SmartEditor.js.map +1 -1
- package/dist/components/smartEditor/completionStyle.d.ts +28 -0
- package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
- package/dist/components/smartEditor/completionStyle.js +79 -0
- package/dist/components/smartEditor/completionStyle.js.map +1 -0
- package/dist/components/smartEditor/contextTitle.d.ts +10 -0
- package/dist/components/smartEditor/contextTitle.d.ts.map +1 -0
- package/dist/components/smartEditor/contextTitle.js +21 -0
- package/dist/components/smartEditor/contextTitle.js.map +1 -0
- package/dist/components/smartEditor/editingAids.d.ts +64 -0
- package/dist/components/smartEditor/editingAids.d.ts.map +1 -0
- package/dist/components/smartEditor/editingAids.js +213 -0
- package/dist/components/smartEditor/editingAids.js.map +1 -0
- package/dist/components/smartEditor/index.d.ts +6 -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 +98 -0
- package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
- package/dist/components/smartEditor/templateCompletions.js +380 -0
- package/dist/components/smartEditor/templateCompletions.js.map +1 -0
- package/dist/components/smartEditor/typedReferences.d.ts +34 -0
- package/dist/components/smartEditor/typedReferences.d.ts.map +1 -0
- package/dist/components/smartEditor/typedReferences.js +179 -0
- package/dist/components/smartEditor/typedReferences.js.map +1 -0
- package/dist/components/smartEditor/types.d.ts +116 -2
- package/dist/components/smartEditor/types.d.ts.map +1 -1
- package/dist/components/smartEditor/useEditingAids.d.ts +38 -0
- package/dist/components/smartEditor/useEditingAids.d.ts.map +1 -0
- package/dist/components/smartEditor/useEditingAids.js +392 -0
- package/dist/components/smartEditor/useEditingAids.js.map +1 -0
- package/dist/components/smartEditor/useLspAutocomplete.d.ts +106 -3
- package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspAutocomplete.js +592 -149
- 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 +364 -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/smartEditor/useLspSignatureHelp.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspSignatureHelp.js +6 -11
- package/dist/components/smartEditor/useLspSignatureHelp.js.map +1 -1
- package/dist/components/smartEditor/useTabCameIn.d.ts +10 -0
- package/dist/components/smartEditor/useTabCameIn.d.ts.map +1 -0
- package/dist/components/smartEditor/useTabCameIn.js +42 -0
- package/dist/components/smartEditor/useTabCameIn.js.map +1 -0
- 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/InterfaceReferenceTags.d.ts +2 -3
- package/dist/components/supportTicket/InterfaceReferenceTags.d.ts.map +1 -1
- package/dist/components/supportTicket/InterfaceReferenceTags.js.map +1 -1
- package/dist/components/supportTicket/ReferencePicker.d.ts +9 -3
- package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
- package/dist/components/supportTicket/ReferencePicker.js +38 -23
- 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 +21 -6
- package/dist/components/supportTicket/TicketHeader.js.map +1 -1
- package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
- package/dist/components/supportTicket/TicketReplyBox.d.ts.map +1 -1
- package/dist/components/supportTicket/TicketReplyBox.js +10 -29
- package/dist/components/supportTicket/TicketReplyBox.js.map +1 -1
- package/dist/components/supportTicket/useLoadedImages.d.ts +0 -10
- package/dist/components/supportTicket/useLoadedImages.d.ts.map +1 -1
- package/dist/components/supportTicket/useLoadedImages.js +1 -63
- package/dist/components/supportTicket/useLoadedImages.js.map +1 -1
- package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
- package/dist/components/ticketReferences/TicketReferences.js +10 -9
- 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 +52 -21
- package/dist/components/ticketThread/TicketThread.js.map +1 -1
- package/dist/helpers/allowedValues.d.ts +21 -12
- package/dist/helpers/allowedValues.d.ts.map +1 -1
- package/dist/helpers/allowedValues.js +40 -20
- package/dist/helpers/allowedValues.js.map +1 -1
- package/dist/helpers/descriptionTooltip.d.ts +46 -0
- package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
- package/dist/helpers/descriptionTooltip.js +76 -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 +115 -4
- package/dist/helpers/expressions.d.ts.map +1 -1
- package/dist/helpers/expressions.js +247 -29
- 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/noDescription.d.ts +9 -0
- package/dist/helpers/noDescription.d.ts.map +1 -0
- package/dist/helpers/noDescription.js +13 -0
- package/dist/helpers/noDescription.js.map +1 -0
- package/dist/helpers/optionUiTypes.d.ts +2 -2
- package/dist/helpers/qorusTypeCatalogue.d.ts +147 -0
- package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
- package/dist/helpers/qorusTypeCatalogue.js +505 -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/singleLineString.d.ts.map +1 -1
- package/dist/helpers/singleLineString.js +0 -1
- package/dist/helpers/singleLineString.js.map +1 -1
- package/dist/helpers/templateCatalogue.d.ts +104 -0
- package/dist/helpers/templateCatalogue.d.ts.map +1 -0
- package/dist/helpers/templateCatalogue.js +116 -0
- package/dist/helpers/templateCatalogue.js.map +1 -0
- package/dist/helpers/templateCatalogueContext.d.ts +19 -0
- package/dist/helpers/templateCatalogueContext.d.ts.map +1 -0
- package/dist/helpers/templateCatalogueContext.js +31 -0
- package/dist/helpers/templateCatalogueContext.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.d.ts +1 -0
- package/dist/helpers/templateText.d.ts.map +1 -1
- package/dist/helpers/templateText.js +7 -3
- package/dist/helpers/templateText.js.map +1 -1
- package/dist/helpers/templateTree.d.ts +248 -0
- package/dist/helpers/templateTree.d.ts.map +1 -0
- package/dist/helpers/templateTree.js +892 -0
- package/dist/helpers/templateTree.js.map +1 -0
- package/dist/helpers/templateType.d.ts +28 -0
- package/dist/helpers/templateType.d.ts.map +1 -0
- package/dist/helpers/templateType.js +30 -0
- package/dist/helpers/templateType.js.map +1 -0
- package/dist/helpers/templates.d.ts +86 -16
- package/dist/helpers/templates.d.ts.map +1 -1
- package/dist/helpers/templates.js +305 -45
- package/dist/helpers/templates.js.map +1 -1
- package/dist/helpers/validations.d.ts +27 -0
- package/dist/helpers/validations.d.ts.map +1 -1
- package/dist/helpers/validations.js +169 -39
- package/dist/helpers/validations.js.map +1 -1
- package/dist/helpers/webLink.d.ts +8 -0
- package/dist/helpers/webLink.d.ts.map +1 -0
- package/dist/helpers/webLink.js +29 -0
- package/dist/helpers/webLink.js.map +1 -0
- package/dist/hooks/useQorusTypes.d.ts +12 -17
- package/dist/hooks/useQorusTypes.d.ts.map +1 -1
- package/dist/hooks/useQorusTypes.js +44 -172
- 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 +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -1
- 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/lspClient.types.d.ts +2 -0
- package/dist/utils/lspClient.types.d.ts.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 -6
- 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/dist/components/form/engine/formAppearance.d.ts +0 -49
- package/dist/components/form/engine/formAppearance.d.ts.map +0 -1
- package/dist/components/form/engine/formAppearance.js +0 -50
- package/dist/components/form/engine/formAppearance.js.map +0 -1
- package/dist/components/form/fields/ChoiceGroupHeading.d.ts +0 -21
- package/dist/components/form/fields/ChoiceGroupHeading.d.ts.map +0 -1
- package/dist/components/form/fields/ChoiceGroupHeading.js +0 -33
- package/dist/components/form/fields/ChoiceGroupHeading.js.map +0 -1
- package/dist/components/form/fields/allowed-values/savedValues.d.ts +0 -30
- package/dist/components/form/fields/allowed-values/savedValues.d.ts.map +0 -1
- package/dist/components/form/fields/allowed-values/savedValues.js +0 -39
- package/dist/components/form/fields/allowed-values/savedValues.js.map +0 -1
- package/dist/helpers/fieldDescription.d.ts +0 -16
- package/dist/helpers/fieldDescription.d.ts.map +0 -1
- package/dist/helpers/fieldDescription.js +0 -40
- package/dist/helpers/fieldDescription.js.map +0 -1
- 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 -2740
- package/src/components/form/engine/CompactToolbar.tsx +0 -399
- package/src/components/form/engine/FormEngine.stories.tsx +0 -9934
- package/src/components/form/engine/FormEngine.tsx +0 -4891
- package/src/components/form/engine/FormEngineAppearance.stories.tsx +0 -609
- package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
- package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -335
- package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
- package/src/components/form/engine/OptionFieldMessages.tsx +0 -548
- 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 -755
- 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 -153
- package/src/components/form/engine/compactRowStyles.ts +0 -1087
- package/src/components/form/engine/compactToolbarContext.ts +0 -72
- package/src/components/form/engine/formAppearance.ts +0 -79
- 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 -1090
- 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 -112
- 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 -152
- 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/ChoiceGroupHeading.tsx +0 -38
- package/src/components/form/fields/Field.stories.tsx +0 -143
- package/src/components/form/fields/Field.tsx +0 -734
- package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -321
- package/src/components/form/fields/allowed-values/savedValues.ts +0 -64
- 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 -1183
- 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 -147
- package/src/components/form/fields/long-string/LongString.tsx +0 -141
- 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 -140
- package/src/components/form/fields/number/Number.stories.tsx +0 -159
- package/src/components/form/fields/number/Number.tsx +0 -175
- 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 -52
- 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 -1749
- 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 -49
- package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
- package/src/components/imageLightbox/ImageLightbox.tsx +0 -238
- 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 -130
- package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -580
- package/src/components/supportTicket/ReferencePicker.tsx +0 -573
- package/src/components/supportTicket/TicketConversation.stories.tsx +0 -120
- package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
- package/src/components/supportTicket/TicketHeader.tsx +0 -248
- 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 -357
- package/src/components/supportTicket/TicketReplyBox.tsx +0 -172
- 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 -93
- package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -341
- package/src/components/ticketReferences/TicketReferences.tsx +0 -914
- package/src/components/ticketReferences/index.ts +0 -2
- package/src/components/ticketThread/TicketThread.stories.tsx +0 -898
- package/src/components/ticketThread/TicketThread.tsx +0 -706
- 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 -268
- 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/fieldDescription.ts +0 -39
- 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 -62
- 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,5 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Copyright 2026 Qore Technologies, s.r.o.
|
|
3
|
+
var __assign = (this && this.__assign) || function () {
|
|
4
|
+
__assign = Object.assign || function(t) {
|
|
5
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
6
|
+
s = arguments[i];
|
|
7
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
8
|
+
t[p] = s[p];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
return __assign.apply(this, arguments);
|
|
13
|
+
};
|
|
3
14
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
15
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
16
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -46,12 +57,30 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
46
57
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
47
58
|
};
|
|
48
59
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
|
-
exports.useLspAutocomplete = void 0;
|
|
60
|
+
exports.useLspAutocomplete = exports.useCompletionKeys = exports.toDropdownItems = exports.groupCompletionItems = exports.COMPLETION_KIND_CHIPS = void 0;
|
|
50
61
|
var lodash_1 = require("lodash");
|
|
51
62
|
var react_1 = require("react");
|
|
52
63
|
var slate_1 = require("slate");
|
|
53
64
|
var slate_react_1 = require("slate-react");
|
|
54
65
|
var helpers_1 = require("./helpers");
|
|
66
|
+
var templateCompletions_1 = require("./templateCompletions");
|
|
67
|
+
/** What is typed before the editor's caret in the text it is in: never anything across a chip. */
|
|
68
|
+
var typedInTextOf = function (editor) {
|
|
69
|
+
var _a, _b;
|
|
70
|
+
var at = (_a = editor === null || editor === void 0 ? void 0 : editor.selection) === null || _a === void 0 ? void 0 : _a.anchor;
|
|
71
|
+
if (!editor || !at)
|
|
72
|
+
return undefined;
|
|
73
|
+
// the leaf at the caret, read along its path: a paragraph's child
|
|
74
|
+
var node = editor;
|
|
75
|
+
for (var _i = 0, _c = at.path; _i < _c.length; _i++) {
|
|
76
|
+
var index = _c[_i];
|
|
77
|
+
node = (_b = node === null || node === void 0 ? void 0 : node.children) === null || _b === void 0 ? void 0 : _b[index];
|
|
78
|
+
}
|
|
79
|
+
return typeof (node === null || node === void 0 ? void 0 : node.text) === 'string' ?
|
|
80
|
+
node.text.slice(0, at.offset)
|
|
81
|
+
: undefined;
|
|
82
|
+
};
|
|
83
|
+
var templateRowMarks = function (item) { var _a, _b; return ((_b = (_a = (('raw' in item ? item.raw : item))) === null || _a === void 0 ? void 0 : _a.data) !== null && _b !== void 0 ? _b : {}); };
|
|
55
84
|
var DEFAULT_TRIGGER_CHARS = new Set(['.', ':', ' ']);
|
|
56
85
|
var DEBOUNCE_MS = 150;
|
|
57
86
|
// Defer `isFetching=true` so the "Loading…" stub only shows for genuinely
|
|
@@ -65,7 +94,7 @@ var COMPLETION_KIND_LABELS = {
|
|
|
65
94
|
14: 'Keywords',
|
|
66
95
|
15: 'Snippets',
|
|
67
96
|
};
|
|
68
|
-
|
|
97
|
+
exports.COMPLETION_KIND_CHIPS = {
|
|
69
98
|
1: 'Text',
|
|
70
99
|
2: 'Method',
|
|
71
100
|
3: 'Function',
|
|
@@ -92,35 +121,184 @@ var COMPLETION_KIND_CHIPS = {
|
|
|
92
121
|
24: 'Operator',
|
|
93
122
|
25: 'TypeParameter',
|
|
94
123
|
};
|
|
124
|
+
/**
|
|
125
|
+
* The list's rows in groups: as ranked when the server ranked them (`sortText`), otherwise by kind - Field,
|
|
126
|
+
* Variable, Function... - when there is more than one.
|
|
127
|
+
*/
|
|
128
|
+
var groupCompletionItems = function (items) {
|
|
129
|
+
var _a;
|
|
130
|
+
if (items.length === 0)
|
|
131
|
+
return [];
|
|
132
|
+
// When the server populates `sortText` it has already ranked items;
|
|
133
|
+
// use the flat list directly rather than re-ordering across kinds.
|
|
134
|
+
// Qonsole takes this path; DPQL has no sortText and falls through.
|
|
135
|
+
var hasSortText = items.some(function (i) { return i.raw.sortText; });
|
|
136
|
+
if (hasSortText) {
|
|
137
|
+
return [{ label: '', items: items }];
|
|
138
|
+
}
|
|
139
|
+
var groupMap = new Map();
|
|
140
|
+
for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {
|
|
141
|
+
var item = items_1[_i];
|
|
142
|
+
var kind = (_a = item.metadata) === null || _a === void 0 ? void 0 : _a.kind;
|
|
143
|
+
// a template row says its own section: the field's templates, its record fields, or none (Browse all)
|
|
144
|
+
var section = templateRowMarks(item).section;
|
|
145
|
+
var groupLabel = section !== undefined ? section : (kind && COMPLETION_KIND_LABELS[kind]) || 'Other';
|
|
146
|
+
if (!groupMap.has(groupLabel)) {
|
|
147
|
+
groupMap.set(groupLabel, []);
|
|
148
|
+
}
|
|
149
|
+
groupMap.get(groupLabel).push(item);
|
|
150
|
+
}
|
|
151
|
+
if (groupMap.size <= 1) {
|
|
152
|
+
return [{ label: '', items: items }];
|
|
153
|
+
}
|
|
154
|
+
return Array.from(groupMap.entries()).map(function (_a) {
|
|
155
|
+
var label = _a[0], groupItems = _a[1];
|
|
156
|
+
return ({
|
|
157
|
+
label: label,
|
|
158
|
+
items: groupItems,
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
};
|
|
162
|
+
exports.groupCompletionItems = groupCompletionItems;
|
|
163
|
+
/** Completion items as the list's rows. */
|
|
164
|
+
var toDropdownItems = function (lspItems) {
|
|
165
|
+
return lspItems.map(function (item) {
|
|
166
|
+
var _a;
|
|
167
|
+
var insertText = item.insertText || item.label;
|
|
168
|
+
return {
|
|
169
|
+
label: item.label,
|
|
170
|
+
value: insertText,
|
|
171
|
+
icon: (0, helpers_1.mapCompletionKindToIcon)(item.kind),
|
|
172
|
+
description: item.detail,
|
|
173
|
+
documentation: item.documentation,
|
|
174
|
+
// a template says what it is (State data, Context...), not the LSP kind it is sent as (Variable)
|
|
175
|
+
kindLabel: (_a = templateRowMarks(item).kindLabel) !== null && _a !== void 0 ? _a : (item.kind !== undefined && !templateRowMarks(item).browseAll ?
|
|
176
|
+
exports.COMPLETION_KIND_CHIPS[item.kind]
|
|
177
|
+
: undefined),
|
|
178
|
+
warning: item.warning,
|
|
179
|
+
raw: item,
|
|
180
|
+
metadata: {
|
|
181
|
+
insertTextFormat: item.insertTextFormat,
|
|
182
|
+
retrigger: insertText.endsWith(':'),
|
|
183
|
+
kind: item.kind,
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
});
|
|
187
|
+
};
|
|
188
|
+
exports.toDropdownItems = toDropdownItems;
|
|
189
|
+
/**
|
|
190
|
+
* The list's keys, the same wherever it is open, and as the browse list's (`TemplateBrowser`): ArrowDown and
|
|
191
|
+
* ArrowUp move through it, Enter takes the row the keyboard is on, Escape puts it away, Tab leaves it as it
|
|
192
|
+
* leaves any control. Heard before anything else on the page while the list is
|
|
193
|
+
* open - the focus stays where it is (an editor, a picker's button), the list never takes it.
|
|
194
|
+
*/
|
|
195
|
+
var useCompletionKeys = function (_a) {
|
|
196
|
+
var isOpen = _a.isOpen, count = _a.count, setFocusedIndex = _a.setFocusedIndex, onAccept = _a.onAccept, onClose = _a.onClose, onOtherKey = _a.onOtherKey;
|
|
197
|
+
var handlers = (0, react_1.useRef)({ onAccept: onAccept, onClose: onClose, onOtherKey: onOtherKey });
|
|
198
|
+
handlers.current = { onAccept: onAccept, onClose: onClose, onOtherKey: onOtherKey };
|
|
199
|
+
(0, react_1.useEffect)(function () {
|
|
200
|
+
if (!isOpen || count === 0)
|
|
201
|
+
return undefined;
|
|
202
|
+
var handleKeyDown = function (e) {
|
|
203
|
+
var _a, _b;
|
|
204
|
+
var take = function () {
|
|
205
|
+
e.preventDefault();
|
|
206
|
+
e.stopPropagation();
|
|
207
|
+
};
|
|
208
|
+
switch (e.key) {
|
|
209
|
+
case 'ArrowDown':
|
|
210
|
+
take();
|
|
211
|
+
setFocusedIndex(function (prev) { return Math.min(prev + 1, count - 1); });
|
|
212
|
+
break;
|
|
213
|
+
case 'ArrowUp':
|
|
214
|
+
take();
|
|
215
|
+
setFocusedIndex(function (prev) { return Math.max(prev - 1, 0); });
|
|
216
|
+
break;
|
|
217
|
+
case 'Enter':
|
|
218
|
+
take();
|
|
219
|
+
handlers.current.onAccept();
|
|
220
|
+
break;
|
|
221
|
+
case 'Tab':
|
|
222
|
+
/* takes the row the keyboard is on, as Enter does (a code editor's key), and the text keeps the focus:
|
|
223
|
+
leaving the list instead left a half-typed reference standing as if it were one (qorus#646, David's
|
|
224
|
+
review) */
|
|
225
|
+
take();
|
|
226
|
+
handlers.current.onAccept();
|
|
227
|
+
break;
|
|
228
|
+
case 'Escape':
|
|
229
|
+
take();
|
|
230
|
+
handlers.current.onClose();
|
|
231
|
+
break;
|
|
232
|
+
default:
|
|
233
|
+
if ((_b = (_a = handlers.current).onOtherKey) === null || _b === void 0 ? void 0 : _b.call(_a, e))
|
|
234
|
+
take();
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
document.addEventListener('keydown', handleKeyDown, true);
|
|
238
|
+
return function () { return document.removeEventListener('keydown', handleKeyDown, true); };
|
|
239
|
+
}, [isOpen, count, setFocusedIndex]);
|
|
240
|
+
};
|
|
241
|
+
exports.useCompletionKeys = useCompletionKeys;
|
|
95
242
|
function useLspAutocomplete(opts) {
|
|
96
243
|
var _this = this;
|
|
97
|
-
var getCompletions = opts.getCompletions, isReady = opts.isReady, _a = opts.triggerCharacters, triggerCharacters = _a === void 0 ? DEFAULT_TRIGGER_CHARS : _a, converter = opts.converter, inserter = opts.inserter;
|
|
244
|
+
var getCompletions = opts.getCompletions, isReady = opts.isReady, _a = opts.triggerCharacters, triggerCharacters = _a === void 0 ? DEFAULT_TRIGGER_CHARS : _a, converter = opts.converter, inserter = opts.inserter, emptyMessageAt = opts.emptyMessage, commitTyped = opts.commitTyped, noteAt = opts.noteAt;
|
|
245
|
+
var commitTypedRef = (0, react_1.useRef)(commitTyped);
|
|
246
|
+
commitTypedRef.current = commitTyped;
|
|
98
247
|
var _b = (0, react_1.useState)([]), items = _b[0], setItems = _b[1];
|
|
99
248
|
var _c = (0, react_1.useState)(false), isOpen = _c[0], setIsOpen = _c[1];
|
|
100
249
|
var _d = (0, react_1.useState)({ top: 0, left: 0 }), position = _d[0], setPosition = _d[1];
|
|
101
250
|
var _e = (0, react_1.useState)(0), focusedIndex = _e[0], setFocusedIndex = _e[1];
|
|
102
251
|
var _f = (0, react_1.useState)(false), isFetching = _f[0], setIsFetching = _f[1];
|
|
252
|
+
var _g = (0, react_1.useState)(), emptyMessage = _g[0], setEmptyMessage = _g[1];
|
|
253
|
+
var _h = (0, react_1.useState)(), note = _h[0], setNote = _h[1];
|
|
254
|
+
var noteRef = (0, react_1.useRef)();
|
|
255
|
+
noteRef.current = note;
|
|
256
|
+
// asked for and not answered yet: the debounce running, or the answer on its way (`pendingRequestRef`)
|
|
257
|
+
var _j = (0, react_1.useState)(false), isRequested = _j[0], setIsRequested = _j[1];
|
|
103
258
|
// Handle for the deferred `setIsFetching(true)`; cleared on resolve or
|
|
104
259
|
// close so the loader never flashes on a fast-resolved request.
|
|
105
260
|
var fetchingTimerRef = (0, react_1.useRef)(null);
|
|
106
261
|
// Partial token typed since the trigger opened the dropdown; the list
|
|
107
262
|
// narrows to items whose `filterText || label` matches it.
|
|
108
|
-
var
|
|
263
|
+
var _k = (0, react_1.useState)(''), filterPrefix = _k[0], setFilterPrefix = _k[1];
|
|
109
264
|
var focusedIndexRef = (0, react_1.useRef)(0);
|
|
110
265
|
var editorRef = (0, react_1.useRef)(null);
|
|
111
266
|
// "Replace mode": the user clicked a chip and the chosen completion
|
|
112
267
|
// should replace that node. Holds the chip's Slate path, consumed by
|
|
113
268
|
// the inserter via `ctx.replacementPath`.
|
|
114
269
|
var replacingChipPathRef = (0, react_1.useRef)(null);
|
|
270
|
+
/* The chip the list was opened at, kept until the list is drawn closed. A click on that chip closes the list,
|
|
271
|
+
and the popover hears the same click as one outside it first and closes the list then, which forgets the
|
|
272
|
+
chip (`close`): told by `replacingChipPathRef` alone, the chip's own click found no chip and opened the list
|
|
273
|
+
again. */
|
|
274
|
+
var anchoredChipPathRef = (0, react_1.useRef)(null);
|
|
115
275
|
// Holds a chip-click request made before `isReady`; fired by the effect
|
|
116
276
|
// below once the session connects so the click isn't dropped.
|
|
117
277
|
var pendingChipRequestRef = (0, react_1.useRef)(null);
|
|
118
|
-
|
|
119
|
-
//
|
|
120
|
-
|
|
121
|
-
var
|
|
122
|
-
|
|
123
|
-
var
|
|
278
|
+
var _l = (0, react_1.useState)(false), isReplaceMode = _l[0], setIsReplaceMode = _l[1];
|
|
279
|
+
// See `popoverKey` in the result interface — forces a popover re-mount. The ref is the key now, before the
|
|
280
|
+
// list is drawn again: a close from the popover it replaced is told apart by it (`handleExternalClose`).
|
|
281
|
+
var _m = (0, react_1.useState)(0), popoverKey = _m[0], setPopoverKey = _m[1];
|
|
282
|
+
var popoverKeyRef = (0, react_1.useRef)(0);
|
|
283
|
+
var _o = (0, react_1.useState)(null), docsFor = _o[0], setDocsFor = _o[1];
|
|
284
|
+
// the template picker in place of the rows, and where it is open
|
|
285
|
+
var _p = (0, react_1.useState)(null), browse = _p[0], setBrowseState = _p[1];
|
|
286
|
+
var browseRef = (0, react_1.useRef)(null);
|
|
287
|
+
var setBrowse = (0, react_1.useCallback)(function (next) {
|
|
288
|
+
browseRef.current = next;
|
|
289
|
+
setBrowseState(next);
|
|
290
|
+
}, []);
|
|
291
|
+
/* Which request is the one the list is waiting for. A newer request, or the list put away (`close`),
|
|
292
|
+
makes an answer still on its way stale, and a stale answer is dropped: it used to open the list after
|
|
293
|
+
the author had dismissed it - typed, pressed Escape before the list came, and the list came anyway,
|
|
294
|
+
under the next tap, which then took one of its rows (qorus#646). */
|
|
295
|
+
var requestGenerationRef = (0, react_1.useRef)(0);
|
|
296
|
+
/* A request typing has asked for and the list has not shown yet: the debounce running, or the server's
|
|
297
|
+
answer on its way. An Escape then puts it away too, as it puts away an open list. */
|
|
298
|
+
var pendingRequestRef = (0, react_1.useRef)(false);
|
|
299
|
+
/* The caret a click, a tap or Tab asked at (`openAtCaret`). Setting Slate's selection to it is a change of
|
|
300
|
+
selection only, which puts an open list away; this one asked for the list, and is not heard as moving off. */
|
|
301
|
+
var askedAtRef = (0, react_1.useRef)(null);
|
|
124
302
|
(0, react_1.useEffect)(function () {
|
|
125
303
|
focusedIndexRef.current = focusedIndex;
|
|
126
304
|
}, [focusedIndex]);
|
|
@@ -144,6 +322,9 @@ function useLspAutocomplete(opts) {
|
|
|
144
322
|
return items;
|
|
145
323
|
return items.filter(function (item) {
|
|
146
324
|
var _a;
|
|
325
|
+
// the row that opens the picker is there whatever is typed
|
|
326
|
+
if (templateRowMarks(item).browseAll)
|
|
327
|
+
return true;
|
|
147
328
|
var haystack = ((_a = item.raw.filterText) !== null && _a !== void 0 ? _a : item.label)
|
|
148
329
|
.toLowerCase()
|
|
149
330
|
.replace(/^[@$/-]+/, '');
|
|
@@ -155,38 +336,39 @@ function useLspAutocomplete(opts) {
|
|
|
155
336
|
setFocusedIndex(Math.max(0, filteredItems.length - 1));
|
|
156
337
|
}
|
|
157
338
|
}, [filteredItems.length, focusedIndex]);
|
|
158
|
-
var groups = (0, react_1.useMemo)(function () {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
339
|
+
var groups = (0, react_1.useMemo)(function () { return (0, exports.groupCompletionItems)(filteredItems); }, [filteredItems]);
|
|
340
|
+
/* A list of nothing but Browse all templates, with nothing said above it, is a step for nothing: the picker
|
|
341
|
+
opens in its place, at its top, as taking that row would open it (Foxhoundn on qlip #425: "automatically show
|
|
342
|
+
all the templates if it's the only available option"; David: the picker offers every completion in every
|
|
343
|
+
state). Where the list says something with it (no record fields here, what to write after a context), the
|
|
344
|
+
list stays, for what it says. */
|
|
345
|
+
var onlyBrowseAll = isOpen &&
|
|
346
|
+
!browse &&
|
|
347
|
+
!isFetching &&
|
|
348
|
+
!note &&
|
|
349
|
+
!emptyMessage &&
|
|
350
|
+
filteredItems.length === 1 &&
|
|
351
|
+
!!templateRowMarks(filteredItems[0]).browseAll;
|
|
352
|
+
/* A layout effect, not a passive one: it runs within the commit that leaves only Browse all templates, before
|
|
353
|
+
the next event - an Escape closing the list - can be heard. A passive effect runs after paint, so a close
|
|
354
|
+
landing in that window reopened the picker it had just put away (a flake only a loaded machine lost). */
|
|
355
|
+
(0, react_1.useLayoutEffect)(function () {
|
|
356
|
+
if (!onlyBrowseAll)
|
|
357
|
+
return;
|
|
358
|
+
var editor = editorRef.current;
|
|
359
|
+
var empty = false;
|
|
360
|
+
try {
|
|
361
|
+
empty = !!editor && !converter.fromSlateNodes(editor.children).trim();
|
|
178
362
|
}
|
|
179
|
-
|
|
180
|
-
|
|
363
|
+
catch (_a) {
|
|
364
|
+
// the editor is not drawn: the picker opens without the arrows
|
|
181
365
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
});
|
|
189
|
-
}, [filteredItems]);
|
|
366
|
+
setDocsFor(null);
|
|
367
|
+
// in an empty text the arrows have nowhere else to go: they move through the picker, as a click there opens it
|
|
368
|
+
setBrowse({ arrows: empty || undefined });
|
|
369
|
+
popoverKeyRef.current += 1;
|
|
370
|
+
setPopoverKey(popoverKeyRef.current);
|
|
371
|
+
}, [onlyBrowseAll, converter, setBrowse]);
|
|
190
372
|
// Fires the LSP request and commits results into state. Separate from
|
|
191
373
|
// the debounced wrapper so imperative callers (`openAtChip`) can bypass
|
|
192
374
|
// the typing debounce.
|
|
@@ -196,7 +378,7 @@ function useLspAutocomplete(opts) {
|
|
|
196
378
|
args_1[_i - 2] = arguments[_i];
|
|
197
379
|
}
|
|
198
380
|
return __awaiter(_this, __spreadArray([plainText_1, offset_1], args_1, true), void 0, function (plainText, offset, opts) {
|
|
199
|
-
var _a, eager, editor, domRange, rect, lspItems, sortedLspItems, mapped, _b;
|
|
381
|
+
var _a, eager, generation, current, editor, domRange, rect, lspItems, said, substantive, sortedLspItems, mapped, _b;
|
|
200
382
|
if (opts === void 0) { opts = {}; }
|
|
201
383
|
return __generator(this, function (_c) {
|
|
202
384
|
switch (_c.label) {
|
|
@@ -204,8 +386,12 @@ function useLspAutocomplete(opts) {
|
|
|
204
386
|
_a = opts.eager, eager = _a === void 0 ? true : _a;
|
|
205
387
|
if (!isReady)
|
|
206
388
|
return [2 /*return*/];
|
|
389
|
+
generation = ++requestGenerationRef.current;
|
|
390
|
+
pendingRequestRef.current = true;
|
|
391
|
+
setIsRequested(true);
|
|
392
|
+
current = function () { return generation === requestGenerationRef.current; };
|
|
207
393
|
editor = editorRef.current;
|
|
208
|
-
if (editor && editor.selection) {
|
|
394
|
+
if (editor && editor.selection && !anchoredChipPathRef.current) {
|
|
209
395
|
try {
|
|
210
396
|
domRange = slate_react_1.ReactEditor.toDOMRange(editor, editor.selection);
|
|
211
397
|
rect = domRange.getBoundingClientRect();
|
|
@@ -232,70 +418,104 @@ function useLspAutocomplete(opts) {
|
|
|
232
418
|
_c.label = 1;
|
|
233
419
|
case 1:
|
|
234
420
|
_c.trys.push([1, 3, 4, 5]);
|
|
235
|
-
return [4 /*yield*/, getCompletions(plainText, offset)];
|
|
421
|
+
return [4 /*yield*/, getCompletions(plainText, offset, typedInTextOf(editorRef.current))];
|
|
236
422
|
case 2:
|
|
237
423
|
lspItems = _c.sent();
|
|
424
|
+
if (!current())
|
|
425
|
+
return [2 /*return*/];
|
|
238
426
|
if (lspItems.length === 0) {
|
|
239
427
|
setItems([]);
|
|
428
|
+
said = replacingChipPathRef.current ? undefined : emptyMessageAt === null || emptyMessageAt === void 0 ? void 0 : emptyMessageAt(plainText, offset);
|
|
429
|
+
setEmptyMessage(said);
|
|
430
|
+
if (said) {
|
|
431
|
+
setIsOpen(true);
|
|
432
|
+
return [2 /*return*/];
|
|
433
|
+
}
|
|
240
434
|
// Replace mode keeps the popover open to show "No alternatives".
|
|
241
435
|
if (!replacingChipPathRef.current) {
|
|
242
436
|
setIsOpen(false);
|
|
243
437
|
}
|
|
244
438
|
return [2 /*return*/];
|
|
245
439
|
}
|
|
440
|
+
setEmptyMessage(undefined);
|
|
441
|
+
substantive = lspItems.filter(function (item) {
|
|
442
|
+
var _a;
|
|
443
|
+
var marks = ((_a = item.data) !== null && _a !== void 0 ? _a : {});
|
|
444
|
+
return !marks.browseAll && !marks.whole;
|
|
445
|
+
});
|
|
446
|
+
setNote(substantive.length ? undefined : noteAt === null || noteAt === void 0 ? void 0 : noteAt(plainText, offset));
|
|
246
447
|
sortedLspItems = lspItems.some(function (i) { return i.sortText; })
|
|
247
448
|
? __spreadArray([], lspItems, true).sort(function (a, b) { var _a, _b; return ((_a = a.sortText) !== null && _a !== void 0 ? _a : a.label).localeCompare((_b = b.sortText) !== null && _b !== void 0 ? _b : b.label); })
|
|
248
449
|
: lspItems;
|
|
249
|
-
mapped =
|
|
250
|
-
var insertText = item.insertText || item.label;
|
|
251
|
-
return {
|
|
252
|
-
label: item.label,
|
|
253
|
-
value: insertText,
|
|
254
|
-
icon: (0, helpers_1.mapCompletionKindToIcon)(item.kind),
|
|
255
|
-
description: item.detail,
|
|
256
|
-
documentation: item.documentation,
|
|
257
|
-
kindLabel: item.kind !== undefined
|
|
258
|
-
? COMPLETION_KIND_CHIPS[item.kind]
|
|
259
|
-
: undefined,
|
|
260
|
-
warning: item.warning,
|
|
261
|
-
raw: item,
|
|
262
|
-
metadata: {
|
|
263
|
-
insertTextFormat: item.insertTextFormat,
|
|
264
|
-
retrigger: insertText.endsWith(':'),
|
|
265
|
-
kind: item.kind,
|
|
266
|
-
},
|
|
267
|
-
};
|
|
268
|
-
});
|
|
450
|
+
mapped = (0, exports.toDropdownItems)(sortedLspItems);
|
|
269
451
|
setItems(mapped);
|
|
270
452
|
setFocusedIndex(0);
|
|
271
453
|
setIsOpen(true);
|
|
272
454
|
return [3 /*break*/, 5];
|
|
273
455
|
case 3:
|
|
274
456
|
_b = _c.sent();
|
|
457
|
+
if (!current())
|
|
458
|
+
return [2 /*return*/];
|
|
275
459
|
setItems([]);
|
|
276
460
|
setIsOpen(false);
|
|
277
461
|
return [3 /*break*/, 5];
|
|
278
462
|
case 4:
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
463
|
+
// a stale answer leaves the state to the request that replaced it, or to `close`
|
|
464
|
+
if (current()) {
|
|
465
|
+
pendingRequestRef.current = false;
|
|
466
|
+
setIsRequested(false);
|
|
467
|
+
if (fetchingTimerRef.current !== null) {
|
|
468
|
+
clearTimeout(fetchingTimerRef.current);
|
|
469
|
+
fetchingTimerRef.current = null;
|
|
470
|
+
}
|
|
471
|
+
setIsFetching(false);
|
|
282
472
|
}
|
|
283
|
-
setIsFetching(false);
|
|
284
473
|
return [7 /*endfinally*/];
|
|
285
474
|
case 5: return [2 /*return*/];
|
|
286
475
|
}
|
|
287
476
|
});
|
|
288
477
|
});
|
|
289
|
-
}, [getCompletions, isReady]);
|
|
290
|
-
|
|
478
|
+
}, [getCompletions, isReady, emptyMessageAt, noteAt]);
|
|
479
|
+
/* One debounced request for the editor's life, sending with the latest `performCompletionRequest`: remade when
|
|
480
|
+
that changed (a host's new catalogue or callback on a re-render), the request waiting to be sent was dropped,
|
|
481
|
+
and what had just been written asked nothing - a context picked listed nothing in it (qorus#646). */
|
|
482
|
+
var performRef = (0, react_1.useRef)(performCompletionRequest);
|
|
483
|
+
performRef.current = performCompletionRequest;
|
|
484
|
+
var requestCompletions = (0, react_1.useMemo)(function () {
|
|
485
|
+
var debounced = (0, lodash_1.debounce)(function () {
|
|
486
|
+
var args = [];
|
|
487
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
488
|
+
args[_i] = arguments[_i];
|
|
489
|
+
}
|
|
490
|
+
return performRef.current.apply(performRef, args);
|
|
491
|
+
}, DEBOUNCE_MS);
|
|
492
|
+
// asked for: pending from now, not only once the debounce runs out
|
|
493
|
+
var request = (function () {
|
|
494
|
+
var args = [];
|
|
495
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
496
|
+
args[_i] = arguments[_i];
|
|
497
|
+
}
|
|
498
|
+
pendingRequestRef.current = true;
|
|
499
|
+
setIsRequested(true);
|
|
500
|
+
return debounced.apply(void 0, args);
|
|
501
|
+
});
|
|
502
|
+
request.cancel = debounced.cancel;
|
|
503
|
+
request.flush = debounced.flush;
|
|
504
|
+
return request;
|
|
505
|
+
}, []);
|
|
291
506
|
(0, react_1.useEffect)(function () {
|
|
292
507
|
return function () {
|
|
293
508
|
requestCompletions.cancel();
|
|
294
509
|
};
|
|
295
510
|
}, [requestCompletions]);
|
|
296
511
|
var close = (0, react_1.useCallback)(function () {
|
|
512
|
+
setDocsFor(null);
|
|
513
|
+
setBrowse(null);
|
|
297
514
|
setIsOpen(false);
|
|
298
515
|
setItems([]);
|
|
516
|
+
setEmptyMessage(undefined);
|
|
517
|
+
setNote(undefined);
|
|
518
|
+
setIsRequested(false);
|
|
299
519
|
setFocusedIndex(0);
|
|
300
520
|
setFilterPrefix('');
|
|
301
521
|
setIsReplaceMode(false);
|
|
@@ -305,9 +525,63 @@ function useLspAutocomplete(opts) {
|
|
|
305
525
|
fetchingTimerRef.current = null;
|
|
306
526
|
}
|
|
307
527
|
replacingChipPathRef.current = null;
|
|
528
|
+
// a list put away is at no chip, from now: the next one asked by typing is at the caret
|
|
529
|
+
anchoredChipPathRef.current = null;
|
|
308
530
|
pendingChipRequestRef.current = null;
|
|
531
|
+
askedAtRef.current = null;
|
|
309
532
|
requestCompletions.cancel();
|
|
533
|
+
// an answer still on its way is for a list that has been put away
|
|
534
|
+
requestGenerationRef.current++;
|
|
535
|
+
pendingRequestRef.current = false;
|
|
310
536
|
}, [requestCompletions]);
|
|
537
|
+
/* Escape in the editor before the list has come puts the request away, as Escape puts a list with rows
|
|
538
|
+
away (`useCompletionKeys`, which hears it then). Not taken from the page: with no list shown, an Escape
|
|
539
|
+
may mean something else there too. */
|
|
540
|
+
var showsRows = isOpen && filteredItems.length > 0;
|
|
541
|
+
// the list open with what it says in place of rows: Escape puts it away, and nothing else
|
|
542
|
+
var showsMessage = isOpen && !showsRows && !!emptyMessage;
|
|
543
|
+
(0, react_1.useEffect)(function () {
|
|
544
|
+
if (showsRows)
|
|
545
|
+
return undefined;
|
|
546
|
+
var handleKeyDown = function (event) {
|
|
547
|
+
var editor = editorRef.current;
|
|
548
|
+
/* Enter or Tab where the list has nothing more to offer - a context of free keys and its key written,
|
|
549
|
+
`$static:order.id` - takes what is written: a whole reference, drawn as its chip (`commitTyped`), as a row
|
|
550
|
+
taken is (qorus#646, David's review). */
|
|
551
|
+
if ((event.key === 'Enter' || event.key === 'Tab') && showsMessage && editor && commitTypedRef.current) {
|
|
552
|
+
try {
|
|
553
|
+
if (!slate_react_1.ReactEditor.toDOMNode(editor, editor).contains(event.target))
|
|
554
|
+
return;
|
|
555
|
+
}
|
|
556
|
+
catch (_a) {
|
|
557
|
+
return;
|
|
558
|
+
}
|
|
559
|
+
if (commitTypedRef.current(editor)) {
|
|
560
|
+
event.preventDefault();
|
|
561
|
+
event.stopPropagation();
|
|
562
|
+
close();
|
|
563
|
+
}
|
|
564
|
+
return;
|
|
565
|
+
}
|
|
566
|
+
if (event.key !== 'Escape' || !(pendingRequestRef.current || showsMessage))
|
|
567
|
+
return;
|
|
568
|
+
try {
|
|
569
|
+
if (!editor || !slate_react_1.ReactEditor.toDOMNode(editor, editor).contains(event.target))
|
|
570
|
+
return;
|
|
571
|
+
}
|
|
572
|
+
catch (_b) {
|
|
573
|
+
// the editor is not drawn: nothing of it is in the page to have had the key
|
|
574
|
+
return;
|
|
575
|
+
}
|
|
576
|
+
if (showsMessage) {
|
|
577
|
+
event.preventDefault();
|
|
578
|
+
event.stopPropagation();
|
|
579
|
+
}
|
|
580
|
+
close();
|
|
581
|
+
};
|
|
582
|
+
document.addEventListener('keydown', handleKeyDown, true);
|
|
583
|
+
return function () { return document.removeEventListener('keydown', handleKeyDown, true); };
|
|
584
|
+
}, [showsRows, showsMessage, close]);
|
|
311
585
|
var positionTrigger = (0, react_1.useCallback)(function (editor) {
|
|
312
586
|
if (!editor.selection)
|
|
313
587
|
return;
|
|
@@ -343,12 +617,25 @@ function useLspAutocomplete(opts) {
|
|
|
343
617
|
// own (intentionally narrow) deps closed over. Same workaround as
|
|
344
618
|
// `stableOnTagClick` in SmartEditor.
|
|
345
619
|
var onSlateChangeImplRef = (0, react_1.useRef)(function () { return undefined; });
|
|
620
|
+
// `completeAtCaret`, defined below, for a pick that goes on to ask again
|
|
621
|
+
var completeAtCaretRef = (0, react_1.useRef)(function () { return undefined; });
|
|
346
622
|
var selectItem = (0, react_1.useCallback)(function (item) {
|
|
347
|
-
var _a;
|
|
623
|
+
var _a, _b, _c, _d;
|
|
348
624
|
var editor = editorRef.current;
|
|
349
625
|
if (!editor)
|
|
350
626
|
return;
|
|
351
627
|
var replacementPath = replacingChipPathRef.current;
|
|
628
|
+
/* A group, or Browse all: the picker opens there, in the list's place, for the pick to go where the row's
|
|
629
|
+
would have gone - in the place of what is typed, or of the chip being replaced. */
|
|
630
|
+
var marks = templateRowMarks(item);
|
|
631
|
+
if (marks.opens || marks.browseAll) {
|
|
632
|
+
setDocsFor(null);
|
|
633
|
+
setBrowse({ levelId: marks.opens ? marks.templateNodeId : undefined });
|
|
634
|
+
setIsOpen(true);
|
|
635
|
+
popoverKeyRef.current += 1;
|
|
636
|
+
setPopoverKey(popoverKeyRef.current);
|
|
637
|
+
return;
|
|
638
|
+
}
|
|
352
639
|
// The typing path needs a live selection so the inserter knows how
|
|
353
640
|
// much partial token to delete; replace mode works off a path.
|
|
354
641
|
if (!editor.selection && !replacementPath)
|
|
@@ -358,81 +645,109 @@ function useLspAutocomplete(opts) {
|
|
|
358
645
|
var cursorOffset = editor.selection
|
|
359
646
|
? converter.selectionToOffset(nodes, editor.selection.anchor.path, editor.selection.anchor.offset)
|
|
360
647
|
: converter.selectionToOffset(nodes, replacementPath, 0);
|
|
361
|
-
|
|
648
|
+
/* The text takes the focus back before the pick is written, where the pick was made elsewhere (the picker's
|
|
649
|
+
search box): focused after, with the edit not yet drawn, slate-react puts the focus off to a later timer,
|
|
650
|
+
and the editor's state changes there, outside the event that made the pick. */
|
|
651
|
+
try {
|
|
652
|
+
if (!slate_react_1.ReactEditor.isFocused(editor))
|
|
653
|
+
slate_react_1.ReactEditor.focus(editor);
|
|
654
|
+
}
|
|
655
|
+
catch (_e) {
|
|
656
|
+
// the editor is not in the document: the pick is written all the same
|
|
657
|
+
}
|
|
658
|
+
/* A context, a state or a record taken is written as the text of its reference, and what is in it is
|
|
659
|
+
listed next, as the text is completed on (the edit asks again: it ends with a `:` or a `.`); only a
|
|
660
|
+
whole reference is a chip (qorus#646, David's review: a context picked was an unfinished template). */
|
|
661
|
+
(marks.continues ? templateCompletions_1.templateTextInserter : inserter)(item.raw, editor, {
|
|
362
662
|
plainText: plainText,
|
|
363
663
|
cursorOffset: cursorOffset,
|
|
364
664
|
replacementPath: replacementPath !== null && replacementPath !== void 0 ? replacementPath : undefined,
|
|
365
665
|
});
|
|
666
|
+
/* What is written goes on (a context, `$data:`, or a path, `$data:receive_order.`): the list stays open
|
|
667
|
+
and is asked again where the text now ends, so what is in it is listed next. Put away and opened again,
|
|
668
|
+
its popover's close came after the new request and dropped it. */
|
|
669
|
+
var written = (_c = (_b = (_a = item.raw.textEdit) === null || _a === void 0 ? void 0 : _a.newText) !== null && _b !== void 0 ? _b : item.raw.insertText) !== null && _c !== void 0 ? _c : item.raw.label;
|
|
670
|
+
if (marks.continues || (!replacementPath && /^[$@][^\s]*[:.]$/.test(written))) {
|
|
671
|
+
// the rows stay until the next level's come: a list left empty is put away, and its close drops the request
|
|
672
|
+
setDocsFor(null);
|
|
673
|
+
// taken from the picker: what follows is listed as typing lists it, in a list of its own (`completeAtCaret`)
|
|
674
|
+
if (browseRef.current) {
|
|
675
|
+
browseRef.current = null;
|
|
676
|
+
setBrowse(null);
|
|
677
|
+
popoverKeyRef.current += 1;
|
|
678
|
+
setPopoverKey(popoverKeyRef.current);
|
|
679
|
+
}
|
|
680
|
+
setFocusedIndex(0);
|
|
681
|
+
replacingChipPathRef.current = null;
|
|
682
|
+
anchoredChipPathRef.current = null;
|
|
683
|
+
completeAtCaretRef.current(editor, editor.children);
|
|
684
|
+
return;
|
|
685
|
+
}
|
|
366
686
|
close();
|
|
367
687
|
// Re-trigger completions for partial items (e.g. `$timestamp:` shows
|
|
368
688
|
// sub-completions for the value).
|
|
369
|
-
if ((
|
|
689
|
+
if ((_d = item.metadata) === null || _d === void 0 ? void 0 : _d.retrigger) {
|
|
370
690
|
setTimeout(function () {
|
|
371
691
|
var newNodes = editor.children;
|
|
372
692
|
onSlateChangeImplRef.current(editor, newNodes);
|
|
373
693
|
}, 50);
|
|
374
694
|
}
|
|
375
695
|
}, [close, inserter, converter]);
|
|
376
|
-
(0, react_1.
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
696
|
+
var toggleDocs = (0, react_1.useCallback)(function (value) {
|
|
697
|
+
var _a, _b;
|
|
698
|
+
var target = (_b = value !== null && value !== void 0 ? value : (_a = filteredItems[focusedIndexRef.current]) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : null;
|
|
699
|
+
setDocsFor(function (shown) { return (shown === target ? null : target); });
|
|
700
|
+
}, [filteredItems]);
|
|
701
|
+
var toggleDocsRef = (0, react_1.useRef)(toggleDocs);
|
|
702
|
+
toggleDocsRef.current = toggleDocs;
|
|
703
|
+
(0, exports.useCompletionKeys)({
|
|
704
|
+
// the picker hears its own keys (`TemplatePicker`)
|
|
705
|
+
isOpen: isOpen && !browse && filteredItems.length > 0,
|
|
706
|
+
count: filteredItems.length,
|
|
707
|
+
setFocusedIndex: setFocusedIndex,
|
|
708
|
+
onAccept: function () {
|
|
709
|
+
var _a;
|
|
710
|
+
/* where none of the rows is what is written (the note says so) and what is written is a whole reference -
|
|
711
|
+
a context of free keys and its key, `$dynamic:order.id` - Enter or Tab takes what is written, its chip;
|
|
712
|
+
else the row the keyboard is on (qorus#646, David's review) */
|
|
713
|
+
var editor = editorRef.current;
|
|
714
|
+
if (noteRef.current && editor && ((_a = commitTypedRef.current) === null || _a === void 0 ? void 0 : _a.call(commitTypedRef, editor))) {
|
|
715
|
+
close();
|
|
716
|
+
return;
|
|
717
|
+
}
|
|
718
|
+
var item = filteredItems[focusedIndexRef.current];
|
|
719
|
+
if (item && editor)
|
|
720
|
+
selectItem(item);
|
|
721
|
+
},
|
|
722
|
+
onClose: close,
|
|
723
|
+
onOtherKey: function (e) {
|
|
381
724
|
var _a, _b, _c;
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
setFocusedIndex(function (prev) { return Math.min(prev + 1, filteredItems.length - 1); });
|
|
387
|
-
break;
|
|
388
|
-
case 'ArrowUp':
|
|
389
|
-
e.preventDefault();
|
|
390
|
-
e.stopPropagation();
|
|
391
|
-
setFocusedIndex(function (prev) { return Math.max(prev - 1, 0); });
|
|
392
|
-
break;
|
|
393
|
-
case 'Enter':
|
|
394
|
-
case 'Tab': {
|
|
395
|
-
e.preventDefault();
|
|
396
|
-
e.stopPropagation();
|
|
397
|
-
var item = filteredItems[focusedIndexRef.current];
|
|
398
|
-
if (item && editorRef.current) {
|
|
399
|
-
selectItem(item);
|
|
400
|
-
}
|
|
401
|
-
break;
|
|
402
|
-
}
|
|
403
|
-
case 'Escape':
|
|
404
|
-
e.preventDefault();
|
|
405
|
-
e.stopPropagation();
|
|
406
|
-
close();
|
|
407
|
-
break;
|
|
408
|
-
default: {
|
|
409
|
-
// `commitCharacters`: typing a commit char accepts the item and
|
|
410
|
-
// inserts the char (VS Code semantics).
|
|
411
|
-
if (e.key.length !== 1)
|
|
412
|
-
break;
|
|
413
|
-
var focusedItem = filteredItems[focusedIndexRef.current];
|
|
414
|
-
var commits = focusedItem === null || focusedItem === void 0 ? void 0 : focusedItem.raw.commitCharacters;
|
|
415
|
-
if (!commits || !commits.includes(e.key))
|
|
416
|
-
break;
|
|
417
|
-
var editor = editorRef.current;
|
|
418
|
-
if (!editor)
|
|
419
|
-
break;
|
|
420
|
-
e.preventDefault();
|
|
421
|
-
e.stopPropagation();
|
|
422
|
-
// Don't double-insert when the server's edit already ends with
|
|
423
|
-
// the committed char (e.g. `--limit=` for an `=`-committed flag).
|
|
424
|
-
var inserted = (_c = (_b = (_a = focusedItem.raw.textEdit) === null || _a === void 0 ? void 0 : _a.newText) !== null && _b !== void 0 ? _b : focusedItem.raw.insertText) !== null && _c !== void 0 ? _c : focusedItem.raw.label;
|
|
425
|
-
selectItem(focusedItem);
|
|
426
|
-
if (!inserted.endsWith(e.key)) {
|
|
427
|
-
slate_1.Transforms.insertText(editor, e.key);
|
|
428
|
-
}
|
|
429
|
-
break;
|
|
430
|
-
}
|
|
725
|
+
// Ctrl+Space: the documentation of the row the keyboard is on, shown under it or put away (VS Code's key)
|
|
726
|
+
if (e.key === ' ' && e.ctrlKey && !e.metaKey && !e.altKey) {
|
|
727
|
+
toggleDocsRef.current();
|
|
728
|
+
return true;
|
|
431
729
|
}
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
730
|
+
// `commitCharacters`: typing a commit char accepts the item and
|
|
731
|
+
// inserts the char (VS Code semantics).
|
|
732
|
+
if (e.key.length !== 1)
|
|
733
|
+
return false;
|
|
734
|
+
var focusedItem = filteredItems[focusedIndexRef.current];
|
|
735
|
+
var commits = focusedItem === null || focusedItem === void 0 ? void 0 : focusedItem.raw.commitCharacters;
|
|
736
|
+
if (!commits || !commits.includes(e.key))
|
|
737
|
+
return false;
|
|
738
|
+
var editor = editorRef.current;
|
|
739
|
+
if (!editor)
|
|
740
|
+
return false;
|
|
741
|
+
// Don't double-insert when the server's edit already ends with
|
|
742
|
+
// the committed char (e.g. `--limit=` for an `=`-committed flag).
|
|
743
|
+
var inserted = (_c = (_b = (_a = focusedItem.raw.textEdit) === null || _a === void 0 ? void 0 : _a.newText) !== null && _b !== void 0 ? _b : focusedItem.raw.insertText) !== null && _c !== void 0 ? _c : focusedItem.raw.label;
|
|
744
|
+
selectItem(focusedItem);
|
|
745
|
+
if (!inserted.endsWith(e.key)) {
|
|
746
|
+
slate_1.Transforms.insertText(editor, e.key);
|
|
747
|
+
}
|
|
748
|
+
return true;
|
|
749
|
+
},
|
|
750
|
+
});
|
|
436
751
|
/**
|
|
437
752
|
* Opens, narrows or closes the completions for what the editor holds at its caret, after a content
|
|
438
753
|
* edit: a trigger character just typed, typing inside a sigil token, narrowing an open list, or
|
|
@@ -443,6 +758,14 @@ function useLspAutocomplete(opts) {
|
|
|
443
758
|
close();
|
|
444
759
|
return;
|
|
445
760
|
}
|
|
761
|
+
/* Typing puts the picker away: what is typed is completed in the rows, or nothing is. Under a key of its own:
|
|
762
|
+
the picker's popover says it closed as it goes, and that is not the list put away. */
|
|
763
|
+
if (browseRef.current) {
|
|
764
|
+
browseRef.current = null;
|
|
765
|
+
setBrowse(null);
|
|
766
|
+
popoverKeyRef.current += 1;
|
|
767
|
+
setPopoverKey(popoverKeyRef.current);
|
|
768
|
+
}
|
|
446
769
|
var anchor = editor.selection.anchor;
|
|
447
770
|
var plainText = converter.fromSlateNodes(nodes);
|
|
448
771
|
var cursorOffset = converter.selectionToOffset(nodes, anchor.path, anchor.offset);
|
|
@@ -500,6 +823,7 @@ function useLspAutocomplete(opts) {
|
|
|
500
823
|
}
|
|
501
824
|
close();
|
|
502
825
|
}, [isOpen, close, findTokenStart, positionTrigger, requestCompletions, triggerCharacters, converter]);
|
|
826
|
+
completeAtCaretRef.current = completeAtCaret;
|
|
503
827
|
/* An edit made before the session is ready - typing `$` or `@` while the connection is still being
|
|
504
828
|
made, or its context bound - would otherwise be dropped: the list is closed and nothing asks again,
|
|
505
829
|
so the trigger the author typed never opens anything. The editor is kept, and once the session is
|
|
@@ -529,6 +853,14 @@ function useLspAutocomplete(opts) {
|
|
|
529
853
|
// op batch is selection-only.
|
|
530
854
|
var isContentChange = editor.operations.some(function (op) { return op.type !== 'set_selection'; });
|
|
531
855
|
if (!isContentChange) {
|
|
856
|
+
// the caret a click asked at, set: the list it asked for stays
|
|
857
|
+
var askedAt = askedAtRef.current;
|
|
858
|
+
if (askedAt &&
|
|
859
|
+
editor.selection &&
|
|
860
|
+
slate_1.Range.isCollapsed(editor.selection) &&
|
|
861
|
+
slate_1.Point.equals(editor.selection.anchor, askedAt)) {
|
|
862
|
+
return;
|
|
863
|
+
}
|
|
532
864
|
// Replace mode anchors on a chip; the selection echo from the
|
|
533
865
|
// opening click must not close it (outside-click handler does).
|
|
534
866
|
if (isOpen && !replacingChipPathRef.current) {
|
|
@@ -536,6 +868,7 @@ function useLspAutocomplete(opts) {
|
|
|
536
868
|
}
|
|
537
869
|
return;
|
|
538
870
|
}
|
|
871
|
+
askedAtRef.current = null;
|
|
539
872
|
// A content edit in replace mode means the user typed instead of
|
|
540
873
|
// picking a replacement — fall back to normal flow.
|
|
541
874
|
if (replacingChipPathRef.current) {
|
|
@@ -560,12 +893,11 @@ function useLspAutocomplete(opts) {
|
|
|
560
893
|
// Imperative entry for the "replace this chip" flow. Anchors at the
|
|
561
894
|
// chip's viewport rect and fires a request immediately, bypassing the
|
|
562
895
|
// typing debounce.
|
|
563
|
-
var openAtChip = (0, react_1.useCallback)(function (editor, chipPath, chipRect) {
|
|
564
|
-
var
|
|
565
|
-
|
|
566
|
-
//
|
|
567
|
-
|
|
568
|
-
var prevPath = replacingChipPathRef.current;
|
|
896
|
+
var openAtChip = (0, react_1.useCallback)(function (editor, chipPath, chipRect, _a) {
|
|
897
|
+
var _b, _c;
|
|
898
|
+
var _d = _a === void 0 ? {} : _a, _e = _d.inItsPlace, inItsPlace = _e === void 0 ? false : _e;
|
|
899
|
+
// Clicking the chip the dropdown is already anchored to closes it.
|
|
900
|
+
var prevPath = anchoredChipPathRef.current;
|
|
569
901
|
if (isOpen &&
|
|
570
902
|
prevPath &&
|
|
571
903
|
prevPath.length === chipPath.length &&
|
|
@@ -575,7 +907,7 @@ function useLspAutocomplete(opts) {
|
|
|
575
907
|
}
|
|
576
908
|
editorRef.current = editor;
|
|
577
909
|
replacingChipPathRef.current = chipPath;
|
|
578
|
-
|
|
910
|
+
anchoredChipPathRef.current = chipPath;
|
|
579
911
|
setFilterPrefix('');
|
|
580
912
|
setPosition({ left: chipRect.left, top: chipRect.bottom });
|
|
581
913
|
// Pre-open for immediate feedback even before the LSP is ready (the
|
|
@@ -584,7 +916,8 @@ function useLspAutocomplete(opts) {
|
|
|
584
916
|
setFocusedIndex(0);
|
|
585
917
|
setIsReplaceMode(true);
|
|
586
918
|
setIsOpen(true);
|
|
587
|
-
|
|
919
|
+
popoverKeyRef.current += 1;
|
|
920
|
+
setPopoverKey(popoverKeyRef.current);
|
|
588
921
|
var nodes = editor.children;
|
|
589
922
|
var plainText = converter.fromSlateNodes(nodes);
|
|
590
923
|
// Request at the END of the chip's span — the natural "what could
|
|
@@ -592,28 +925,76 @@ function useLspAutocomplete(opts) {
|
|
|
592
925
|
// candidates.
|
|
593
926
|
var chipChildIdx = chipPath[chipPath.length - 1];
|
|
594
927
|
var paragraph = nodes[chipPath[0]];
|
|
595
|
-
var chipNode = (
|
|
928
|
+
var chipNode = (_b = paragraph === null || paragraph === void 0 ? void 0 : paragraph.children) === null || _b === void 0 ? void 0 : _b[chipChildIdx];
|
|
596
929
|
var chipText = chipNode && 'value' in chipNode
|
|
597
|
-
? String((
|
|
930
|
+
? String((_c = chipNode.value) !== null && _c !== void 0 ? _c : '')
|
|
598
931
|
: '';
|
|
599
932
|
var chipStart = converter.selectionToOffset(nodes, chipPath, 0);
|
|
600
933
|
var chipEnd = chipStart + chipText.length;
|
|
934
|
+
var asked = inItsPlace ?
|
|
935
|
+
{ plainText: plainText.slice(0, chipStart) + plainText.slice(chipEnd), offset: chipStart }
|
|
936
|
+
: { plainText: plainText, offset: chipEnd };
|
|
601
937
|
if (isReady) {
|
|
602
|
-
performCompletionRequest(plainText,
|
|
938
|
+
performCompletionRequest(asked.plainText, asked.offset);
|
|
603
939
|
}
|
|
604
940
|
else {
|
|
605
|
-
pendingChipRequestRef.current =
|
|
941
|
+
pendingChipRequestRef.current = asked;
|
|
606
942
|
}
|
|
607
943
|
}, [isReady, isOpen, close, converter, performCompletionRequest]);
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
944
|
+
/* A click, a tap or Tab into the editor asks what can be written at the caret it put there, as typing asks
|
|
945
|
+
(qorus#646, David: one list for what can be written, opened by a click as by typing). The caret is the
|
|
946
|
+
page's, given as a Slate point: Slate's own selection follows the page's later, so it is set to it here, for
|
|
947
|
+
the pick to go where the caret is. What is being written at the caret, in the text it is in, filters the
|
|
948
|
+
list as typing does; nothing opens where nothing can be written (`eager: false`). */
|
|
949
|
+
var openAtCaret = (0, react_1.useCallback)(function (editor, caret, rect) {
|
|
950
|
+
var _a, _b, _c, _d;
|
|
951
|
+
editorRef.current = editor;
|
|
952
|
+
replacingChipPathRef.current = null;
|
|
953
|
+
anchoredChipPathRef.current = null;
|
|
954
|
+
setIsReplaceMode(false);
|
|
955
|
+
askedAtRef.current = caret;
|
|
956
|
+
try {
|
|
957
|
+
slate_1.Transforms.select(editor, caret);
|
|
958
|
+
}
|
|
959
|
+
catch (_e) {
|
|
960
|
+
// a point the editor no longer has: nothing is asked
|
|
614
961
|
return;
|
|
615
962
|
}
|
|
616
|
-
|
|
963
|
+
var nodes = editor.children;
|
|
964
|
+
var plainText = converter.fromSlateNodes(nodes);
|
|
965
|
+
var offset = converter.selectionToOffset(nodes, caret.path, caret.offset);
|
|
966
|
+
var caretPath = caret.path;
|
|
967
|
+
var textNode = (_b = (_a = nodes[caretPath[0]]) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b[caretPath[1]];
|
|
968
|
+
var written = typeof (textNode === null || textNode === void 0 ? void 0 : textNode.text) === 'string' ?
|
|
969
|
+
((_d = (_c = /[@$/]?[\w.:{}-]*$/.exec(textNode.text.slice(0, caret.offset))) === null || _c === void 0 ? void 0 : _c[0]) !== null && _d !== void 0 ? _d : '')
|
|
970
|
+
: '';
|
|
971
|
+
setFilterPrefix(written);
|
|
972
|
+
setDocsFor(null);
|
|
973
|
+
setItems([]);
|
|
974
|
+
setFocusedIndex(0);
|
|
975
|
+
setEmptyMessage(undefined);
|
|
976
|
+
setPosition({ left: rect.left, top: rect.bottom });
|
|
977
|
+
popoverKeyRef.current += 1;
|
|
978
|
+
setPopoverKey(popoverKeyRef.current);
|
|
979
|
+
requestCompletions.cancel();
|
|
980
|
+
void performCompletionRequest(plainText, offset, { eager: false });
|
|
981
|
+
}, [converter, performCompletionRequest, requestCompletions]);
|
|
982
|
+
/* A click outside the list puts it away, whenever it comes; a close from a popover a chip has replaced does not.
|
|
983
|
+
A click on another chip while the list is open opens the list at that chip, under a new key, and the popover
|
|
984
|
+
it replaces says it closed only after that. Every close was ignored for 300 ms after a chip opened the list
|
|
985
|
+
instead, so a tap on Details soon after the chip's left the list open behind the card, and a later one put it
|
|
986
|
+
away: the frame showed it or not from run to run (qorus#646, DpqlEditor · Details On A Chip On A Touch
|
|
987
|
+
Screen); and a second click on the chip the list was at, later than that, closed it and opened it again. */
|
|
988
|
+
// the list drawn closed is at no chip
|
|
989
|
+
(0, react_1.useEffect)(function () {
|
|
990
|
+
if (!isOpen) {
|
|
991
|
+
anchoredChipPathRef.current = null;
|
|
992
|
+
}
|
|
993
|
+
}, [isOpen]);
|
|
994
|
+
var handleExternalClose = (0, react_1.useCallback)(function (open, key) {
|
|
995
|
+
if (!open && key === popoverKeyRef.current) {
|
|
996
|
+
close();
|
|
997
|
+
}
|
|
617
998
|
}, [close]);
|
|
618
999
|
// Fire a deferred chip-click request once the session connects — covers
|
|
619
1000
|
// a click made during the initialize handshake.
|
|
@@ -626,6 +1007,59 @@ function useLspAutocomplete(opts) {
|
|
|
626
1007
|
performCompletionRequest(plainText, offset);
|
|
627
1008
|
}
|
|
628
1009
|
}, [isReady, performCompletionRequest]);
|
|
1010
|
+
var openBrowse = (0, react_1.useCallback)(function (editor, _a) {
|
|
1011
|
+
var _b, _c;
|
|
1012
|
+
var rect = _a.rect, caret = _a.caret, replacementPath = _a.replacementPath, levelId = _a.levelId, query = _a.query, selectedValue = _a.selectedValue, arrows = _a.arrows;
|
|
1013
|
+
editorRef.current = editor;
|
|
1014
|
+
requestCompletions.cancel();
|
|
1015
|
+
requestGenerationRef.current++;
|
|
1016
|
+
pendingRequestRef.current = false;
|
|
1017
|
+
replacingChipPathRef.current = replacementPath !== null && replacementPath !== void 0 ? replacementPath : null;
|
|
1018
|
+
anchoredChipPathRef.current = replacementPath !== null && replacementPath !== void 0 ? replacementPath : null;
|
|
1019
|
+
setIsReplaceMode(!!replacementPath);
|
|
1020
|
+
if (!replacementPath) {
|
|
1021
|
+
// the pick goes at the caret given, the editor's own, or its end
|
|
1022
|
+
try {
|
|
1023
|
+
var at = (_c = caret !== null && caret !== void 0 ? caret : (_b = editor.selection) === null || _b === void 0 ? void 0 : _b.anchor) !== null && _c !== void 0 ? _c : slate_1.Editor.end(editor, []);
|
|
1024
|
+
askedAtRef.current = at;
|
|
1025
|
+
slate_1.Transforms.select(editor, at);
|
|
1026
|
+
}
|
|
1027
|
+
catch (_d) {
|
|
1028
|
+
// a point the editor no longer has: the pick goes where the editor puts it
|
|
1029
|
+
askedAtRef.current = null;
|
|
1030
|
+
}
|
|
1031
|
+
}
|
|
1032
|
+
setItems([]);
|
|
1033
|
+
setEmptyMessage(undefined);
|
|
1034
|
+
setFilterPrefix('');
|
|
1035
|
+
setDocsFor(null);
|
|
1036
|
+
setPosition({ left: rect.left, top: rect.bottom });
|
|
1037
|
+
setBrowse({ levelId: levelId, query: query, selectedValue: selectedValue, arrows: arrows });
|
|
1038
|
+
setIsOpen(true);
|
|
1039
|
+
popoverKeyRef.current += 1;
|
|
1040
|
+
setPopoverKey(popoverKeyRef.current);
|
|
1041
|
+
}, [requestCompletions]);
|
|
1042
|
+
var pickTemplate = (0, react_1.useCallback)(function (node, written) {
|
|
1043
|
+
// a context gone on into writes its reference (`$local:`); taken whole, its value (`$local:*`)
|
|
1044
|
+
var value = written !== null && written !== void 0 ? written : (node.continues ? node.reference : node.value);
|
|
1045
|
+
if (!value)
|
|
1046
|
+
return;
|
|
1047
|
+
/* what it is, for the editor to write it as it is: a field or a template as its chip, a function, a value or
|
|
1048
|
+
a keyword as text, a template context as text that is completed on (`continues`) */
|
|
1049
|
+
var kind = node.kind === 'field' ? 5
|
|
1050
|
+
: node.kind === 'function' ? 3
|
|
1051
|
+
: node.kind === 'keyword' ? 14
|
|
1052
|
+
: 6;
|
|
1053
|
+
var item = (0, exports.toDropdownItems)([
|
|
1054
|
+
{
|
|
1055
|
+
label: node.label,
|
|
1056
|
+
insertText: value,
|
|
1057
|
+
kind: kind,
|
|
1058
|
+
data: __assign({ templateNodeId: node.id }, (node.continues && !written ? { continues: true } : {})),
|
|
1059
|
+
},
|
|
1060
|
+
])[0];
|
|
1061
|
+
selectItem(__assign(__assign({}, item), { metadata: __assign(__assign({}, item.metadata), { retrigger: false }) }));
|
|
1062
|
+
}, [selectItem]);
|
|
629
1063
|
return {
|
|
630
1064
|
// Expose the post-filter list as `items`; `groups` is filter-derived too.
|
|
631
1065
|
items: filteredItems,
|
|
@@ -633,14 +1067,23 @@ function useLspAutocomplete(opts) {
|
|
|
633
1067
|
isOpen: isOpen,
|
|
634
1068
|
isReplaceMode: isReplaceMode,
|
|
635
1069
|
isFetching: isFetching,
|
|
1070
|
+
emptyMessage: isOpen ? emptyMessage : undefined,
|
|
1071
|
+
note: isOpen ? note : undefined,
|
|
1072
|
+
isActive: isOpen || isRequested,
|
|
636
1073
|
focusedIndex: focusedIndex,
|
|
637
1074
|
close: close,
|
|
638
1075
|
onSlateChange: onSlateChangeImpl,
|
|
639
1076
|
onItemSelect: onItemSelect,
|
|
1077
|
+
openAtCaret: openAtCaret,
|
|
640
1078
|
openAtChip: openAtChip,
|
|
641
1079
|
handleExternalClose: handleExternalClose,
|
|
642
1080
|
popoverKey: popoverKey,
|
|
643
1081
|
position: position,
|
|
1082
|
+
docsFor: docsFor,
|
|
1083
|
+
toggleDocs: toggleDocs,
|
|
1084
|
+
browse: isOpen ? browse : null,
|
|
1085
|
+
openBrowse: openBrowse,
|
|
1086
|
+
pickTemplate: pickTemplate,
|
|
644
1087
|
};
|
|
645
1088
|
}
|
|
646
1089
|
exports.useLspAutocomplete = useLspAutocomplete;
|