windmill-components 1.70.0 → 1.77.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 +12 -1
- package/components/AppConnect.svelte +4 -3
- package/components/DisplayResult.svelte +28 -10
- package/components/Dropdown.svelte +14 -4
- package/components/FieldHeader.svelte +12 -8
- package/components/FlowBuilder.svelte +107 -39
- package/components/FlowBuilder.svelte.d.ts +5 -0
- package/components/FlowGraphViewer.svelte +6 -5
- package/components/FlowJobResult.svelte +3 -3
- package/components/FlowPreviewContent.svelte +3 -8
- package/components/FlowStatusViewer.svelte +21 -8
- package/components/FolderUsageInfo.svelte +16 -6
- package/components/FolderUsageInfo.svelte.d.ts +2 -0
- package/components/GroupEditor.svelte +8 -0
- package/components/InputTransformForm.svelte +13 -20
- package/components/InputTransformSchemaForm.svelte +103 -0
- package/components/InputTransformSchemaForm.svelte.d.ts +24 -0
- package/components/LogViewer.svelte +1 -1
- package/components/ModulePreview.svelte +3 -2
- package/components/Multiselect.svelte +1 -1
- package/components/PageHeader.svelte +1 -1
- package/components/Path.svelte +35 -12
- package/components/Popover.svelte +2 -13
- package/components/ResourcePicker.svelte +33 -14
- package/components/RunChart.svelte +24 -5
- package/components/RunForm.svelte +5 -6
- package/components/RunForm.svelte.d.ts +1 -0
- package/components/SchemaForm.svelte +59 -57
- package/components/SchemaForm.svelte.d.ts +0 -5
- package/components/ScriptBuilder.svelte +151 -135
- package/components/ScriptPicker.svelte +3 -0
- package/components/SettingSection.svelte +44 -0
- package/components/SettingSection.svelte.d.ts +21 -0
- package/components/SimpleEditor.svelte +4 -1
- package/components/SimpleEditor.svelte.d.ts +2 -0
- package/components/Slider.svelte +6 -1
- package/components/Slider.svelte.d.ts +1 -0
- package/components/TemplateEditor.svelte +1 -1
- package/components/TestJobLoader.svelte +2 -2
- package/components/Toggle.svelte +17 -4
- package/components/Toggle.svelte.d.ts +2 -0
- package/components/Tooltip.svelte +4 -2
- package/components/UserSettings.svelte +2 -0
- package/components/WhitelistIp.svelte +1 -3
- package/components/apps/components/buttons/AppButton.svelte +45 -23
- package/components/apps/components/buttons/AppButton.svelte.d.ts +2 -0
- package/components/apps/components/buttons/AppForm.svelte +18 -12
- package/components/apps/components/buttons/AppForm.svelte.d.ts +3 -0
- package/components/apps/components/buttons/AppFormButton.svelte +14 -10
- package/components/apps/components/buttons/AppFormButton.svelte.d.ts +3 -0
- package/components/apps/components/display/AppBarChart.svelte +15 -7
- package/components/apps/components/display/AppBarChart.svelte.d.ts +3 -0
- package/components/apps/components/display/AppDisplayComponent.svelte +17 -12
- package/components/apps/components/display/AppDisplayComponent.svelte.d.ts +1 -0
- package/components/apps/components/display/AppHtml.svelte +18 -4
- package/components/apps/components/display/AppHtml.svelte.d.ts +3 -0
- package/components/apps/components/display/AppIcon.svelte +20 -8
- package/components/apps/components/display/AppIcon.svelte.d.ts +3 -0
- package/components/apps/components/display/AppImage.svelte +17 -10
- package/components/apps/components/display/AppImage.svelte.d.ts +3 -0
- package/components/apps/components/display/AppMap.svelte +214 -0
- package/components/apps/components/display/AppMap.svelte.d.ts +23 -0
- package/components/apps/components/display/AppPdf.svelte +304 -0
- package/components/apps/components/display/AppPdf.svelte.d.ts +24 -0
- package/components/apps/components/display/AppPieChart.svelte +15 -7
- package/components/apps/components/display/AppPieChart.svelte.d.ts +3 -0
- package/components/apps/components/display/AppScatterChart.svelte +12 -4
- package/components/apps/components/display/AppScatterChart.svelte.d.ts +3 -0
- package/components/apps/components/display/AppText.svelte +38 -32
- package/components/apps/components/display/AppText.svelte.d.ts +1 -0
- package/components/apps/components/display/AppTimeseries.svelte +12 -4
- package/components/apps/components/display/AppTimeseries.svelte.d.ts +3 -0
- package/components/apps/components/display/PlotlyHtml.svelte +8 -14
- package/components/apps/components/display/PlotlyHtml.svelte.d.ts +1 -1
- package/components/apps/components/display/VegaLiteHtml.svelte +3 -8
- package/components/apps/components/display/VegaLiteHtml.svelte.d.ts +1 -0
- package/components/apps/components/display/index.d.ts +3 -0
- package/components/apps/components/display/index.js +3 -0
- package/components/apps/components/display/table/AppAggridTable.svelte +20 -8
- package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -0
- package/components/apps/components/display/table/AppTable.svelte +69 -21
- package/components/apps/components/display/table/AppTable.svelte.d.ts +3 -1
- package/components/apps/components/display/table/AppTableFooter.svelte +8 -1
- package/components/apps/components/display/table/AppTableFooter.svelte.d.ts +2 -0
- package/components/apps/components/helpers/AlignWrapper.svelte +13 -7
- package/components/apps/components/helpers/AlignWrapper.svelte.d.ts +3 -1
- package/components/apps/components/helpers/HiddenComponent.svelte +5 -1
- package/components/apps/components/helpers/HiddenComponent.svelte.d.ts +1 -0
- package/components/apps/components/helpers/InputValue.svelte +58 -52
- package/components/apps/components/helpers/InputValue.svelte.d.ts +4 -3
- package/components/apps/components/helpers/NonRunnableComponent.svelte +18 -3
- package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +1 -0
- package/components/apps/components/helpers/RefreshButton.svelte +3 -4
- package/components/apps/components/helpers/ResizeWrapper.svelte +24 -0
- package/components/apps/components/helpers/ResizeWrapper.svelte.d.ts +19 -0
- package/components/apps/components/helpers/RunnableComponent.svelte +126 -91
- package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +5 -1
- package/components/apps/components/helpers/RunnableWrapper.svelte +11 -5
- package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +4 -1
- package/components/apps/components/helpers/eval.d.ts +5 -0
- package/components/apps/components/helpers/eval.js +57 -0
- package/components/apps/components/inputs/AppCheckbox.svelte +8 -2
- package/components/apps/components/inputs/AppCheckbox.svelte.d.ts +3 -0
- package/components/apps/components/inputs/AppDateInput.svelte +25 -18
- package/components/apps/components/inputs/AppDateInput.svelte.d.ts +6 -1
- package/components/apps/components/inputs/AppFileInput.svelte +22 -14
- package/components/apps/components/inputs/AppFileInput.svelte.d.ts +3 -0
- package/components/apps/components/inputs/AppMultiSelect.svelte +82 -0
- package/components/apps/components/inputs/AppMultiSelect.svelte.d.ts +27 -0
- package/components/apps/components/inputs/AppNumberInput.svelte +20 -16
- package/components/apps/components/inputs/AppNumberInput.svelte.d.ts +5 -0
- package/components/apps/components/inputs/AppRangeInput.svelte +55 -14
- package/components/apps/components/inputs/AppRangeInput.svelte.d.ts +3 -0
- package/components/apps/components/inputs/AppSelect.svelte +58 -21
- package/components/apps/components/inputs/AppSelect.svelte.d.ts +3 -0
- package/components/apps/components/inputs/AppSliderInputs.svelte +41 -9
- package/components/apps/components/inputs/AppSliderInputs.svelte.d.ts +3 -0
- package/components/apps/components/inputs/AppTextInput.svelte +53 -19
- package/components/apps/components/inputs/AppTextInput.svelte.d.ts +6 -0
- package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +13 -3
- package/components/apps/components/inputs/currency/AppCurrencyInput.svelte.d.ts +3 -0
- package/components/apps/components/inputs/currency/CurrencyInput.svelte +2 -0
- package/components/apps/components/inputs/currency/CurrencyInput.svelte.d.ts +1 -0
- package/components/apps/components/layout/AppContainer.svelte +20 -17
- package/components/apps/components/layout/AppContainer.svelte.d.ts +3 -0
- package/components/apps/components/layout/AppDivider.svelte +24 -4
- package/components/apps/components/layout/AppDivider.svelte.d.ts +3 -1
- package/components/apps/components/layout/AppDrawer.svelte +86 -0
- package/components/apps/components/layout/AppDrawer.svelte.d.ts +24 -0
- package/components/apps/components/layout/AppSplitpanes.svelte +83 -0
- package/components/apps/components/layout/AppSplitpanes.svelte.d.ts +26 -0
- package/components/apps/components/layout/AppTabs.svelte +112 -40
- package/components/apps/components/layout/AppTabs.svelte.d.ts +4 -0
- package/components/apps/components/layout/index.d.ts +2 -0
- package/components/apps/components/layout/index.js +2 -0
- package/components/apps/editor/AppEditor.svelte +201 -132
- package/components/apps/editor/AppEditor.svelte.d.ts +3 -1
- package/components/apps/editor/AppEditorHeader.svelte +149 -66
- package/components/apps/editor/AppInputs.svelte +3 -3
- package/components/apps/editor/AppPreview.svelte +21 -7
- package/components/apps/editor/ComponentHeader.svelte +17 -4
- package/components/apps/editor/ComponentHeader.svelte.d.ts +2 -0
- package/components/apps/editor/GridEditor.svelte +86 -70
- package/components/apps/editor/GridPanel.svelte +29 -0
- package/components/apps/editor/GridPanel.svelte.d.ts +18 -0
- package/components/apps/editor/RecomputeAllComponents.svelte +14 -6
- package/components/apps/editor/SettingsPanel.svelte +30 -27
- package/components/apps/editor/SubGridEditor.svelte +82 -50
- package/components/apps/editor/SubGridEditor.svelte.d.ts +8 -4
- package/components/apps/editor/appUtils.d.ts +22 -3
- package/components/apps/editor/appUtils.js +221 -47
- package/components/apps/editor/component/Component.svelte +281 -61
- package/components/apps/editor/component/Component.svelte.d.ts +3 -1
- package/components/apps/editor/component/ComponentNavigation.svelte +170 -0
- package/components/apps/editor/component/ComponentNavigation.svelte.d.ts +14 -0
- package/components/apps/editor/component/components.d.ts +15 -3
- package/components/apps/editor/component/components.js +409 -54
- package/components/apps/editor/component/default-codes.js +6 -6
- package/components/apps/editor/component/sets.js +11 -3
- package/components/apps/editor/componentsPanel/ComponentList.svelte +72 -29
- package/components/apps/editor/componentsPanel/CssProperty.svelte +59 -23
- package/components/apps/editor/componentsPanel/CssProperty.svelte.d.ts +2 -1
- package/components/apps/editor/componentsPanel/CssSettings.svelte +56 -9
- package/components/apps/editor/componentsPanel/ListItem.svelte +23 -12
- package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +2 -0
- package/components/apps/editor/componentsPanel/componentStaticValues.js +15 -2
- package/components/apps/editor/contextPanel/ComponentOutput.svelte +77 -0
- package/components/apps/editor/contextPanel/ComponentOutput.svelte.d.ts +21 -0
- package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +10 -6
- package/components/apps/editor/contextPanel/ContextPanel.svelte +81 -91
- package/components/apps/editor/contextPanel/SubGridOutput.svelte +71 -0
- package/components/apps/editor/contextPanel/SubGridOutput.svelte.d.ts +19 -0
- package/components/apps/editor/contextPanel/components/BackgroundScriptOutput.svelte +38 -0
- package/components/apps/editor/contextPanel/components/BackgroundScriptOutput.svelte.d.ts +19 -0
- package/components/apps/editor/contextPanel/components/BackgroundScriptsOutput.svelte +10 -0
- package/components/apps/editor/contextPanel/components/BackgroundScriptsOutput.svelte.d.ts +16 -0
- package/components/apps/editor/contextPanel/components/MinMaxButton.svelte +25 -0
- package/components/apps/editor/contextPanel/components/MinMaxButton.svelte.d.ts +16 -0
- package/components/apps/editor/contextPanel/components/OutputHeader.svelte +78 -0
- package/components/apps/editor/contextPanel/components/OutputHeader.svelte.d.ts +26 -0
- package/components/apps/editor/contextPanel/components/TableActionOutput.svelte +19 -0
- package/components/apps/editor/contextPanel/components/TableActionOutput.svelte.d.ts +18 -0
- package/components/apps/editor/contextPanel/components/TableActionsOutput.svelte +14 -0
- package/components/apps/editor/contextPanel/components/TableActionsOutput.svelte.d.ts +18 -0
- package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +55 -13
- package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte.d.ts +1 -0
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +126 -62
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +5 -0
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte +1 -1
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +11 -5
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte.d.ts +1 -0
- package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +26 -17
- package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +95 -85
- package/components/apps/editor/inlineScriptsPanel/utils.d.ts +5 -9
- package/components/apps/editor/inlineScriptsPanel/utils.js +19 -8
- package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +10 -9
- package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +21 -12
- package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +1 -1
- package/components/apps/editor/settingsPanel/ComponentPanel.svelte +119 -79
- package/components/apps/editor/settingsPanel/ComponentPanel.svelte.d.ts +1 -0
- package/components/apps/editor/settingsPanel/GridPane.svelte +75 -0
- package/components/apps/editor/settingsPanel/GridPane.svelte.d.ts +20 -0
- package/components/apps/editor/settingsPanel/GridTab.svelte +9 -17
- package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +2 -0
- package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +2 -1
- package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +1 -1
- package/components/apps/editor/settingsPanel/Recompute.svelte +2 -1
- package/components/apps/editor/settingsPanel/SelectedRunnable.svelte +7 -1
- package/components/apps/editor/settingsPanel/TableActions.svelte +30 -2
- package/components/apps/editor/settingsPanel/common/PanelSection.svelte +2 -2
- package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte +48 -0
- package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte.d.ts +19 -0
- package/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte +2 -8
- package/components/apps/editor/settingsPanel/inputEditor/EvalInputEditor.svelte +2 -2
- package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +77 -41
- package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +2 -0
- package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte +3 -3
- package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte.d.ts +4 -1
- package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +54 -6
- package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +1 -0
- package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte +7 -9
- package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte.d.ts +1 -1
- package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte +1 -0
- package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte.d.ts +1 -0
- package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +1 -1
- package/components/apps/inputType.d.ts +6 -5
- package/components/apps/rx.d.ts +6 -4
- package/components/apps/rx.js +36 -15
- package/components/apps/store.d.ts +6 -1
- package/components/apps/svelte-grid/Grid.svelte +171 -0
- package/components/apps/svelte-grid/Grid.svelte.d.ts +47 -0
- package/components/apps/svelte-grid/LICENSE +23 -0
- package/components/apps/svelte-grid/MoveResize.svelte +328 -0
- package/components/apps/svelte-grid/MoveResize.svelte.d.ts +46 -0
- package/components/apps/svelte-grid/types.d.ts +25 -0
- package/components/apps/svelte-grid/utils/container.d.ts +1 -0
- package/components/apps/svelte-grid/utils/container.js +4 -0
- package/components/apps/svelte-grid/utils/helper.d.ts +14 -0
- package/components/apps/svelte-grid/utils/helper.js +36 -0
- package/components/apps/svelte-grid/utils/item.d.ts +14 -0
- package/components/apps/svelte-grid/utils/item.js +192 -0
- package/components/apps/svelte-grid/utils/matrix.d.ts +6 -0
- package/components/apps/svelte-grid/utils/matrix.js +53 -0
- package/components/apps/svelte-grid/utils/other.d.ts +3 -0
- package/components/apps/svelte-grid/utils/other.js +30 -0
- package/components/apps/types.d.ts +21 -8
- package/components/apps/utils.d.ts +3 -3
- package/components/apps/utils.js +34 -56
- package/components/common/CloseButton.svelte +18 -0
- package/components/common/CloseButton.svelte.d.ts +27 -0
- package/components/common/badge/Badge.svelte +6 -1
- package/components/common/badge/Badge.svelte.d.ts +1 -0
- package/components/common/button/ButtonPopup.svelte +2 -0
- package/components/common/button/ButtonPopup.svelte.d.ts +1 -0
- package/components/common/button/UndoRedo.svelte +32 -0
- package/components/common/button/UndoRedo.svelte.d.ts +20 -0
- package/components/common/drawer/Drawer.svelte +10 -4
- package/components/common/drawer/Drawer.svelte.d.ts +3 -1
- package/components/common/drawer/DrawerContent.svelte +2 -7
- package/components/common/fileInput/FileInput.svelte +47 -21
- package/components/common/fileInput/FileInput.svelte.d.ts +3 -1
- package/components/common/fileInput/model.d.ts +1 -0
- package/components/common/fileInput/model.js +1 -0
- package/components/common/index.d.ts +1 -0
- package/components/common/index.js +1 -0
- package/components/common/languageIcons/JavaScript.svelte +11 -0
- package/components/common/languageIcons/JavaScript.svelte.d.ts +25 -0
- package/components/common/languageIcons/LanguageIcon.svelte +3 -1
- package/components/common/languageIcons/LanguageIcon.svelte.d.ts +1 -1
- package/components/common/menu/Menu.svelte +3 -2
- package/components/common/menu/Menu.svelte.d.ts +2 -1
- package/components/common/modal/Modal.svelte +9 -4
- package/components/common/modal/Modal.svelte.d.ts +2 -0
- package/components/common/popup/Popup.svelte +2 -1
- package/components/common/popup/Popup.svelte.d.ts +9 -0
- package/components/common/table/AppRow.svelte +14 -8
- package/components/common/table/AppRow.svelte.d.ts +1 -0
- package/components/common/table/FlowRow.svelte +22 -12
- package/components/common/table/FlowRow.svelte.d.ts +1 -0
- package/components/common/table/ScriptRow.svelte +43 -14
- package/components/common/table/ScriptRow.svelte.d.ts +1 -0
- package/components/common/tabs/Tab.svelte +13 -5
- package/components/common/tabs/Tab.svelte.d.ts +6 -1
- package/components/common/tabs/Tabs.svelte +8 -6
- package/components/common/tabs/Tabs.svelte.d.ts +3 -1
- package/components/flows/FlowEditor.svelte +6 -4
- package/components/flows/common/FlowCardHeader.svelte +4 -1
- package/components/flows/content/BranchPredicateEditor.svelte +3 -4
- package/components/flows/content/CapturePayload.svelte +1 -2
- package/components/flows/content/FlowBranchesAllWrapper.svelte +1 -1
- package/components/flows/content/FlowConstants.svelte +7 -13
- package/components/flows/content/FlowEditorPanel.svelte +4 -3
- package/components/flows/content/FlowFailureModule.svelte +2 -1
- package/components/flows/content/FlowInput.svelte +4 -2
- package/components/flows/content/FlowLoop.svelte +3 -4
- package/components/flows/content/FlowModuleComponent.svelte +23 -11
- package/components/flows/content/FlowModuleEarlyStop.svelte +3 -1
- package/components/flows/content/FlowModuleHeader.svelte +26 -3
- package/components/flows/content/FlowModuleHeader.svelte.d.ts +1 -0
- package/components/flows/content/FlowModuleSleep.svelte +2 -2
- package/components/flows/content/FlowModuleWrapper.svelte +2 -8
- package/components/flows/content/FlowSchedules.svelte +1 -2
- package/components/flows/content/FlowSettings.svelte +17 -37
- package/components/flows/content/ScriptEditorDrawer.svelte +98 -0
- package/components/flows/content/ScriptEditorDrawer.svelte.d.ts +19 -0
- package/components/flows/flowState.d.ts +2 -3
- package/components/flows/flowState.js +1 -4
- package/components/flows/flowStateUtils.d.ts +7 -6
- package/components/flows/flowStateUtils.js +5 -9
- package/components/flows/flowStore.d.ts +5 -4
- package/components/flows/flowStore.js +5 -17
- package/components/flows/header/FlowImportExportMenu.svelte +2 -1
- package/components/flows/map/FlowConstantsItem.svelte +2 -2
- package/components/flows/map/FlowErrorHandlerItem.svelte +12 -13
- package/components/flows/map/FlowInputsItem.svelte +2 -3
- package/components/flows/map/FlowModuleSchemaItem.svelte +88 -91
- package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +3 -3
- package/components/flows/map/FlowModuleSchemaMap.svelte +164 -138
- package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -2
- package/components/flows/map/FlowSettingsItem.svelte +5 -4
- package/components/flows/map/InsertModuleButton.svelte +12 -10
- package/components/flows/map/InsertModuleButton.svelte.d.ts +1 -0
- package/components/flows/map/MapItem.svelte +176 -103
- package/components/flows/map/MapItem.svelte.d.ts +20 -2
- package/components/flows/map/VirtualItem.svelte +129 -0
- package/components/flows/map/VirtualItem.svelte.d.ts +44 -0
- package/components/flows/pickers/FlowScriptPicker.svelte.d.ts +1 -1
- package/components/flows/pickers/WorkspaceScriptPicker.svelte +1 -1
- package/components/flows/previousResults.d.ts +1 -1
- package/components/flows/previousResults.js +32 -17
- package/components/flows/types.d.ts +13 -1
- package/components/flows/utils.js +1 -1
- package/components/graph/FlowGraph.svelte +227 -167
- package/components/graph/FlowGraph.svelte.d.ts +14 -1
- package/components/graph/model.d.ts +6 -36
- package/components/graph/model.js +1 -1
- package/components/graph/svelvet/LICENSE +21 -0
- package/components/graph/svelvet/collapsible/controllers/util.d.ts +15 -0
- package/components/graph/svelvet/collapsible/controllers/util.js +144 -0
- package/components/graph/svelvet/collapsible/models/Collapsible.d.ts +17 -0
- package/components/graph/svelvet/collapsible/models/Collapsible.js +25 -0
- package/components/graph/svelvet/collapsible/types/types.d.ts +8 -0
- package/components/graph/svelvet/collapsible/types/types.js +1 -0
- package/components/graph/svelvet/container/README.md +7 -0
- package/components/graph/svelvet/container/controllers/middleware.d.ts +18 -0
- package/components/graph/svelvet/container/controllers/middleware.js +101 -0
- package/components/graph/svelvet/container/views/GraphView.svelte +252 -0
- package/components/graph/svelvet/container/views/GraphView.svelte.d.ts +25 -0
- package/components/graph/svelvet/container/views/Svelvet.svelte +131 -0
- package/components/graph/svelvet/container/views/Svelvet.svelte.d.ts +41 -0
- package/components/graph/svelvet/customCss/controllers/getCss.d.ts +2 -0
- package/components/graph/svelvet/customCss/controllers/getCss.js +57 -0
- package/components/graph/svelvet/d3/controllers/d3.d.ts +5 -0
- package/components/graph/svelvet/d3/controllers/d3.js +59 -0
- package/components/graph/svelvet/edges/controllers/anchorCbDev.d.ts +4 -0
- package/components/graph/svelvet/edges/controllers/anchorCbDev.js +92 -0
- package/components/graph/svelvet/edges/controllers/anchorCbUser.d.ts +57 -0
- package/components/graph/svelvet/edges/controllers/anchorCbUser.js +73 -0
- package/components/graph/svelvet/edges/controllers/util.d.ts +37 -0
- package/components/graph/svelvet/edges/controllers/util.js +72 -0
- package/components/graph/svelvet/edges/models/Anchor.d.ts +48 -0
- package/components/graph/svelvet/edges/models/Anchor.js +122 -0
- package/components/graph/svelvet/edges/models/Edge.d.ts +47 -0
- package/components/graph/svelvet/edges/models/Edge.js +107 -0
- package/components/graph/svelvet/edges/types/types.d.ts +18 -0
- package/components/graph/svelvet/edges/types/types.js +1 -0
- package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte +105 -0
- package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte.d.ts +18 -0
- package/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte +12 -0
- package/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte.d.ts +17 -0
- package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte +43 -0
- package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte.d.ts +17 -0
- package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte +137 -0
- package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte.d.ts +17 -0
- package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte +176 -0
- package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte.d.ts +60 -0
- package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte +8 -0
- package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte.d.ts +25 -0
- package/components/graph/svelvet/edges/views/Edges/types.d.ts +52 -0
- package/components/graph/svelvet/edges/views/Edges/types.js +1 -0
- package/components/graph/svelvet/edges/views/Edges/utils.d.ts +33 -0
- package/components/graph/svelvet/edges/views/Edges/utils.js +31 -0
- package/components/graph/svelvet/editEdges/views/EditEdge.svelte +151 -0
- package/components/graph/svelvet/editEdges/views/EditEdge.svelte.d.ts +20 -0
- package/components/graph/svelvet/nodes/controllers/util.d.ts +9 -0
- package/components/graph/svelvet/nodes/controllers/util.js +13 -0
- package/components/graph/svelvet/nodes/models/Node.d.ts +78 -0
- package/components/graph/svelvet/nodes/models/Node.js +195 -0
- package/components/graph/svelvet/nodes/views/EditNode.svelte +147 -0
- package/components/graph/svelvet/nodes/views/EditNode.svelte.d.ts +33 -0
- package/components/graph/svelvet/nodes/views/Node.svelte +85 -0
- package/components/graph/svelvet/nodes/views/Node.svelte.d.ts +22 -0
- package/components/graph/svelvet/resizableNodes/controllers/util.d.ts +11 -0
- package/components/graph/svelvet/resizableNodes/controllers/util.js +24 -0
- package/components/graph/svelvet/resizableNodes/models/ResizeNode.d.ts +33 -0
- package/components/graph/svelvet/resizableNodes/models/ResizeNode.js +71 -0
- package/components/graph/svelvet/resizableNodes/views/ResizeNode.svelte +81 -0
- package/components/graph/svelvet/resizableNodes/views/ResizeNode.svelte.d.ts +20 -0
- package/components/graph/svelvet/store/controllers/storeApi.d.ts +32 -0
- package/components/graph/svelvet/store/controllers/storeApi.js +111 -0
- package/components/graph/svelvet/store/controllers/userApi.d.ts +3 -0
- package/components/graph/svelvet/store/controllers/userApi.js +18 -0
- package/components/graph/svelvet/store/controllers/util.d.ts +31 -0
- package/components/graph/svelvet/store/controllers/util.js +180 -0
- package/components/graph/svelvet/store/models/store.d.ts +12 -0
- package/components/graph/svelvet/store/models/store.js +9 -0
- package/components/graph/svelvet/store/types/types.d.ts +134 -0
- package/components/graph/svelvet/store/types/types.js +1 -0
- package/components/graph/svelvet/types/README.md +3 -0
- package/components/graph/svelvet/types/index.d.ts +2 -0
- package/components/graph/svelvet/types/index.js +1 -0
- package/components/graph/svelvet/types/types.d.ts +49 -0
- package/components/graph/svelvet/types/types.js +18 -0
- package/components/graph/util.js +2 -2
- package/components/home/ItemsList.svelte +53 -5
- package/components/home/ItemsList.svelte.d.ts +1 -0
- package/components/home/ListFilters.svelte +7 -2
- package/components/jobs/JobDetail.svelte +12 -1
- package/components/propertyPicker/ObjectViewer.svelte +6 -4
- package/components/sidebar/SidebarContent.svelte +2 -2
- package/consts.d.ts +1 -0
- package/consts.js +1 -0
- package/defaults.d.ts +4 -0
- package/defaults.js +4 -0
- package/history.d.ts +9 -0
- package/history.js +63 -0
- package/package.json +87 -9
- package/script_helpers.d.ts +1 -1
- package/script_helpers.js +1 -0
- package/scripts.d.ts +1 -1
- package/scripts.js +8 -1
- package/utils.d.ts +9 -4
- package/utils.js +43 -8
- package/components/apps/editor/TablePanel.svelte +0 -19
- package/components/apps/editor/TablePanel.svelte.d.ts +0 -17
- package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte +0 -85
- package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte.d.ts +0 -18
- package/components/flows/map/FlowBranchAllMap.svelte +0 -100
- package/components/flows/map/FlowBranchAllMap.svelte.d.ts +0 -17
- package/components/flows/map/FlowBranchOneMap.svelte +0 -124
- package/components/flows/map/FlowBranchOneMap.svelte.d.ts +0 -17
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
<script>import { goto } from '$app/navigation';
|
|
2
2
|
import Alert from '../../../common/alert/Alert.svelte';
|
|
3
|
+
import Popover from '../../../Popover.svelte';
|
|
3
4
|
import SchemaForm from '../../../SchemaForm.svelte';
|
|
4
5
|
import TestJobLoader from '../../../TestJobLoader.svelte';
|
|
5
6
|
import { AppService } from '../../../../gen';
|
|
6
|
-
import { defaultIfEmptyString, emptySchema, sendUserToast } from '../../../../utils';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { classNames, defaultIfEmptyString, emptySchema, sendUserToast } from '../../../../utils';
|
|
8
|
+
import { Bug } from 'lucide-svelte';
|
|
9
|
+
import { getContext } from 'svelte';
|
|
10
|
+
import { initOutput } from '../../editor/appUtils';
|
|
11
|
+
import { computeGlobalContext, eval_like } from './eval';
|
|
9
12
|
import InputValue from './InputValue.svelte';
|
|
10
13
|
import RefreshButton from './RefreshButton.svelte';
|
|
11
14
|
// Component props
|
|
@@ -16,21 +19,32 @@ export let extraQueryParams = {};
|
|
|
16
19
|
export let autoRefresh = true;
|
|
17
20
|
export let result = undefined;
|
|
18
21
|
export let forceSchemaDisplay = false;
|
|
19
|
-
export let defaultUserInput = false;
|
|
20
22
|
export let flexWrap = false;
|
|
21
23
|
export let wrapperClass = '';
|
|
24
|
+
export let wrapperStyle = '';
|
|
22
25
|
export let initializing = undefined;
|
|
23
26
|
export let gotoUrl = undefined;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
export let gotoNewTab = undefined;
|
|
28
|
+
export let render;
|
|
29
|
+
export let recomputable = false;
|
|
30
|
+
export let recomputeIds = [];
|
|
31
|
+
const { worldStore, runnableComponents, workspace, appPath, isEditor, jobs, noBackend, errorByComponent, mode, stateId, state, componentControl } = getContext('AppViewerContext');
|
|
32
|
+
$: autoRefresh && handleAutorefresh();
|
|
33
|
+
if (recomputable) {
|
|
34
|
+
$runnableComponents[id] = async () => {
|
|
35
|
+
await executeComponent(true);
|
|
36
|
+
};
|
|
37
|
+
$runnableComponents = $runnableComponents;
|
|
38
|
+
}
|
|
39
|
+
function handleAutorefresh() {
|
|
40
|
+
if (autoRefresh && $worldStore) {
|
|
27
41
|
$runnableComponents[id] = async () => {
|
|
28
42
|
await executeComponent(true);
|
|
29
43
|
};
|
|
30
44
|
executeComponent(true);
|
|
31
45
|
}
|
|
32
|
-
}
|
|
33
|
-
let args =
|
|
46
|
+
}
|
|
47
|
+
let args = undefined;
|
|
34
48
|
let testIsLoading = false;
|
|
35
49
|
let runnableInputValues = {};
|
|
36
50
|
let executeTimeout = undefined;
|
|
@@ -52,43 +66,26 @@ let currentStaticValues = lazyStaticValues;
|
|
|
52
66
|
$: fields && (currentStaticValues = computeStaticValues());
|
|
53
67
|
$: if (JSON.stringify(currentStaticValues) != JSON.stringify(lazyStaticValues)) {
|
|
54
68
|
lazyStaticValues = currentStaticValues;
|
|
69
|
+
refreshIfAutoRefresh();
|
|
70
|
+
}
|
|
71
|
+
$: fields && (lazyStaticValues = computeStaticValues());
|
|
72
|
+
$: (runnableInputValues || extraQueryParams || args) && testJobLoader && refreshIfAutoRefresh();
|
|
73
|
+
$: runnable?.type == 'runnableByName' &&
|
|
74
|
+
runnable.inlineScript?.language == 'frontend' &&
|
|
75
|
+
($stateId || $state) &&
|
|
76
|
+
refreshIfAutoRefresh();
|
|
77
|
+
function refreshIfAutoRefresh() {
|
|
55
78
|
if (autoRefresh) {
|
|
56
79
|
setDebouncedExecute();
|
|
57
80
|
}
|
|
58
81
|
}
|
|
59
|
-
$: fields && (lazyStaticValues = computeStaticValues());
|
|
60
|
-
$: runnableInputValues &&
|
|
61
|
-
extraQueryParams &&
|
|
62
|
-
args &&
|
|
63
|
-
autoRefresh &&
|
|
64
|
-
testJobLoader &&
|
|
65
|
-
setDebouncedExecute();
|
|
66
82
|
// Test job internal state
|
|
67
83
|
let testJob = undefined;
|
|
68
84
|
let testJobLoader = undefined;
|
|
69
|
-
$: outputs = $worldStore
|
|
70
|
-
$: if (outputs?.loading != undefined) {
|
|
71
|
-
outputs.loading.set(false, true);
|
|
72
|
-
}
|
|
85
|
+
$: outputs = initOutput($worldStore, id, { result: undefined, loading: false });
|
|
73
86
|
$: outputs?.loading?.set(testIsLoading);
|
|
74
|
-
$:
|
|
75
|
-
|
|
76
|
-
if (runnable?.type === 'runnableByName') {
|
|
77
|
-
const { inlineScript } = runnable;
|
|
78
|
-
// Inline scripts directly provide the schema
|
|
79
|
-
if (inlineScript) {
|
|
80
|
-
const newSchema = inlineScript.schema;
|
|
81
|
-
const newFields = computeFields(newSchema, defaultUserInput, fields);
|
|
82
|
-
if (JSON.stringify(newFields) !== JSON.stringify(fields)) {
|
|
83
|
-
setTimeout(() => {
|
|
84
|
-
fields = newFields;
|
|
85
|
-
}, 0);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
$: schemaStripped = runnable && stripSchema(fields);
|
|
91
|
-
function stripSchema(inputs) {
|
|
87
|
+
$: schemaStripped = stripSchema(fields, $stateId);
|
|
88
|
+
function stripSchema(inputs, s) {
|
|
92
89
|
let schema = runnable?.type == 'runnableByName' ? runnable.inlineScript?.schema : runnable?.schema;
|
|
93
90
|
try {
|
|
94
91
|
schemaStripped = JSON.parse(JSON.stringify(schema));
|
|
@@ -116,6 +113,19 @@ $: disabledArgs = Object.keys(fields ?? {}).reduce((disabledArgsAccumulator, inp
|
|
|
116
113
|
return disabledArgsAccumulator;
|
|
117
114
|
}, []);
|
|
118
115
|
async function executeComponent(noToast = false) {
|
|
116
|
+
if (runnable?.type === 'runnableByName' && runnable.inlineScript?.language === 'frontend') {
|
|
117
|
+
outputs?.loading?.set(true);
|
|
118
|
+
try {
|
|
119
|
+
const r = await eval_like(runnable.inlineScript?.content, computeGlobalContext($worldStore, id, {}), false, $state, $mode == 'dnd', $componentControl, $worldStore);
|
|
120
|
+
setResult(r);
|
|
121
|
+
$state = $state;
|
|
122
|
+
}
|
|
123
|
+
catch (e) {
|
|
124
|
+
sendUserToast('Error running frontend script: ' + e.message, true);
|
|
125
|
+
}
|
|
126
|
+
outputs?.loading?.set(false);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
119
129
|
if (noBackend) {
|
|
120
130
|
if (!noToast) {
|
|
121
131
|
sendUserToast('This app is not connected to a windmill backend, it is a static preview');
|
|
@@ -135,7 +145,7 @@ async function executeComponent(noToast = false) {
|
|
|
135
145
|
staticRunnableInputs[k] = field.value;
|
|
136
146
|
}
|
|
137
147
|
else if (field?.type == 'user') {
|
|
138
|
-
nonStaticRunnableInputs[k] = args[k];
|
|
148
|
+
nonStaticRunnableInputs[k] = args?.[k];
|
|
139
149
|
}
|
|
140
150
|
else {
|
|
141
151
|
nonStaticRunnableInputs[k] = runnableInputValues[k];
|
|
@@ -181,6 +191,26 @@ function recordError(error) {
|
|
|
181
191
|
};
|
|
182
192
|
}
|
|
183
193
|
}
|
|
194
|
+
function setResult(res) {
|
|
195
|
+
outputs.result?.set(res);
|
|
196
|
+
result = res;
|
|
197
|
+
const previousJobId = Object.keys($errorByComponent).find((key) => $errorByComponent[key].componentId === id);
|
|
198
|
+
if (previousJobId && !result?.error) {
|
|
199
|
+
delete $errorByComponent[previousJobId];
|
|
200
|
+
$errorByComponent = $errorByComponent;
|
|
201
|
+
}
|
|
202
|
+
if (gotoUrl && gotoUrl != '' && result?.error == undefined) {
|
|
203
|
+
if (gotoNewTab) {
|
|
204
|
+
window.open(gotoUrl, '_blank');
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
goto(gotoUrl);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
if (recomputeIds) {
|
|
211
|
+
recomputeIds.map((id) => $runnableComponents?.[id]?.());
|
|
212
|
+
}
|
|
213
|
+
}
|
|
184
214
|
$: result?.error && recordError(result.error);
|
|
185
215
|
</script>
|
|
186
216
|
|
|
@@ -197,18 +227,7 @@ $: result?.error && recordError(result.error);
|
|
|
197
227
|
const startedAt = new Date(testJob.started_at).getTime()
|
|
198
228
|
if (startedAt > lastStartedAt) {
|
|
199
229
|
lastStartedAt = startedAt
|
|
200
|
-
|
|
201
|
-
result = testJob.result
|
|
202
|
-
|
|
203
|
-
const previousJobId = Object.keys($errorByComponent).find(
|
|
204
|
-
(key) => $errorByComponent[key].componentId === id
|
|
205
|
-
)
|
|
206
|
-
|
|
207
|
-
if (previousJobId && !result?.error) {
|
|
208
|
-
delete $errorByComponent[previousJobId]
|
|
209
|
-
$errorByComponent = $errorByComponent
|
|
210
|
-
}
|
|
211
|
-
gotoUrl && gotoUrl != '' && result?.error == undefined && goto(gotoUrl)
|
|
230
|
+
setResult(e.detail.result)
|
|
212
231
|
}
|
|
213
232
|
}
|
|
214
233
|
}}
|
|
@@ -217,45 +236,61 @@ $: result?.error && recordError(result.error);
|
|
|
217
236
|
bind:this={testJobLoader}
|
|
218
237
|
/>
|
|
219
238
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
<
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
noVariablePicker
|
|
235
|
-
/>
|
|
236
|
-
</div>
|
|
237
|
-
{/if}
|
|
239
|
+
{#if render}
|
|
240
|
+
<div class="h-full flex relative flex-row flex-wrap {wrapperClass}" style={wrapperStyle}>
|
|
241
|
+
{#if schemaStripped && Object.keys(schemaStripped?.properties ?? {}).length > 0 && (autoRefresh || forceSchemaDisplay)}
|
|
242
|
+
<div class="px-2 h-fit min-h-0">
|
|
243
|
+
<SchemaForm
|
|
244
|
+
{flexWrap}
|
|
245
|
+
schema={schemaStripped}
|
|
246
|
+
bind:args
|
|
247
|
+
{disabledArgs}
|
|
248
|
+
shouldHideNoInputs
|
|
249
|
+
noVariablePicker
|
|
250
|
+
/>
|
|
251
|
+
</div>
|
|
252
|
+
{/if}
|
|
238
253
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
</Alert>
|
|
243
|
-
{:else if result?.error && $mode === 'preview'}
|
|
244
|
-
<div class="p-2">
|
|
245
|
-
<Alert type="error" title="Error during execution">
|
|
246
|
-
<div class="flex flex-col gap-2">
|
|
247
|
-
An error occured, please contact the app author.
|
|
248
|
-
<span class="font-semibold">Job id: {testJob?.id}</span>
|
|
249
|
-
<pre class=" whitespace-pre-wrap text-gray-900 bg-white border w-full p-4 text-xs"
|
|
250
|
-
>{JSON.stringify(result.error, null, 4)}
|
|
251
|
-
</pre>
|
|
252
|
-
</div>
|
|
254
|
+
{#if !runnable && autoRefresh}
|
|
255
|
+
<Alert type="warning" size="xs" class="mt-2 px-1" title="Missing runnable">
|
|
256
|
+
Please select a runnable
|
|
253
257
|
</Alert>
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
258
|
+
{:else if result?.error && $mode === 'preview'}
|
|
259
|
+
<div
|
|
260
|
+
title="Error"
|
|
261
|
+
class={classNames(
|
|
262
|
+
'text-red-500 px-1 text-2xs py-0.5 font-bold w-fit absolute border border-red-500 -bottom-2 shadow left-1/2 transform -translate-x-1/2 z-50 cursor-pointer',
|
|
263
|
+
'bg-red-100/80'
|
|
264
|
+
)}
|
|
265
|
+
>
|
|
266
|
+
<Popover notClickable placement="bottom" popupClass="!bg-white border w-96">
|
|
267
|
+
<Bug size={14} />
|
|
268
|
+
<span slot="text">
|
|
269
|
+
<div class="bg-white">
|
|
270
|
+
<Alert type="error" title="Error during execution">
|
|
271
|
+
<div class="flex flex-col gap-2">
|
|
272
|
+
An error occured, please contact the app author.
|
|
273
|
+
<span class="font-semibold">Job id: {testJob?.id}</span>
|
|
274
|
+
</div>
|
|
275
|
+
</Alert>
|
|
276
|
+
</div>
|
|
277
|
+
</span>
|
|
278
|
+
</Popover>
|
|
279
|
+
</div>
|
|
280
|
+
<div class="block grow w-full max-h-full border border-red-300 bg-red-50 relative">
|
|
281
|
+
<slot />
|
|
282
|
+
</div>
|
|
283
|
+
{:else}
|
|
284
|
+
<div class="block grow w-full max-h-full">
|
|
285
|
+
<slot />
|
|
286
|
+
</div>
|
|
287
|
+
{/if}
|
|
288
|
+
{#if !initializing && autoRefresh === true}
|
|
289
|
+
<div class="flex absolute top-1 right-1 z-50">
|
|
290
|
+
<RefreshButton componentId={id} />
|
|
291
|
+
</div>
|
|
292
|
+
{/if}
|
|
293
|
+
</div>
|
|
294
|
+
{:else}
|
|
295
|
+
<div class="w-full h-full" />
|
|
296
|
+
{/if}
|
|
@@ -9,11 +9,15 @@ declare const __propDef: {
|
|
|
9
9
|
autoRefresh?: boolean | undefined;
|
|
10
10
|
result?: any;
|
|
11
11
|
forceSchemaDisplay?: boolean | undefined;
|
|
12
|
-
defaultUserInput?: boolean | undefined;
|
|
13
12
|
flexWrap?: boolean | undefined;
|
|
14
13
|
wrapperClass?: string | undefined;
|
|
14
|
+
wrapperStyle?: string | undefined;
|
|
15
15
|
initializing?: boolean | undefined;
|
|
16
16
|
gotoUrl?: string | undefined;
|
|
17
|
+
gotoNewTab?: boolean | undefined;
|
|
18
|
+
render: boolean;
|
|
19
|
+
recomputable?: boolean | undefined;
|
|
20
|
+
recomputeIds?: string[] | undefined;
|
|
17
21
|
runComponent?: (() => Promise<void>) | undefined;
|
|
18
22
|
};
|
|
19
23
|
events: {
|
|
@@ -10,11 +10,14 @@ export let extraQueryParams = {};
|
|
|
10
10
|
export let autoRefresh = true;
|
|
11
11
|
export let runnableComponent = undefined;
|
|
12
12
|
export let forceSchemaDisplay = false;
|
|
13
|
-
export let defaultUserInput = false;
|
|
14
13
|
export let flexWrap = false;
|
|
15
14
|
export let runnableClass = '';
|
|
15
|
+
export let runnableStyle = '';
|
|
16
16
|
export let goto = undefined;
|
|
17
|
-
|
|
17
|
+
export let gotoNewTab = undefined;
|
|
18
|
+
export let render;
|
|
19
|
+
export let recomputeIds = [];
|
|
20
|
+
const { staticExporter, noBackend } = getContext('AppViewerContext');
|
|
18
21
|
$: if (initializing && result) {
|
|
19
22
|
initializing = false;
|
|
20
23
|
}
|
|
@@ -33,11 +36,12 @@ function isRunnableDefined() {
|
|
|
33
36
|
<slot />
|
|
34
37
|
{:else if componentInput.type === 'runnable' && isRunnableDefined()}
|
|
35
38
|
<RunnableComponent
|
|
39
|
+
{recomputeIds}
|
|
36
40
|
gotoUrl={goto}
|
|
41
|
+
{gotoNewTab}
|
|
37
42
|
{flexWrap}
|
|
38
|
-
{defaultUserInput}
|
|
39
43
|
bind:this={runnableComponent}
|
|
40
|
-
|
|
44
|
+
fields={componentInput.fields}
|
|
41
45
|
bind:result
|
|
42
46
|
runnable={componentInput.runnable}
|
|
43
47
|
{autoRefresh}
|
|
@@ -46,11 +50,13 @@ function isRunnableDefined() {
|
|
|
46
50
|
{forceSchemaDisplay}
|
|
47
51
|
{initializing}
|
|
48
52
|
wrapperClass={runnableClass}
|
|
53
|
+
wrapperStyle={runnableStyle}
|
|
54
|
+
{render}
|
|
49
55
|
>
|
|
50
56
|
<slot />
|
|
51
57
|
</RunnableComponent>
|
|
52
58
|
{:else}
|
|
53
|
-
<NonRunnableComponent bind:result {id} {componentInput}>
|
|
59
|
+
<NonRunnableComponent {render} bind:result {id} {componentInput}>
|
|
54
60
|
<slot />
|
|
55
61
|
</NonRunnableComponent>
|
|
56
62
|
{/if}
|
|
@@ -11,10 +11,13 @@ declare const __propDef: {
|
|
|
11
11
|
autoRefresh?: boolean | undefined;
|
|
12
12
|
runnableComponent?: RunnableComponent | undefined;
|
|
13
13
|
forceSchemaDisplay?: boolean | undefined;
|
|
14
|
-
defaultUserInput?: boolean | undefined;
|
|
15
14
|
flexWrap?: boolean | undefined;
|
|
16
15
|
runnableClass?: string | undefined;
|
|
16
|
+
runnableStyle?: string | undefined;
|
|
17
17
|
goto?: string | undefined;
|
|
18
|
+
gotoNewTab?: boolean | undefined;
|
|
19
|
+
render: boolean;
|
|
20
|
+
recomputeIds?: string[] | undefined;
|
|
18
21
|
};
|
|
19
22
|
events: {
|
|
20
23
|
[evt: string]: CustomEvent<any>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { World } from '../../rx';
|
|
2
|
+
export declare function computeGlobalContext(world: World | undefined, id: string | undefined, extraContext?: any): any;
|
|
3
|
+
export declare function eval_like(text: string, context: {} | undefined, noReturn: boolean, state: Record<string, any>, editor: boolean, controlComponents: Record<string, {
|
|
4
|
+
setTab?: (index: number) => void;
|
|
5
|
+
}>, worldStore: World | undefined): Promise<any>;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { sendUserToast } from '../../../../utils';
|
|
2
|
+
export function computeGlobalContext(world, id, extraContext = {}) {
|
|
3
|
+
return {
|
|
4
|
+
...Object.fromEntries(Object.entries(world?.outputsById ?? {})
|
|
5
|
+
.filter(([k, _]) => k != id && k != 'state')
|
|
6
|
+
.map(([key, value]) => {
|
|
7
|
+
return [
|
|
8
|
+
key,
|
|
9
|
+
Object.fromEntries(Object.entries(value ?? {}).map((x) => [x[0], x[1].peak()]))
|
|
10
|
+
];
|
|
11
|
+
})),
|
|
12
|
+
...extraContext
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function create_context_function_template(eval_string, context, noReturn) {
|
|
16
|
+
return `
|
|
17
|
+
return async function (context, state, goto, setTab) {
|
|
18
|
+
"use strict";
|
|
19
|
+
${Object.keys(context).length > 0
|
|
20
|
+
? `let ${Object.keys(context).map((key) => ` ${key} = context['${key}']`)};`
|
|
21
|
+
: ``}
|
|
22
|
+
${noReturn ? `return ${eval_string}` : eval_string}
|
|
23
|
+
}
|
|
24
|
+
`;
|
|
25
|
+
}
|
|
26
|
+
function make_context_evaluator(eval_string, context, noReturn) {
|
|
27
|
+
let template = create_context_function_template(eval_string, context, noReturn);
|
|
28
|
+
let functor = Function(template);
|
|
29
|
+
return functor();
|
|
30
|
+
}
|
|
31
|
+
export async function eval_like(text, context = {}, noReturn, state, editor, controlComponents, worldStore) {
|
|
32
|
+
const proxiedState = new Proxy(state, {
|
|
33
|
+
set(target, key, value) {
|
|
34
|
+
if (typeof key !== 'string') {
|
|
35
|
+
throw new Error('Invalid key');
|
|
36
|
+
}
|
|
37
|
+
let o = worldStore?.newOutput('state', key, value);
|
|
38
|
+
o?.set(value);
|
|
39
|
+
target[key] = value;
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
let evaluator = make_context_evaluator(text, context, noReturn);
|
|
44
|
+
return await evaluator(context, proxiedState, async (x, newTab) => {
|
|
45
|
+
if (newTab || editor) {
|
|
46
|
+
if (!newTab) {
|
|
47
|
+
sendUserToast('In editor mode, `goto` opens a new tab to prevent losing your work. To test the redirection , use the preview mode.');
|
|
48
|
+
}
|
|
49
|
+
window.open(x, '_blank');
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
await newTab(x);
|
|
53
|
+
}
|
|
54
|
+
}, (id, index) => {
|
|
55
|
+
controlComponents[id]?.setTab?.(index);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
<script>import Toggle from '../../../Toggle.svelte';
|
|
2
2
|
import { getContext } from 'svelte';
|
|
3
|
+
import { concatCustomCss } from '../../utils';
|
|
3
4
|
import AlignWrapper from '../helpers/AlignWrapper.svelte';
|
|
4
5
|
import InputValue from '../helpers/InputValue.svelte';
|
|
5
6
|
export let id;
|
|
6
7
|
export let configuration;
|
|
7
8
|
export let horizontalAlignment = undefined;
|
|
8
9
|
export let verticalAlignment = undefined;
|
|
9
|
-
|
|
10
|
+
export let customCss = undefined;
|
|
11
|
+
export let render;
|
|
12
|
+
const { app, worldStore } = getContext('AppViewerContext');
|
|
10
13
|
export const staticOutputs = ['result'];
|
|
11
14
|
let defaultValue = undefined;
|
|
12
15
|
let labelValue = 'Default label';
|
|
@@ -14,12 +17,13 @@ let labelValue = 'Default label';
|
|
|
14
17
|
// we need to manually set the output
|
|
15
18
|
$: outputs = $worldStore?.outputsById[id];
|
|
16
19
|
$: defaultValue != undefined && outputs?.result.set(defaultValue);
|
|
20
|
+
$: css = concatCustomCss($app.css?.checkboxcomponent, customCss);
|
|
17
21
|
</script>
|
|
18
22
|
|
|
19
23
|
<InputValue {id} input={configuration.label} bind:value={labelValue} />
|
|
20
24
|
<InputValue {id} input={configuration.defaultValue} bind:value={defaultValue} />
|
|
21
25
|
|
|
22
|
-
<AlignWrapper {horizontalAlignment} {verticalAlignment}>
|
|
26
|
+
<AlignWrapper {render} {horizontalAlignment} {verticalAlignment}>
|
|
23
27
|
<Toggle
|
|
24
28
|
on:pointerdown={(e) => {
|
|
25
29
|
e?.stopPropagation()
|
|
@@ -27,6 +31,8 @@ $: defaultValue != undefined && outputs?.result.set(defaultValue);
|
|
|
27
31
|
}}
|
|
28
32
|
checked={defaultValue}
|
|
29
33
|
options={{ right: labelValue }}
|
|
34
|
+
textClass={css?.text?.class ?? ''}
|
|
35
|
+
textStyle={css?.text?.style ?? ''}
|
|
30
36
|
on:change={(e) => {
|
|
31
37
|
outputs.result.set(e.detail)
|
|
32
38
|
}}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { SvelteComponentTyped } from "svelte";
|
|
2
2
|
import type { AppInput } from '../../inputType';
|
|
3
|
+
import type { ComponentCustomCSS } from '../../types';
|
|
3
4
|
declare const __propDef: {
|
|
4
5
|
props: {
|
|
5
6
|
id: string;
|
|
6
7
|
configuration: Record<string, AppInput>;
|
|
7
8
|
horizontalAlignment?: 'left' | 'center' | 'right' | undefined;
|
|
8
9
|
verticalAlignment?: 'top' | 'center' | 'bottom' | undefined;
|
|
10
|
+
customCss?: ComponentCustomCSS<'text'> | undefined;
|
|
11
|
+
render: boolean;
|
|
9
12
|
staticOutputs?: string[] | undefined;
|
|
10
13
|
};
|
|
11
14
|
events: {
|
|
@@ -1,23 +1,28 @@
|
|
|
1
1
|
<script>import { getContext } from 'svelte';
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
import { concatCustomCss } from '../../utils';
|
|
2
4
|
import AlignWrapper from '../helpers/AlignWrapper.svelte';
|
|
3
|
-
import InputDefaultValue from '../helpers/InputDefaultValue.svelte';
|
|
4
5
|
import InputValue from '../helpers/InputValue.svelte';
|
|
5
6
|
export let id;
|
|
6
7
|
export let configuration;
|
|
7
8
|
export let inputType;
|
|
8
9
|
export let verticalAlignment = undefined;
|
|
9
10
|
export const staticOutputs = ['result'];
|
|
10
|
-
|
|
11
|
-
let
|
|
11
|
+
export let customCss = undefined;
|
|
12
|
+
export let render;
|
|
13
|
+
const { app, worldStore, selectedComponent } = getContext('AppViewerContext');
|
|
12
14
|
let labelValue = 'Title';
|
|
13
15
|
let minValue = '';
|
|
14
16
|
let maxValue = '';
|
|
15
17
|
let defaultValue = undefined;
|
|
18
|
+
let value = undefined;
|
|
16
19
|
$: outputs = $worldStore?.outputsById[id];
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
$: handleDefault(defaultValue);
|
|
21
|
+
$: outputs?.result.set(value);
|
|
22
|
+
function handleDefault(defaultValue) {
|
|
23
|
+
value = defaultValue;
|
|
19
24
|
}
|
|
20
|
-
$:
|
|
25
|
+
$: css = concatCustomCss($app.css?.dateinputcomponent, customCss);
|
|
21
26
|
</script>
|
|
22
27
|
|
|
23
28
|
<InputValue {id} input={configuration.label} bind:value={labelValue} />
|
|
@@ -25,16 +30,18 @@ $: input && handleInput();
|
|
|
25
30
|
<InputValue {id} input={configuration.maxDate} bind:value={maxValue} />
|
|
26
31
|
<InputValue {id} input={configuration.defaultValue} bind:value={defaultValue} />
|
|
27
32
|
|
|
28
|
-
<
|
|
29
|
-
|
|
30
|
-
<
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
33
|
+
<AlignWrapper {render} {verticalAlignment}>
|
|
34
|
+
{#if inputType === 'date'}
|
|
35
|
+
<input
|
|
36
|
+
on:focus={() => ($selectedComponent = id)}
|
|
37
|
+
on:pointerdown|stopPropagation
|
|
38
|
+
type="date"
|
|
39
|
+
bind:value
|
|
40
|
+
min={minValue}
|
|
41
|
+
max={maxValue}
|
|
42
|
+
placeholder="Type..."
|
|
43
|
+
class={twMerge('mx-0.5', css?.input?.class ?? '')}
|
|
44
|
+
style={css?.input?.style ?? ''}
|
|
45
|
+
/>
|
|
46
|
+
{/if}
|
|
40
47
|
</AlignWrapper>
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import { SvelteComponentTyped } from "svelte";
|
|
2
2
|
import type { AppInput } from '../../inputType';
|
|
3
|
+
import type { ComponentCustomCSS } from '../../types';
|
|
3
4
|
declare const __propDef: {
|
|
4
5
|
props: {
|
|
5
6
|
id: string;
|
|
6
7
|
configuration: Record<string, AppInput>;
|
|
7
|
-
inputType: 'date'
|
|
8
|
+
inputType: 'date';
|
|
8
9
|
verticalAlignment?: 'top' | 'center' | 'bottom' | undefined;
|
|
9
10
|
staticOutputs?: string[] | undefined;
|
|
11
|
+
customCss?: ComponentCustomCSS<'input'> | undefined;
|
|
12
|
+
render: boolean;
|
|
10
13
|
};
|
|
11
14
|
events: {
|
|
15
|
+
pointerdown: PointerEvent;
|
|
16
|
+
} & {
|
|
12
17
|
[evt: string]: CustomEvent<any>;
|
|
13
18
|
};
|
|
14
19
|
slots: {};
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
<script>import { getContext } from 'svelte';
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
2
3
|
import { FileInput } from '../../../common';
|
|
4
|
+
import { concatCustomCss } from '../../utils';
|
|
3
5
|
import InputValue from '../helpers/InputValue.svelte';
|
|
4
6
|
export let id;
|
|
5
7
|
export let configuration;
|
|
6
8
|
export const staticOutputs = ['result'];
|
|
7
|
-
|
|
9
|
+
export let customCss = undefined;
|
|
10
|
+
export let render;
|
|
11
|
+
const { app, worldStore } = getContext('AppViewerContext');
|
|
8
12
|
let acceptedFileTypes = undefined;
|
|
9
13
|
let allowMultiple = undefined;
|
|
10
14
|
let text = undefined;
|
|
@@ -13,22 +17,26 @@ $: outputs = $worldStore?.outputsById[id];
|
|
|
13
17
|
async function handleChange(files) {
|
|
14
18
|
outputs?.result.set(files);
|
|
15
19
|
}
|
|
20
|
+
$: css = concatCustomCss($app.css?.fileinputcomponent, customCss);
|
|
16
21
|
</script>
|
|
17
22
|
|
|
18
23
|
<InputValue {id} input={configuration.acceptedFileTypes} bind:value={acceptedFileTypes} />
|
|
19
24
|
<InputValue {id} input={configuration.allowMultiple} bind:value={allowMultiple} />
|
|
20
25
|
<InputValue {id} input={configuration.text} bind:value={text} />
|
|
21
26
|
|
|
22
|
-
|
|
23
|
-
<
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
27
|
+
{#if render}
|
|
28
|
+
<div class="w-full h-full p-1">
|
|
29
|
+
<FileInput
|
|
30
|
+
accept={acceptedFileTypes?.length ? acceptedFileTypes?.join(', ') : undefined}
|
|
31
|
+
multiple={allowMultiple}
|
|
32
|
+
convertTo="base64"
|
|
33
|
+
on:change={({ detail }) => {
|
|
34
|
+
handleChange(detail)
|
|
35
|
+
}}
|
|
36
|
+
class={twMerge('w-full h-full', css?.container?.class)}
|
|
37
|
+
style={css?.container?.style}
|
|
38
|
+
>
|
|
39
|
+
{text}
|
|
40
|
+
</FileInput>
|
|
41
|
+
</div>
|
|
42
|
+
{/if}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { SvelteComponentTyped } from "svelte";
|
|
2
2
|
import type { AppInput } from '../../inputType';
|
|
3
|
+
import type { ComponentCustomCSS } from '../../types';
|
|
3
4
|
declare const __propDef: {
|
|
4
5
|
props: {
|
|
5
6
|
id: string;
|
|
6
7
|
configuration: Record<string, AppInput>;
|
|
7
8
|
staticOutputs?: string[] | undefined;
|
|
9
|
+
customCss?: ComponentCustomCSS<'container'> | undefined;
|
|
10
|
+
render: boolean;
|
|
8
11
|
};
|
|
9
12
|
events: {
|
|
10
13
|
[evt: string]: CustomEvent<any>;
|