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,141 @@
|
|
|
1
|
+
<script>import { onMount, getContext } from 'svelte';
|
|
2
|
+
import { LayoutDashboardIcon, MousePointer2, CurlyBraces } from 'lucide-svelte';
|
|
3
|
+
import SimpleEditor from '../../../SimpleEditor.svelte';
|
|
4
|
+
import { emptyString } from '../../../../utils';
|
|
5
|
+
import { Tab, TabContent, Tabs } from '../../../common';
|
|
6
|
+
import ListItem from './ListItem.svelte';
|
|
7
|
+
import { isOpenStore } from './store';
|
|
8
|
+
import CssProperty from './CssProperty.svelte';
|
|
9
|
+
import { components } from '../component';
|
|
10
|
+
const TITLE_PREFIX = 'Css.';
|
|
11
|
+
const { app } = getContext('AppEditorContext');
|
|
12
|
+
let rawCode = '';
|
|
13
|
+
let viewJsonSchema = false;
|
|
14
|
+
$: rawCode && parseJson();
|
|
15
|
+
let jsonError = '';
|
|
16
|
+
function parseJson() {
|
|
17
|
+
try {
|
|
18
|
+
$app.css = JSON.parse(rawCode ?? '');
|
|
19
|
+
jsonError = '';
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
jsonError = e.message;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function switchTab(asJson) {
|
|
26
|
+
viewJsonSchema = asJson;
|
|
27
|
+
if (asJson) {
|
|
28
|
+
rawCode = JSON.stringify($app.css, null, 2);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
parseJson();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const entries = [
|
|
35
|
+
{
|
|
36
|
+
type: 'app',
|
|
37
|
+
name: 'App',
|
|
38
|
+
icon: LayoutDashboardIcon,
|
|
39
|
+
ids: ['viewer', 'grid', 'component']
|
|
40
|
+
},
|
|
41
|
+
...Object.values(components).map(({ name, icon, data: { type, customCss } }) => ({
|
|
42
|
+
type,
|
|
43
|
+
name,
|
|
44
|
+
icon,
|
|
45
|
+
ids: Object.keys(customCss ?? {}) ?? []
|
|
46
|
+
}))
|
|
47
|
+
];
|
|
48
|
+
let isCustom = Object.fromEntries(Object.keys(entries).map((k) => [k, false]));
|
|
49
|
+
let newCss = $app.css ?? {};
|
|
50
|
+
entries.forEach((e) => {
|
|
51
|
+
if (!newCss[e.type]) {
|
|
52
|
+
isCustom[e.type] = true;
|
|
53
|
+
newCss[e.type] = {};
|
|
54
|
+
}
|
|
55
|
+
e.ids.forEach((id) => {
|
|
56
|
+
if (!newCss[e.type][id]) {
|
|
57
|
+
newCss[e.type][id] = { style: '', class: '' };
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
e.ids
|
|
61
|
+
.map((id) => newCss[e.type][id].class != '' || newCss[e.type][id].style != '')
|
|
62
|
+
.forEach((c) => {
|
|
63
|
+
if (c) {
|
|
64
|
+
isCustom[e.type] = true;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
//@ts-ignore
|
|
69
|
+
$app.css = newCss;
|
|
70
|
+
onMount(() => {
|
|
71
|
+
isOpenStore.addItems([{ name: 'App' }, ...Object.values(components)].map(component => {
|
|
72
|
+
return { [TITLE_PREFIX + component.name]: false };
|
|
73
|
+
}));
|
|
74
|
+
});
|
|
75
|
+
</script>
|
|
76
|
+
|
|
77
|
+
<Tabs
|
|
78
|
+
selected="ui"
|
|
79
|
+
on:selected={(e) => switchTab(e.detail === 'json')}
|
|
80
|
+
class="relative"
|
|
81
|
+
>
|
|
82
|
+
<Tab value="ui" size="xs" class="grow">
|
|
83
|
+
<div class="m-1 center-center">
|
|
84
|
+
<MousePointer2 size={16} />
|
|
85
|
+
<span class="pl-1">UI</span>
|
|
86
|
+
</div>
|
|
87
|
+
</Tab>
|
|
88
|
+
<Tab value="json" size="xs" class="grow">
|
|
89
|
+
<div class="m-1 center-center">
|
|
90
|
+
<CurlyBraces size={16} />
|
|
91
|
+
<span class="pl-1">JSON</span>
|
|
92
|
+
</div>
|
|
93
|
+
</Tab>
|
|
94
|
+
<div slot="content" class="h-full overflow-y-auto">
|
|
95
|
+
<TabContent value="ui">
|
|
96
|
+
{#each entries as { type, name, icon, ids }}
|
|
97
|
+
{#if ids.length > 0}
|
|
98
|
+
<ListItem title={name} prefix={TITLE_PREFIX}>
|
|
99
|
+
<div slot="title" class="flex items-center">
|
|
100
|
+
<svelte:component this={icon} size={18} />
|
|
101
|
+
<span class="ml-1">
|
|
102
|
+
{name}
|
|
103
|
+
</span>
|
|
104
|
+
</div>
|
|
105
|
+
<div class="pb-2">
|
|
106
|
+
{#each ids as id}
|
|
107
|
+
<div class="mb-3">
|
|
108
|
+
{#if $app?.css?.[type][id]}
|
|
109
|
+
<CssProperty
|
|
110
|
+
name={id}
|
|
111
|
+
bind:value={$app.css[type][id]}
|
|
112
|
+
on:focus={() => (isCustom[type] = true)}
|
|
113
|
+
/>
|
|
114
|
+
{/if}
|
|
115
|
+
</div>
|
|
116
|
+
{/each}
|
|
117
|
+
</div>
|
|
118
|
+
</ListItem>
|
|
119
|
+
{/if}
|
|
120
|
+
{/each}
|
|
121
|
+
</TabContent>
|
|
122
|
+
<TabContent value="json">
|
|
123
|
+
{#if !emptyString(jsonError)}
|
|
124
|
+
<span class="text-red-400 text-xs mb-1 flex flex-row-reverse">
|
|
125
|
+
{jsonError}
|
|
126
|
+
</span>
|
|
127
|
+
{:else}
|
|
128
|
+
<div class="py-2" />
|
|
129
|
+
{/if}
|
|
130
|
+
<div class="h-full w-full py-1">
|
|
131
|
+
<SimpleEditor
|
|
132
|
+
autoHeight
|
|
133
|
+
class="editor"
|
|
134
|
+
lang="json"
|
|
135
|
+
bind:code={rawCode}
|
|
136
|
+
fixedOverflowWidgets={false}
|
|
137
|
+
/>
|
|
138
|
+
</div>
|
|
139
|
+
</TabContent>
|
|
140
|
+
</div>
|
|
141
|
+
</Tabs>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: Record<string, never>;
|
|
4
|
+
events: {
|
|
5
|
+
[evt: string]: CustomEvent<any>;
|
|
6
|
+
};
|
|
7
|
+
slots: {};
|
|
8
|
+
};
|
|
9
|
+
export type CssSettingsProps = typeof __propDef.props;
|
|
10
|
+
export type CssSettingsEvents = typeof __propDef.events;
|
|
11
|
+
export type CssSettingsSlots = typeof __propDef.slots;
|
|
12
|
+
export default class CssSettings extends SvelteComponentTyped<CssSettingsProps, CssSettingsEvents, CssSettingsSlots> {
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<script>import { slide } from 'svelte/transition';
|
|
2
|
+
import { ChevronDown } from 'lucide-svelte';
|
|
3
|
+
import { isOpenStore } from './store';
|
|
4
|
+
export let title;
|
|
5
|
+
export let prefix = '';
|
|
6
|
+
$: storeTitle = prefix + title;
|
|
7
|
+
$: isOpen = $isOpenStore[storeTitle];
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<section class="mt-1 mb-2 px-1">
|
|
11
|
+
<button
|
|
12
|
+
on:click|preventDefault={() => isOpenStore.toggle(storeTitle)}
|
|
13
|
+
class="w-full flex justify-between items-center text-gray-700 px-2 py-1
|
|
14
|
+
rounded-sm duration-200 hover:bg-gray-100"
|
|
15
|
+
>
|
|
16
|
+
<h1 class="text-sm font-semibold text-left">
|
|
17
|
+
<slot name="title">
|
|
18
|
+
{title}
|
|
19
|
+
</slot>
|
|
20
|
+
</h1>
|
|
21
|
+
<ChevronDown class="rotate-0 duration-300 {isOpen ? '!rotate-180' : ''}" />
|
|
22
|
+
</button>
|
|
23
|
+
{#if isOpen}
|
|
24
|
+
<div transition:slide|local={{ duration: 300 }} class="px-2">
|
|
25
|
+
<slot />
|
|
26
|
+
</div>
|
|
27
|
+
{/if}
|
|
28
|
+
</section>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
title: string;
|
|
5
|
+
prefix?: string | undefined;
|
|
6
|
+
};
|
|
7
|
+
events: {
|
|
8
|
+
[evt: string]: CustomEvent<any>;
|
|
9
|
+
};
|
|
10
|
+
slots: {
|
|
11
|
+
title: {};
|
|
12
|
+
default: {};
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export type ListItemProps = typeof __propDef.props;
|
|
16
|
+
export type ListItemEvents = typeof __propDef.events;
|
|
17
|
+
export type ListItemSlots = typeof __propDef.slots;
|
|
18
|
+
export default class ListItem extends SvelteComponentTyped<ListItemProps, ListItemEvents, ListItemSlots> {
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
export declare const staticValues: {
|
|
2
|
-
readonly buttonColorOptions: ("blue" | "gray" | "red" | "green" | "dark" | "light")[];
|
|
2
|
+
readonly buttonColorOptions: ("none" | "blue" | "gray" | "red" | "green" | "dark" | "light")[];
|
|
3
3
|
readonly buttonSizeOptions: readonly ["xs", "sm", "md", "lg", "xl"];
|
|
4
4
|
readonly tableSearchOptions: readonly ["By Component", "By Runnable", "Disabled"];
|
|
5
5
|
readonly chartThemeOptions: readonly ["theme1", "theme2", "theme3"];
|
|
6
6
|
readonly textStyleOptions: readonly ["Title", "Subtitle", "Body", "Label", "Caption"];
|
|
7
|
+
readonly currencyOptions: readonly ["USD", "EUR", "GBP", "CAD", "AUD", "JPY", "CNY", "INR", "BRL"];
|
|
8
|
+
readonly localeOptions: readonly ["en-US", "en-GB", "en-IE", "de-DE", "fr-FR", "br-FR", "ja-JP", "pt-TL", "fr-CA", "en-CA"];
|
|
9
|
+
readonly objectFitOptions: readonly ["contain", "cover", "fill"];
|
|
7
10
|
};
|
|
@@ -5,5 +5,8 @@ export const staticValues = {
|
|
|
5
5
|
buttonSizeOptions: ['xs', 'sm', 'md', 'lg', 'xl'],
|
|
6
6
|
tableSearchOptions: ['By Component', 'By Runnable', 'Disabled'],
|
|
7
7
|
chartThemeOptions: ['theme1', 'theme2', 'theme3'],
|
|
8
|
-
textStyleOptions: ['Title', 'Subtitle', 'Body', 'Label', 'Caption']
|
|
8
|
+
textStyleOptions: ['Title', 'Subtitle', 'Body', 'Label', 'Caption'],
|
|
9
|
+
currencyOptions: ['USD', 'EUR', 'GBP', 'CAD', 'AUD', 'JPY', 'CNY', 'INR', 'BRL'],
|
|
10
|
+
localeOptions: ['en-US', 'en-GB', 'en-IE', 'de-DE', 'fr-FR', 'br-FR', 'ja-JP', 'pt-TL', 'fr-CA', 'en-CA'],
|
|
11
|
+
objectFitOptions: ['contain', 'cover', 'fill']
|
|
9
12
|
};
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
<script>import {
|
|
2
|
-
import { classNames } from '../../../../utils';
|
|
1
|
+
<script>import { classNames } from '../../../../utils';
|
|
3
2
|
import { getContext } from 'svelte';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { findGridItem } from '../appUtils';
|
|
4
|
+
import { components } from '../component';
|
|
6
5
|
import PanelSection from '../settingsPanel/common/PanelSection.svelte';
|
|
7
6
|
import ComponentOutputViewer from './ComponentOutputViewer.svelte';
|
|
8
7
|
const { connectingInput, staticOutputs, worldStore, selectedComponent, app } = getContext('AppEditorContext');
|
|
@@ -22,13 +21,16 @@ function connectInput(componentId, path) {
|
|
|
22
21
|
}
|
|
23
22
|
}
|
|
24
23
|
function getComponentNameById(componentId) {
|
|
25
|
-
const component = $app
|
|
24
|
+
const component = findGridItem($app, componentId);
|
|
26
25
|
if (component?.data.type) {
|
|
27
|
-
return
|
|
26
|
+
return components[component?.data.type].name;
|
|
28
27
|
}
|
|
29
28
|
else if (componentId == 'ctx') {
|
|
30
29
|
return 'Context';
|
|
31
30
|
}
|
|
31
|
+
else if (componentId.startsWith('bg_')) {
|
|
32
|
+
return 'Background';
|
|
33
|
+
}
|
|
32
34
|
else {
|
|
33
35
|
return 'Table action';
|
|
34
36
|
}
|
|
@@ -1,13 +1,22 @@
|
|
|
1
|
-
<script>import
|
|
1
|
+
<script>import { Button, Drawer, DrawerContent, Tab, Tabs } from '../../../common';
|
|
2
|
+
import FlowScriptPicker from '../../../flows/pickers/FlowScriptPicker.svelte';
|
|
3
|
+
import PickHubScript from '../../../flows/pickers/PickHubScript.svelte';
|
|
2
4
|
import { Script } from '../../../../gen';
|
|
3
5
|
import { inferArgs } from '../../../../infer';
|
|
4
6
|
import { initialCode } from '../../../../script_helpers';
|
|
5
|
-
import { emptySchema } from '../../../../utils';
|
|
7
|
+
import { capitalize, emptySchema, getScriptByPath } from '../../../../utils';
|
|
8
|
+
import { faCodeBranch } from '@fortawesome/free-solid-svg-icons';
|
|
9
|
+
import { Building, Globe2 } from 'lucide-svelte';
|
|
6
10
|
import { createEventDispatcher, getContext } from 'svelte';
|
|
7
11
|
import { fly } from 'svelte/transition';
|
|
8
|
-
import { defaultCode } from '
|
|
12
|
+
import { defaultCode } from '../component';
|
|
13
|
+
import InlineScriptList from '../settingsPanel/mainInput/InlineScriptList.svelte';
|
|
14
|
+
import WorkspaceScriptList from '../settingsPanel/mainInput/WorkspaceScriptList.svelte';
|
|
9
15
|
export let name;
|
|
10
16
|
export let id;
|
|
17
|
+
let tab = 'inlinescripts';
|
|
18
|
+
let filter = '';
|
|
19
|
+
let picker;
|
|
11
20
|
const { appPath, app } = getContext('AppEditorContext');
|
|
12
21
|
const dispatch = createEventDispatcher();
|
|
13
22
|
async function inferInlineScriptSchema(language, content, schema) {
|
|
@@ -21,9 +30,12 @@ async function inferInlineScriptSchema(language, content, schema) {
|
|
|
21
30
|
}
|
|
22
31
|
async function createInlineScriptByLanguage(language, path, subkind = undefined) {
|
|
23
32
|
const componentType = $app.grid.find((c) => c.data.id === id)?.data?.type;
|
|
24
|
-
const fullPath = `${appPath}/inline-script/${path}`;
|
|
25
33
|
const content = defaultCode(componentType, language) ??
|
|
26
34
|
initialCode(language, Script.kind.SCRIPT, subkind ?? 'flow');
|
|
35
|
+
return newInlineScript(content, language, path);
|
|
36
|
+
}
|
|
37
|
+
async function newInlineScript(content, language, path) {
|
|
38
|
+
const fullPath = `${appPath}/inline-script/${path}`;
|
|
27
39
|
let schema = emptySchema();
|
|
28
40
|
schema = await inferInlineScriptSchema(language, content, schema);
|
|
29
41
|
const newInlineScript = {
|
|
@@ -34,15 +46,80 @@ async function createInlineScriptByLanguage(language, path, subkind = undefined)
|
|
|
34
46
|
};
|
|
35
47
|
dispatch('new', newInlineScript);
|
|
36
48
|
}
|
|
49
|
+
async function pickScript(path) {
|
|
50
|
+
const script = await getScriptByPath(path);
|
|
51
|
+
newInlineScript(script.content, script.language, path);
|
|
52
|
+
}
|
|
53
|
+
async function pickHubScript(path) {
|
|
54
|
+
const script = await getScriptByPath(path);
|
|
55
|
+
newInlineScript(script.content, script.language, path);
|
|
56
|
+
}
|
|
57
|
+
function pickInlineScript(name) {
|
|
58
|
+
const unusedInlineScriptIndex = $app.unusedInlineScripts?.findIndex((script) => script.name === name);
|
|
59
|
+
const unusedInlineScript = $app.unusedInlineScripts?.[unusedInlineScriptIndex];
|
|
60
|
+
$app.unusedInlineScripts.splice(unusedInlineScriptIndex, 1);
|
|
61
|
+
$app = $app;
|
|
62
|
+
dispatch('new', unusedInlineScript.inlineScript);
|
|
63
|
+
}
|
|
37
64
|
const langs = ['deno', 'python3', 'go', 'bash'];
|
|
65
|
+
function loadSchemaFromTriggerable(path, arg1) {
|
|
66
|
+
throw new Error('Function not implemented.');
|
|
67
|
+
}
|
|
38
68
|
</script>
|
|
39
69
|
|
|
40
|
-
<
|
|
41
|
-
|
|
70
|
+
<Drawer bind:this={picker} size="1000px">
|
|
71
|
+
<DrawerContent title="Script/Flow Picker" on:close={picker.closeDrawer}>
|
|
72
|
+
<div>
|
|
73
|
+
<div class="max-w-6xl">
|
|
74
|
+
<Tabs bind:selected={tab}>
|
|
75
|
+
<Tab size="sm" value="inlinescripts">
|
|
76
|
+
<div class="flex gap-2 items-center my-1">
|
|
77
|
+
<Building size={18} />
|
|
78
|
+
Detached Inline Scripts
|
|
79
|
+
</div>
|
|
80
|
+
</Tab>
|
|
81
|
+
<Tab size="sm" value="workspacescripts">
|
|
82
|
+
<div class="flex gap-2 items-center my-1">
|
|
83
|
+
<Building size={18} />
|
|
84
|
+
Workspace Scripts
|
|
85
|
+
</div>
|
|
86
|
+
</Tab>
|
|
87
|
+
|
|
88
|
+
<Tab size="sm" value="hubscripts">
|
|
89
|
+
<div class="flex gap-2 items-center my-1">
|
|
90
|
+
<Globe2 size={18} />
|
|
91
|
+
Hub Scripts
|
|
92
|
+
</div>
|
|
93
|
+
</Tab>
|
|
94
|
+
</Tabs>
|
|
95
|
+
<div class="my-2" />
|
|
96
|
+
<div class="flex flex-col gap-y-16">
|
|
97
|
+
<div class="flex flex-col">
|
|
98
|
+
{#if tab == 'inlinescripts'}
|
|
99
|
+
<InlineScriptList
|
|
100
|
+
on:pick={(e) => pickInlineScript(e.detail)}
|
|
101
|
+
inlineScripts={$app.unusedInlineScripts
|
|
102
|
+
? $app.unusedInlineScripts.map((uis) => uis.name)
|
|
103
|
+
: []}
|
|
104
|
+
/>
|
|
105
|
+
{:else if tab == 'workspacescripts'}
|
|
106
|
+
<WorkspaceScriptList on:pick={(e) => pickScript(e.detail)} />
|
|
107
|
+
{:else if tab == 'hubscripts'}
|
|
108
|
+
<PickHubScript bind:filter on:pick={(e) => pickHubScript(e.detail.path)} />
|
|
109
|
+
{/if}
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
</DrawerContent>
|
|
115
|
+
</Drawer>
|
|
116
|
+
|
|
117
|
+
<div class="flex flex-col px-4 py-2 gap-2 text-sm" in:fly={{ duration: 50 }}>
|
|
118
|
+
<div>Choose a language:</div>
|
|
42
119
|
<div class="flex gap-2 flex-row flex-wrap">
|
|
43
120
|
{#each langs as lang}
|
|
44
121
|
<FlowScriptPicker
|
|
45
|
-
label={lang}
|
|
122
|
+
label={capitalize(lang)}
|
|
46
123
|
{lang}
|
|
47
124
|
on:click={() => {
|
|
48
125
|
createInlineScriptByLanguage(lang, name)
|
|
@@ -57,12 +134,24 @@ const langs = ['deno', 'python3', 'go', 'bash'];
|
|
|
57
134
|
createInlineScriptByLanguage(Script.language.DENO, name, 'pgsql')
|
|
58
135
|
}}
|
|
59
136
|
/>
|
|
60
|
-
<FlowScriptPicker
|
|
137
|
+
<!-- <FlowScriptPicker
|
|
61
138
|
label={`MySQL`}
|
|
62
139
|
lang="mysql"
|
|
63
140
|
on:click={() => {
|
|
64
141
|
createInlineScriptByLanguage(Script.language.DENO, name, 'mysql')
|
|
65
142
|
}}
|
|
66
|
-
/>
|
|
143
|
+
/> -->
|
|
144
|
+
</div>
|
|
145
|
+
|
|
146
|
+
<div class="mt-4">
|
|
147
|
+
<Button
|
|
148
|
+
on:click={() => picker?.openDrawer()}
|
|
149
|
+
size="sm"
|
|
150
|
+
color="blue"
|
|
151
|
+
startIcon={{ icon: faCodeBranch }}
|
|
152
|
+
btnClasses="truncate"
|
|
153
|
+
>
|
|
154
|
+
or fork a detached/Workspace/Hub script
|
|
155
|
+
</Button>
|
|
67
156
|
</div>
|
|
68
157
|
</div>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script>import Button from '../../../common/button/Button.svelte';
|
|
2
2
|
import { faTrash } from '@fortawesome/free-solid-svg-icons';
|
|
3
3
|
import { createEventDispatcher, getContext, onMount } from 'svelte';
|
|
4
|
-
import { CheckCircle, Code2, X } from 'lucide-svelte';
|
|
4
|
+
import { CheckCircle, Code2, Maximize2, Trash2, X } from 'lucide-svelte';
|
|
5
5
|
import InlineScriptEditorDrawer from './InlineScriptEditorDrawer.svelte';
|
|
6
6
|
import { inferArgs } from '../../../../infer';
|
|
7
7
|
import Badge from '../../../common/badge/Badge.svelte';
|
|
@@ -9,6 +9,7 @@ import { fly } from 'svelte/transition';
|
|
|
9
9
|
import Editor from '../../../Editor.svelte';
|
|
10
10
|
import { emptySchema, scriptLangToEditorLang } from '../../../../utils';
|
|
11
11
|
import Tooltip from '../../../Tooltip.svelte';
|
|
12
|
+
import Popover from '../../../Popover.svelte';
|
|
12
13
|
let inlineScriptEditorDrawer;
|
|
13
14
|
export let inlineScript;
|
|
14
15
|
export let name = undefined;
|
|
@@ -39,21 +40,51 @@ let runLoading = false;
|
|
|
39
40
|
<InlineScriptEditorDrawer {editor} bind:this={inlineScriptEditorDrawer} bind:inlineScript />
|
|
40
41
|
|
|
41
42
|
<div class="h-full flex flex-col gap-1" transition:fly|local={{ duration: 50 }}>
|
|
42
|
-
<div class="flex justify-between w-full gap-
|
|
43
|
+
<div class="flex justify-between w-full gap-2 px-2 pt-1 flex-row items-center">
|
|
43
44
|
{#if name !== undefined}
|
|
44
45
|
<input bind:value={name} placeholder="Inline script name" />
|
|
45
46
|
{/if}
|
|
46
47
|
<div class="flex w-full flex-row gap-2 items-center justify-end">
|
|
47
48
|
{#if validCode}
|
|
48
|
-
<Badge color="green">
|
|
49
|
+
<Badge color="green" baseClass="!p-0 !h-[30px] aspect-square center-center">
|
|
49
50
|
<CheckCircle size={16} />
|
|
50
51
|
</Badge>
|
|
51
52
|
{:else}
|
|
52
|
-
<Badge color="red">
|
|
53
|
+
<Badge color="red" baseClass="!p-0 !h-[30px] aspect-square center-center">
|
|
53
54
|
<X size={16} />
|
|
54
55
|
</Badge>
|
|
55
56
|
{/if}
|
|
56
57
|
|
|
58
|
+
{#if id.startsWith('unused-') || id.startsWith('bg_')}
|
|
59
|
+
<Popover notClickable placement="bottom">
|
|
60
|
+
<Button
|
|
61
|
+
size="xs"
|
|
62
|
+
color="red"
|
|
63
|
+
variant="border"
|
|
64
|
+
btnClasses="!px-1.5"
|
|
65
|
+
aria-label="Delete"
|
|
66
|
+
on:click={() => dispatch('delete')}
|
|
67
|
+
>
|
|
68
|
+
<Trash2 size={16} />
|
|
69
|
+
</Button>
|
|
70
|
+
<svelte:fragment slot="text">Delete</svelte:fragment>
|
|
71
|
+
</Popover>
|
|
72
|
+
{/if}
|
|
73
|
+
<Popover notClickable placement="bottom">
|
|
74
|
+
<Button
|
|
75
|
+
size="xs"
|
|
76
|
+
color="blue"
|
|
77
|
+
variant="border"
|
|
78
|
+
btnClasses="!px-1.5"
|
|
79
|
+
aria-label="Open full editor"
|
|
80
|
+
on:click={() => {
|
|
81
|
+
inlineScriptEditorDrawer?.openDrawer()
|
|
82
|
+
}}
|
|
83
|
+
>
|
|
84
|
+
<Maximize2 size={16} />
|
|
85
|
+
</Button>
|
|
86
|
+
<svelte:fragment slot="text">Open full editor</svelte:fragment>
|
|
87
|
+
</Popover>
|
|
57
88
|
<Button
|
|
58
89
|
variant="border"
|
|
59
90
|
size="xs"
|
|
@@ -62,18 +93,9 @@ let runLoading = false;
|
|
|
62
93
|
editor.format()
|
|
63
94
|
}}
|
|
64
95
|
>
|
|
65
|
-
Format <Tooltip>Ctrl+S</Tooltip>
|
|
96
|
+
Format <Tooltip placement="bottom">Ctrl+S</Tooltip>
|
|
66
97
|
</Button>
|
|
67
|
-
{#if id
|
|
68
|
-
<Button
|
|
69
|
-
size="xs"
|
|
70
|
-
color="light"
|
|
71
|
-
variant="border"
|
|
72
|
-
iconOnly
|
|
73
|
-
startIcon={{ icon: faTrash }}
|
|
74
|
-
on:click={() => dispatch('delete')}
|
|
75
|
-
/>
|
|
76
|
-
{:else if $runnableComponents[id] != undefined}
|
|
98
|
+
{#if $runnableComponents[id] != undefined}
|
|
77
99
|
<Button
|
|
78
100
|
loading={runLoading}
|
|
79
101
|
size="xs"
|
|
@@ -85,22 +107,9 @@ let runLoading = false;
|
|
|
85
107
|
}}
|
|
86
108
|
>
|
|
87
109
|
Run
|
|
88
|
-
<Tooltip light>Ctrl+Enter</Tooltip>
|
|
110
|
+
<Tooltip light placement="bottom">Ctrl+Enter</Tooltip>
|
|
89
111
|
</Button>
|
|
90
112
|
{/if}
|
|
91
|
-
|
|
92
|
-
<Button
|
|
93
|
-
size="xs"
|
|
94
|
-
color="blue"
|
|
95
|
-
on:click={() => {
|
|
96
|
-
inlineScriptEditorDrawer?.openDrawer()
|
|
97
|
-
}}
|
|
98
|
-
>
|
|
99
|
-
<div class="flex gap-1 items-center">
|
|
100
|
-
<Code2 size={16} />
|
|
101
|
-
Open full editor
|
|
102
|
-
</div>
|
|
103
|
-
</Button>
|
|
104
113
|
</div>
|
|
105
114
|
</div>
|
|
106
115
|
|
|
@@ -3,11 +3,14 @@ import Button from '../../../common/button/Button.svelte';
|
|
|
3
3
|
import FlowModuleScript from '../../../flows/content/FlowModuleScript.svelte';
|
|
4
4
|
import FlowPathViewer from '../../../flows/content/FlowPathViewer.svelte';
|
|
5
5
|
import { inferArgs } from '../../../../infer';
|
|
6
|
+
import { workspaceStore } from '../../../../stores';
|
|
6
7
|
import { emptySchema, getScriptByPath } from '../../../../utils';
|
|
7
8
|
import { faCodeBranch, faExternalLinkAlt, faEye, faPen } from '@fortawesome/free-solid-svg-icons';
|
|
8
9
|
import { clearResultAppInput } from '../../utils';
|
|
9
10
|
import EmptyInlineScript from './EmptyInlineScript.svelte';
|
|
10
11
|
import InlineScriptEditor from './InlineScriptEditor.svelte';
|
|
12
|
+
import { computeFields } from './utils';
|
|
13
|
+
import { deepEqual } from 'fast-equals';
|
|
11
14
|
export let componentInput;
|
|
12
15
|
export let id;
|
|
13
16
|
async function fork(path) {
|
|
@@ -34,6 +37,22 @@ async function fork(path) {
|
|
|
34
37
|
}
|
|
35
38
|
let drawerFlowViewer;
|
|
36
39
|
let flowPath = '';
|
|
40
|
+
async function refreshScript(x) {
|
|
41
|
+
let { schema } = await getScriptByPath(x.path);
|
|
42
|
+
if (!deepEqual(x.schema, schema)) {
|
|
43
|
+
x.schema = schema;
|
|
44
|
+
if (componentInput?.type == 'runnable') {
|
|
45
|
+
componentInput.fields = computeFields(schema, false, componentInput.fields);
|
|
46
|
+
}
|
|
47
|
+
componentInput = componentInput;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
$: if (componentInput &&
|
|
51
|
+
componentInput.type == 'runnable' &&
|
|
52
|
+
componentInput?.runnable?.type === 'runnableByPath' &&
|
|
53
|
+
componentInput.runnable.runType == 'script') {
|
|
54
|
+
refreshScript(componentInput.runnable);
|
|
55
|
+
}
|
|
37
56
|
</script>
|
|
38
57
|
|
|
39
58
|
<Drawer bind:this={drawerFlowViewer} size="1200px">
|
|
@@ -116,7 +135,8 @@ let flowPath = '';
|
|
|
116
135
|
startIcon={{ icon: faEye }}
|
|
117
136
|
endIcon={{ icon: faExternalLinkAlt }}
|
|
118
137
|
target="_blank"
|
|
119
|
-
href="/flows/get/{componentInput?.['runnable']?.path}"
|
|
138
|
+
href="/flows/get/{componentInput?.['runnable']?.path}?workspace_id={$workspaceStore}"
|
|
139
|
+
>Details page</Button
|
|
120
140
|
>
|
|
121
141
|
</div>
|
|
122
142
|
<FlowPathViewer path={componentInput.runnable.path} />
|