windmill-components 1.60.3 → 1.70.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/app.css +3 -0
- package/common.d.ts +5 -1
- package/components/ApiConnectForm.svelte +66 -5
- package/components/AppConnect.svelte +24 -9
- package/components/ArgInput.svelte +1 -1
- package/components/CliHelpBox.svelte +49 -0
- package/components/CliHelpBox.svelte.d.ts +14 -0
- package/components/DisplayResult.svelte +51 -1
- package/components/DisplayResult.svelte.d.ts +1 -0
- package/components/Editor.svelte +17 -7
- package/components/EditorBar.svelte +129 -111
- package/components/FlowBuilder.svelte +2 -2
- package/components/FlowJobResult.svelte +10 -2
- package/components/FlowJobResult.svelte.d.ts +1 -0
- package/components/FlowMetadata.svelte +24 -8
- package/components/FlowPreviewContent.svelte +3 -4
- package/components/FlowStatusViewer.svelte +41 -9
- package/components/FolderEditor.svelte +4 -3
- package/components/HighlightCode.svelte +7 -1
- package/components/InlineCodeCopy.svelte +11 -0
- package/components/InlineCodeCopy.svelte.d.ts +16 -0
- package/components/InputTransformForm.svelte +9 -5
- package/components/LogViewer.svelte +6 -0
- package/components/LogViewer.svelte.d.ts +1 -0
- package/components/ModulePreview.svelte +11 -2
- package/components/MoveDrawer.svelte +1 -1
- package/components/Multiselect.svelte.d.ts +2 -2
- package/components/ObjectResourceInput.svelte +6 -1
- package/components/Path.svelte +14 -5
- package/components/Popover.svelte +8 -2
- package/components/Popover.svelte.d.ts +1 -0
- package/components/Range.svelte.d.ts +2 -2
- package/components/ResourceEditor.svelte +39 -16
- package/components/ResourcePicker.svelte +0 -1
- package/components/RunForm.svelte +26 -2
- package/components/RunForm.svelte.d.ts +1 -0
- package/components/ScheduleEditor.svelte +1 -1
- package/components/SchemaEditor.svelte +2 -2
- package/components/SchemaForm.svelte +14 -4
- package/components/SchemaForm.svelte.d.ts +1 -0
- package/components/ScriptBuilder.svelte +45 -22
- package/components/ScriptBuilder.svelte.d.ts +1 -0
- package/components/ScriptEditor.svelte +1 -0
- package/components/SharedBadge.svelte +5 -5
- package/components/Slider.svelte +14 -0
- package/components/Slider.svelte.d.ts +19 -0
- package/components/StringTypeNarrowing.svelte +0 -1
- package/components/SuperadminSettings.svelte +11 -3
- package/components/SuperadminSettings.svelte.d.ts +2 -0
- package/components/TemplateEditor.svelte.d.ts +204 -0
- package/components/TestJobLoader.svelte +3 -3
- package/components/Toggle.svelte +1 -2
- package/components/UserSettings.svelte +25 -28
- package/components/UserSettings.svelte.d.ts +2 -0
- package/components/VariableEditor.svelte +1 -1
- package/components/WhitelistIp.svelte +23 -0
- package/components/WhitelistIp.svelte.d.ts +14 -0
- package/components/apps/components/buttons/AppButton.svelte +52 -6
- package/components/apps/components/buttons/AppButton.svelte.d.ts +3 -0
- package/components/apps/components/{form → buttons}/AppForm.svelte +3 -1
- package/components/apps/components/buttons/AppFormButton.svelte +137 -0
- package/components/apps/components/buttons/AppFormButton.svelte.d.ts +25 -0
- package/components/apps/components/buttons/index.d.ts +3 -0
- package/components/apps/components/buttons/index.js +3 -0
- package/components/apps/components/{dataDisplay → display}/AppBarChart.svelte +15 -4
- package/components/apps/components/{dataDisplay → display}/AppBarChart.svelte.d.ts +1 -0
- package/components/apps/components/display/AppDisplayComponent.svelte +31 -0
- package/components/apps/components/display/AppDisplayComponent.svelte.d.ts +23 -0
- package/components/apps/components/display/AppHtml.svelte +32 -0
- package/components/apps/components/{dataDisplay → display}/AppHtml.svelte.d.ts +1 -3
- package/components/apps/components/display/AppIcon.svelte +35 -0
- package/components/apps/components/display/AppIcon.svelte.d.ts +22 -0
- package/components/apps/components/display/AppImage.svelte +27 -0
- package/components/apps/components/display/AppImage.svelte.d.ts +22 -0
- package/components/apps/components/{dataDisplay → display}/AppPieChart.svelte +2 -1
- package/components/apps/components/{dataDisplay → display}/AppPieChart.svelte.d.ts +1 -0
- package/components/apps/components/{dataDisplay → display}/AppScatterChart.svelte +2 -1
- package/components/apps/components/{dataDisplay → display}/AppScatterChart.svelte.d.ts +1 -0
- package/components/apps/components/{dataDisplay → display}/AppText.svelte +16 -14
- package/components/apps/components/{dataDisplay → display}/AppText.svelte.d.ts +3 -0
- package/components/apps/components/{dataDisplay → display}/AppTimeseries.svelte +3 -2
- package/components/apps/components/{dataDisplay → display}/AppTimeseries.svelte.d.ts +1 -0
- package/components/apps/components/display/PlotlyHtml.svelte +38 -0
- package/components/apps/components/display/PlotlyHtml.svelte.d.ts +24 -0
- package/components/apps/components/display/VegaLiteHtml.svelte +52 -0
- package/components/apps/components/{dataDisplay → display}/VegaLiteHtml.svelte.d.ts +3 -2
- package/components/apps/components/display/index.d.ts +12 -0
- package/components/apps/components/display/index.js +12 -0
- package/components/apps/components/display/table/AppAggridTable.svelte +83 -0
- package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +24 -0
- package/components/apps/components/{table → display/table}/AppTable.svelte +44 -23
- package/components/apps/components/{table → display/table}/AppTable.svelte.d.ts +4 -2
- package/components/apps/components/{table → display/table}/AppTableFooter.svelte +1 -1
- package/components/apps/components/helpers/AlignWrapper.svelte +19 -19
- package/components/apps/components/helpers/AlignWrapper.svelte.d.ts +4 -2
- package/components/apps/components/helpers/HiddenComponent.svelte +22 -0
- package/components/apps/components/helpers/HiddenComponent.svelte.d.ts +25 -0
- package/components/apps/components/helpers/InputDefaultValue.svelte +17 -0
- package/components/apps/components/helpers/InputDefaultValue.svelte.d.ts +17 -0
- package/components/apps/components/helpers/InputValue.svelte +5 -7
- package/components/apps/components/helpers/InputValue.svelte.d.ts +0 -1
- package/components/apps/components/helpers/RunnableComponent.svelte +37 -48
- package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +2 -1
- package/components/apps/components/helpers/RunnableWrapper.svelte +7 -2
- package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +2 -1
- package/components/apps/components/helpers/index.d.ts +10 -0
- package/components/apps/components/helpers/index.js +10 -0
- package/components/apps/components/icon.d.ts +1 -0
- package/components/apps/components/icon.js +18 -0
- package/components/apps/components/index.d.ts +5 -0
- package/components/apps/components/index.js +5 -0
- package/components/apps/components/{selectInputs → inputs}/AppCheckbox.svelte +4 -2
- package/components/apps/components/{dateInputs → inputs}/AppDateInput.svelte +6 -0
- package/components/apps/components/inputs/AppFileInput.svelte +34 -0
- package/components/apps/components/inputs/AppFileInput.svelte.d.ts +20 -0
- package/components/apps/components/inputs/AppNumberInput.svelte +48 -0
- package/components/apps/components/inputs/AppRangeInput.svelte +44 -0
- package/components/apps/components/inputs/AppRangeInput.svelte.d.ts +23 -0
- package/components/apps/components/inputs/AppSelect.svelte +90 -0
- package/components/apps/components/{selectInputs → inputs}/AppSelect.svelte.d.ts +2 -0
- package/components/apps/components/{numberInputs → inputs}/AppSliderInputs.svelte +13 -9
- package/components/apps/components/{textInputs → inputs}/AppTextInput.svelte +6 -0
- package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +49 -0
- package/components/apps/components/inputs/currency/AppCurrencyInput.svelte.d.ts +21 -0
- package/components/apps/components/inputs/currency/CurrencyInput.svelte +181 -0
- package/components/apps/components/inputs/currency/CurrencyInput.svelte.d.ts +32 -0
- package/components/apps/components/inputs/index.d.ts +9 -0
- package/components/apps/components/inputs/index.js +9 -0
- package/components/apps/components/layout/AppContainer.svelte +32 -0
- package/components/apps/components/layout/AppContainer.svelte.d.ts +21 -0
- package/components/apps/components/layout/AppDivider.svelte +20 -0
- package/components/apps/components/layout/AppDivider.svelte.d.ts +22 -0
- package/components/apps/components/layout/AppTabs.svelte +58 -0
- package/components/apps/components/layout/AppTabs.svelte.d.ts +24 -0
- package/components/apps/components/layout/index.d.ts +3 -0
- package/components/apps/components/layout/index.js +3 -0
- package/components/apps/editor/AppComponentInput.svelte +33 -0
- package/components/apps/editor/AppComponentInput.svelte.d.ts +18 -0
- package/components/apps/editor/AppComponentInputs.svelte +13 -0
- package/components/apps/editor/AppComponentInputs.svelte.d.ts +20 -0
- package/components/apps/editor/AppEditor.svelte +66 -31
- package/components/apps/editor/AppEditor.svelte.d.ts +1 -0
- package/components/apps/editor/AppEditorHeader.svelte +74 -18
- package/components/apps/editor/AppEditorHeader.svelte.d.ts +1 -0
- package/components/apps/editor/AppInputs.svelte +60 -0
- package/components/apps/editor/AppInputs.svelte.d.ts +14 -0
- package/components/apps/editor/AppPreview.svelte +32 -5
- package/components/apps/editor/AppPreview.svelte.d.ts +2 -0
- package/components/apps/editor/ComponentHeader.svelte +40 -2
- package/components/apps/editor/ComponentHeader.svelte.d.ts +1 -1
- package/components/apps/editor/GridEditor.svelte +75 -32
- package/components/apps/editor/GridEditor.svelte.d.ts +2 -0
- package/components/apps/editor/SettingsPanel.svelte +31 -3
- package/components/apps/editor/SubGridEditor.svelte +111 -0
- package/components/apps/editor/SubGridEditor.svelte.d.ts +24 -0
- package/components/apps/editor/TablePanel.svelte +2 -0
- package/components/apps/editor/TablePanel.svelte.d.ts +1 -1
- package/components/apps/editor/appUtils.d.ts +9 -0
- package/components/apps/editor/appUtils.js +141 -0
- package/components/apps/editor/component/Component.svelte +209 -0
- package/components/apps/editor/component/Component.svelte.d.ts +23 -0
- package/components/apps/editor/component/README.md +15 -0
- package/components/apps/editor/component/components.d.ts +65 -0
- package/components/apps/editor/component/components.js +1102 -0
- package/components/apps/editor/component/default-codes.d.ts +3 -0
- package/components/apps/editor/component/default-codes.js +322 -0
- package/components/apps/editor/component/index.d.ts +4 -0
- package/components/apps/editor/component/index.js +4 -0
- package/components/apps/editor/component/sets.d.ts +2 -0
- package/components/apps/editor/component/sets.js +47 -0
- package/components/apps/editor/componentsPanel/ComponentList.svelte +30 -105
- package/components/apps/editor/componentsPanel/CssProperty.svelte +31 -0
- package/components/apps/editor/componentsPanel/CssProperty.svelte.d.ts +20 -0
- package/components/apps/editor/componentsPanel/CssSettings.svelte +141 -0
- package/components/apps/editor/componentsPanel/CssSettings.svelte.d.ts +14 -0
- package/components/apps/editor/componentsPanel/ListItem.svelte +28 -0
- package/components/apps/editor/componentsPanel/ListItem.svelte.d.ts +20 -0
- package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +4 -1
- package/components/apps/editor/componentsPanel/componentStaticValues.js +4 -1
- package/components/apps/editor/contextPanel/ContextPanel.svelte +8 -6
- package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +98 -9
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +38 -29
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +21 -1
- package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +66 -8
- package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +92 -46
- package/components/apps/editor/inlineScriptsPanel/utils.d.ts +5 -1
- package/components/apps/editor/inlineScriptsPanel/utils.js +30 -0
- package/components/apps/editor/settingsPanel/AlignmentEditor.svelte +1 -1
- package/components/apps/editor/settingsPanel/AlignmentEditor.svelte.d.ts +1 -1
- package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +4 -1
- package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +59 -1
- package/components/apps/editor/settingsPanel/ComponentPanel.svelte +64 -34
- package/components/apps/editor/settingsPanel/ComponentPanel.svelte.d.ts +5 -3
- package/components/apps/editor/settingsPanel/GridTab.svelte +73 -0
- package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +18 -0
- package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +3 -0
- package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +2 -2
- package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +92 -77
- package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +1 -0
- package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte +85 -0
- package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte.d.ts +18 -0
- package/components/apps/editor/settingsPanel/Recompute.svelte +4 -1
- package/components/apps/editor/settingsPanel/TableActions.svelte +17 -6
- package/components/apps/editor/settingsPanel/TableActions.svelte.d.ts +2 -1
- package/components/apps/editor/settingsPanel/common/PanelSection.svelte +5 -3
- package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +83 -0
- package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +19 -0
- package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +6 -1
- package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +2 -0
- package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte +23 -0
- package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte.d.ts +17 -0
- package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +3 -20
- package/components/apps/gridUtils.d.ts +3 -1
- package/components/apps/gridUtils.js +5 -3
- package/components/apps/inputType.d.ts +33 -6
- package/components/apps/types.d.ts +35 -39
- package/components/apps/types.js +1 -1
- package/components/apps/utils.d.ts +6 -5
- package/components/apps/utils.js +90 -90
- package/components/common/button/Button.svelte +12 -5
- package/components/common/button/Button.svelte.d.ts +3 -1
- package/components/common/button/ButtonPopup.svelte.d.ts +1 -1
- package/components/common/button/model.d.ts +2 -2
- package/components/common/button/model.js +21 -6
- package/components/common/confirmationModal/ConfirmationModal.svelte +8 -1
- package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +4 -4
- package/components/common/drawer/Drawer.svelte +3 -1
- package/components/common/fileInput/FileInput.svelte +112 -0
- package/components/common/fileInput/FileInput.svelte.d.ts +27 -0
- package/components/common/index.d.ts +1 -0
- package/components/common/index.js +1 -0
- package/components/common/kbd/Kbd.svelte.d.ts +2 -2
- package/components/common/modal/Modal.svelte +74 -0
- package/components/common/modal/Modal.svelte.d.ts +22 -0
- package/components/common/popup/Popup.svelte +34 -17
- package/components/common/popup/Popup.svelte.d.ts +11 -4
- package/components/common/table/FlowRow.svelte +22 -3
- package/components/common/table/LanguageBadge.svelte +10 -4
- package/components/common/table/Row.svelte +1 -1
- package/components/common/table/ScriptRow.svelte +2 -2
- package/components/common/tabs/Tabs.svelte +9 -7
- package/components/common/tabs/Tabs.svelte.d.ts +3 -1
- package/components/flows/CreateActionsFlow.svelte +2 -3
- package/components/flows/content/BranchPredicateEditor.svelte +10 -8
- package/components/flows/content/CapturePayload.svelte +3 -3
- package/components/flows/content/FlowInputs.svelte +109 -99
- package/components/flows/content/FlowLoop.svelte +1 -1
- package/components/flows/content/FlowModuleComponent.svelte +3 -2
- package/components/flows/content/FlowRetries.svelte +8 -6
- package/components/flows/content/FlowSettings.svelte +72 -26
- package/components/flows/flowState.d.ts +1 -0
- package/components/flows/flowState.js +1 -0
- package/components/flows/flowStateUtils.js +4 -2
- package/components/flows/flowStore.d.ts +1 -0
- package/components/flows/flowStore.js +1 -0
- package/components/flows/map/FlowBranchAllMap.svelte +1 -1
- package/components/flows/map/FlowBranchOneMap.svelte +2 -2
- package/components/flows/map/FlowModuleSchemaItem.svelte +5 -5
- package/components/flows/map/FlowModuleSchemaMap.svelte +15 -8
- package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -0
- package/components/flows/map/InsertModuleButton.svelte +24 -10
- package/components/flows/map/InsertModuleButton.svelte.d.ts +1 -0
- package/components/flows/map/MapItem.svelte +3 -1
- package/components/flows/utils.js +16 -10
- package/components/graph/FlowGraph.svelte +38 -15
- package/components/graph/FlowGraph.svelte.d.ts +1 -0
- package/components/icons/SquareIcon.svelte +9 -0
- package/components/icons/SquareIcon.svelte.d.ts +17 -0
- package/components/icons/index.d.ts +2 -0
- package/components/icons/index.js +2 -0
- package/components/jobs/JobDetail.svelte +29 -5
- package/components/propertyPicker/ObjectViewer.svelte +8 -5
- package/components/propertyPicker/ObjectViewer.svelte.d.ts +1 -0
- package/components/propertyPicker/PropPicker.svelte +8 -1
- package/components/propertyPicker/PropPickerResult.svelte +1 -1
- package/components/random_positive_adjetive.d.ts +1 -0
- package/components/random_positive_adjetive.js +961 -0
- package/components/scriptEditor/LogPanel.svelte +2 -1
- package/components/sidebar/SidebarContent.svelte +1 -1
- package/components/sidebar/UserMenu.svelte +46 -16
- package/components/sidebar/UserMenu.svelte.d.ts +0 -3
- package/components/sidebar/WorkspaceMenu.svelte +3 -1
- package/components/sidebar/settings.d.ts +2 -0
- package/components/sidebar/settings.js +2 -0
- package/gen/core/OpenAPI.js +1 -1
- package/gen/models/CompletedJob.d.ts +1 -0
- package/gen/models/FlowModule.d.ts +0 -1
- package/gen/models/QueuedJob.d.ts +1 -0
- package/gen/models/WorkerPing.d.ts +1 -1
- package/gen/services/FlowService.d.ts +9 -0
- package/gen/services/FlowService.js +15 -0
- package/gen/services/JobService.d.ts +97 -15
- package/gen/services/JobService.js +74 -15
- package/gen/services/ScriptService.d.ts +10 -1
- package/gen/services/ScriptService.js +16 -1
- package/gen/services/VariableService.d.ts +4 -2
- package/gen/services/VariableService.js +8 -2
- package/gen/services/WorkspaceService.d.ts +17 -0
- package/gen/services/WorkspaceService.js +16 -0
- package/infer.js +3 -0
- package/init_scripts/python_failure_module.py +10 -0
- package/init_scripts/python_init_code.py +37 -0
- package/init_scripts/python_init_code_clear.py +5 -0
- package/init_scripts/python_init_code_trigger.py +14 -0
- package/logout.js +2 -1
- package/package.json +577 -522
- package/script_helpers.d.ts +6 -5
- package/script_helpers.js +7 -73
- package/stores.d.ts +5 -1
- package/stores.js +8 -1
- package/user.d.ts +1 -1
- package/user.js +14 -8
- package/utils.d.ts +1 -1
- package/utils.js +8 -7
- package/components/apps/components/DisplayComponent.svelte +0 -16
- package/components/apps/components/DisplayComponent.svelte.d.ts +0 -20
- package/components/apps/components/dataDisplay/AppHtml.svelte +0 -35
- package/components/apps/components/dataDisplay/VegaLiteHtml.svelte +0 -28
- package/components/apps/components/numberInputs/AppNumberInput.svelte +0 -33
- package/components/apps/components/selectInputs/AppSelect.svelte +0 -47
- package/components/apps/editor/ComponentEditor.svelte +0 -138
- package/components/apps/editor/ComponentEditor.svelte.d.ts +0 -23
- package/components/apps/editor/componentsPanel/data.d.ts +0 -3
- package/components/apps/editor/componentsPanel/data.js +0 -465
- package/components/apps/editorUtils.d.ts +0 -1
- package/components/apps/editorUtils.js +0 -253
- /package/components/apps/components/{form → buttons}/AppForm.svelte.d.ts +0 -0
- /package/components/apps/components/{table → display/table}/AppTableFooter.svelte.d.ts +0 -0
- /package/components/apps/components/{table → display/table}/tableOptions.d.ts +0 -0
- /package/components/apps/components/{table → display/table}/tableOptions.js +0 -0
- /package/components/apps/components/{selectInputs → inputs}/AppCheckbox.svelte.d.ts +0 -0
- /package/components/apps/components/{dateInputs → inputs}/AppDateInput.svelte.d.ts +0 -0
- /package/components/apps/components/{numberInputs → inputs}/AppNumberInput.svelte.d.ts +0 -0
- /package/components/apps/components/{numberInputs → inputs}/AppSliderInputs.svelte.d.ts +0 -0
- /package/components/apps/components/{textInputs → inputs}/AppTextInput.svelte.d.ts +0 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
<script>import { getContext } from 'svelte';
|
|
2
|
+
import { fade } from 'svelte/transition';
|
|
3
|
+
import { Loader2 } from 'lucide-svelte';
|
|
4
|
+
import { twMerge } from 'tailwind-merge';
|
|
5
|
+
import ComponentHeader from '../ComponentHeader.svelte';
|
|
6
|
+
import { deepEqual } from 'fast-equals';
|
|
7
|
+
import { AppBarChart, AppDisplayComponent, AppTable, AppText, AppButton, AppPieChart, AppSelect, AppCheckbox, AppTextInput, AppNumberInput, AppDateInput, AppForm, AppScatterChart, AppTimeseries, AppHtml, AppSliderInputs, AppFormButton, VegaLiteHtml, PlotlyHtml, AppRangeInput, AppTabs, AppIcon, AppCurrencyInput, AppDivider, AppFileInput, AppImage, AppContainer } from '../../components';
|
|
8
|
+
import AppAggridTable from '../../components/display/table/AppAggridTable.svelte';
|
|
9
|
+
export let pComponent;
|
|
10
|
+
export let selected;
|
|
11
|
+
export let locked = false;
|
|
12
|
+
export let pointerdown = false;
|
|
13
|
+
const { staticOutputs, mode, connectingInput, app } = getContext('AppEditorContext');
|
|
14
|
+
let hover = false;
|
|
15
|
+
let initializing = undefined;
|
|
16
|
+
let componentContainerHeight = 0;
|
|
17
|
+
let component = JSON.parse(JSON.stringify(pComponent));
|
|
18
|
+
$: if (pComponent && !deepEqual(pComponent, component)) {
|
|
19
|
+
component = JSON.parse(JSON.stringify(pComponent));
|
|
20
|
+
}
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
<div
|
|
24
|
+
on:pointerenter={() => (hover = true)}
|
|
25
|
+
on:pointerleave={() => (hover = false)}
|
|
26
|
+
class="h-full flex flex-col w-full component"
|
|
27
|
+
>
|
|
28
|
+
{#if $mode !== 'preview'}
|
|
29
|
+
<ComponentHeader {hover} {pointerdown} {component} {selected} on:delete on:lock {locked} />
|
|
30
|
+
{/if}
|
|
31
|
+
|
|
32
|
+
<div
|
|
33
|
+
on:pointerdown={(e) => {
|
|
34
|
+
// Removed in https://github.com/windmill-labs/windmill/pull/1171
|
|
35
|
+
// In case of a bug, try stopping propagation on the native event
|
|
36
|
+
// and dispatch a custom event: `e?.stopPropagation(); dispatch('select');`
|
|
37
|
+
// if ($mode === 'preview') {
|
|
38
|
+
// e?.stopPropagation()
|
|
39
|
+
// }
|
|
40
|
+
}}
|
|
41
|
+
class={twMerge(
|
|
42
|
+
'h-full bg-white/40',
|
|
43
|
+
selected && $mode !== 'preview' ? 'border border-blue-500' : '',
|
|
44
|
+
!selected && $mode !== 'preview' && !component.card ? 'border-gray-100' : '',
|
|
45
|
+
$mode !== 'preview' && !$connectingInput.opened ? 'hover:border-blue-500' : '',
|
|
46
|
+
component.softWrap ? '' : 'overflow-auto',
|
|
47
|
+
$mode != 'preview' ? 'cursor-pointer' : '',
|
|
48
|
+
'relative z-auto',
|
|
49
|
+
$app.css?.['app']?.['component']?.class
|
|
50
|
+
)}
|
|
51
|
+
style={$app.css?.['app']?.['component']?.style}
|
|
52
|
+
bind:clientHeight={componentContainerHeight}
|
|
53
|
+
>
|
|
54
|
+
{#if component.type === 'displaycomponent'}
|
|
55
|
+
<AppDisplayComponent
|
|
56
|
+
{...component}
|
|
57
|
+
bind:initializing
|
|
58
|
+
bind:componentInput={component.componentInput}
|
|
59
|
+
bind:staticOutputs={$staticOutputs[component.id]}
|
|
60
|
+
/>
|
|
61
|
+
{:else if component.type === 'barchartcomponent'}
|
|
62
|
+
<AppBarChart
|
|
63
|
+
{...component}
|
|
64
|
+
bind:initializing
|
|
65
|
+
bind:componentInput={component.componentInput}
|
|
66
|
+
bind:staticOutputs={$staticOutputs[component.id]}
|
|
67
|
+
/>
|
|
68
|
+
{:else if component.type === 'timeseriescomponent'}
|
|
69
|
+
<AppTimeseries
|
|
70
|
+
{...component}
|
|
71
|
+
bind:initializing
|
|
72
|
+
bind:componentInput={component.componentInput}
|
|
73
|
+
bind:staticOutputs={$staticOutputs[component.id]}
|
|
74
|
+
/>
|
|
75
|
+
{:else if component.type === 'htmlcomponent'}
|
|
76
|
+
<AppHtml
|
|
77
|
+
{...component}
|
|
78
|
+
bind:initializing
|
|
79
|
+
bind:componentInput={component.componentInput}
|
|
80
|
+
bind:staticOutputs={$staticOutputs[component.id]}
|
|
81
|
+
/>
|
|
82
|
+
{:else if component.type === 'vegalitecomponent'}
|
|
83
|
+
<VegaLiteHtml
|
|
84
|
+
{...component}
|
|
85
|
+
bind:initializing
|
|
86
|
+
bind:componentInput={component.componentInput}
|
|
87
|
+
bind:staticOutputs={$staticOutputs[component.id]}
|
|
88
|
+
/>
|
|
89
|
+
{:else if component.type === 'plotlycomponent'}
|
|
90
|
+
<PlotlyHtml
|
|
91
|
+
{...component}
|
|
92
|
+
bind:initializing
|
|
93
|
+
bind:componentInput={component.componentInput}
|
|
94
|
+
bind:staticOutputs={$staticOutputs[component.id]}
|
|
95
|
+
/>
|
|
96
|
+
{:else if component.type === 'scatterchartcomponent'}
|
|
97
|
+
<AppScatterChart
|
|
98
|
+
{...component}
|
|
99
|
+
bind:initializing
|
|
100
|
+
bind:componentInput={component.componentInput}
|
|
101
|
+
bind:staticOutputs={$staticOutputs[component.id]}
|
|
102
|
+
/>
|
|
103
|
+
{:else if component.type === 'piechartcomponent'}
|
|
104
|
+
<AppPieChart
|
|
105
|
+
{...component}
|
|
106
|
+
bind:initializing
|
|
107
|
+
bind:staticOutputs={$staticOutputs[component.id]}
|
|
108
|
+
bind:componentInput={component.componentInput}
|
|
109
|
+
/>
|
|
110
|
+
{:else if component.type === 'tablecomponent'}
|
|
111
|
+
<AppTable
|
|
112
|
+
{...component}
|
|
113
|
+
bind:initializing
|
|
114
|
+
bind:staticOutputs={$staticOutputs[component.id]}
|
|
115
|
+
bind:componentInput={component.componentInput}
|
|
116
|
+
bind:actionButtons={component.actionButtons}
|
|
117
|
+
/>
|
|
118
|
+
{:else if component.type === 'aggridcomponent'}
|
|
119
|
+
<AppAggridTable
|
|
120
|
+
{...component}
|
|
121
|
+
bind:initializing
|
|
122
|
+
bind:staticOutputs={$staticOutputs[component.id]}
|
|
123
|
+
bind:componentInput={component.componentInput}
|
|
124
|
+
/>
|
|
125
|
+
{:else if component.type === 'textcomponent'}
|
|
126
|
+
<AppText
|
|
127
|
+
{...component}
|
|
128
|
+
bind:initializing
|
|
129
|
+
bind:componentInput={component.componentInput}
|
|
130
|
+
bind:staticOutputs={$staticOutputs[component.id]}
|
|
131
|
+
/>
|
|
132
|
+
{:else if component.type === 'buttoncomponent'}
|
|
133
|
+
<AppButton
|
|
134
|
+
{...component}
|
|
135
|
+
bind:componentInput={component.componentInput}
|
|
136
|
+
bind:staticOutputs={$staticOutputs[component.id]}
|
|
137
|
+
/>
|
|
138
|
+
{:else if component.type === 'selectcomponent'}
|
|
139
|
+
<AppSelect {...component} bind:staticOutputs={$staticOutputs[component.id]} />
|
|
140
|
+
{:else if component.type === 'formcomponent'}
|
|
141
|
+
<AppForm
|
|
142
|
+
{...component}
|
|
143
|
+
bind:componentInput={component.componentInput}
|
|
144
|
+
bind:staticOutputs={$staticOutputs[component.id]}
|
|
145
|
+
/>
|
|
146
|
+
{:else if component.type === 'formbuttoncomponent'}
|
|
147
|
+
<AppFormButton
|
|
148
|
+
{...component}
|
|
149
|
+
bind:componentInput={component.componentInput}
|
|
150
|
+
bind:staticOutputs={$staticOutputs[component.id]}
|
|
151
|
+
/>
|
|
152
|
+
{:else if component.type === 'checkboxcomponent'}
|
|
153
|
+
<AppCheckbox {...component} bind:staticOutputs={$staticOutputs[component.id]} />
|
|
154
|
+
{:else if component.type === 'textinputcomponent'}
|
|
155
|
+
<AppTextInput {...component} bind:staticOutputs={$staticOutputs[component.id]} />
|
|
156
|
+
{:else if component.type === 'passwordinputcomponent'}
|
|
157
|
+
<AppTextInput
|
|
158
|
+
inputType="password"
|
|
159
|
+
{...component}
|
|
160
|
+
bind:staticOutputs={$staticOutputs[component.id]}
|
|
161
|
+
/>
|
|
162
|
+
{:else if component.type === 'dateinputcomponent'}
|
|
163
|
+
<AppDateInput
|
|
164
|
+
inputType="date"
|
|
165
|
+
{...component}
|
|
166
|
+
bind:staticOutputs={$staticOutputs[component.id]}
|
|
167
|
+
/>
|
|
168
|
+
{:else if component.type === 'numberinputcomponent'}
|
|
169
|
+
<AppNumberInput {...component} bind:staticOutputs={$staticOutputs[component.id]} />
|
|
170
|
+
{:else if component.type === 'currencycomponent'}
|
|
171
|
+
<AppCurrencyInput {...component} bind:staticOutputs={$staticOutputs[component.id]} />
|
|
172
|
+
{:else if component.type === 'slidercomponent'}
|
|
173
|
+
<AppSliderInputs {...component} bind:staticOutputs={$staticOutputs[component.id]} />
|
|
174
|
+
{:else if component.type === 'horizontaldividercomponent'}
|
|
175
|
+
<AppDivider {...component} position="horizontal" />
|
|
176
|
+
{:else if component.type === 'verticaldividercomponent'}
|
|
177
|
+
<AppDivider {...component} position="vertical" />
|
|
178
|
+
{:else if component.type === 'rangecomponent'}
|
|
179
|
+
<AppRangeInput {...component} bind:staticOutputs={$staticOutputs[component.id]} />
|
|
180
|
+
{:else if component.type === 'tabscomponent'}
|
|
181
|
+
<AppTabs
|
|
182
|
+
{...component}
|
|
183
|
+
bind:staticOutputs={$staticOutputs[component.id]}
|
|
184
|
+
{componentContainerHeight}
|
|
185
|
+
/>
|
|
186
|
+
{:else if component.type === 'containercomponent'}
|
|
187
|
+
<AppContainer
|
|
188
|
+
{...component}
|
|
189
|
+
bind:staticOutputs={$staticOutputs[component.id]}
|
|
190
|
+
{componentContainerHeight}
|
|
191
|
+
/>
|
|
192
|
+
{:else if component.type === 'iconcomponent'}
|
|
193
|
+
<AppIcon {...component} bind:staticOutputs={$staticOutputs[component.id]} />
|
|
194
|
+
{:else if component.type === 'fileinputcomponent'}
|
|
195
|
+
<AppFileInput {...component} bind:staticOutputs={$staticOutputs[component.id]} />
|
|
196
|
+
{:else if component.type === 'imagecomponent'}
|
|
197
|
+
<AppImage {...component} bind:staticOutputs={$staticOutputs[component.id]} />
|
|
198
|
+
{/if}
|
|
199
|
+
</div>
|
|
200
|
+
</div>
|
|
201
|
+
{#if initializing}
|
|
202
|
+
<div
|
|
203
|
+
out:fade={{ duration: 200 }}
|
|
204
|
+
class="absolute inset-0 center-center flex-col bg-white text-gray-600 border"
|
|
205
|
+
>
|
|
206
|
+
<Loader2 class="animate-spin" size={16} />
|
|
207
|
+
<span class="text-xs mt-1">Loading</span>
|
|
208
|
+
</div>
|
|
209
|
+
{/if}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import type { AppComponent } from './components';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
pComponent: AppComponent;
|
|
6
|
+
selected: boolean;
|
|
7
|
+
locked?: boolean | undefined;
|
|
8
|
+
pointerdown?: boolean | undefined;
|
|
9
|
+
};
|
|
10
|
+
events: {
|
|
11
|
+
delete: CustomEvent<any>;
|
|
12
|
+
lock: CustomEvent<any>;
|
|
13
|
+
} & {
|
|
14
|
+
[evt: string]: CustomEvent<any>;
|
|
15
|
+
};
|
|
16
|
+
slots: {};
|
|
17
|
+
};
|
|
18
|
+
export type ComponentProps = typeof __propDef.props;
|
|
19
|
+
export type ComponentEvents = typeof __propDef.events;
|
|
20
|
+
export type ComponentSlots = typeof __propDef.slots;
|
|
21
|
+
export default class Component extends SvelteComponentTyped<ComponentProps, ComponentEvents, ComponentSlots> {
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# How to add new components
|
|
2
|
+
|
|
3
|
+
1. [**`components.ts`**](./components.ts):
|
|
4
|
+
1. Create a type for the new component and add it to the `AppComponent` union
|
|
5
|
+
type
|
|
6
|
+
1. Add the component to the `components` record
|
|
7
|
+
1. [**`sets.ts`**](./sets.ts):
|
|
8
|
+
1. Add the component to one of the component sets: `layout`, `buttons`,
|
|
9
|
+
`inputs` or `display` _(this controls which group the component will be
|
|
10
|
+
placed in in the **Insert** menu)_
|
|
11
|
+
1. [**`Component.svelte`**](./Component.svelte):
|
|
12
|
+
1. Add the new component in the Svelte `if` statement
|
|
13
|
+
1. [**`default-codes.ts`**](./default-codes.ts):
|
|
14
|
+
1. _(optional)_ Add the default code associated with the new component to the
|
|
15
|
+
`DEFAULT_CODES` record
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { Size } from '@windmill-labs/svelte-grid';
|
|
2
|
+
import type { IntRange } from '../../../../common';
|
|
3
|
+
import type { NARROW_GRID_COLUMNS, WIDE_GRID_COLUMNS } from '../../gridUtils';
|
|
4
|
+
import type { BaseAppComponent } from '../../types';
|
|
5
|
+
type BaseComponent<T extends string> = {
|
|
6
|
+
type: T;
|
|
7
|
+
};
|
|
8
|
+
export type TextComponent = BaseComponent<'textcomponent'>;
|
|
9
|
+
export type TextInputComponent = BaseComponent<'textinputcomponent'>;
|
|
10
|
+
export type PasswordInputComponent = BaseComponent<'passwordinputcomponent'>;
|
|
11
|
+
export type DateInputComponent = BaseComponent<'dateinputcomponent'>;
|
|
12
|
+
export type NumberInputComponent = BaseComponent<'numberinputcomponent'>;
|
|
13
|
+
export type CurrencyComponent = BaseComponent<'currencycomponent'>;
|
|
14
|
+
export type SliderComponent = BaseComponent<'slidercomponent'>;
|
|
15
|
+
export type RangeComponent = BaseComponent<'rangecomponent'>;
|
|
16
|
+
export type HtmlComponent = BaseComponent<'htmlcomponent'>;
|
|
17
|
+
export type VegaLiteComponent = BaseComponent<'vegalitecomponent'>;
|
|
18
|
+
export type PlotlyComponent = BaseComponent<'plotlycomponent'>;
|
|
19
|
+
export type TimeseriesComponent = BaseComponent<'timeseriescomponent'>;
|
|
20
|
+
export type ButtonComponent = BaseComponent<'buttoncomponent'> & {
|
|
21
|
+
recomputeIds: string[] | undefined;
|
|
22
|
+
};
|
|
23
|
+
export type FormComponent = BaseComponent<'formcomponent'> & {
|
|
24
|
+
recomputeIds: string[] | undefined;
|
|
25
|
+
};
|
|
26
|
+
export type FormButtonComponent = BaseComponent<'formbuttoncomponent'> & {
|
|
27
|
+
recomputeIds: string[] | undefined;
|
|
28
|
+
};
|
|
29
|
+
export type RunFormComponent = BaseComponent<'runformcomponent'>;
|
|
30
|
+
export type BarChartComponent = BaseComponent<'barchartcomponent'>;
|
|
31
|
+
export type PieChartComponent = BaseComponent<'piechartcomponent'>;
|
|
32
|
+
export type ScatterChartComponent = BaseComponent<'scatterchartcomponent'>;
|
|
33
|
+
export type TableComponent = BaseComponent<'tablecomponent'> & {
|
|
34
|
+
actionButtons: (BaseAppComponent & ButtonComponent)[];
|
|
35
|
+
};
|
|
36
|
+
export type AggridComponent = BaseComponent<'aggridcomponent'>;
|
|
37
|
+
export type DisplayComponent = BaseComponent<'displaycomponent'>;
|
|
38
|
+
export type ImageComponent = BaseComponent<'imagecomponent'>;
|
|
39
|
+
export type InputComponent = BaseComponent<'inputcomponent'>;
|
|
40
|
+
export type SelectComponent = BaseComponent<'selectcomponent'>;
|
|
41
|
+
export type CheckboxComponent = BaseComponent<'checkboxcomponent'>;
|
|
42
|
+
export type RadioComponent = BaseComponent<'radiocomponent'>;
|
|
43
|
+
export type IconComponent = BaseComponent<'iconcomponent'>;
|
|
44
|
+
export type HorizontalDividerComponent = BaseComponent<'horizontaldividercomponent'>;
|
|
45
|
+
export type VerticalDividerComponent = BaseComponent<'verticaldividercomponent'>;
|
|
46
|
+
export type FileInputComponent = BaseComponent<'fileinputcomponent'>;
|
|
47
|
+
export type TabsComponent = BaseComponent<'tabscomponent'> & {
|
|
48
|
+
tabs: string[];
|
|
49
|
+
};
|
|
50
|
+
export type ContainerComponent = BaseComponent<'containercomponent'>;
|
|
51
|
+
export type AppComponent = BaseAppComponent & (DisplayComponent | TextInputComponent | PasswordInputComponent | DateInputComponent | NumberInputComponent | CurrencyComponent | SliderComponent | RangeComponent | BarChartComponent | TimeseriesComponent | HtmlComponent | TableComponent | TextComponent | TableComponent | ButtonComponent | PieChartComponent | ScatterChartComponent | SelectComponent | CheckboxComponent | FormComponent | FormButtonComponent | VegaLiteComponent | PlotlyComponent | TabsComponent | ContainerComponent | IconComponent | HorizontalDividerComponent | VerticalDividerComponent | FileInputComponent | ImageComponent | AggridComponent);
|
|
52
|
+
export type AppComponentDimensions = `${IntRange<1, typeof NARROW_GRID_COLUMNS>}:${number}-${IntRange<1, typeof WIDE_GRID_COLUMNS>}:${number}`;
|
|
53
|
+
export type AppComponentConfig = {
|
|
54
|
+
name: string;
|
|
55
|
+
icon: any;
|
|
56
|
+
/**
|
|
57
|
+
* Dimensions key formula:
|
|
58
|
+
* [**mobile width**]:[**mobile height**]-[**desktop width**]:[**desktop height**]
|
|
59
|
+
*/
|
|
60
|
+
dims: AppComponentDimensions;
|
|
61
|
+
data: AppComponent;
|
|
62
|
+
};
|
|
63
|
+
export declare function getRecommendedDimensionsByComponent(componentType: AppComponent['type'], column: number): Size;
|
|
64
|
+
export declare const components: Record<AppComponent['type'], AppComponentConfig>;
|
|
65
|
+
export {};
|