windmill-components 1.269.3 → 1.291.4
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/package/ata/apis.d.ts +8 -5
- package/package/ata/apis.js +20 -9
- package/package/ata/edgeCases.js +5 -1
- package/package/ata/index.d.ts +3 -3
- package/package/ata/index.js +51 -28
- package/package/common.d.ts +1 -0
- package/package/components/AddUser.svelte +15 -6
- package/package/components/ApiConnectForm.svelte +1 -1
- package/package/components/ArgEnum.svelte +1 -1
- package/package/components/ArgEnum.svelte.d.ts +1 -1
- package/package/components/ArgInfo.svelte +2 -1
- package/package/components/ArgInput.svelte +7 -6
- package/package/components/ArgInput.svelte.d.ts +1 -1
- package/package/components/ArrayTypeNarrowing.svelte +2 -0
- package/package/components/CenteredModal.svelte +5 -2
- package/package/components/ChangeInstanceUsername.svelte +123 -0
- package/package/components/ChangeInstanceUsername.svelte.d.ts +20 -0
- package/package/components/ContentSearch.svelte +3 -4
- package/package/components/ContentSearch.svelte.d.ts +0 -3
- package/package/components/DateTimeInput.svelte +73 -9
- package/package/components/DateTimeInput.svelte.d.ts +8 -1
- package/package/components/DefaultScripts.svelte +26 -0
- package/package/components/DefaultScripts.svelte.d.ts +14 -0
- package/package/components/DefaultScriptsInner.svelte +75 -0
- package/package/components/DefaultScriptsInner.svelte.d.ts +14 -0
- package/package/components/Dev.svelte +59 -17
- package/package/components/DisplayResult.svelte +73 -67
- package/package/components/DurationMs.svelte +9 -8
- package/package/components/DurationMs.svelte.d.ts +1 -0
- package/package/components/Editor.svelte +23 -7
- package/package/components/FieldHeader.svelte +7 -7
- package/package/components/FlowBuilder.svelte +24 -13
- package/package/components/FlowBuilder.svelte.d.ts +0 -3
- package/package/components/FlowLoopIterationPreview.svelte +6 -5
- package/package/components/FlowMetadata.svelte +6 -2
- package/package/components/FlowPreviewContent.svelte +5 -5
- package/package/components/FolderEditor.svelte +20 -39
- package/package/components/GroupEditor.svelte +1 -1
- package/package/components/HighlightCode.svelte +7 -5
- package/package/components/IconedResourceType.svelte +5 -3
- package/package/components/IconedResourceType.svelte.d.ts +21 -7
- package/package/components/InputTransformForm.svelte +6 -1
- package/package/components/InstanceSettings.svelte +29 -17
- package/package/components/InstanceSettings.svelte.d.ts +3 -0
- package/package/components/InviteGlobalUser.svelte +1 -1
- package/package/components/JobArgs.svelte +20 -7
- package/package/components/JobStatus.svelte +8 -2
- package/package/components/LightweightArgInput.svelte +30 -14
- package/package/components/LightweightSchemaForm.svelte +1 -0
- package/package/components/LogViewer.svelte +21 -6
- package/package/components/ModulePreview.svelte +19 -11
- package/package/components/ModulePreview.svelte.d.ts +3 -2
- package/package/components/ObjectResourceInput.svelte +2 -0
- package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
- package/package/components/Password.svelte +5 -2
- package/package/components/Password.svelte.d.ts +1 -0
- package/package/components/Path.svelte +10 -12
- package/package/components/ResourcePicker.svelte +28 -9
- package/package/components/ResourcePicker.svelte.d.ts +1 -0
- package/package/components/RunChart.svelte +1 -0
- package/package/components/RunForm.svelte +9 -17
- package/package/components/RunFormAdvancedPopup.svelte +11 -12
- package/package/components/S3FilePicker.svelte +1 -0
- package/package/components/ScheduleEditorInner.svelte +10 -9
- package/package/components/ScheduleEditorInner.svelte.d.ts +2 -2
- package/package/components/SchemaEditor.svelte +12 -1
- package/package/components/SchemaForm.svelte +1 -2
- package/package/components/SchemaModal.svelte +2 -2
- package/package/components/ScriptBuilder.svelte +152 -79
- package/package/components/ScriptBuilder.svelte.d.ts +1 -1
- package/package/components/ScriptEditor.svelte +8 -9
- package/package/components/ScriptSchedules.svelte +99 -0
- package/package/components/ScriptSchedules.svelte.d.ts +20 -0
- package/package/components/ShareModal.svelte +1 -0
- package/package/components/StringTypeNarrowing.svelte +9 -3
- package/package/components/SuperadminSettings.svelte +114 -10
- package/package/components/TestJobLoader.svelte +8 -0
- package/package/components/TestJobLoader.svelte.d.ts +1 -0
- package/package/components/TimeAgo.svelte +2 -2
- package/package/components/TimelineBar.svelte +5 -2
- package/package/components/Toggle.svelte +5 -2
- package/package/components/Toggle.svelte.d.ts +1 -0
- package/package/components/Tooltip.svelte +13 -2
- package/package/components/Tooltip.svelte.d.ts +1 -0
- package/package/components/Uptodate.svelte +12 -6
- package/package/components/UserSettings.svelte +87 -73
- package/package/components/WorkerTagPicker.svelte +4 -2
- package/package/components/WorkflowTimeline.svelte +106 -0
- package/package/components/WorkflowTimeline.svelte.d.ts +18 -0
- package/package/components/WorkspaceGroup.svelte +1 -0
- package/package/components/apps/components/buttons/AppButton.svelte +9 -19
- package/package/components/apps/components/display/AppCustomComponent.svelte +2 -4
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +246 -94
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte.d.ts +0 -3
- package/package/components/apps/components/display/dbtable/DbExplorerCount.svelte +17 -5
- package/package/components/apps/components/display/dbtable/DbExplorerCount.svelte.d.ts +6 -2
- package/package/components/apps/components/display/dbtable/DeleteRow.svelte +6 -4
- package/package/components/apps/components/display/dbtable/DeleteRow.svelte.d.ts +3 -3
- package/package/components/apps/components/display/dbtable/InsertRow.svelte +55 -37
- package/package/components/apps/components/display/dbtable/InsertRow.svelte.d.ts +17 -1
- package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte +4 -3
- package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte.d.ts +2 -2
- package/package/components/apps/components/display/dbtable/UpdateCell.svelte +5 -4
- package/package/components/apps/components/display/dbtable/UpdateCell.svelte.d.ts +3 -3
- package/package/components/apps/components/display/dbtable/queries/count.d.ts +4 -0
- package/package/components/apps/components/display/dbtable/queries/count.js +140 -0
- package/package/components/apps/components/display/dbtable/queries/delete.d.ts +3 -0
- package/package/components/apps/components/display/dbtable/queries/delete.js +68 -0
- package/package/components/apps/components/display/dbtable/queries/insert.d.ts +5 -0
- package/package/components/apps/components/display/dbtable/queries/insert.js +121 -0
- package/package/components/apps/components/display/dbtable/queries/select.d.ts +7 -0
- package/package/components/apps/components/display/dbtable/queries/select.js +196 -0
- package/package/components/apps/components/display/dbtable/queries/update.d.ts +3 -0
- package/package/components/apps/components/display/dbtable/queries/update.js +75 -0
- package/package/components/apps/components/display/dbtable/utils.d.ts +79 -0
- package/package/components/apps/components/display/dbtable/utils.js +284 -309
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +39 -19
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte.d.ts +0 -2
- package/package/components/apps/components/display/table/AppAggridTable.svelte +4 -1
- package/package/components/apps/components/display/table/AppTable.svelte +4 -0
- package/package/components/apps/components/display/table/AppTable.svelte.d.ts +2 -2
- package/package/components/apps/components/display/table/utils.js +42 -0
- package/package/components/apps/components/helpers/InputValue.svelte +10 -8
- package/package/components/apps/components/helpers/InputValue.svelte.d.ts +1 -0
- package/package/components/apps/components/helpers/RefreshButton.svelte +1 -1
- package/package/components/apps/components/helpers/ResolveConfig.svelte +2 -0
- package/package/components/apps/components/helpers/RunnableComponent.svelte +6 -2
- package/package/components/apps/components/helpers/eval.d.ts +2 -2
- package/package/components/apps/components/helpers/eval.js +33 -11
- package/package/components/apps/components/inputs/AppCheckbox.svelte +4 -0
- package/package/components/apps/components/inputs/AppCheckbox.svelte.d.ts +1 -0
- package/package/components/apps/components/inputs/AppDateInput.svelte +2 -2
- package/package/components/apps/components/inputs/AppDateTimeInput.svelte +121 -0
- package/package/components/apps/components/inputs/AppDateTimeInput.svelte.d.ts +22 -0
- package/package/components/apps/components/inputs/AppSelect.svelte +5 -0
- package/package/components/apps/components/inputs/AppSelect.svelte.d.ts +1 -0
- package/package/components/apps/components/inputs/AppTimeInput.svelte +103 -0
- package/package/components/apps/components/inputs/AppTimeInput.svelte.d.ts +21 -0
- package/package/components/apps/components/layout/AppConditionalWrapper.svelte +0 -1
- package/package/components/apps/components/layout/AppDecisionTree.svelte +12 -0
- package/package/components/apps/components/layout/AppStepper.svelte +4 -2
- package/package/components/apps/editor/AppEditor.svelte +19 -4
- package/package/components/apps/editor/AppEditorHeader.svelte +42 -14
- package/package/components/apps/editor/AppEditorHeader.svelte.d.ts +2 -0
- package/package/components/apps/editor/AppTimeline.svelte +4 -4
- package/package/components/apps/editor/DecisionTreeDebug.svelte +1 -1
- package/package/components/apps/editor/DeploymentHistory.svelte +1 -1
- package/package/components/apps/editor/GridEditorMenu.svelte +3 -3
- package/package/components/apps/editor/RecomputeAllComponents.svelte +1 -1
- package/package/components/apps/editor/SettingsPanel.svelte +2 -0
- package/package/components/apps/editor/TabsDebug.svelte +2 -2
- package/package/components/apps/editor/appUtils.js +8 -0
- package/package/components/apps/editor/component/Component.svelte +21 -0
- package/package/components/apps/editor/component/components.d.ts +168 -9
- package/package/components/apps/editor/component/components.js +203 -10
- package/package/components/apps/editor/component/sets.js +2 -0
- package/package/components/apps/editor/componentsPanel/ComponentList.svelte +3 -3
- package/package/components/apps/editor/componentsPanel/ThemeList.svelte +1 -0
- package/package/components/apps/editor/componentsPanel/ThemeList.svelte.d.ts +2 -0
- package/package/components/apps/editor/componentsPanel/ThemeRow.svelte +8 -4
- package/package/components/apps/editor/componentsPanel/componentControlUtils.js +2 -0
- package/package/components/apps/editor/componentsPanel/quickStyleProperties.js +6 -0
- package/package/components/apps/editor/contextPanel/DebugPanel.svelte +178 -0
- package/package/components/apps/editor/contextPanel/DebugPanel.svelte.d.ts +14 -0
- package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +3 -1
- package/package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +9 -18
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +11 -16
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptHiddenRunnable.svelte +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/RunButton.svelte +4 -12
- package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +27 -4
- package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +3 -1
- package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +68 -28
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/GridCondition.svelte +57 -43
- package/package/components/apps/editor/settingsPanel/GridTab.svelte +15 -12
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +9 -3
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +4 -0
- package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +8 -0
- package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +2 -0
- package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte +6 -0
- package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte.d.ts +2 -0
- package/package/components/apps/editor/settingsPanel/Recompute.svelte +4 -5
- package/package/components/apps/editor/settingsPanel/Recompute.svelte.d.ts +3 -0
- package/package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte +4 -2
- package/package/components/apps/editor/settingsPanel/inputEditor/DBTableSelect.svelte +42 -0
- package/package/components/apps/editor/settingsPanel/inputEditor/DBTableSelect.svelte.d.ts +19 -0
- package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +24 -2
- package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte.d.ts +2 -0
- package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +25 -15
- package/package/components/apps/editor/settingsPanel/script/BackgroundScriptSettings.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/script/ComponentScriptSettings.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/script/shared/ScriptSettingHeader.svelte +8 -1
- package/package/components/apps/editor/settingsPanel/script/shared/ScriptSettingHeader.svelte.d.ts +1 -0
- package/package/components/apps/editor/settingsPanel/script/shared/ScriptTriggers.svelte +13 -0
- package/package/components/apps/inputType.d.ts +2 -2
- package/package/components/apps/svelte-select/lib/Select.svelte +2 -1
- package/package/components/apps/types.d.ts +5 -3
- package/package/components/build_workers.js +9 -13
- package/package/components/common/button/Button.svelte +78 -36
- package/package/components/common/button/Button.svelte.d.ts +7 -0
- package/package/components/common/button/model.d.ts +0 -1
- package/package/components/common/button/model.js +0 -8
- package/package/components/common/calendarPicker/CalendarPicker.svelte +11 -37
- package/package/components/common/confirmationModal/ConfirmationModal.svelte +11 -10
- package/package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +5 -12
- package/package/components/common/confirmationModal/UnsavedConfirmationModal.svelte.d.ts +0 -3
- package/package/components/common/table/ScriptRow.svelte +28 -1
- package/package/components/common/tabs/Tab.svelte +6 -4
- package/package/components/common/tabs/Tab.svelte.d.ts +1 -0
- package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +4 -2
- package/package/components/copilot/IteratorGen.svelte +10 -5
- package/package/components/copilot/MetadataGen.svelte +6 -1
- package/package/components/copilot/PredicateGen.svelte +3 -4
- package/package/components/copilot/ScriptFix.svelte +1 -1
- package/package/components/copilot/StepGen.svelte +2 -1
- package/package/components/copilot/StepGen.svelte.d.ts +1 -0
- package/package/components/copilot/StepInputGen.svelte +13 -7
- package/package/components/copilot/StepInputsGen.svelte +12 -7
- package/package/components/copilot/lib.d.ts +1 -1
- package/package/components/copilot/lib.js +2 -2
- package/package/components/details/Menu.svelte +11 -6
- package/package/components/details/Menu.svelte.d.ts +1 -3
- package/package/components/details/WebhooksPanel.svelte +1 -1
- package/package/components/flows/content/FlowBranchesAllWrapper.svelte +11 -10
- package/package/components/flows/content/FlowBranchesOneWrapper.svelte +11 -9
- package/package/components/flows/content/FlowInputs.svelte +84 -238
- package/package/components/flows/content/FlowLoop.svelte +25 -16
- package/package/components/flows/content/FlowModuleComponent.svelte +17 -2
- package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowModuleWrapper.svelte +5 -0
- package/package/components/flows/content/FlowSchedules.svelte +75 -1
- package/package/components/flows/content/FlowSettings.svelte +5 -0
- package/package/components/flows/content/SuspendDrawer.svelte +1 -1
- package/package/components/flows/flowStateUtils.d.ts +1 -1
- package/package/components/flows/flowStateUtils.js +2 -2
- package/package/components/flows/idUtils.js +12 -1
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +2 -2
- package/package/components/flows/map/InsertModuleButton.svelte +1 -3
- package/package/components/flows/map/MapItem.svelte +1 -1
- package/package/components/flows/pickers/FlowScriptPicker.svelte.d.ts +1 -1
- package/package/components/flows/scheduleUtils.d.ts +2 -1
- package/package/components/flows/scheduleUtils.js +2 -1
- package/package/components/home/ItemsList.svelte +10 -9
- package/package/components/icons/AsanaIcon.svelte +5 -0
- package/package/components/icons/AsanaIcon.svelte.d.ts +17 -0
- package/package/components/icons/BitbucketIcon.svelte +19 -0
- package/package/components/icons/BitbucketIcon.svelte.d.ts +17 -0
- package/package/components/icons/CACertificate.svelte +7 -0
- package/package/components/icons/CACertificate.svelte.d.ts +17 -0
- package/package/components/icons/CurrencyApiIcon.svelte +24 -0
- package/package/components/icons/CurrencyApiIcon.svelte.d.ts +17 -0
- package/package/components/icons/DynatraceIcon.svelte +26 -0
- package/package/components/icons/DynatraceIcon.svelte.d.ts +17 -0
- package/package/components/icons/EdgeDbIcon.svelte +25 -0
- package/package/components/icons/EdgeDbIcon.svelte.d.ts +17 -0
- package/package/components/icons/GitIcon.svelte +7 -0
- package/package/components/icons/GitIcon.svelte.d.ts +17 -0
- package/package/components/icons/GoogleCloudIcon.svelte +20 -0
- package/package/components/icons/GoogleCloudIcon.svelte.d.ts +17 -0
- package/package/components/icons/IpinfoIcon.svelte +8 -0
- package/package/components/icons/IpinfoIcon.svelte.d.ts +17 -0
- package/package/components/icons/MSTeamsIcon.svelte +5 -0
- package/package/components/icons/MSTeamsIcon.svelte.d.ts +17 -0
- package/package/components/icons/MailgunIcon.svelte +11 -0
- package/package/components/icons/MailgunIcon.svelte.d.ts +17 -0
- package/package/components/icons/PushoverIcon.svelte +8 -0
- package/package/components/icons/PushoverIcon.svelte.d.ts +17 -0
- package/package/components/icons/QuickbooksIcon.svelte +5 -0
- package/package/components/icons/QuickbooksIcon.svelte.d.ts +17 -0
- package/package/components/icons/ResendIcon.svelte +7 -0
- package/package/components/icons/ResendIcon.svelte.d.ts +17 -0
- package/package/components/icons/TrelloIcon.svelte +5 -0
- package/package/components/icons/TrelloIcon.svelte.d.ts +17 -0
- package/package/components/icons/TwilioIcon.svelte +11 -0
- package/package/components/icons/TwilioIcon.svelte.d.ts +17 -0
- package/package/components/icons/ZendeskIcon.svelte +11 -0
- package/package/components/icons/ZendeskIcon.svelte.d.ts +17 -0
- package/package/components/icons/index.d.ts +36 -1
- package/package/components/icons/index.js +37 -2
- package/package/components/instanceSettings.js +38 -1
- package/package/components/jobs/JobPreview.svelte +4 -1
- package/package/components/runs/JobLoader.svelte +6 -4
- package/package/components/runs/JobPreview.svelte +15 -1
- package/package/components/runs/ManuelDatePicker.svelte +1 -1
- package/package/components/runs/NoWorkerWithTagWarning.svelte +5 -3
- package/package/components/runs/RunRow.svelte +5 -19
- package/package/components/runs/RunsFilter.svelte +1 -1
- package/package/components/runs/RunsTable.svelte +1 -1
- package/package/components/scriptEditor/LogPanel.svelte +12 -0
- package/package/components/settings/PremiumInfo.svelte +92 -31
- package/package/components/settings/WorkspaceUserSettings.svelte +42 -6
- package/package/components/sidebar/changelogs.js +20 -0
- package/package/components/table/AutoDataTable.svelte +18 -4
- package/package/consts.d.ts +0 -3
- package/package/consts.js +0 -3
- package/package/enterpriseUtils.d.ts +1 -0
- package/package/enterpriseUtils.js +17 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/index.d.ts +5 -2
- package/package/gen/models/LargeFileStorage.d.ts +3 -1
- package/package/gen/models/LargeFileStorage.js +2 -0
- package/package/gen/models/User.d.ts +0 -2
- package/package/gen/models/UserUsage.d.ts +4 -0
- package/package/gen/models/WorkflowStatus.d.ts +6 -0
- package/package/gen/models/WorkflowStatusRecord.d.ts +2 -0
- package/package/gen/models/WorkflowStatusRecord.js +5 -0
- package/package/gen/models/WorkflowTask.d.ts +4 -0
- package/package/gen/models/WorkflowTask.js +5 -0
- package/package/gen/models/WorkspaceDefaultScripts.d.ts +5 -0
- package/package/gen/models/WorkspaceDefaultScripts.js +5 -0
- package/package/gen/services/AdminService.d.ts +6 -9
- package/package/gen/services/AdminService.js +6 -7
- package/package/gen/services/FolderService.d.ts +3 -2
- package/package/gen/services/JobService.d.ts +27 -2
- package/package/gen/services/JobService.js +22 -2
- package/package/gen/services/SettingService.d.ts +11 -0
- package/package/gen/services/SettingService.js +13 -0
- package/package/gen/services/UserService.d.ts +14 -9
- package/package/gen/services/UserService.js +20 -7
- package/package/gen/services/WorkspaceService.d.ts +62 -0
- package/package/gen/services/WorkspaceService.js +76 -0
- package/package/infer.d.ts +20 -1
- package/package/infer.js +39 -19
- package/package/script_helpers.d.ts +7 -6
- package/package/script_helpers.js +24 -7
- package/package/scripts.d.ts +11 -0
- package/package/scripts.js +38 -1
- package/package/stores.d.ts +2 -1
- package/package/stores.js +2 -0
- package/package/utils.d.ts +1 -1
- package/package/utils.js +3 -3
- package/package.json +3 -4
- package/package/components/common/confirmationModal/model.d.ts +0 -9
- package/package/components/common/confirmationModal/model.js +0 -1
- package/package/gen/models/NewUser.d.ts +0 -5
- package/package/gen/models/Usage.d.ts +0 -3
- /package/package/gen/models/{NewUser.js → UserUsage.js} +0 -0
- /package/package/gen/models/{Usage.js → WorkflowStatus.js} +0 -0
|
@@ -9,8 +9,8 @@ import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte
|
|
|
9
9
|
import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte';
|
|
10
10
|
import FlowIcon from './home/FlowIcon.svelte';
|
|
11
11
|
import { Alert, Button } from './common';
|
|
12
|
+
import { goto } from '$app/navigation';
|
|
12
13
|
import YAML from 'yaml';
|
|
13
|
-
import { createEventDispatcher } from 'svelte';
|
|
14
14
|
let search = '';
|
|
15
15
|
export async function open(nsearch) {
|
|
16
16
|
isOpen = true;
|
|
@@ -71,7 +71,6 @@ $: counts =
|
|
|
71
71
|
flows: getCounts(filteredFlowItems.length),
|
|
72
72
|
scripts: getCounts(filteredScriptItems.length)
|
|
73
73
|
};
|
|
74
|
-
const dispatch = createEventDispatcher();
|
|
75
74
|
</script>
|
|
76
75
|
|
|
77
76
|
<SearchItems
|
|
@@ -262,7 +261,7 @@ const dispatch = createEventDispatcher();
|
|
|
262
261
|
<div class="flex gap-2">
|
|
263
262
|
<Button
|
|
264
263
|
on:click|once={() => {
|
|
265
|
-
|
|
264
|
+
goto(`/scripts/edit/${item.path}?no_draft=true`)
|
|
266
265
|
}}
|
|
267
266
|
color="light"
|
|
268
267
|
size="sm"
|
|
@@ -302,7 +301,7 @@ const dispatch = createEventDispatcher();
|
|
|
302
301
|
<div class="flex gap-2">
|
|
303
302
|
<Button
|
|
304
303
|
on:click|once={() => {
|
|
305
|
-
|
|
304
|
+
goto(`/flows/edit/${item.path}?no_draft=true`)
|
|
306
305
|
}}
|
|
307
306
|
color="light"
|
|
308
307
|
size="sm"
|
|
@@ -1,21 +1,85 @@
|
|
|
1
|
-
<script>
|
|
1
|
+
<script>import { createEventDispatcher } from 'svelte';
|
|
2
|
+
import { Button } from './common';
|
|
3
|
+
export let value = undefined;
|
|
2
4
|
export let autofocus = false;
|
|
3
|
-
let
|
|
4
|
-
let
|
|
5
|
-
let
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
export let useDropdown = false;
|
|
6
|
+
export let minDate = undefined;
|
|
7
|
+
export let maxDate = undefined;
|
|
8
|
+
let date = undefined;
|
|
9
|
+
let time = undefined;
|
|
10
|
+
function parseValue(value = undefined) {
|
|
11
|
+
let dateFromValue = value ? new Date(value) : undefined;
|
|
12
|
+
date = isValidDate(dateFromValue) ? dateFromValue.toISOString().split('T')[0] : undefined;
|
|
13
|
+
time = isValidDate(dateFromValue)
|
|
14
|
+
? `${dateFromValue.getHours().toString().padStart(2, '0')}:${dateFromValue
|
|
15
|
+
.getMinutes()
|
|
16
|
+
.toString()
|
|
17
|
+
.padStart(2, '0')}`
|
|
18
|
+
: '12:00';
|
|
19
|
+
}
|
|
20
|
+
$: parseValue(value);
|
|
21
|
+
let initialDate = date;
|
|
22
|
+
let initialTime = time;
|
|
23
|
+
function parseDateAndTime(date, time) {
|
|
24
|
+
if (date && time && (initialDate != date || initialTime != time)) {
|
|
8
25
|
let newDate = new Date(`${date}T${time}`);
|
|
9
26
|
value = newDate.toISOString();
|
|
27
|
+
dispatch('change', value);
|
|
10
28
|
}
|
|
11
29
|
}
|
|
30
|
+
$: parseDateAndTime(date, time);
|
|
12
31
|
function isValidDate(d) {
|
|
13
32
|
return d instanceof Date && !isNaN(d);
|
|
14
33
|
}
|
|
34
|
+
const dispatch = createEventDispatcher();
|
|
35
|
+
function setTimeLater(mins) {
|
|
36
|
+
let newDate = new Date();
|
|
37
|
+
newDate.setMinutes(newDate.getMinutes() + mins);
|
|
38
|
+
value = newDate.toISOString();
|
|
39
|
+
dispatch('change', value);
|
|
40
|
+
}
|
|
41
|
+
let randomId = 'datetarget-' + Math.random().toString(36).substring(7);
|
|
15
42
|
</script>
|
|
16
43
|
|
|
17
|
-
<div class="flex flex-row gap-1 items-center w-full">
|
|
44
|
+
<div class="flex flex-row gap-1 items-center w-full" id={randomId} on:pointerdown on:focus>
|
|
18
45
|
<!-- svelte-ignore a11y-autofocus -->
|
|
19
|
-
<input type="date" bind:value={date} {autofocus} class="!w-3/4" />
|
|
20
|
-
<input type="time" bind:value={time} class="!w-1/4" />
|
|
46
|
+
<input type="date" bind:value={date} {autofocus} class="!w-3/4" min={minDate} max={maxDate} />
|
|
47
|
+
<input type="time" bind:value={time} class="!w-1/4 min-w-[100px]" />
|
|
48
|
+
<Button
|
|
49
|
+
variant="border"
|
|
50
|
+
color="light"
|
|
51
|
+
size="xs"
|
|
52
|
+
portalTarget={`#${randomId}`}
|
|
53
|
+
dropdownItems={useDropdown
|
|
54
|
+
? [
|
|
55
|
+
{
|
|
56
|
+
label: 'In 15 minutes',
|
|
57
|
+
onClick: () => {
|
|
58
|
+
setTimeLater(15)
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
label: 'In 1 hour',
|
|
63
|
+
onClick: () => {
|
|
64
|
+
setTimeLater(60)
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
label: 'Tomorrow',
|
|
69
|
+
onClick: () => {
|
|
70
|
+
setTimeLater(60 * 24)
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
label: 'In 1 week',
|
|
75
|
+
onClick: () => {
|
|
76
|
+
setTimeLater(7 * 60 * 24)
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
: undefined}
|
|
81
|
+
on:click={() => {
|
|
82
|
+
setTimeLater(0)
|
|
83
|
+
}}>Now</Button
|
|
84
|
+
>
|
|
21
85
|
</div>
|
|
@@ -2,9 +2,16 @@ import { SvelteComponent } from "svelte";
|
|
|
2
2
|
declare const __propDef: {
|
|
3
3
|
props: {
|
|
4
4
|
value?: string | undefined;
|
|
5
|
-
autofocus?: boolean | undefined;
|
|
5
|
+
autofocus?: boolean | null | undefined;
|
|
6
|
+
useDropdown?: boolean | undefined;
|
|
7
|
+
minDate?: string | undefined;
|
|
8
|
+
maxDate?: string | undefined;
|
|
6
9
|
};
|
|
7
10
|
events: {
|
|
11
|
+
pointerdown: PointerEvent;
|
|
12
|
+
focus: FocusEvent;
|
|
13
|
+
change: CustomEvent<any>;
|
|
14
|
+
} & {
|
|
8
15
|
[evt: string]: CustomEvent<any>;
|
|
9
16
|
};
|
|
10
17
|
slots: {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script>import { userStore } from '../stores';
|
|
2
|
+
import { SettingsIcon } from 'lucide-svelte';
|
|
3
|
+
import { Button } from './common';
|
|
4
|
+
import Drawer from './common/drawer/Drawer.svelte';
|
|
5
|
+
import DrawerContent from './common/drawer/DrawerContent.svelte';
|
|
6
|
+
import DefaultScriptsInner from './DefaultScriptsInner.svelte';
|
|
7
|
+
import Portal from 'svelte-portal';
|
|
8
|
+
let drawer;
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
{#if $userStore?.is_admin || $userStore?.is_super_admin}
|
|
12
|
+
<Portal>
|
|
13
|
+
<Drawer bind:this={drawer} placement="left">
|
|
14
|
+
<DrawerContent title="Edit Default Scripts" on:close={drawer.closeDrawer}>
|
|
15
|
+
<DefaultScriptsInner />
|
|
16
|
+
</DrawerContent>
|
|
17
|
+
</Drawer>
|
|
18
|
+
</Portal>
|
|
19
|
+
<Button
|
|
20
|
+
on:click={drawer?.openDrawer}
|
|
21
|
+
startIcon={{ icon: SettingsIcon }}
|
|
22
|
+
color="light"
|
|
23
|
+
size="xs2"
|
|
24
|
+
variant="contained">defaults</Button
|
|
25
|
+
>
|
|
26
|
+
{/if}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SvelteComponent } 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 DefaultScriptsProps = typeof __propDef.props;
|
|
10
|
+
export type DefaultScriptsEvents = typeof __propDef.events;
|
|
11
|
+
export type DefaultScriptsSlots = typeof __propDef.slots;
|
|
12
|
+
export default class DefaultScripts extends SvelteComponent<DefaultScriptsProps, DefaultScriptsEvents, DefaultScriptsSlots> {
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
<script>import { WorkspaceService } from '../gen';
|
|
2
|
+
import { defaultScripts, workspaceStore } from '../stores';
|
|
3
|
+
import { flip } from 'svelte/animate';
|
|
4
|
+
import Toggle from './Toggle.svelte';
|
|
5
|
+
import { defaultScriptLanguages } from '../scripts';
|
|
6
|
+
import Alert from './common/alert/Alert.svelte';
|
|
7
|
+
$: langs = computeLangs($defaultScripts);
|
|
8
|
+
function computeLangs(defaultScripts) {
|
|
9
|
+
const allLangs = Object.keys(defaultScriptLanguages);
|
|
10
|
+
if (!defaultScripts || defaultScripts.order == undefined)
|
|
11
|
+
return allLangs;
|
|
12
|
+
return defaultScripts.order?.concat(allLangs.filter((l) => !defaultScripts.order?.includes(l)));
|
|
13
|
+
}
|
|
14
|
+
async function changePosition(i, up) {
|
|
15
|
+
let norder = langs;
|
|
16
|
+
if (up) {
|
|
17
|
+
;
|
|
18
|
+
[norder[i], norder[i - 1]] = [norder[i - 1], norder[i]];
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
;
|
|
22
|
+
[norder[i], norder[i + 1]] = [norder[i + 1], norder[i]];
|
|
23
|
+
}
|
|
24
|
+
defaultScripts.update((s) => ({ ...s, order: norder }));
|
|
25
|
+
await WorkspaceService.editDefaultScripts({
|
|
26
|
+
workspace: $workspaceStore,
|
|
27
|
+
requestBody: $defaultScripts
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
</script>
|
|
31
|
+
|
|
32
|
+
<Alert title="Global to workspace" type="info" class="mb-4">
|
|
33
|
+
This setting is only available to admins and will affect all users in the workspace.
|
|
34
|
+
</Alert>
|
|
35
|
+
<div class="h-full w-full flex-col gap-2 flex">
|
|
36
|
+
{#each langs as lang, i (lang)}
|
|
37
|
+
<div
|
|
38
|
+
animate:flip={{ duration: 300 }}
|
|
39
|
+
class="w-full p-2 rounded border border-seconadry grid grid-cols-3"
|
|
40
|
+
><h3>{lang}</h3>
|
|
41
|
+
<div>
|
|
42
|
+
{#if i > 0}
|
|
43
|
+
<button on:click={() => changePosition(i ?? 0, true)} class="text-lg mr-2">
|
|
44
|
+
↑</button
|
|
45
|
+
>
|
|
46
|
+
{/if}
|
|
47
|
+
{#if i < langs.length - 1}
|
|
48
|
+
<button on:click={() => changePosition(i ?? 0, false)} class="text-lg mr-2"
|
|
49
|
+
>↓</button
|
|
50
|
+
>
|
|
51
|
+
{/if}</div
|
|
52
|
+
>
|
|
53
|
+
<!-- <Toggle options={{ right: 'custom default' }} size="xs" /> -->
|
|
54
|
+
<div class="flex justify-end">
|
|
55
|
+
<Toggle
|
|
56
|
+
options={{ right: 'hide' }}
|
|
57
|
+
size="xs"
|
|
58
|
+
color="red"
|
|
59
|
+
checked={$defaultScripts?.hidden?.includes(lang)}
|
|
60
|
+
on:change={(e) => {
|
|
61
|
+
let toggled = e.detail
|
|
62
|
+
if (toggled) {
|
|
63
|
+
defaultScripts.update((s) => ({ ...(s ?? {}), hidden: [...(s?.hidden ?? []), lang] }))
|
|
64
|
+
} else {
|
|
65
|
+
defaultScripts.update((s) => ({
|
|
66
|
+
...(s ?? {}),
|
|
67
|
+
hidden: (s?.hidden ?? []).filter((h) => h != lang)
|
|
68
|
+
}))
|
|
69
|
+
}
|
|
70
|
+
}}
|
|
71
|
+
/>
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
{/each}
|
|
75
|
+
</div>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SvelteComponent } 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 DefaultScriptsInnerProps = typeof __propDef.props;
|
|
10
|
+
export type DefaultScriptsInnerEvents = typeof __propDef.events;
|
|
11
|
+
export type DefaultScriptsInnerSlots = typeof __propDef.slots;
|
|
12
|
+
export default class DefaultScriptsInner extends SvelteComponent<DefaultScriptsInnerProps, DefaultScriptsInnerEvents, DefaultScriptsInnerSlots> {
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<script>import SchemaForm from './SchemaForm.svelte';
|
|
2
2
|
import TestJobLoader from './TestJobLoader.svelte';
|
|
3
|
-
import { Button,
|
|
3
|
+
import { Button, Drawer } from './common';
|
|
4
4
|
import { WindmillIcon } from './icons';
|
|
5
5
|
import LogPanel from './scriptEditor/LogPanel.svelte';
|
|
6
|
-
import { CompletedJob, Job, JobService, OpenAPI, Preview,
|
|
6
|
+
import { CompletedJob, Job, JobService, OpenAPI, Preview, WorkspaceService, RawScript } from '../gen';
|
|
7
7
|
import { inferArgs } from '../infer';
|
|
8
|
-
import {
|
|
9
|
-
import { emptySchema,
|
|
8
|
+
import { copilotInfo, userStore, workspaceStore } from '../stores';
|
|
9
|
+
import { emptySchema, sendUserToast } from '../utils';
|
|
10
10
|
import { Pane, Splitpanes } from 'svelte-splitpanes';
|
|
11
11
|
import { onDestroy, onMount, setContext } from 'svelte';
|
|
12
12
|
import DarkModeToggle from './sidebar/DarkModeToggle.svelte';
|
|
@@ -20,8 +20,11 @@ import { writable } from 'svelte/store';
|
|
|
20
20
|
import { initHistory } from '../history';
|
|
21
21
|
import { dfs } from './flows/dfs';
|
|
22
22
|
import { loadSchemaFromModule } from './flows/flowInfers';
|
|
23
|
-
import { Play } from 'lucide-svelte';
|
|
23
|
+
import { CornerDownLeft, Play } from 'lucide-svelte';
|
|
24
24
|
import Toggle from './Toggle.svelte';
|
|
25
|
+
import { setLicense } from '../enterpriseUtils';
|
|
26
|
+
import { workspacedOpenai } from './copilot/lib';
|
|
27
|
+
import { pickScript } from './flows/flowStateUtils';
|
|
25
28
|
$: token = $page.url.searchParams.get('wm_token') ?? undefined;
|
|
26
29
|
$: workspace = $page.url.searchParams.get('workspace') ?? undefined;
|
|
27
30
|
$: themeDarkRaw = $page.url.searchParams.get('activeColorTheme');
|
|
@@ -30,8 +33,51 @@ $: if (token) {
|
|
|
30
33
|
OpenAPI.WITH_CREDENTIALS = true;
|
|
31
34
|
OpenAPI.TOKEN = $page.url.searchParams.get('wm_token');
|
|
32
35
|
}
|
|
36
|
+
let flowCopilotContext = {
|
|
37
|
+
drawerStore: writable(undefined),
|
|
38
|
+
modulesStore: writable([]),
|
|
39
|
+
currentStepStore: writable(undefined),
|
|
40
|
+
genFlow,
|
|
41
|
+
shouldUpdatePropertyType: writable({}),
|
|
42
|
+
exprsToSet: writable({}),
|
|
43
|
+
generatedExprs: writable({}),
|
|
44
|
+
stepInputsLoading: writable(false)
|
|
45
|
+
};
|
|
46
|
+
const { modulesStore } = flowCopilotContext;
|
|
47
|
+
async function genFlow(idx, flowModules, stepOnly = false) {
|
|
48
|
+
let module = stepOnly ? $modulesStore[0] : $modulesStore[idx];
|
|
49
|
+
if (module && module.selectedCompletion) {
|
|
50
|
+
const [hubScriptModule, hubScriptState] = await pickScript(module.selectedCompletion.path, `${module.selectedCompletion.summary} (${module.selectedCompletion.app})`, module.id, undefined);
|
|
51
|
+
const flowModule = {
|
|
52
|
+
id: module.id,
|
|
53
|
+
value: hubScriptModule.value,
|
|
54
|
+
summary: hubScriptModule.summary
|
|
55
|
+
};
|
|
56
|
+
$flowStateStore[module.id] = hubScriptState;
|
|
57
|
+
flowModules.splice(idx, 0, flowModule);
|
|
58
|
+
$flowStore = $flowStore;
|
|
59
|
+
sendUserToast('Added module', false);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
setContext('FlowCopilotContext', flowCopilotContext);
|
|
63
|
+
async function setCopilotInfo() {
|
|
64
|
+
if (workspace) {
|
|
65
|
+
workspacedOpenai.init(workspace, token);
|
|
66
|
+
try {
|
|
67
|
+
copilotInfo.set(await WorkspaceService.getCopilotInfo({ workspace }));
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
copilotInfo.set({
|
|
71
|
+
exists_openai_resource_path: false,
|
|
72
|
+
code_completion_enabled: false
|
|
73
|
+
});
|
|
74
|
+
console.error('Could not get copilot info');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
33
78
|
$: if (workspace) {
|
|
34
79
|
$workspaceStore = workspace;
|
|
80
|
+
setCopilotInfo();
|
|
35
81
|
}
|
|
36
82
|
$: if (workspace && token) {
|
|
37
83
|
loadUser();
|
|
@@ -95,13 +141,8 @@ const el = (event) => {
|
|
|
95
141
|
sendUserToast(event.data.error.message, true);
|
|
96
142
|
}
|
|
97
143
|
};
|
|
98
|
-
|
|
99
|
-
if (!$enterpriseLicense) {
|
|
100
|
-
$enterpriseLicense = await SettingsService.getLicenseId();
|
|
101
|
-
}
|
|
102
|
-
}
|
|
144
|
+
setLicense();
|
|
103
145
|
onMount(() => {
|
|
104
|
-
setEnterpriseLicense();
|
|
105
146
|
window.addEventListener('message', el, false);
|
|
106
147
|
document.addEventListener('keydown', (e) => {
|
|
107
148
|
const obj = {
|
|
@@ -234,7 +275,8 @@ const scheduleStore = writable({
|
|
|
234
275
|
args: {},
|
|
235
276
|
cron: '',
|
|
236
277
|
timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
237
|
-
enabled: false
|
|
278
|
+
enabled: false,
|
|
279
|
+
summary: undefined
|
|
238
280
|
});
|
|
239
281
|
const previewArgsStore = writable({});
|
|
240
282
|
const scriptEditorDrawer = writable(undefined);
|
|
@@ -256,9 +298,9 @@ setContext('FlowEditorContext', {
|
|
|
256
298
|
saveDraft: () => { },
|
|
257
299
|
initialPath: ''
|
|
258
300
|
});
|
|
259
|
-
$:
|
|
301
|
+
$: updateFlow($flowStore);
|
|
260
302
|
let lastSent = undefined;
|
|
261
|
-
function
|
|
303
|
+
function updateFlow(flow) {
|
|
262
304
|
if (lockChanges) {
|
|
263
305
|
return;
|
|
264
306
|
}
|
|
@@ -362,12 +404,12 @@ async function inferModuleArgs(selectedIdStore) {
|
|
|
362
404
|
icon: Play,
|
|
363
405
|
classes: 'animate-none'
|
|
364
406
|
}}
|
|
407
|
+
shortCut={{ Icon: CornerDownLeft, hide: testIsLoading }}
|
|
365
408
|
>
|
|
366
409
|
{#if testIsLoading}
|
|
367
410
|
Running
|
|
368
411
|
{:else}
|
|
369
|
-
Test
|
|
370
|
-
<Kbd small><span class="text-lg font-bold">⏎</span></Kbd>
|
|
412
|
+
Test
|
|
371
413
|
{/if}
|
|
372
414
|
</Button>
|
|
373
415
|
{/if}
|
|
@@ -422,7 +464,7 @@ async function inferModuleArgs(selectedIdStore) {
|
|
|
422
464
|
</Pane>
|
|
423
465
|
<Pane size={33}>
|
|
424
466
|
{#key reload}
|
|
425
|
-
<FlowEditorPanel noEditor />
|
|
467
|
+
<FlowEditorPanel enableAi noEditor />
|
|
426
468
|
{/key}
|
|
427
469
|
</Pane>
|
|
428
470
|
</Splitpanes>
|
|
@@ -3,7 +3,7 @@ import { json } from 'svelte-highlight/languages';
|
|
|
3
3
|
import TableCustom from './TableCustom.svelte';
|
|
4
4
|
import { copyToClipboard, roughSizeOfObject, truncate } from '../utils';
|
|
5
5
|
import { Button, Drawer, DrawerContent } from './common';
|
|
6
|
-
import { ClipboardCopy, Download, Expand, PanelRightOpen, Table2 } from 'lucide-svelte';
|
|
6
|
+
import { ClipboardCopy, Download, Expand, PanelRightOpen, Table2, Braces, Highlighter } from 'lucide-svelte';
|
|
7
7
|
import Portal from 'svelte-portal';
|
|
8
8
|
import ObjectViewer from './propertyPicker/ObjectViewer.svelte';
|
|
9
9
|
import S3FilePicker from './S3FilePicker.svelte';
|
|
@@ -13,7 +13,8 @@ import Markdown from 'svelte-exmarkdown';
|
|
|
13
13
|
import Toggle from './Toggle.svelte';
|
|
14
14
|
import FileDownload from './common/fileDownload/FileDownload.svelte';
|
|
15
15
|
import ParqetTableRenderer from './ParqetTableRenderer.svelte';
|
|
16
|
-
import
|
|
16
|
+
import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
17
|
+
import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte';
|
|
17
18
|
export let result;
|
|
18
19
|
export let requireHtmlApproval = false;
|
|
19
20
|
export let filename = undefined;
|
|
@@ -152,7 +153,7 @@ function isArrayWithObjects(json) {
|
|
|
152
153
|
json.every((item) => item && typeof item === 'object' && Object.keys(item).length > 0));
|
|
153
154
|
}
|
|
154
155
|
$: isTableDisplay = isArrayWithObjects(result);
|
|
155
|
-
let richRender =
|
|
156
|
+
let richRender = !forceJson;
|
|
156
157
|
function transform(input) {
|
|
157
158
|
const maxLength = Math.max(...Object.values(input).map((arr) => arr.length));
|
|
158
159
|
const result = [];
|
|
@@ -194,45 +195,52 @@ let globalForceJson = false;
|
|
|
194
195
|
{:else}
|
|
195
196
|
<div class="inline-highlight relative grow min-h-[200px]">
|
|
196
197
|
{#if result != undefined && length != undefined && largeObject != undefined}
|
|
197
|
-
|
|
198
|
-
<div class="
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
198
|
+
<div class="flex justify-between items-center w-full pb-1">
|
|
199
|
+
<div class="text-tertiary text-sm flex items-center">
|
|
200
|
+
{#if (resultKind && !['json', 's3object', 's3object-list', 'table-col', 'table-row'].includes(resultKind) && !hideAsJson) || isTableDisplay}
|
|
201
|
+
<ToggleButtonGroup
|
|
202
|
+
class="h-6"
|
|
203
|
+
selected={isTableDisplay
|
|
204
|
+
? richRender
|
|
205
|
+
? 'table'
|
|
206
|
+
: 'json'
|
|
207
|
+
: forceJson
|
|
208
|
+
? 'json'
|
|
209
|
+
: 'pretty'}
|
|
210
|
+
on:selected={(ev) => {
|
|
211
|
+
if (isTableDisplay) {
|
|
212
|
+
richRender = ev.detail === 'table'
|
|
213
|
+
}
|
|
214
|
+
forceJson = ev.detail === 'json'
|
|
215
|
+
}}
|
|
216
|
+
>
|
|
217
|
+
{#if resultKind && !['json', 's3object', 's3object-list', 'table-col', 'table-row'].includes(resultKind) && !hideAsJson}
|
|
218
|
+
<ToggleButton class="px-1.5" value="pretty" label="Pretty" icon={Highlighter} />
|
|
219
|
+
{/if}
|
|
212
220
|
{#if isTableDisplay}
|
|
213
|
-
<
|
|
214
|
-
aria-label="Render as table"
|
|
215
|
-
on:click={() => {
|
|
216
|
-
richRender = !richRender
|
|
217
|
-
}}
|
|
218
|
-
class={twMerge(
|
|
219
|
-
'flex flex-row gap-1 items-center',
|
|
220
|
-
richRender ? 'text-blue-500' : ''
|
|
221
|
-
)}
|
|
222
|
-
>
|
|
223
|
-
<Table2 size={16} class={richRender ? 'text-blue-500' : ''} />
|
|
224
|
-
|
|
225
|
-
Table view {richRender ? 'enabled' : 'disabled'}
|
|
226
|
-
</button>
|
|
221
|
+
<ToggleButton class="px-1.5" value="table" label="Table" icon={Table2} />
|
|
227
222
|
{/if}
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
223
|
+
<ToggleButton class="px-1.5" value="json" label="JSON" icon={Braces} />
|
|
224
|
+
</ToggleButtonGroup>
|
|
225
|
+
{/if}
|
|
226
|
+
</div>
|
|
227
|
+
<div class="text-tertiary text-xs flex gap-2 z-10 items-center">
|
|
228
|
+
<slot name="copilot-fix" />
|
|
229
|
+
{#if !disableExpand}
|
|
230
|
+
<button on:click={() => copyToClipboard(toJsonStr(result))}
|
|
231
|
+
><ClipboardCopy size={16} /></button
|
|
232
|
+
>
|
|
233
|
+
<button on:click={jsonViewer.openDrawer}><Expand size={16} /></button>
|
|
234
|
+
{/if}
|
|
235
|
+
</div>
|
|
236
|
+
</div>
|
|
237
|
+
|
|
238
|
+
{#if !forceJson && resultKind == 'table-col'}
|
|
231
239
|
{@const data = 'table-col' in result ? result['table-col'] : result}
|
|
232
240
|
<AutoDataTable objects={transform(data)} />
|
|
233
241
|
{:else if !forceJson && resultKind == 'table-row'}
|
|
234
242
|
{@const data = 'table-row' in result ? result['table-row'] : result}
|
|
235
|
-
<div class="grid grid-flow-col-dense border border-gray-200">
|
|
243
|
+
<div class="grid grid-flow-col-dense border border-gray-200 dark:border-gray-600">
|
|
236
244
|
<TableCustom>
|
|
237
245
|
<tbody slot="body">
|
|
238
246
|
{#each Array.isArray(asListOfList(data)) ? asListOfList(data) : [] as row}
|
|
@@ -346,8 +354,7 @@ let globalForceJson = false;
|
|
|
346
354
|
</div>
|
|
347
355
|
{:else if !forceJson && resultKind == 's3object'}
|
|
348
356
|
<div
|
|
349
|
-
class="
|
|
350
|
-
result?.s3?.endsWith('.parquet')
|
|
357
|
+
class="h-full w-full {typeof result?.s3 == 'string' && result?.s3?.endsWith('.parquet')
|
|
351
358
|
? 'h-min-[600px]'
|
|
352
359
|
: ''}"
|
|
353
360
|
>
|
|
@@ -387,7 +394,7 @@ let globalForceJson = false;
|
|
|
387
394
|
{/if}
|
|
388
395
|
</div>
|
|
389
396
|
{:else if !forceJson && resultKind == 's3object-list'}
|
|
390
|
-
<div class="
|
|
397
|
+
<div class="h-full w-full">
|
|
391
398
|
<div class="flex flex-col gap-2">
|
|
392
399
|
<Toggle
|
|
393
400
|
class="flex"
|
|
@@ -448,7 +455,7 @@ let globalForceJson = false;
|
|
|
448
455
|
<Alert size="xs" title="Large file detected" type="warning">
|
|
449
456
|
We recommend using persistent storage for large data files.
|
|
450
457
|
<a
|
|
451
|
-
href="https://www.windmill.dev/docs/core_concepts/persistent_storage#large-data-files-s3-r2-minio"
|
|
458
|
+
href="https://www.windmill.dev/docs/core_concepts/persistent_storage#large-data-files-s3-r2-minio-azure-blob"
|
|
452
459
|
target="_blank"
|
|
453
460
|
rel="noreferrer"
|
|
454
461
|
class="hover:underline"
|
|
@@ -471,7 +478,7 @@ let globalForceJson = false;
|
|
|
471
478
|
</div>
|
|
472
479
|
{:else}
|
|
473
480
|
<Highlight
|
|
474
|
-
class={forceJson ? '' : '
|
|
481
|
+
class={forceJson ? '' : 'h-full w-full'}
|
|
475
482
|
language={json}
|
|
476
483
|
code={toJsonStr(result).replace(/\\n/g, '\n')}
|
|
477
484
|
/>
|
|
@@ -486,39 +493,38 @@ let globalForceJson = false;
|
|
|
486
493
|
<Drawer bind:this={jsonViewer} size="900px">
|
|
487
494
|
<DrawerContent title="Expanded Result" on:close={jsonViewer.closeDrawer}>
|
|
488
495
|
<svelte:fragment slot="actions">
|
|
489
|
-
<
|
|
490
|
-
class="text-sm text-secondary mr-2 inline-flex gap-2 items-center py-2 px-2 hover:bg-gray-100 rounded-lg"
|
|
496
|
+
<Button
|
|
491
497
|
download="{filename ?? 'result'}.json"
|
|
492
498
|
href={workspaceId && jobId
|
|
493
499
|
? `/api/w/${workspaceId}/jobs_u/completed/get_result/${jobId}`
|
|
494
500
|
: `data:text/json;charset=utf-8,${encodeURIComponent(toJsonStr(result))}`}
|
|
495
|
-
|
|
501
|
+
startIcon={{ icon: Download }}
|
|
502
|
+
color="light"
|
|
503
|
+
size="xs"
|
|
504
|
+
>
|
|
505
|
+
Download
|
|
506
|
+
</Button>
|
|
507
|
+
<Button
|
|
508
|
+
on:click={() => copyToClipboard(toJsonStr(result))}
|
|
509
|
+
color="light"
|
|
510
|
+
size="xs"
|
|
511
|
+
startIcon={{
|
|
512
|
+
icon: ClipboardCopy
|
|
513
|
+
}}
|
|
496
514
|
>
|
|
497
|
-
|
|
498
|
-
<div class="flex gap-2 items-center">Copy to clipboard <ClipboardCopy /> </div>
|
|
515
|
+
Copy to clipboard
|
|
499
516
|
</Button>
|
|
500
517
|
</svelte:fragment>
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
</div>
|
|
512
|
-
{:else if typeof result == 'string' && result.length > 0}
|
|
513
|
-
<pre class="text-sm">{result}</pre>
|
|
514
|
-
<div class="flex">
|
|
515
|
-
<Button on:click={() => copyToClipboard(result)} color="light" size="xs">
|
|
516
|
-
<div class="flex gap-2 items-center">Copy <ClipboardCopy size={12} /> </div>
|
|
517
|
-
</Button>
|
|
518
|
-
</div>
|
|
519
|
-
{:else}
|
|
520
|
-
<Highlight language={json} code={toJsonStr(result).replace(/\\n/g, '\n')} />
|
|
521
|
-
{/if}
|
|
518
|
+
<svelte:self
|
|
519
|
+
{result}
|
|
520
|
+
{requireHtmlApproval}
|
|
521
|
+
{filename}
|
|
522
|
+
{jobId}
|
|
523
|
+
{workspaceId}
|
|
524
|
+
{hideAsJson}
|
|
525
|
+
{forceJson}
|
|
526
|
+
disableExpand={true}
|
|
527
|
+
/>
|
|
522
528
|
</DrawerContent>
|
|
523
529
|
</Drawer>
|
|
524
530
|
</Portal>
|