@flanksource/clicky-ui 0.3.18 → 0.3.20
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/dist/components/ComboboxMenu.cjs +5 -1
- package/dist/components/ComboboxMenu.cjs.map +1 -1
- package/dist/components/ComboboxMenu.d.ts.map +1 -1
- package/dist/components/ComboboxMenu.js +5 -1
- package/dist/components/ComboboxMenu.js.map +1 -1
- package/dist/components/EndpointSelector.model.cjs +96 -0
- package/dist/components/EndpointSelector.model.cjs.map +1 -0
- package/dist/components/EndpointSelector.model.d.ts +2 -0
- package/dist/components/EndpointSelector.model.d.ts.map +1 -1
- package/dist/components/EndpointSelector.model.js +96 -0
- package/dist/components/EndpointSelector.model.js.map +1 -0
- package/dist/components/ErrorWrapper.cjs +1 -1
- package/dist/components/ErrorWrapper.cjs.map +1 -1
- package/dist/components/ErrorWrapper.js +1 -1
- package/dist/components/ErrorWrapper.js.map +1 -1
- package/dist/components/FilterBar.cjs +52 -2
- package/dist/components/FilterBar.cjs.map +1 -1
- package/dist/components/FilterBar.d.ts +20 -2
- package/dist/components/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterBar.js +52 -2
- package/dist/components/FilterBar.js.map +1 -1
- package/dist/components/JSONPathField.cjs +87 -66
- package/dist/components/JSONPathField.cjs.map +1 -1
- package/dist/components/JSONPathField.d.ts +26 -9
- package/dist/components/JSONPathField.d.ts.map +1 -1
- package/dist/components/JSONPathField.js +88 -67
- package/dist/components/JSONPathField.js.map +1 -1
- package/dist/components/JSONPathPlayground.cjs +225 -0
- package/dist/components/JSONPathPlayground.cjs.map +1 -0
- package/dist/components/JSONPathPlayground.d.ts +59 -0
- package/dist/components/JSONPathPlayground.d.ts.map +1 -0
- package/dist/components/JSONPathPlayground.js +225 -0
- package/dist/components/JSONPathPlayground.js.map +1 -0
- package/dist/components/OnePasswordSelector.cjs +178 -0
- package/dist/components/OnePasswordSelector.cjs.map +1 -0
- package/dist/components/OnePasswordSelector.d.ts +8 -0
- package/dist/components/OnePasswordSelector.d.ts.map +1 -0
- package/dist/components/OnePasswordSelector.js +178 -0
- package/dist/components/OnePasswordSelector.js.map +1 -0
- package/dist/components/OnePasswordSelector.model.cjs +31 -0
- package/dist/components/OnePasswordSelector.model.cjs.map +1 -0
- package/dist/components/OnePasswordSelector.model.d.ts +27 -0
- package/dist/components/OnePasswordSelector.model.d.ts.map +1 -0
- package/dist/components/OnePasswordSelector.model.js +31 -0
- package/dist/components/OnePasswordSelector.model.js.map +1 -0
- package/dist/components/SecretFormField.cjs +142 -0
- package/dist/components/SecretFormField.cjs.map +1 -0
- package/dist/components/SecretFormField.d.ts +9 -0
- package/dist/components/SecretFormField.d.ts.map +1 -0
- package/dist/components/SecretFormField.js +142 -0
- package/dist/components/SecretFormField.js.map +1 -0
- package/dist/components/SecretKeySelector.cjs +20 -14
- package/dist/components/SecretKeySelector.cjs.map +1 -1
- package/dist/components/SecretKeySelector.d.ts +4 -1
- package/dist/components/SecretKeySelector.d.ts.map +1 -1
- package/dist/components/SecretKeySelector.js +20 -14
- package/dist/components/SecretKeySelector.js.map +1 -1
- package/dist/components/TreePickerField.cjs +55 -29
- package/dist/components/TreePickerField.cjs.map +1 -1
- package/dist/components/TreePickerField.d.ts +10 -1
- package/dist/components/TreePickerField.d.ts.map +1 -1
- package/dist/components/TreePickerField.js +56 -30
- package/dist/components/TreePickerField.js.map +1 -1
- package/dist/components/UnitStepControls.cjs +55 -0
- package/dist/components/UnitStepControls.cjs.map +1 -0
- package/dist/components/UnitStepControls.d.ts +10 -0
- package/dist/components/UnitStepControls.d.ts.map +1 -0
- package/dist/components/UnitStepControls.js +55 -0
- package/dist/components/UnitStepControls.js.map +1 -0
- package/dist/components/combobox-types.d.ts +9 -0
- package/dist/components/combobox-types.d.ts.map +1 -1
- package/dist/components/filter-bar-utils.cjs +7 -0
- package/dist/components/filter-bar-utils.cjs.map +1 -1
- package/dist/components/filter-bar-utils.d.ts.map +1 -1
- package/dist/components/filter-bar-utils.js +7 -0
- package/dist/components/filter-bar-utils.js.map +1 -1
- package/dist/components/jotai-bindings-core.cjs.map +1 -1
- package/dist/components/jotai-bindings-core.d.ts +4 -1
- package/dist/components/jotai-bindings-core.d.ts.map +1 -1
- package/dist/components/jotai-bindings-core.js.map +1 -1
- package/dist/components/json-schema-form-accordion-array.cjs +5 -73
- package/dist/components/json-schema-form-accordion-array.cjs.map +1 -1
- package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-accordion-array.js +3 -71
- package/dist/components/json-schema-form-accordion-array.js.map +1 -1
- package/dist/components/json-schema-form-array.cjs +6 -1
- package/dist/components/json-schema-form-array.cjs.map +1 -1
- package/dist/components/json-schema-form-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-array.js +6 -1
- package/dist/components/json-schema-form-array.js.map +1 -1
- package/dist/components/json-schema-form-cards-array.cjs +96 -0
- package/dist/components/json-schema-form-cards-array.cjs.map +1 -0
- package/dist/components/json-schema-form-cards-array.d.ts +7 -0
- package/dist/components/json-schema-form-cards-array.d.ts.map +1 -0
- package/dist/components/json-schema-form-cards-array.js +96 -0
- package/dist/components/json-schema-form-cards-array.js.map +1 -0
- package/dist/components/json-schema-form-item-row.cjs +81 -0
- package/dist/components/json-schema-form-item-row.cjs.map +1 -0
- package/dist/components/json-schema-form-item-row.d.ts +19 -0
- package/dist/components/json-schema-form-item-row.d.ts.map +1 -0
- package/dist/components/json-schema-form-item-row.js +81 -0
- package/dist/components/json-schema-form-item-row.js.map +1 -0
- package/dist/components/json-schema-form-render.cjs +4 -3
- package/dist/components/json-schema-form-render.cjs.map +1 -1
- package/dist/components/json-schema-form-render.d.ts.map +1 -1
- package/dist/components/json-schema-form-render.js +4 -3
- package/dist/components/json-schema-form-render.js.map +1 -1
- package/dist/components/json-schema-form-resolve.cjs +1 -1
- package/dist/components/json-schema-form-resolve.cjs.map +1 -1
- package/dist/components/json-schema-form-resolve.js +1 -1
- package/dist/components/json-schema-form-resolve.js.map +1 -1
- package/dist/components/json-schema-form-tone.cjs +12 -0
- package/dist/components/json-schema-form-tone.cjs.map +1 -1
- package/dist/components/json-schema-form-tone.js +12 -0
- package/dist/components/json-schema-form-tone.js.map +1 -1
- package/dist/components/json-schema-form-types.d.ts +10 -1
- package/dist/components/json-schema-form-types.d.ts.map +1 -1
- package/dist/components/jsonPathTree.cjs +189 -0
- package/dist/components/jsonPathTree.cjs.map +1 -0
- package/dist/components/jsonPathTree.d.ts +92 -0
- package/dist/components/jsonPathTree.d.ts.map +1 -0
- package/dist/components/jsonPathTree.js +189 -0
- package/dist/components/jsonPathTree.js.map +1 -0
- package/dist/components/secret-form-extension.cjs +30 -0
- package/dist/components/secret-form-extension.cjs.map +1 -0
- package/dist/components/secret-form-extension.d.ts +23 -0
- package/dist/components/secret-form-extension.d.ts.map +1 -0
- package/dist/components/secret-form-extension.js +30 -0
- package/dist/components/secret-form-extension.js.map +1 -0
- package/dist/components/unit-form-extension.cjs +126 -0
- package/dist/components/unit-form-extension.cjs.map +1 -0
- package/dist/components/unit-form-extension.d.ts +8 -0
- package/dist/components/unit-form-extension.d.ts.map +1 -0
- package/dist/components/unit-form-extension.js +126 -0
- package/dist/components/unit-form-extension.js.map +1 -0
- package/dist/components.cjs +20 -0
- package/dist/components.cjs.map +1 -1
- package/dist/components.d.ts +7 -0
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +20 -0
- package/dist/components.js.map +1 -1
- package/dist/data/TaskExecDetails.cjs +40 -0
- package/dist/data/TaskExecDetails.cjs.map +1 -0
- package/dist/data/TaskExecDetails.d.ts +5 -0
- package/dist/data/TaskExecDetails.d.ts.map +1 -0
- package/dist/data/TaskExecDetails.js +40 -0
- package/dist/data/TaskExecDetails.js.map +1 -0
- package/dist/data/TaskProgress.cjs +9 -3
- package/dist/data/TaskProgress.cjs.map +1 -1
- package/dist/data/TaskProgress.d.ts.map +1 -1
- package/dist/data/TaskProgress.js +9 -3
- package/dist/data/TaskProgress.js.map +1 -1
- package/dist/data/TaskSnapshot.cjs.map +1 -1
- package/dist/data/TaskSnapshot.d.ts +12 -1
- package/dist/data/TaskSnapshot.d.ts.map +1 -1
- package/dist/data/TaskSnapshot.js.map +1 -1
- package/dist/data/TreeNode.cjs +3 -0
- package/dist/data/TreeNode.cjs.map +1 -1
- package/dist/data/TreeNode.d.ts.map +1 -1
- package/dist/data/TreeNode.js +3 -0
- package/dist/data/TreeNode.js.map +1 -1
- package/dist/data/data-table-filter-values.cjs +20 -0
- package/dist/data/data-table-filter-values.cjs.map +1 -1
- package/dist/data/data-table-filter-values.d.ts +16 -0
- package/dist/data/data-table-filter-values.d.ts.map +1 -1
- package/dist/data/data-table-filter-values.js +20 -0
- package/dist/data/data-table-filter-values.js.map +1 -1
- package/dist/data/data-table-server-filters.cjs +23 -29
- package/dist/data/data-table-server-filters.cjs.map +1 -1
- package/dist/data/data-table-server-filters.d.ts.map +1 -1
- package/dist/data/data-table-server-filters.js +21 -27
- package/dist/data/data-table-server-filters.js.map +1 -1
- package/dist/data/diagnostics/ErrorDetails.cjs +61 -8
- package/dist/data/diagnostics/ErrorDetails.cjs.map +1 -1
- package/dist/data/diagnostics/ErrorDetails.d.ts.map +1 -1
- package/dist/data/diagnostics/ErrorDetails.js +61 -8
- package/dist/data/diagnostics/ErrorDetails.js.map +1 -1
- package/dist/data/diagnostics/error-diagnostics.cjs +10 -4
- package/dist/data/diagnostics/error-diagnostics.cjs.map +1 -1
- package/dist/data/diagnostics/error-diagnostics.d.ts.map +1 -1
- package/dist/data/diagnostics/error-diagnostics.js +10 -4
- package/dist/data/diagnostics/error-diagnostics.js.map +1 -1
- package/dist/data/query-browser/QueryBrowser.cjs +139 -161
- package/dist/data/query-browser/QueryBrowser.cjs.map +1 -1
- package/dist/data/query-browser/QueryBrowser.d.ts +1 -71
- package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -1
- package/dist/data/query-browser/QueryBrowser.editor.cjs +88 -0
- package/dist/data/query-browser/QueryBrowser.editor.cjs.map +1 -0
- package/dist/data/query-browser/QueryBrowser.editor.d.ts +12 -0
- package/dist/data/query-browser/QueryBrowser.editor.d.ts.map +1 -0
- package/dist/data/query-browser/QueryBrowser.editor.js +88 -0
- package/dist/data/query-browser/QueryBrowser.editor.js.map +1 -0
- package/dist/data/query-browser/QueryBrowser.js +140 -162
- package/dist/data/query-browser/QueryBrowser.js.map +1 -1
- package/dist/data/query-browser/QueryBrowser.types.cjs +12 -0
- package/dist/data/query-browser/QueryBrowser.types.cjs.map +1 -0
- package/dist/data/query-browser/QueryBrowser.types.d.ts +94 -0
- package/dist/data/query-browser/QueryBrowser.types.d.ts.map +1 -0
- package/dist/data/query-browser/QueryBrowser.types.js +12 -0
- package/dist/data/query-browser/QueryBrowser.types.js.map +1 -0
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.cjs +56 -0
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.cjs.map +1 -0
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts +5 -0
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts.map +1 -0
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.js +56 -0
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.js.map +1 -0
- package/dist/data/query-browser/QueryBrowserResults.cjs +80 -0
- package/dist/data/query-browser/QueryBrowserResults.cjs.map +1 -0
- package/dist/data/query-browser/QueryBrowserResults.d.ts +16 -0
- package/dist/data/query-browser/QueryBrowserResults.d.ts.map +1 -0
- package/dist/data/query-browser/QueryBrowserResults.js +80 -0
- package/dist/data/query-browser/QueryBrowserResults.js.map +1 -0
- package/dist/data/query-browser/index.d.ts +2 -1
- package/dist/data/query-browser/index.d.ts.map +1 -1
- package/dist/data/task-exec-details.cjs +9 -0
- package/dist/data/task-exec-details.cjs.map +1 -0
- package/dist/data/task-exec-details.d.ts +3 -0
- package/dist/data/task-exec-details.d.ts.map +1 -0
- package/dist/data/task-exec-details.js +9 -0
- package/dist/data/task-exec-details.js.map +1 -0
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/data.cjs +2 -0
- package/dist/data.cjs.map +1 -1
- package/dist/data.d.ts +1 -1
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +2 -0
- package/dist/data.js.map +1 -1
- package/dist/index.cjs +22 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/string.cjs +8 -0
- package/dist/lib/string.cjs.map +1 -1
- package/dist/lib/string.d.ts +1 -0
- package/dist/lib/string.d.ts.map +1 -1
- package/dist/lib/string.js +8 -0
- package/dist/lib/string.js.map +1 -1
- package/dist/profiles/catalogTree.cjs +133 -0
- package/dist/profiles/catalogTree.cjs.map +1 -0
- package/dist/profiles/catalogTree.d.ts +11 -0
- package/dist/profiles/catalogTree.d.ts.map +1 -0
- package/dist/profiles/catalogTree.js +133 -0
- package/dist/profiles/catalogTree.js.map +1 -0
- package/dist/profiles/connectionBrowserModel.cjs +185 -0
- package/dist/profiles/connectionBrowserModel.cjs.map +1 -0
- package/dist/profiles/connectionBrowserModel.d.ts +169 -0
- package/dist/profiles/connectionBrowserModel.d.ts.map +1 -0
- package/dist/profiles/connectionBrowserModel.js +185 -0
- package/dist/profiles/connectionBrowserModel.js.map +1 -0
- package/dist/profiles/connectionQueryWorkspace.cjs +185 -0
- package/dist/profiles/connectionQueryWorkspace.cjs.map +1 -0
- package/dist/profiles/connectionQueryWorkspace.d.ts +63 -0
- package/dist/profiles/connectionQueryWorkspace.d.ts.map +1 -0
- package/dist/profiles/connectionQueryWorkspace.js +185 -0
- package/dist/profiles/connectionQueryWorkspace.js.map +1 -0
- package/dist/profiles/connectionQueryWorkspaceModel.cjs +28 -0
- package/dist/profiles/connectionQueryWorkspaceModel.cjs.map +1 -0
- package/dist/profiles/connectionQueryWorkspaceModel.d.ts +38 -0
- package/dist/profiles/connectionQueryWorkspaceModel.d.ts.map +1 -0
- package/dist/profiles/connectionQueryWorkspaceModel.js +28 -0
- package/dist/profiles/connectionQueryWorkspaceModel.js.map +1 -0
- package/dist/profiles/esFieldValues.cjs +64 -0
- package/dist/profiles/esFieldValues.cjs.map +1 -0
- package/dist/profiles/esFieldValues.d.ts +48 -0
- package/dist/profiles/esFieldValues.d.ts.map +1 -0
- package/dist/profiles/esFieldValues.js +64 -0
- package/dist/profiles/esFieldValues.js.map +1 -0
- package/dist/profiles/esParamMappingModel.cjs +301 -0
- package/dist/profiles/esParamMappingModel.cjs.map +1 -0
- package/dist/profiles/esParamMappingModel.d.ts +37 -0
- package/dist/profiles/esParamMappingModel.d.ts.map +1 -0
- package/dist/profiles/esParamMappingModel.js +301 -0
- package/dist/profiles/esParamMappingModel.js.map +1 -0
- package/dist/profiles/esParamMappingPill.cjs +24 -0
- package/dist/profiles/esParamMappingPill.cjs.map +1 -0
- package/dist/profiles/esParamMappingPill.d.ts +13 -0
- package/dist/profiles/esParamMappingPill.d.ts.map +1 -0
- package/dist/profiles/esParamMappingPill.js +24 -0
- package/dist/profiles/esParamMappingPill.js.map +1 -0
- package/dist/profiles/esParamOperandExtension.cjs +75 -0
- package/dist/profiles/esParamOperandExtension.cjs.map +1 -0
- package/dist/profiles/esParamOperandExtension.d.ts +11 -0
- package/dist/profiles/esParamOperandExtension.d.ts.map +1 -0
- package/dist/profiles/esParamOperandExtension.js +75 -0
- package/dist/profiles/esParamOperandExtension.js.map +1 -0
- package/dist/profiles/esQueryBuilder.cjs +205 -0
- package/dist/profiles/esQueryBuilder.cjs.map +1 -0
- package/dist/profiles/esQueryBuilder.d.ts +35 -0
- package/dist/profiles/esQueryBuilder.d.ts.map +1 -0
- package/dist/profiles/esQueryBuilder.js +205 -0
- package/dist/profiles/esQueryBuilder.js.map +1 -0
- package/dist/profiles/esQueryBuilderExtension.cjs +23 -0
- package/dist/profiles/esQueryBuilderExtension.cjs.map +1 -0
- package/dist/profiles/esQueryBuilderExtension.d.ts +5 -0
- package/dist/profiles/esQueryBuilderExtension.d.ts.map +1 -0
- package/dist/profiles/esQueryBuilderExtension.js +23 -0
- package/dist/profiles/esQueryBuilderExtension.js.map +1 -0
- package/dist/profiles/esQueryBuilderForm.cjs +26 -0
- package/dist/profiles/esQueryBuilderForm.cjs.map +1 -0
- package/dist/profiles/esQueryBuilderForm.d.ts +18 -0
- package/dist/profiles/esQueryBuilderForm.d.ts.map +1 -0
- package/dist/profiles/esQueryBuilderForm.js +26 -0
- package/dist/profiles/esQueryBuilderForm.js.map +1 -0
- package/dist/profiles/esQueryBuilderModel.cjs +131 -0
- package/dist/profiles/esQueryBuilderModel.cjs.map +1 -0
- package/dist/profiles/esQueryBuilderModel.d.ts +108 -0
- package/dist/profiles/esQueryBuilderModel.d.ts.map +1 -0
- package/dist/profiles/esQueryBuilderModel.js +131 -0
- package/dist/profiles/esQueryBuilderModel.js.map +1 -0
- package/dist/profiles/esQueryClauseGroup.cjs +144 -0
- package/dist/profiles/esQueryClauseGroup.cjs.map +1 -0
- package/dist/profiles/esQueryClauseGroup.d.ts +10 -0
- package/dist/profiles/esQueryClauseGroup.d.ts.map +1 -0
- package/dist/profiles/esQueryClauseGroup.js +144 -0
- package/dist/profiles/esQueryClauseGroup.js.map +1 -0
- package/dist/profiles/esQueryCompile.cjs +47 -0
- package/dist/profiles/esQueryCompile.cjs.map +1 -0
- package/dist/profiles/esQueryCompile.d.ts +39 -0
- package/dist/profiles/esQueryCompile.d.ts.map +1 -0
- package/dist/profiles/esQueryCompile.js +47 -0
- package/dist/profiles/esQueryCompile.js.map +1 -0
- package/dist/profiles/esQueryConditionRow.cjs +168 -0
- package/dist/profiles/esQueryConditionRow.cjs.map +1 -0
- package/dist/profiles/esQueryConditionRow.d.ts +37 -0
- package/dist/profiles/esQueryConditionRow.d.ts.map +1 -0
- package/dist/profiles/esQueryConditionRow.js +168 -0
- package/dist/profiles/esQueryConditionRow.js.map +1 -0
- package/dist/profiles/esQueryGroupModel.cjs +12 -0
- package/dist/profiles/esQueryGroupModel.cjs.map +1 -0
- package/dist/profiles/esQueryGroupModel.d.ts +9 -0
- package/dist/profiles/esQueryGroupModel.d.ts.map +1 -0
- package/dist/profiles/esQueryGroupModel.js +12 -0
- package/dist/profiles/esQueryGroupModel.js.map +1 -0
- package/dist/profiles/esQueryOccur.cjs +16 -0
- package/dist/profiles/esQueryOccur.cjs.map +1 -0
- package/dist/profiles/esQueryOccur.d.ts +11 -0
- package/dist/profiles/esQueryOccur.d.ts.map +1 -0
- package/dist/profiles/esQueryOccur.js +16 -0
- package/dist/profiles/esQueryOccur.js.map +1 -0
- package/dist/profiles/esQueryOperandEditors.cjs +279 -0
- package/dist/profiles/esQueryOperandEditors.cjs.map +1 -0
- package/dist/profiles/esQueryOperandEditors.d.ts +24 -0
- package/dist/profiles/esQueryOperandEditors.d.ts.map +1 -0
- package/dist/profiles/esQueryOperandEditors.js +279 -0
- package/dist/profiles/esQueryOperandEditors.js.map +1 -0
- package/dist/profiles/esQueryOperandModel.cjs +28 -0
- package/dist/profiles/esQueryOperandModel.cjs.map +1 -0
- package/dist/profiles/esQueryOperandModel.d.ts +17 -0
- package/dist/profiles/esQueryOperandModel.d.ts.map +1 -0
- package/dist/profiles/esQueryOperandModel.js +28 -0
- package/dist/profiles/esQueryOperandModel.js.map +1 -0
- package/dist/profiles/esQueryOperators.cjs +165 -0
- package/dist/profiles/esQueryOperators.cjs.map +1 -0
- package/dist/profiles/esQueryOperators.d.ts +83 -0
- package/dist/profiles/esQueryOperators.d.ts.map +1 -0
- package/dist/profiles/esQueryOperators.js +165 -0
- package/dist/profiles/esQueryOperators.js.map +1 -0
- package/dist/profiles/esQueryOutputEditor.cjs +138 -0
- package/dist/profiles/esQueryOutputEditor.cjs.map +1 -0
- package/dist/profiles/esQueryOutputEditor.d.ts +7 -0
- package/dist/profiles/esQueryOutputEditor.d.ts.map +1 -0
- package/dist/profiles/esQueryOutputEditor.js +138 -0
- package/dist/profiles/esQueryOutputEditor.js.map +1 -0
- package/dist/profiles/esQueryOutputModel.cjs +16 -0
- package/dist/profiles/esQueryOutputModel.cjs.map +1 -0
- package/dist/profiles/esQueryOutputModel.d.ts +14 -0
- package/dist/profiles/esQueryOutputModel.d.ts.map +1 -0
- package/dist/profiles/esQueryOutputModel.js +16 -0
- package/dist/profiles/esQueryOutputModel.js.map +1 -0
- package/dist/profiles/esQueryPreview.cjs +30 -0
- package/dist/profiles/esQueryPreview.cjs.map +1 -0
- package/dist/profiles/esQueryPreview.d.ts +6 -0
- package/dist/profiles/esQueryPreview.d.ts.map +1 -0
- package/dist/profiles/esQueryPreview.js +30 -0
- package/dist/profiles/esQueryPreview.js.map +1 -0
- package/dist/profiles/esQuerySortEditor.cjs +143 -0
- package/dist/profiles/esQuerySortEditor.cjs.map +1 -0
- package/dist/profiles/esQuerySortEditor.d.ts +9 -0
- package/dist/profiles/esQuerySortEditor.d.ts.map +1 -0
- package/dist/profiles/esQuerySortEditor.js +143 -0
- package/dist/profiles/esQuerySortEditor.js.map +1 -0
- package/dist/profiles/esQuerySortModel.cjs +13 -0
- package/dist/profiles/esQuerySortModel.cjs.map +1 -0
- package/dist/profiles/esQuerySortModel.d.ts +4 -0
- package/dist/profiles/esQuerySortModel.d.ts.map +1 -0
- package/dist/profiles/esQuerySortModel.js +13 -0
- package/dist/profiles/esQuerySortModel.js.map +1 -0
- package/dist/profiles/esValueCombobox.cjs +86 -0
- package/dist/profiles/esValueCombobox.cjs.map +1 -0
- package/dist/profiles/esValueCombobox.d.ts +15 -0
- package/dist/profiles/esValueCombobox.d.ts.map +1 -0
- package/dist/profiles/esValueCombobox.js +86 -0
- package/dist/profiles/esValueCombobox.js.map +1 -0
- package/dist/profiles/jsonPathSample.cjs +75 -0
- package/dist/profiles/jsonPathSample.cjs.map +1 -0
- package/dist/profiles/jsonPathSample.d.ts +27 -0
- package/dist/profiles/jsonPathSample.d.ts.map +1 -0
- package/dist/profiles/jsonPathSample.js +75 -0
- package/dist/profiles/jsonPathSample.js.map +1 -0
- package/dist/profiles/jsonPathSampleRow.cjs +14 -0
- package/dist/profiles/jsonPathSampleRow.cjs.map +1 -0
- package/dist/profiles/jsonPathSampleRow.d.ts +6 -0
- package/dist/profiles/jsonPathSampleRow.d.ts.map +1 -0
- package/dist/profiles/jsonPathSampleRow.js +14 -0
- package/dist/profiles/jsonPathSampleRow.js.map +1 -0
- package/dist/profiles/profileApi.cjs +37 -0
- package/dist/profiles/profileApi.cjs.map +1 -0
- package/dist/profiles/profileApi.d.ts +32 -0
- package/dist/profiles/profileApi.d.ts.map +1 -0
- package/dist/profiles/profileApi.js +37 -0
- package/dist/profiles/profileApi.js.map +1 -0
- package/dist/profiles/profileBuilder.cjs +65 -0
- package/dist/profiles/profileBuilder.cjs.map +1 -0
- package/dist/profiles/profileBuilder.d.ts +11 -0
- package/dist/profiles/profileBuilder.d.ts.map +1 -0
- package/dist/profiles/profileBuilder.js +65 -0
- package/dist/profiles/profileBuilder.js.map +1 -0
- package/dist/profiles/profileBuilderExtension.cjs +25 -0
- package/dist/profiles/profileBuilderExtension.cjs.map +1 -0
- package/dist/profiles/profileBuilderExtension.d.ts +5 -0
- package/dist/profiles/profileBuilderExtension.d.ts.map +1 -0
- package/dist/profiles/profileBuilderExtension.js +25 -0
- package/dist/profiles/profileBuilderExtension.js.map +1 -0
- package/dist/profiles/profileBuilderWorkspace.cjs +368 -0
- package/dist/profiles/profileBuilderWorkspace.cjs.map +1 -0
- package/dist/profiles/profileBuilderWorkspace.d.ts +21 -0
- package/dist/profiles/profileBuilderWorkspace.d.ts.map +1 -0
- package/dist/profiles/profileBuilderWorkspace.js +368 -0
- package/dist/profiles/profileBuilderWorkspace.js.map +1 -0
- package/dist/profiles/profileColumnModel.cjs +23 -0
- package/dist/profiles/profileColumnModel.cjs.map +1 -0
- package/dist/profiles/profileColumnModel.d.ts +8 -0
- package/dist/profiles/profileColumnModel.d.ts.map +1 -0
- package/dist/profiles/profileColumnModel.js +23 -0
- package/dist/profiles/profileColumnModel.js.map +1 -0
- package/dist/profiles/profileColumnPicker.cjs +68 -0
- package/dist/profiles/profileColumnPicker.cjs.map +1 -0
- package/dist/profiles/profileColumnPicker.d.ts +11 -0
- package/dist/profiles/profileColumnPicker.d.ts.map +1 -0
- package/dist/profiles/profileColumnPicker.js +68 -0
- package/dist/profiles/profileColumnPicker.js.map +1 -0
- package/dist/profiles/profileEditor.cjs +386 -0
- package/dist/profiles/profileEditor.cjs.map +1 -0
- package/dist/profiles/profileEditor.d.ts +19 -0
- package/dist/profiles/profileEditor.d.ts.map +1 -0
- package/dist/profiles/profileEditor.js +386 -0
- package/dist/profiles/profileEditor.js.map +1 -0
- package/dist/profiles/profileEditorModel.cjs +181 -0
- package/dist/profiles/profileEditorModel.cjs.map +1 -0
- package/dist/profiles/profileEditorModel.d.ts +74 -0
- package/dist/profiles/profileEditorModel.d.ts.map +1 -0
- package/dist/profiles/profileEditorModel.js +181 -0
- package/dist/profiles/profileEditorModel.js.map +1 -0
- package/dist/profiles/profileEditorPreview.cjs +38 -0
- package/dist/profiles/profileEditorPreview.cjs.map +1 -0
- package/dist/profiles/profileEditorPreview.d.ts +12 -0
- package/dist/profiles/profileEditorPreview.d.ts.map +1 -0
- package/dist/profiles/profileEditorPreview.js +38 -0
- package/dist/profiles/profileEditorPreview.js.map +1 -0
- package/dist/profiles/profileEditorRail.cjs +46 -0
- package/dist/profiles/profileEditorRail.cjs.map +1 -0
- package/dist/profiles/profileEditorRail.d.ts +8 -0
- package/dist/profiles/profileEditorRail.d.ts.map +1 -0
- package/dist/profiles/profileEditorRail.js +46 -0
- package/dist/profiles/profileEditorRail.js.map +1 -0
- package/dist/profiles/profileEditorRaw.cjs +118 -0
- package/dist/profiles/profileEditorRaw.cjs.map +1 -0
- package/dist/profiles/profileEditorRaw.d.ts +7 -0
- package/dist/profiles/profileEditorRaw.d.ts.map +1 -0
- package/dist/profiles/profileEditorRaw.js +118 -0
- package/dist/profiles/profileEditorRaw.js.map +1 -0
- package/dist/profiles/profileEditorRoutes.cjs +7 -0
- package/dist/profiles/profileEditorRoutes.cjs.map +1 -0
- package/dist/profiles/profileEditorRoutes.d.ts +2 -0
- package/dist/profiles/profileEditorRoutes.d.ts.map +1 -0
- package/dist/profiles/profileEditorRoutes.js +7 -0
- package/dist/profiles/profileEditorRoutes.js.map +1 -0
- package/dist/profiles/profileEditorSections.cjs +213 -0
- package/dist/profiles/profileEditorSections.cjs.map +1 -0
- package/dist/profiles/profileEditorSections.d.ts +23 -0
- package/dist/profiles/profileEditorSections.d.ts.map +1 -0
- package/dist/profiles/profileEditorSections.js +213 -0
- package/dist/profiles/profileEditorSections.js.map +1 -0
- package/dist/profiles/profileFieldEditor.cjs +200 -0
- package/dist/profiles/profileFieldEditor.cjs.map +1 -0
- package/dist/profiles/profileFieldEditor.d.ts +34 -0
- package/dist/profiles/profileFieldEditor.d.ts.map +1 -0
- package/dist/profiles/profileFieldEditor.js +200 -0
- package/dist/profiles/profileFieldEditor.js.map +1 -0
- package/dist/profiles/profileFieldGrid.cjs +250 -0
- package/dist/profiles/profileFieldGrid.cjs.map +1 -0
- package/dist/profiles/profileFieldGrid.d.ts +20 -0
- package/dist/profiles/profileFieldGrid.d.ts.map +1 -0
- package/dist/profiles/profileFieldGrid.js +250 -0
- package/dist/profiles/profileFieldGrid.js.map +1 -0
- package/dist/profiles/profileFieldManager.cjs +103 -0
- package/dist/profiles/profileFieldManager.cjs.map +1 -0
- package/dist/profiles/profileFieldManager.d.ts +9 -0
- package/dist/profiles/profileFieldManager.d.ts.map +1 -0
- package/dist/profiles/profileFieldManager.js +103 -0
- package/dist/profiles/profileFieldManager.js.map +1 -0
- package/dist/profiles/profileFieldState.cjs +136 -0
- package/dist/profiles/profileFieldState.cjs.map +1 -0
- package/dist/profiles/profileFieldState.d.ts +41 -0
- package/dist/profiles/profileFieldState.d.ts.map +1 -0
- package/dist/profiles/profileFieldState.js +136 -0
- package/dist/profiles/profileFieldState.js.map +1 -0
- package/dist/profiles/profileFieldTypes.cjs +17 -0
- package/dist/profiles/profileFieldTypes.cjs.map +1 -0
- package/dist/profiles/profileFieldTypes.d.ts +8 -0
- package/dist/profiles/profileFieldTypes.d.ts.map +1 -0
- package/dist/profiles/profileFieldTypes.js +17 -0
- package/dist/profiles/profileFieldTypes.js.map +1 -0
- package/dist/profiles/profileParamModel.cjs +78 -0
- package/dist/profiles/profileParamModel.cjs.map +1 -0
- package/dist/profiles/profileParamModel.d.ts +3 -0
- package/dist/profiles/profileParamModel.d.ts.map +1 -0
- package/dist/profiles/profileParamModel.js +78 -0
- package/dist/profiles/profileParamModel.js.map +1 -0
- package/dist/profiles/profileSamplePayload.cjs +15 -0
- package/dist/profiles/profileSamplePayload.cjs.map +1 -0
- package/dist/profiles/profileSamplePayload.d.ts +13 -0
- package/dist/profiles/profileSamplePayload.d.ts.map +1 -0
- package/dist/profiles/profileSamplePayload.js +15 -0
- package/dist/profiles/profileSamplePayload.js.map +1 -0
- package/dist/profiles/profileWizard.cjs +257 -0
- package/dist/profiles/profileWizard.cjs.map +1 -0
- package/dist/profiles/profileWizard.d.ts +12 -0
- package/dist/profiles/profileWizard.d.ts.map +1 -0
- package/dist/profiles/profileWizard.js +257 -0
- package/dist/profiles/profileWizard.js.map +1 -0
- package/dist/profiles/profileWizardHelp.cjs +10 -0
- package/dist/profiles/profileWizardHelp.cjs.map +1 -0
- package/dist/profiles/profileWizardHelp.d.ts +13 -0
- package/dist/profiles/profileWizardHelp.d.ts.map +1 -0
- package/dist/profiles/profileWizardHelp.js +10 -0
- package/dist/profiles/profileWizardHelp.js.map +1 -0
- package/dist/profiles/profileWizardModel.cjs +198 -0
- package/dist/profiles/profileWizardModel.cjs.map +1 -0
- package/dist/profiles/profileWizardModel.d.ts +255 -0
- package/dist/profiles/profileWizardModel.d.ts.map +1 -0
- package/dist/profiles/profileWizardModel.js +198 -0
- package/dist/profiles/profileWizardModel.js.map +1 -0
- package/dist/profiles/profileWizardQueryStep.cjs +215 -0
- package/dist/profiles/profileWizardQueryStep.cjs.map +1 -0
- package/dist/profiles/profileWizardQueryStep.d.ts +18 -0
- package/dist/profiles/profileWizardQueryStep.d.ts.map +1 -0
- package/dist/profiles/profileWizardQueryStep.js +215 -0
- package/dist/profiles/profileWizardQueryStep.js.map +1 -0
- package/dist/profiles/profileWizardSteps.cjs +214 -0
- package/dist/profiles/profileWizardSteps.cjs.map +1 -0
- package/dist/profiles/profileWizardSteps.d.ts +35 -0
- package/dist/profiles/profileWizardSteps.d.ts.map +1 -0
- package/dist/profiles/profileWizardSteps.js +214 -0
- package/dist/profiles/profileWizardSteps.js.map +1 -0
- package/dist/profiles/profileYaml.cjs +19 -0
- package/dist/profiles/profileYaml.cjs.map +1 -0
- package/dist/profiles/profileYaml.d.ts +4 -0
- package/dist/profiles/profileYaml.d.ts.map +1 -0
- package/dist/profiles/profileYaml.js +19 -0
- package/dist/profiles/profileYaml.js.map +1 -0
- package/dist/profiles/prometheusResults.cjs +60 -0
- package/dist/profiles/prometheusResults.cjs.map +1 -0
- package/dist/profiles/prometheusResults.d.ts +7 -0
- package/dist/profiles/prometheusResults.d.ts.map +1 -0
- package/dist/profiles/prometheusResults.js +60 -0
- package/dist/profiles/prometheusResults.js.map +1 -0
- package/dist/profiles/queryRowLimits.cjs +82 -0
- package/dist/profiles/queryRowLimits.cjs.map +1 -0
- package/dist/profiles/queryRowLimits.d.ts +9 -0
- package/dist/profiles/queryRowLimits.d.ts.map +1 -0
- package/dist/profiles/queryRowLimits.js +82 -0
- package/dist/profiles/queryRowLimits.js.map +1 -0
- package/dist/profiles/queryRowLimitsModel.cjs +10 -0
- package/dist/profiles/queryRowLimitsModel.cjs.map +1 -0
- package/dist/profiles/queryRowLimitsModel.d.ts +9 -0
- package/dist/profiles/queryRowLimitsModel.d.ts.map +1 -0
- package/dist/profiles/queryRowLimitsModel.js +10 -0
- package/dist/profiles/queryRowLimitsModel.js.map +1 -0
- package/dist/profiles/queryTargetPicker.cjs +42 -0
- package/dist/profiles/queryTargetPicker.cjs.map +1 -0
- package/dist/profiles/queryTargetPicker.d.ts +8 -0
- package/dist/profiles/queryTargetPicker.d.ts.map +1 -0
- package/dist/profiles/queryTargetPicker.js +42 -0
- package/dist/profiles/queryTargetPicker.js.map +1 -0
- package/dist/profiles/testSchema.d.ts +3 -0
- package/dist/profiles/testSchema.d.ts.map +1 -0
- package/dist/profiles.cjs +223 -0
- package/dist/profiles.cjs.map +1 -0
- package/dist/profiles.d.ts +68 -0
- package/dist/profiles.d.ts.map +1 -0
- package/dist/profiles.js +223 -0
- package/dist/profiles.js.map +1 -0
- package/dist/rpc/FilterForm.cjs +20 -0
- package/dist/rpc/FilterForm.cjs.map +1 -1
- package/dist/rpc/FilterForm.js +20 -0
- package/dist/rpc/FilterForm.js.map +1 -1
- package/dist/rpc/formMetadata.cjs +34 -0
- package/dist/rpc/formMetadata.cjs.map +1 -1
- package/dist/rpc/formMetadata.d.ts.map +1 -1
- package/dist/rpc/formMetadata.js +35 -1
- package/dist/rpc/formMetadata.js.map +1 -1
- package/dist/rpc/types.cjs.map +1 -1
- package/dist/rpc/types.d.ts +9 -1
- package/dist/rpc/types.d.ts.map +1 -1
- package/dist/rpc/types.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +6 -1
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { normalizeErrorDiagnostics } from "../data/diagnostics/error-diagnostics.js";
|
|
2
|
+
import { profileApiPath } from "./profileApi.js";
|
|
3
|
+
import { QueryBrowserExecutionError } from "../data/query-browser/QueryBrowser.types.js";
|
|
4
|
+
import { useQuery } from "@tanstack/react-query";
|
|
5
|
+
import { useMemo } from "react";
|
|
6
|
+
function savedConnectionID(value) {
|
|
7
|
+
const prefix = "connection://";
|
|
8
|
+
if (!(value == null ? void 0 : value.startsWith(prefix))) return null;
|
|
9
|
+
return value.slice(prefix.length).trim() || null;
|
|
10
|
+
}
|
|
11
|
+
function browserBaseUrl(connectionID) {
|
|
12
|
+
return profileApiPath(`connection/${encodeURIComponent(connectionID)}/browser`);
|
|
13
|
+
}
|
|
14
|
+
async function fetchJSON(url, init) {
|
|
15
|
+
const response = await fetch(url, init);
|
|
16
|
+
if (!response.ok) {
|
|
17
|
+
const body = await response.text();
|
|
18
|
+
const fallback = body.trim() || `request failed: ${response.status}`;
|
|
19
|
+
try {
|
|
20
|
+
const parsed = JSON.parse(body);
|
|
21
|
+
if (typeof parsed.error === "string") {
|
|
22
|
+
const errorDetails = normalizeErrorDiagnostics(parsed, parsed.error);
|
|
23
|
+
throw new QueryBrowserExecutionError(
|
|
24
|
+
(errorDetails == null ? void 0 : errorDetails.message) ?? parsed.error,
|
|
25
|
+
parsed.diagnostics,
|
|
26
|
+
errorDetails ?? void 0
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
} catch (error) {
|
|
30
|
+
if (error instanceof QueryBrowserExecutionError) throw error;
|
|
31
|
+
}
|
|
32
|
+
throw new Error(fallback);
|
|
33
|
+
}
|
|
34
|
+
return response.json();
|
|
35
|
+
}
|
|
36
|
+
const targetGroups = [
|
|
37
|
+
{ kind: "pattern", label: "Index patterns" },
|
|
38
|
+
{ kind: "alias", label: "Aliases" },
|
|
39
|
+
{ kind: "data_stream", label: "Data streams" },
|
|
40
|
+
{ kind: "index", label: "Indexes" }
|
|
41
|
+
];
|
|
42
|
+
function openSearchIndexOptions(inspection) {
|
|
43
|
+
if ((inspection == null ? void 0 : inspection.kind) !== "opensearch") return [];
|
|
44
|
+
const targets = inspection.targets ?? [];
|
|
45
|
+
return targetGroups.flatMap(
|
|
46
|
+
({ kind, label }) => targets.filter((target) => target.kind === kind).map((target) => ({
|
|
47
|
+
value: target.name,
|
|
48
|
+
label: target.count ? `${target.name} · ${target.count} indexes` : target.name,
|
|
49
|
+
selectedLabel: target.name,
|
|
50
|
+
group: label,
|
|
51
|
+
title: target.count ? `${target.name} · ${target.count} rotated indexes` : `${target.name} · ${target.kind.replace("_", " ")}`
|
|
52
|
+
}))
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
function openSearchTargetKind(inspection, name) {
|
|
56
|
+
const discovered = ((inspection == null ? void 0 : inspection.targets) ?? []).find(
|
|
57
|
+
(target) => target.name === name
|
|
58
|
+
);
|
|
59
|
+
if (discovered) return discovered.kind;
|
|
60
|
+
return name.includes("*") ? "pattern" : "";
|
|
61
|
+
}
|
|
62
|
+
function withTarget(options, target) {
|
|
63
|
+
if (!target) return options;
|
|
64
|
+
const next = { ...options };
|
|
65
|
+
if (target.index) {
|
|
66
|
+
next.index = target.index;
|
|
67
|
+
next.targetKind = target.targetKind;
|
|
68
|
+
} else {
|
|
69
|
+
delete next.index;
|
|
70
|
+
delete next.targetKind;
|
|
71
|
+
}
|
|
72
|
+
return next;
|
|
73
|
+
}
|
|
74
|
+
function queryBrowserOptionsSchema(descriptor) {
|
|
75
|
+
if (!descriptor.optionsSchema) return void 0;
|
|
76
|
+
const properties = { ...descriptor.optionsSchema.properties };
|
|
77
|
+
if (properties.search) {
|
|
78
|
+
delete properties.search;
|
|
79
|
+
delete properties.limit;
|
|
80
|
+
}
|
|
81
|
+
if (descriptor.targetLabel) delete properties.index;
|
|
82
|
+
return { ...descriptor.optionsSchema, properties };
|
|
83
|
+
}
|
|
84
|
+
function completionForInspection(inspection, selectedInspection) {
|
|
85
|
+
if ((inspection == null ? void 0 : inspection.kind) === "sql" && inspection.dialect) {
|
|
86
|
+
return {
|
|
87
|
+
kind: "sql",
|
|
88
|
+
dialect: inspection.dialect,
|
|
89
|
+
...inspection.defaultSchema ? { defaultSchema: inspection.defaultSchema } : {},
|
|
90
|
+
schemas: (inspection.schemas ?? []).map((schema) => ({
|
|
91
|
+
name: schema.name,
|
|
92
|
+
relations: schema.relations.map((relation) => ({
|
|
93
|
+
name: relation.name,
|
|
94
|
+
...relation.type ? { type: relation.type } : {},
|
|
95
|
+
columns: relation.columns.map((column) => ({
|
|
96
|
+
name: column.name,
|
|
97
|
+
types: column.dataType ? [column.dataType] : []
|
|
98
|
+
}))
|
|
99
|
+
}))
|
|
100
|
+
}))
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
if ((selectedInspection == null ? void 0 : selectedInspection.kind) === "opensearch" && selectedInspection.selected) {
|
|
104
|
+
return {
|
|
105
|
+
kind: "json-fields",
|
|
106
|
+
vocabulary: "opensearch",
|
|
107
|
+
fields: selectedInspection.selected.fields
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
return void 0;
|
|
111
|
+
}
|
|
112
|
+
function mergeProviderOptions(input) {
|
|
113
|
+
const merged = {};
|
|
114
|
+
for (const layer of input.layers) Object.assign(merged, layer ?? {});
|
|
115
|
+
if (input.database) merged.database = input.database;
|
|
116
|
+
if (!input.keepTargetKind) delete merged.targetKind;
|
|
117
|
+
return merged;
|
|
118
|
+
}
|
|
119
|
+
function useInspection(scope) {
|
|
120
|
+
var _a, _b, _c, _d, _e;
|
|
121
|
+
const { cacheKey, id, baseUrl } = scope;
|
|
122
|
+
const base = useQuery({
|
|
123
|
+
queryKey: [cacheKey, id],
|
|
124
|
+
queryFn: () => fetchJSON(`${baseUrl}/inspect`),
|
|
125
|
+
enabled: scope.enabled,
|
|
126
|
+
retry: 0,
|
|
127
|
+
staleTime: 5 * 6e4
|
|
128
|
+
});
|
|
129
|
+
const switchedDatabase = scope.database !== "" && scope.database !== ((_a = base.data) == null ? void 0 : _a.database);
|
|
130
|
+
const database = useQuery({
|
|
131
|
+
queryKey: [cacheKey, id, scope.database],
|
|
132
|
+
queryFn: () => {
|
|
133
|
+
const params = new URLSearchParams({ database: scope.database });
|
|
134
|
+
return fetchJSON(`${baseUrl}/inspect?${params}`);
|
|
135
|
+
},
|
|
136
|
+
enabled: ((_b = base.data) == null ? void 0 : _b.kind) === "sql" && switchedDatabase,
|
|
137
|
+
retry: 0,
|
|
138
|
+
staleTime: 5 * 6e4
|
|
139
|
+
});
|
|
140
|
+
const active = switchedDatabase ? database : base;
|
|
141
|
+
const data = active.data ?? base.data;
|
|
142
|
+
const targetKind = scope.targetKind ?? ((_d = (_c = data == null ? void 0 : data.targets) == null ? void 0 : _c.find((target2) => target2.name === scope.target)) == null ? void 0 : _d.kind) ?? "";
|
|
143
|
+
const target = useQuery({
|
|
144
|
+
queryKey: [cacheKey, id, targetKind, scope.target],
|
|
145
|
+
queryFn: () => {
|
|
146
|
+
const params = new URLSearchParams({
|
|
147
|
+
target: scope.target,
|
|
148
|
+
targetKind
|
|
149
|
+
});
|
|
150
|
+
return fetchJSON(`${baseUrl}/inspect?${params}`);
|
|
151
|
+
},
|
|
152
|
+
enabled: (data == null ? void 0 : data.kind) === "opensearch" && scope.target !== "" && targetKind !== "",
|
|
153
|
+
retry: 0,
|
|
154
|
+
staleTime: 5 * 6e4
|
|
155
|
+
});
|
|
156
|
+
const activeDatabase = scope.database || scope.fallbackDatabase || (data == null ? void 0 : data.database) || "";
|
|
157
|
+
const completion = useMemo(
|
|
158
|
+
() => completionForInspection(data, target.data),
|
|
159
|
+
[data, target.data]
|
|
160
|
+
);
|
|
161
|
+
return {
|
|
162
|
+
data,
|
|
163
|
+
nodes: (data == null ? void 0 : data.nodes) ?? [],
|
|
164
|
+
databases: ((_e = base.data) == null ? void 0 : _e.databases) ?? [],
|
|
165
|
+
activeDatabase,
|
|
166
|
+
sqlDatabase: (data == null ? void 0 : data.kind) === "sql" ? activeDatabase : "",
|
|
167
|
+
targetKind,
|
|
168
|
+
loading: active.isLoading,
|
|
169
|
+
error: active.error,
|
|
170
|
+
completion
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
export {
|
|
174
|
+
browserBaseUrl,
|
|
175
|
+
completionForInspection,
|
|
176
|
+
fetchJSON,
|
|
177
|
+
mergeProviderOptions,
|
|
178
|
+
openSearchIndexOptions,
|
|
179
|
+
openSearchTargetKind,
|
|
180
|
+
queryBrowserOptionsSchema,
|
|
181
|
+
savedConnectionID,
|
|
182
|
+
useInspection,
|
|
183
|
+
withTarget
|
|
184
|
+
};
|
|
185
|
+
//# sourceMappingURL=connectionBrowserModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectionBrowserModel.js","sources":["../../src/profiles/connectionBrowserModel.ts"],"sourcesContent":["/**\n * The data layer behind every query browser: the descriptor and inspection\n * shapes the server serves, and the hook that turns a selection (database,\n * index) into the catalog and completion a browser renders. All three hosts —\n * the connection browser, the profile wizard and the profile builder — drive\n * the same plumbing from here so the surfaces cannot drift apart.\n */\n\nimport type { ComboboxOption } from \"../components/Combobox\";\nimport type { JsonSchemaObject } from \"../components/json-schema-form-types\";\nimport { normalizeErrorDiagnostics } from \"../data/diagnostics/error-diagnostics\";\nimport type { QueryBrowserCompletion } from \"../data/query-browser/QueryBrowser.completion\";\nimport type { QueryBrowserDiagnostics } from \"../data/query-browser/QueryBrowser.types\";\nimport { profileApiPath } from \"./profileApi\";\nimport { QueryBrowserExecutionError } from \"../data/query-browser/QueryBrowser.types\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useMemo, type ReactNode } from \"react\";\n\nexport type BrowserDescriptor = {\n kind: \"query\" | \"cache\";\n provider?: string;\n language?: \"sql\" | \"json\" | \"text\";\n queryLabel?: string;\n defaultQuery?: string;\n resultView?: \"table\" | \"logs\" | \"timeseries\";\n optionsSchema?: JsonSchemaObject;\n initialOptions?: Record<string, unknown>;\n catalog?: boolean;\n /**\n * What a query runs against when the source picks one flat target — the\n * `index` option. Set, the browser offers a target combobox instead of a\n * catalog tree.\n */\n targetLabel?: string;\n /**\n * The row caps that apply when a profile declares none of its own: the page a\n * caller gets by default, the largest page it may ask for, and where an\n * all-row export stops. The query's own `limit` option is none of them.\n */\n rowLimits?: BrowserRowLimits;\n};\n\n/** The defaults the server serves, shown as what an unset cap inherits. */\nexport type BrowserRowLimits = {\n pageSize: number;\n maxPageSize: number;\n maxExportRows: number;\n};\n\n/** The caps a profile sets for itself; each unset one takes its default. */\nexport type ProfileRowLimits = {\n pageSize?: number;\n maxPageSize?: number;\n maxExportRows?: number;\n};\n\nexport type TargetKind = \"index\" | \"alias\" | \"data_stream\" | \"pattern\";\n\nexport type InspectionTarget = {\n name: string;\n kind: TargetKind;\n /** The rotation wildcard this concrete index rolls up into. */\n pattern?: string;\n /** How many rotations a `pattern` target covers. */\n count?: number;\n};\n\nexport type CatalogNode = {\n id: string;\n label: string;\n kind: string;\n query?: string;\n options?: Record<string, unknown>;\n children?: CatalogNode[];\n};\n\nexport type InspectionField = {\n name: string;\n dataType?: string;\n types?: string[];\n searchable?: boolean;\n aggregatable?: boolean;\n conflicting?: boolean;\n};\n\nexport type BrowserInspection = {\n kind: \"sql\" | \"opensearch\";\n dialect?: \"postgresql\" | \"mysql\" | \"mssql\" | \"standard\";\n database?: string;\n databases?: string[];\n defaultSchema?: string;\n schemas?: {\n name: string;\n relations: {\n name: string;\n type?: \"table\" | \"view\";\n columns: InspectionField[];\n }[];\n }[];\n targets?: InspectionTarget[];\n nodes?: CatalogNode[];\n selected?: {\n target: InspectionTarget;\n fields: InspectionField[];\n };\n truncated?: boolean;\n truncateReason?: string;\n};\n\nexport type ConnectionProfileActionRenderer = (context: {\n connectionName: string;\n providerType: string;\n providerOptions?: Record<string, unknown>;\n}) => ReactNode;\n\n/**\n * savedConnectionID reads the id out of a `connection://<id>` reference. An\n * inline URL has no id, and so no catalog to browse — hence null rather than a\n * guess.\n */\nexport function savedConnectionID(value: string | undefined): string | null {\n const prefix = \"connection://\";\n if (!value?.startsWith(prefix)) return null;\n return value.slice(prefix.length).trim() || null;\n}\n\nexport function browserBaseUrl(connectionID: string): string {\n return profileApiPath(`connection/${encodeURIComponent(connectionID)}/browser`);\n}\n\nexport async function fetchJSON<T>(url: string, init?: RequestInit): Promise<T> {\n const response = await fetch(url, init);\n if (!response.ok) {\n const body = await response.text();\n const fallback = body.trim() || `request failed: ${response.status}`;\n try {\n const parsed = JSON.parse(body) as {\n error?: unknown;\n diagnostics?: QueryBrowserDiagnostics;\n };\n if (typeof parsed.error === \"string\") {\n const errorDetails = normalizeErrorDiagnostics(parsed, parsed.error);\n throw new QueryBrowserExecutionError(\n errorDetails?.message ?? parsed.error,\n parsed.diagnostics,\n errorDetails ?? undefined,\n );\n }\n } catch (error) {\n if (error instanceof QueryBrowserExecutionError) throw error;\n }\n throw new Error(fallback);\n }\n return response.json() as Promise<T>;\n}\n\n/**\n * Rotations lead: a cluster with fifty-three daily jaeger indexes has one\n * target an author actually means, and it is `jaeger-span-*`. The concrete\n * indexes stay listed last so a single day is still reachable.\n */\nconst targetGroups: { kind: TargetKind; label: string }[] = [\n { kind: \"pattern\", label: \"Index patterns\" },\n { kind: \"alias\", label: \"Aliases\" },\n { kind: \"data_stream\", label: \"Data streams\" },\n { kind: \"index\", label: \"Indexes\" },\n];\n\nexport function openSearchIndexOptions(\n inspection?: BrowserInspection,\n): ComboboxOption[] {\n if (inspection?.kind !== \"opensearch\") return [];\n const targets = inspection.targets ?? [];\n return targetGroups.flatMap(({ kind, label }) =>\n targets\n .filter((target) => target.kind === kind)\n .map((target) => ({\n value: target.name,\n label: target.count ? `${target.name} · ${target.count} indexes` : target.name,\n selectedLabel: target.name,\n group: label,\n title: target.count\n ? `${target.name} · ${target.count} rotated indexes`\n : `${target.name} · ${target.kind.replace(\"_\", \" \")}`,\n })),\n );\n}\n\n/**\n * openSearchTargetKind resolves how to inspect a picked target. An undiscovered\n * name containing a wildcard is a pattern by construction — the server inspects\n * it without requiring it to have been enumerated.\n */\nexport function openSearchTargetKind(\n inspection: BrowserInspection | undefined,\n name: string,\n): string {\n const discovered = (inspection?.targets ?? []).find(\n (target) => target.name === name,\n );\n if (discovered) return discovered.kind;\n return name.includes(\"*\") ? \"pattern\" : \"\";\n}\n\n/**\n * withTarget applies a picked target over a host's options, clearing both keys\n * when the picker is emptied so a stale index cannot survive the selection.\n */\nexport function withTarget(\n options: Record<string, unknown>,\n target: { index: string; targetKind: string } | undefined,\n): Record<string, unknown> {\n if (!target) return options;\n const next = { ...options };\n if (target.index) {\n next.index = target.index;\n next.targetKind = target.targetKind;\n } else {\n delete next.index;\n delete next.targetKind;\n }\n return next;\n}\n\n/**\n * queryBrowserOptionsSchema is what the inline options form edits — the leftover\n * options, once the navigator has claimed the ones that belong with the query.\n * The target has its own combobox, and where the source has a structured search\n * the builder owns both the search and the limit it returns, so none of the\n * three is rendered a second time as a generic field.\n */\nexport function queryBrowserOptionsSchema(\n descriptor: BrowserDescriptor,\n): JsonSchemaObject | undefined {\n if (!descriptor.optionsSchema) return undefined;\n const properties = { ...descriptor.optionsSchema.properties };\n if (properties.search) {\n delete properties.search;\n delete properties.limit;\n }\n if (descriptor.targetLabel) delete properties.index;\n return { ...descriptor.optionsSchema, properties };\n}\n\nexport function completionForInspection(\n inspection?: BrowserInspection,\n selectedInspection?: BrowserInspection,\n): QueryBrowserCompletion | undefined {\n if (inspection?.kind === \"sql\" && inspection.dialect) {\n return {\n kind: \"sql\",\n dialect: inspection.dialect,\n ...(inspection.defaultSchema\n ? { defaultSchema: inspection.defaultSchema }\n : {}),\n schemas: (inspection.schemas ?? []).map((schema) => ({\n name: schema.name,\n relations: schema.relations.map((relation) => ({\n name: relation.name,\n ...(relation.type ? { type: relation.type } : {}),\n columns: relation.columns.map((column) => ({\n name: column.name,\n types: column.dataType ? [column.dataType] : [],\n })),\n })),\n })),\n };\n }\n if (\n selectedInspection?.kind === \"opensearch\" &&\n selectedInspection.selected\n ) {\n return {\n kind: \"json-fields\",\n vocabulary: \"opensearch\",\n fields: selectedInspection.selected.fields,\n };\n }\n return undefined;\n}\n\n/**\n * mergeProviderOptions layers the option sources a browser draws on, in\n * increasing precedence, and pins the active database when there is one.\n * `targetKind` only tells the inspection endpoint which field mappings to\n * fetch, so it is dropped unless the caller is feeding the browser itself.\n */\nexport function mergeProviderOptions(input: {\n layers: Array<Record<string, unknown> | undefined>;\n database?: string;\n keepTargetKind?: boolean;\n}): Record<string, unknown> {\n const merged: Record<string, unknown> = {};\n for (const layer of input.layers) Object.assign(merged, layer ?? {});\n if (input.database) merged.database = input.database;\n if (!input.keepTargetKind) delete merged.targetKind;\n return merged;\n}\n\nexport type InspectionScope = {\n /** Query-cache namespace, so each host keeps its own inspection cache. */\n cacheKey: string;\n id: string;\n baseUrl: string;\n enabled: boolean;\n /** The database the author picked; empty means the connection's default. */\n database: string;\n /** A database carried by the stored provider options, tried before the default. */\n fallbackDatabase?: string;\n /** The selected index, alias or data stream. */\n target: string;\n /** An explicit target kind; resolved from the catalog when absent. */\n targetKind?: string;\n};\n\nexport type Inspection = {\n data?: BrowserInspection | undefined;\n nodes: CatalogNode[];\n databases: string[];\n activeDatabase: string;\n /** The database to send with a query — empty unless the source is SQL. */\n sqlDatabase: string;\n targetKind: string;\n loading: boolean;\n error: unknown;\n completion?: QueryBrowserCompletion | undefined;\n};\n\n/**\n * useInspection resolves the catalog for a browser: the base inspection, the\n * per-database one a SQL author switched to, and the per-target field mappings\n * an OpenSearch author needs for completion.\n */\nexport function useInspection(scope: InspectionScope): Inspection {\n const { cacheKey, id, baseUrl } = scope;\n const base = useQuery({\n queryKey: [cacheKey, id],\n queryFn: () => fetchJSON<BrowserInspection>(`${baseUrl}/inspect`),\n enabled: scope.enabled,\n retry: 0,\n staleTime: 5 * 60_000,\n });\n const switchedDatabase =\n scope.database !== \"\" && scope.database !== base.data?.database;\n const database = useQuery({\n queryKey: [cacheKey, id, scope.database],\n queryFn: () => {\n const params = new URLSearchParams({ database: scope.database });\n return fetchJSON<BrowserInspection>(`${baseUrl}/inspect?${params}`);\n },\n enabled: base.data?.kind === \"sql\" && switchedDatabase,\n retry: 0,\n staleTime: 5 * 60_000,\n });\n const active = switchedDatabase ? database : base;\n const data = active.data ?? base.data;\n\n const targetKind =\n scope.targetKind ??\n data?.targets?.find((target) => target.name === scope.target)?.kind ??\n \"\";\n const target = useQuery({\n queryKey: [cacheKey, id, targetKind, scope.target],\n queryFn: () => {\n const params = new URLSearchParams({\n target: scope.target,\n targetKind,\n });\n return fetchJSON<BrowserInspection>(`${baseUrl}/inspect?${params}`);\n },\n enabled: data?.kind === \"opensearch\" && scope.target !== \"\" && targetKind !== \"\",\n retry: 0,\n staleTime: 5 * 60_000,\n });\n\n const activeDatabase =\n scope.database || scope.fallbackDatabase || data?.database || \"\";\n const completion = useMemo(\n () => completionForInspection(data, target.data),\n [data, target.data],\n );\n return {\n data,\n nodes: data?.nodes ?? [],\n databases: base.data?.databases ?? [],\n activeDatabase,\n sqlDatabase: data?.kind === \"sql\" ? activeDatabase : \"\",\n targetKind,\n loading: active.isLoading,\n error: active.error,\n completion,\n };\n}\n"],"names":["target"],"mappings":"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"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const LogsTable = require("../data/LogsTable.cjs");
|
|
5
|
+
const QueryBrowser = require("../data/query-browser/QueryBrowser.cjs");
|
|
6
|
+
const Tabs = require("../layout/Tabs.cjs");
|
|
7
|
+
const react = require("react");
|
|
8
|
+
const catalogTree = require("./catalogTree.cjs");
|
|
9
|
+
const connectionBrowserModel = require("./connectionBrowserModel.cjs");
|
|
10
|
+
const esFieldValues = require("./esFieldValues.cjs");
|
|
11
|
+
const esQueryBuilder = require("./esQueryBuilder.cjs");
|
|
12
|
+
const esQueryBuilderModel = require("./esQueryBuilderModel.cjs");
|
|
13
|
+
const esQueryOperators = require("./esQueryOperators.cjs");
|
|
14
|
+
const prometheusResults = require("./prometheusResults.cjs");
|
|
15
|
+
const queryRowLimits = require("./queryRowLimits.cjs");
|
|
16
|
+
const queryTargetPicker = require("./queryTargetPicker.cjs");
|
|
17
|
+
const connectionQueryWorkspaceModel = require("./connectionQueryWorkspaceModel.cjs");
|
|
18
|
+
const esQueryBuilderForm = require("./esQueryBuilderForm.cjs");
|
|
19
|
+
const esQueryCompile = require("./esQueryCompile.cjs");
|
|
20
|
+
function ConnectionQueryWorkspace({
|
|
21
|
+
id,
|
|
22
|
+
title,
|
|
23
|
+
descriptor,
|
|
24
|
+
inspection,
|
|
25
|
+
onDatabaseChange,
|
|
26
|
+
query,
|
|
27
|
+
onQueryChange,
|
|
28
|
+
options,
|
|
29
|
+
onOptionsChange,
|
|
30
|
+
onCatalogSelect,
|
|
31
|
+
optionsSchema,
|
|
32
|
+
search,
|
|
33
|
+
onSearchChange,
|
|
34
|
+
limits,
|
|
35
|
+
onLimitsChange,
|
|
36
|
+
params,
|
|
37
|
+
onParamMappingChange,
|
|
38
|
+
paramValues,
|
|
39
|
+
paramRoles,
|
|
40
|
+
compileBaseUrl = "",
|
|
41
|
+
execute,
|
|
42
|
+
lookupFilterValues,
|
|
43
|
+
renderResults,
|
|
44
|
+
className
|
|
45
|
+
}) {
|
|
46
|
+
var _a;
|
|
47
|
+
const builder = Boolean(onSearchChange) && connectionQueryWorkspaceModel.supportsQueryBuilder(descriptor);
|
|
48
|
+
const tabs = connectionQueryWorkspaceModel.navigatorTabs({ descriptor, builder });
|
|
49
|
+
const [tab, setTab] = react.useState(
|
|
50
|
+
() => connectionQueryWorkspaceModel.initialNavigatorTab({
|
|
51
|
+
tabs,
|
|
52
|
+
search,
|
|
53
|
+
query,
|
|
54
|
+
...descriptor.defaultQuery ? { defaultQuery: descriptor.defaultQuery } : {}
|
|
55
|
+
})
|
|
56
|
+
);
|
|
57
|
+
const [picked, setPicked] = react.useState();
|
|
58
|
+
const edited = react.useRef(options);
|
|
59
|
+
const seed = react.useRef(options);
|
|
60
|
+
if (seed.current !== options) {
|
|
61
|
+
seed.current = options;
|
|
62
|
+
edited.current = options;
|
|
63
|
+
if (picked) setPicked(void 0);
|
|
64
|
+
}
|
|
65
|
+
const browserOptions = picked ?? options;
|
|
66
|
+
const applyOptions = (next) => {
|
|
67
|
+
edited.current = next;
|
|
68
|
+
setPicked(next);
|
|
69
|
+
onOptionsChange(next);
|
|
70
|
+
};
|
|
71
|
+
const compilation = esQueryCompile.useCompiledSearch({
|
|
72
|
+
baseUrl: compileBaseUrl,
|
|
73
|
+
search: search ?? {},
|
|
74
|
+
...paramValues ? { params: paramValues } : {},
|
|
75
|
+
...paramRoles ? { roles: paramRoles } : {},
|
|
76
|
+
enabled: Boolean(search) && compileBaseUrl !== ""
|
|
77
|
+
});
|
|
78
|
+
const values = esFieldValues.makeFieldValueLookup({
|
|
79
|
+
baseUrl: compileBaseUrl,
|
|
80
|
+
index: String(browserOptions.index ?? ""),
|
|
81
|
+
...paramValues ? { params: paramValues } : {},
|
|
82
|
+
...paramRoles ? { roles: paramRoles } : {}
|
|
83
|
+
});
|
|
84
|
+
const specMode = search !== void 0;
|
|
85
|
+
const active = tabs.some((entry) => entry.id === tab) ? tab : (_a = tabs[0]) == null ? void 0 : _a.id;
|
|
86
|
+
react.useEffect(() => {
|
|
87
|
+
if (active === "form" && onSearchChange && search === void 0) {
|
|
88
|
+
onSearchChange(esQueryBuilderModel.toBuilderMode());
|
|
89
|
+
}
|
|
90
|
+
}, [active, onSearchChange, search]);
|
|
91
|
+
const selectTab = (next) => {
|
|
92
|
+
if (next === "json" && search && onSearchChange) {
|
|
93
|
+
onSearchChange(esQueryBuilderModel.toRawMode(search, compilation.query, query));
|
|
94
|
+
}
|
|
95
|
+
setTab(next);
|
|
96
|
+
};
|
|
97
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
98
|
+
QueryBrowser.QueryBrowser,
|
|
99
|
+
{
|
|
100
|
+
id,
|
|
101
|
+
title,
|
|
102
|
+
language: descriptor.language ?? "text",
|
|
103
|
+
queryLabel: descriptor.queryLabel ?? "Query",
|
|
104
|
+
initialQuery: specMode ? compilation.query : query,
|
|
105
|
+
optionsSchema,
|
|
106
|
+
initialOptions: browserOptions,
|
|
107
|
+
completion: inspection.completion,
|
|
108
|
+
...specMode ? {} : onQueryChange ? { onQueryChange } : {},
|
|
109
|
+
onOptionsChange: (next) => {
|
|
110
|
+
edited.current = next;
|
|
111
|
+
onOptionsChange(next);
|
|
112
|
+
},
|
|
113
|
+
className,
|
|
114
|
+
navigator: tabs.length === 0 && !descriptor.targetLabel ? void 0 : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-0 flex-col gap-2", children: [
|
|
115
|
+
descriptor.targetLabel ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
116
|
+
queryTargetPicker.QueryTargetPicker,
|
|
117
|
+
{
|
|
118
|
+
label: descriptor.targetLabel,
|
|
119
|
+
inspection,
|
|
120
|
+
value: String(browserOptions.index ?? ""),
|
|
121
|
+
onChange: (index, targetKind) => applyOptions(connectionBrowserModel.withTarget(edited.current, { index, targetKind }))
|
|
122
|
+
}
|
|
123
|
+
) : null,
|
|
124
|
+
builder ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
125
|
+
queryRowLimits.QueryRowLimits,
|
|
126
|
+
{
|
|
127
|
+
value: String(browserOptions.limit ?? ""),
|
|
128
|
+
onChange: (limit) => applyOptions({ ...edited.current, limit }),
|
|
129
|
+
...descriptor.rowLimits ? { defaults: descriptor.rowLimits } : {},
|
|
130
|
+
...limits ? { limits } : {},
|
|
131
|
+
...onLimitsChange ? { onLimitsChange } : {}
|
|
132
|
+
}
|
|
133
|
+
) : null,
|
|
134
|
+
tabs.length > 1 ? /* @__PURE__ */ jsxRuntime.jsx(Tabs.Tabs, { tabs, value: active ?? "", onChange: selectTab }) : null,
|
|
135
|
+
active === "form" && onSearchChange && search ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
136
|
+
esQueryBuilder.EsQueryBuilder,
|
|
137
|
+
{
|
|
138
|
+
search,
|
|
139
|
+
onChange: (next) => onSearchChange({ search: next, query: "" }),
|
|
140
|
+
fields: esQueryBuilderForm.esQueryFields(inspection.completion),
|
|
141
|
+
vocabulary: esQueryOperators.esBuilderVocabulary(descriptor.optionsSchema),
|
|
142
|
+
...params ? { params } : {},
|
|
143
|
+
...onParamMappingChange ? { onMappingChange: onParamMappingChange } : {},
|
|
144
|
+
...values ? { values } : {},
|
|
145
|
+
compilation
|
|
146
|
+
}
|
|
147
|
+
) : active === "json" ? /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "rounded-md border border-dashed p-3 text-xs text-muted-foreground", children: [
|
|
148
|
+
"The ",
|
|
149
|
+
descriptor.queryLabel ?? "query",
|
|
150
|
+
" editor holds the query. Switch back to Form to build it from filters — the raw query is dropped then, since only one of the two is stored."
|
|
151
|
+
] }) : active === "catalog" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
152
|
+
catalogTree.CatalogTree,
|
|
153
|
+
{
|
|
154
|
+
nodes: inspection.nodes,
|
|
155
|
+
loading: inspection.loading,
|
|
156
|
+
error: inspection.error,
|
|
157
|
+
databases: inspection.databases,
|
|
158
|
+
database: inspection.activeDatabase,
|
|
159
|
+
onDatabaseChange,
|
|
160
|
+
onSelect: onCatalogSelect
|
|
161
|
+
}
|
|
162
|
+
) : null
|
|
163
|
+
] }),
|
|
164
|
+
execute: (request) => execute(
|
|
165
|
+
specMode ? { ...request, query: "", options: { ...request.options, search } } : request
|
|
166
|
+
),
|
|
167
|
+
...lookupFilterValues ? { lookupFilterValues } : {},
|
|
168
|
+
renderResults: renderResults ?? descriptorResultView(descriptor)
|
|
169
|
+
}
|
|
170
|
+
);
|
|
171
|
+
}
|
|
172
|
+
function descriptorResultView(descriptor) {
|
|
173
|
+
if (descriptor.resultView === "logs") {
|
|
174
|
+
return ({ result, defaultView }) => {
|
|
175
|
+
var _a;
|
|
176
|
+
return ((_a = result.rows) == null ? void 0 : _a.length) ? /* @__PURE__ */ jsxRuntime.jsx(LogsTable.LogsTable, { logs: result.rows, autoFilter: false, fullscreenTitle: "Logs" }) : defaultView;
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
if (descriptor.resultView === "timeseries") {
|
|
180
|
+
return ({ result, defaultView }) => /* @__PURE__ */ jsxRuntime.jsx(prometheusResults.PrometheusResults, { result, fallback: defaultView });
|
|
181
|
+
}
|
|
182
|
+
return void 0;
|
|
183
|
+
}
|
|
184
|
+
exports.ConnectionQueryWorkspace = ConnectionQueryWorkspace;
|
|
185
|
+
//# sourceMappingURL=connectionQueryWorkspace.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectionQueryWorkspace.cjs","sources":["../../src/profiles/connectionQueryWorkspace.tsx"],"sourcesContent":["/**\n * The single query-browser host. The connection browser, the profile wizard and\n * the profile-edit builder all render this: they own where the query and the\n * options are stored and what a run means, and this owns the browser itself —\n * the catalog navigator, the structured filter builder, the completion, and the\n * descriptor's result view.\n */\n\nimport type { JsonSchemaObject } from \"../components/json-schema-form-types\";\nimport { LogsTable } from \"../data/LogsTable\";\nimport { QueryBrowser } from \"../data/query-browser/QueryBrowser\";\nimport type { QueryBrowserFilterLookup, QueryBrowserRequest, QueryBrowserResult, QueryBrowserResultContext } from \"../data/query-browser/QueryBrowser.types\";\nimport { Tabs } from \"../layout/Tabs\";\nimport { useEffect, useRef, useState, type ReactNode } from \"react\";\nimport { CatalogTree } from \"./catalogTree\";\nimport {\n withTarget,\n type BrowserDescriptor,\n type CatalogNode,\n type Inspection,\n type ProfileRowLimits\n} from \"./connectionBrowserModel\";\nimport { makeFieldValueLookup } from \"./esFieldValues\";\nimport { EsQueryBuilder } from \"./esQueryBuilder\";\nimport {\n toBuilderMode,\n toRawMode,\n type EsSearch,\n type QueryModeTransition\n} from \"./esQueryBuilderModel\";\nimport {\n esBuilderVocabulary\n } from \"./esQueryOperators\";\nimport { PrometheusResults } from \"./prometheusResults\";\nimport { QueryRowLimits } from \"./queryRowLimits\";\nimport { QueryTargetPicker } from \"./queryTargetPicker\";\nimport type { ParamMappingEdit } from \"./esParamMappingModel\";\nimport type { ParamDraft } from \"./profileWizardModel\";\nimport { initialNavigatorTab, navigatorTabs, supportsQueryBuilder } from \"./connectionQueryWorkspaceModel\";\nimport { esQueryFields } from \"./esQueryBuilderForm\";\nimport { useCompiledSearch } from \"./esQueryCompile\";\n\n\nexport type ConnectionQueryWorkspaceProps = {\n id: string;\n title: string;\n descriptor: BrowserDescriptor;\n inspection: Inspection;\n onDatabaseChange: (database: string) => void;\n query: string;\n onQueryChange?: (query: string) => void | undefined;\n options: Record<string, unknown>;\n onOptionsChange: (options: Record<string, unknown>) => void;\n onCatalogSelect: (node: CatalogNode) => void;\n optionsSchema?: JsonSchemaObject | undefined;\n /**\n * The structured specification this host stores, when it stores one.\n * `undefined` means the raw query is the artifact.\n */\n search?: EsSearch | undefined;\n /**\n * Every change reports the specification and the raw query together, and one\n * of the two is always empty. The host stores both in one write, so it can\n * never end up holding a specification and a query at once — a state the\n * server rejects.\n */\n onSearchChange?: (transition: QueryModeTransition) => void | undefined;\n /**\n * The row caps the edited profile sets for itself. They are profile settings,\n * not provider options, so they are stored beside the query rather than\n * through `onOptionsChange`. A host that edits no profile — the connection\n * browser — passes neither, and the caps are then not offered at all.\n */\n limits?: ProfileRowLimits | undefined;\n onLimitsChange?: (limits: ProfileRowLimits | undefined) => void;\n /** Declared profile parameters an operand can bind to. */\n params?: ParamDraft[] | undefined;\n onParamMappingChange?: (edit: ParamMappingEdit) => void | undefined;\n /**\n * What those parameters currently resolve to. The server binds a {param:…}\n * operand from them and interpolates a {{.params.…}} one, so without values\n * the preview shows template text — or the compiler's refusal to guess.\n */\n paramValues?: Record<string, unknown> | undefined;\n /** Those parameters' roles, so the compiled preview folds them as a run would. */\n paramRoles?: Record<string, string> | undefined;\n /** Where POST /compile lives. Empty leaves the preview unresolved. */\n compileBaseUrl?: string | undefined;\n execute: (request: QueryBrowserRequest) => Promise<QueryBrowserResult>;\n /**\n * Answers a filter's value type-ahead. Absent leaves every filter the source\n * described showing only the values the result itself carried.\n */\n lookupFilterValues?: QueryBrowserFilterLookup | undefined;\n renderResults?: (context: QueryBrowserResultContext) => ReactNode | undefined;\n className?: string | undefined;\n};\n\nexport function ConnectionQueryWorkspace({\n id,\n title,\n descriptor,\n inspection,\n onDatabaseChange,\n query,\n onQueryChange,\n options,\n onOptionsChange,\n onCatalogSelect,\n optionsSchema,\n search,\n onSearchChange,\n limits,\n onLimitsChange,\n params,\n onParamMappingChange,\n paramValues,\n paramRoles,\n compileBaseUrl = \"\",\n execute,\n lookupFilterValues,\n renderResults,\n className\n}: ConnectionQueryWorkspaceProps) {\n const builder = Boolean(onSearchChange) && supportsQueryBuilder(descriptor);\n const tabs = navigatorTabs({ descriptor, builder });\n const [tab, setTab] = useState<string | undefined>(() =>\n initialNavigatorTab({\n tabs,\n search,\n query,\n ...(descriptor.defaultQuery ? { defaultQuery: descriptor.defaultQuery } : {})\n }),\n );\n // Picking a target has to reach the browser, which only resyncs its options\n // when `initialOptions` changes identity. The pick is layered here rather than\n // round-tripped through the host, so an options-form keystroke — which the\n // host also stores — cannot resync the browser out from under the author.\n const [picked, setPicked] = useState<Record<string, unknown>>();\n // What the browser last reported, so a pick keeps the author's other edits.\n const edited = useRef(options);\n const seed = useRef(options);\n if (seed.current !== options) {\n seed.current = options;\n edited.current = options;\n if (picked) setPicked(undefined);\n }\n const browserOptions = picked ?? options;\n const applyOptions = (next: Record<string, unknown>) => {\n edited.current = next;\n setPicked(next);\n onOptionsChange(next);\n };\n const compilation = useCompiledSearch({\n baseUrl: compileBaseUrl,\n search: search ?? {},\n ...(paramValues ? { params: paramValues } : {}),\n ...(paramRoles ? { roles: paramRoles } : {}),\n enabled: Boolean(search) && compileBaseUrl !== \"\"\n });\n const values = makeFieldValueLookup({\n baseUrl: compileBaseUrl,\n index: String(browserOptions.index ?? \"\"),\n ...(paramValues ? { params: paramValues } : {}),\n ...(paramRoles ? { roles: paramRoles } : {})\n });\n\n // While a specification is active the editor mirrors what it compiles to. It\n // is a preview, not an input: the query is not stored alongside the spec, so\n // there is no keystroke for a compile to overwrite.\n const specMode = search !== undefined;\n const active = tabs.some((entry) => entry.id === tab) ? tab : tabs[0]?.id;\n\n // The form tab is the specification, so being on it means holding one. A tab\n // that stores nothing would leave the builder rendering a query it cannot\n // edit, and this is also what makes filters the default rather than an opt-in.\n useEffect(() => {\n if (active === \"form\" && onSearchChange && search === undefined) {\n onSearchChange(toBuilderMode());\n }\n }, [active, onSearchChange, search]);\n\n // Switching tabs is the mode switch. Each mode stores its own artifact and the\n // server rejects holding both, so leaving the form hands the raw editor the\n // DSL the specification last compiled to and drops the specification.\n const selectTab = (next: string) => {\n if (next === \"json\" && search && onSearchChange) {\n onSearchChange(toRawMode(search, compilation.query, query));\n }\n setTab(next);\n };\n\n return (\n <QueryBrowser\n id={id}\n title={title}\n language={descriptor.language ?? \"text\"}\n queryLabel={descriptor.queryLabel ?? \"Query\"}\n initialQuery={specMode ? compilation.query : query}\n optionsSchema={optionsSchema}\n initialOptions={browserOptions}\n completion={inspection.completion}\n {...(specMode ? {} : onQueryChange ? { onQueryChange } : {})}\n onOptionsChange={(next) => {\n edited.current = next;\n onOptionsChange(next);\n }}\n className={className}\n navigator={\n tabs.length === 0 && !descriptor.targetLabel ? undefined : (\n <div className=\"flex min-h-0 flex-col gap-2\">\n {descriptor.targetLabel ? (\n <QueryTargetPicker\n label={descriptor.targetLabel}\n inspection={inspection}\n value={String(browserOptions.index ?? \"\")}\n onChange={(index, targetKind) =>\n applyOptions(withTarget(edited.current, { index, targetKind }))\n }\n />\n ) : null}\n {builder ? (\n <QueryRowLimits\n value={String(browserOptions.limit ?? \"\")}\n onChange={(limit) =>\n applyOptions({ ...edited.current, limit })\n }\n {...(descriptor.rowLimits\n ? { defaults: descriptor.rowLimits }\n : {})}\n {...(limits ? { limits } : {})}\n {...(onLimitsChange ? { onLimitsChange } : {})}\n />\n ) : null}\n {tabs.length > 1 ? (\n <Tabs tabs={tabs} value={active ?? \"\"} onChange={selectTab} />\n ) : null}\n {active === \"form\" && onSearchChange && search ? (\n <EsQueryBuilder\n search={search}\n onChange={(next) => onSearchChange({ search: next, query: \"\" })}\n fields={esQueryFields(inspection.completion)}\n vocabulary={esBuilderVocabulary(descriptor.optionsSchema)}\n {...(params ? { params } : {})}\n {...(onParamMappingChange\n ? { onMappingChange: onParamMappingChange }\n : {})}\n {...(values ? { values } : {})}\n compilation={compilation}\n />\n ) : active === \"json\" ? (\n <p className=\"rounded-md border border-dashed p-3 text-xs text-muted-foreground\">\n The {descriptor.queryLabel ?? \"query\"} editor holds the query.\n Switch back to Form to build it from filters — the raw query is\n dropped then, since only one of the two is stored.\n </p>\n ) : active === \"catalog\" ? (\n <CatalogTree\n nodes={inspection.nodes}\n loading={inspection.loading}\n error={inspection.error}\n databases={inspection.databases}\n database={inspection.activeDatabase}\n onDatabaseChange={onDatabaseChange}\n onSelect={onCatalogSelect}\n />\n ) : null}\n </div>\n )\n }\n execute={(request) =>\n execute(\n specMode\n ? { ...request, query: \"\", options: { ...request.options, search } }\n : request,\n )\n }\n {...(lookupFilterValues ? { lookupFilterValues } : {})}\n renderResults={renderResults ?? descriptorResultView(descriptor)}\n />\n );\n}\n\n/**\n * descriptorResultView honours the view the server nominated for this provider.\n * A host that renders its own results (the profile builder's column picker)\n * passes renderResults and takes over entirely.\n */\nfunction descriptorResultView(\n descriptor: BrowserDescriptor,\n): ((context: QueryBrowserResultContext) => ReactNode) | undefined {\n if (descriptor.resultView === \"logs\") {\n return ({ result, defaultView }) =>\n result.rows?.length ? (\n <LogsTable logs={result.rows} autoFilter={false} fullscreenTitle=\"Logs\" />\n ) : (\n defaultView\n );\n }\n if (descriptor.resultView === \"timeseries\") {\n return ({ result, defaultView }) => (\n <PrometheusResults result={result} fallback={defaultView} />\n );\n }\n return undefined;\n}\n"],"names":["supportsQueryBuilder","navigatorTabs","useState","initialNavigatorTab","useRef","useCompiledSearch","makeFieldValueLookup","useEffect","toBuilderMode","toRawMode","jsx","QueryBrowser","jsxs","QueryTargetPicker","withTarget","QueryRowLimits","Tabs","EsQueryBuilder","esQueryFields","esBuilderVocabulary","CatalogTree","LogsTable","PrometheusResults"],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { JsonSchemaObject } from '../components/json-schema-form-types';
|
|
2
|
+
import { QueryBrowserFilterLookup, QueryBrowserRequest, QueryBrowserResult, QueryBrowserResultContext } from '../data/query-browser/QueryBrowser.types';
|
|
3
|
+
import { ReactNode } from 'react';
|
|
4
|
+
import { BrowserDescriptor, CatalogNode, Inspection, ProfileRowLimits } from './connectionBrowserModel';
|
|
5
|
+
import { EsSearch, QueryModeTransition } from './esQueryBuilderModel';
|
|
6
|
+
import { ParamMappingEdit } from './esParamMappingModel';
|
|
7
|
+
import { ParamDraft } from './profileWizardModel';
|
|
8
|
+
export type ConnectionQueryWorkspaceProps = {
|
|
9
|
+
id: string;
|
|
10
|
+
title: string;
|
|
11
|
+
descriptor: BrowserDescriptor;
|
|
12
|
+
inspection: Inspection;
|
|
13
|
+
onDatabaseChange: (database: string) => void;
|
|
14
|
+
query: string;
|
|
15
|
+
onQueryChange?: (query: string) => void | undefined;
|
|
16
|
+
options: Record<string, unknown>;
|
|
17
|
+
onOptionsChange: (options: Record<string, unknown>) => void;
|
|
18
|
+
onCatalogSelect: (node: CatalogNode) => void;
|
|
19
|
+
optionsSchema?: JsonSchemaObject | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* The structured specification this host stores, when it stores one.
|
|
22
|
+
* `undefined` means the raw query is the artifact.
|
|
23
|
+
*/
|
|
24
|
+
search?: EsSearch | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Every change reports the specification and the raw query together, and one
|
|
27
|
+
* of the two is always empty. The host stores both in one write, so it can
|
|
28
|
+
* never end up holding a specification and a query at once — a state the
|
|
29
|
+
* server rejects.
|
|
30
|
+
*/
|
|
31
|
+
onSearchChange?: (transition: QueryModeTransition) => void | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* The row caps the edited profile sets for itself. They are profile settings,
|
|
34
|
+
* not provider options, so they are stored beside the query rather than
|
|
35
|
+
* through `onOptionsChange`. A host that edits no profile — the connection
|
|
36
|
+
* browser — passes neither, and the caps are then not offered at all.
|
|
37
|
+
*/
|
|
38
|
+
limits?: ProfileRowLimits | undefined;
|
|
39
|
+
onLimitsChange?: (limits: ProfileRowLimits | undefined) => void;
|
|
40
|
+
/** Declared profile parameters an operand can bind to. */
|
|
41
|
+
params?: ParamDraft[] | undefined;
|
|
42
|
+
onParamMappingChange?: (edit: ParamMappingEdit) => void | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* What those parameters currently resolve to. The server binds a {param:…}
|
|
45
|
+
* operand from them and interpolates a {{.params.…}} one, so without values
|
|
46
|
+
* the preview shows template text — or the compiler's refusal to guess.
|
|
47
|
+
*/
|
|
48
|
+
paramValues?: Record<string, unknown> | undefined;
|
|
49
|
+
/** Those parameters' roles, so the compiled preview folds them as a run would. */
|
|
50
|
+
paramRoles?: Record<string, string> | undefined;
|
|
51
|
+
/** Where POST /compile lives. Empty leaves the preview unresolved. */
|
|
52
|
+
compileBaseUrl?: string | undefined;
|
|
53
|
+
execute: (request: QueryBrowserRequest) => Promise<QueryBrowserResult>;
|
|
54
|
+
/**
|
|
55
|
+
* Answers a filter's value type-ahead. Absent leaves every filter the source
|
|
56
|
+
* described showing only the values the result itself carried.
|
|
57
|
+
*/
|
|
58
|
+
lookupFilterValues?: QueryBrowserFilterLookup | undefined;
|
|
59
|
+
renderResults?: (context: QueryBrowserResultContext) => ReactNode | undefined;
|
|
60
|
+
className?: string | undefined;
|
|
61
|
+
};
|
|
62
|
+
export declare function ConnectionQueryWorkspace({ id, title, descriptor, inspection, onDatabaseChange, query, onQueryChange, options, onOptionsChange, onCatalogSelect, optionsSchema, search, onSearchChange, limits, onLimitsChange, params, onParamMappingChange, paramValues, paramRoles, compileBaseUrl, execute, lookupFilterValues, renderResults, className }: ConnectionQueryWorkspaceProps): import("react/jsx-runtime").JSX.Element;
|
|
63
|
+
//# sourceMappingURL=connectionQueryWorkspace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectionQueryWorkspace.d.ts","sourceRoot":"","sources":["../../src/profiles/connectionQueryWorkspace.tsx"],"names":[],"mappings":"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"}
|