windmill-components 1.109.8 → 1.121.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/package/cloud.js +0 -14
- package/package/common.d.ts +1 -0
- package/package/components/ArgEnum.svelte +53 -0
- package/package/components/ArgEnum.svelte.d.ts +24 -0
- package/package/components/ArgInfo.svelte +26 -14
- package/package/components/ArgInput.svelte +69 -83
- package/package/components/ArgInput.svelte.d.ts +2 -0
- package/package/components/ArrayTypeNarrowing.svelte +73 -0
- package/package/components/ArrayTypeNarrowing.svelte.d.ts +20 -0
- package/package/components/CenteredModal.svelte +7 -9
- package/package/components/DeployToSetting.svelte +35 -0
- package/package/components/DeployToSetting.svelte.d.ts +16 -0
- package/package/components/DeployWorkspace.svelte +555 -0
- package/package/components/DeployWorkspace.svelte.d.ts +23 -0
- package/package/components/DeployWorkspaceDrawer.svelte +35 -0
- package/package/components/DeployWorkspaceDrawer.svelte.d.ts +17 -0
- package/package/components/DiffDrawer.svelte +60 -0
- package/package/components/DiffDrawer.svelte.d.ts +23 -0
- package/package/components/DisplayResult.svelte +17 -24
- package/package/components/DraftBadge.svelte +1 -1
- package/package/components/Editor.svelte +0 -4
- package/package/components/EditorBar.svelte +127 -26
- package/package/components/EditorBar.svelte.d.ts +1 -0
- package/package/components/FieldHeader.svelte +2 -2
- package/package/components/FlowBuilder.svelte +9 -0
- package/package/components/FlowBuilder.svelte.d.ts +6 -0
- package/package/components/FlowJobResult.svelte +3 -2
- package/package/components/FlowJobResult.svelte.d.ts +1 -0
- package/package/components/FlowStatusViewer.svelte +6 -39
- package/package/components/FlowStatusWaitingForEvents.svelte +64 -0
- package/package/components/FlowStatusWaitingForEvents.svelte.d.ts +19 -0
- package/package/components/InputTransformForm.svelte +21 -11
- package/package/components/InputTransformForm.svelte.d.ts +1 -1
- package/package/components/InputTransformSchemaForm.svelte +1 -1
- package/package/components/JobArgs.svelte +120 -27
- package/package/components/LightweightArgInput.svelte +28 -15
- package/package/components/LightweightArgInput.svelte.d.ts +1 -0
- package/package/components/LightweightSchemaForm.svelte +24 -24
- package/package/components/LogViewer.svelte +23 -11
- package/package/components/LogViewer.svelte.d.ts +1 -0
- package/package/components/ModulePreview.svelte +7 -1
- package/package/components/ModulePreviewForm.svelte +8 -0
- package/package/components/ModulePreviewForm.svelte.d.ts +1 -1
- package/package/components/MoveDrawer.svelte +3 -3
- package/package/components/Path.svelte +27 -7
- package/package/components/Popover.svelte +11 -2
- package/package/components/Popover.svelte.d.ts +1 -0
- package/package/components/Required.svelte +1 -1
- package/package/components/ResourcePicker.svelte +7 -1
- package/package/components/RunForm.svelte +15 -8
- package/package/components/RunForm.svelte.d.ts +2 -0
- package/package/components/SchemaEditor.svelte +14 -12
- package/package/components/SchemaForm.svelte +9 -2
- package/package/components/SchemaModal.svelte +9 -5
- package/package/components/ScriptBuilder.svelte +21 -19
- package/package/components/ScriptEditor.svelte +6 -19
- package/package/components/ScriptPicker.svelte +13 -7
- package/package/components/ScriptVersionHistory.svelte +57 -0
- package/package/components/ScriptVersionHistory.svelte.d.ts +16 -0
- package/package/components/SimpleEditor.svelte +3 -1
- package/package/components/SimpleEditor.svelte.d.ts +1 -0
- package/package/components/Slider.svelte +2 -1
- package/package/components/Slider.svelte.d.ts +1 -0
- package/package/components/SuperadminSettings.svelte +12 -14
- package/package/components/SuperadminSettings.svelte.d.ts +0 -2
- package/package/components/Toast.svelte +1 -1
- package/package/components/Uptodate.svelte +26 -0
- package/package/components/Uptodate.svelte.d.ts +14 -0
- package/package/components/UserSettings.svelte +8 -12
- package/package/components/UserSettings.svelte.d.ts +0 -2
- package/package/components/Version.svelte +9 -0
- package/package/components/Version.svelte.d.ts +14 -0
- package/package/components/apps/components/buttons/AppButton.svelte +2 -2
- package/package/components/apps/components/buttons/AppForm.svelte +1 -2
- package/package/components/apps/components/buttons/AppFormButton.svelte +35 -38
- package/package/components/apps/components/buttons/AppSchemaForm.svelte +5 -0
- package/package/components/apps/components/display/AppChartJs.svelte +4 -3
- package/package/components/apps/components/display/AppFlowStatusComponent.svelte +2 -2
- package/package/components/apps/components/display/AppLogsComponent.svelte +7 -1
- package/package/components/apps/components/display/AppMap.svelte +11 -7
- package/package/components/apps/components/display/PlotlyHtml.svelte +1 -1
- package/package/components/apps/components/display/VegaLiteHtml.svelte +1 -1
- package/package/components/apps/components/display/table/AppAggridTable.svelte +86 -39
- package/package/components/apps/components/display/table/AppTable.svelte +29 -3
- package/package/components/apps/components/display/table/AppTableFooter.svelte +48 -43
- package/package/components/apps/components/display/table/AppTableFooter.svelte.d.ts +1 -0
- package/package/components/apps/components/helpers/InputValue.svelte +25 -3
- package/package/components/apps/components/helpers/RunnableComponent.svelte +14 -3
- package/package/components/apps/components/helpers/eval.d.ts +1 -0
- package/package/components/apps/components/helpers/eval.js +3 -1
- package/package/components/apps/components/inputs/AppCheckbox.svelte +5 -0
- package/package/components/apps/components/inputs/AppMultiSelect.svelte +1 -1
- package/package/components/apps/components/inputs/AppNumberInput.svelte +8 -1
- package/package/components/apps/components/inputs/AppQuillEditor.svelte +78 -0
- package/package/components/apps/components/inputs/AppQuillEditor.svelte.d.ts +27 -0
- package/package/components/apps/components/inputs/AppRangeInput.svelte +8 -1
- package/package/components/apps/components/inputs/AppSelect.svelte +17 -2
- package/package/components/apps/components/inputs/AppSliderInputs.svelte +18 -5
- package/package/components/apps/components/inputs/AppTextInput.svelte +66 -57
- package/package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +5 -0
- package/package/components/apps/components/layout/AppDrawer.svelte +2 -2
- package/package/components/apps/components/layout/AppList.svelte +112 -0
- package/package/components/apps/components/layout/AppList.svelte.d.ts +23 -0
- package/package/components/apps/components/layout/AppModal.svelte +35 -33
- package/package/components/apps/components/layout/ListWrapper.svelte +23 -0
- package/package/components/apps/components/layout/ListWrapper.svelte.d.ts +23 -0
- package/package/components/apps/editor/AppEditor.svelte +3 -2
- package/package/components/apps/editor/AppEditorHeader.svelte +14 -9
- package/package/components/apps/editor/AppPreview.svelte +2 -2
- package/package/components/apps/editor/RecomputeAllComponents.svelte +4 -0
- package/package/components/apps/editor/SettingsPanel.svelte +1 -1
- package/package/components/apps/editor/SubGridEditor.svelte +4 -2
- package/package/components/apps/editor/appUtils.d.ts +1 -1
- package/package/components/apps/editor/appUtils.js +2 -2
- package/package/components/apps/editor/component/Component.svelte +13 -0
- package/package/components/apps/editor/component/ComponentNavigation.svelte +9 -7
- package/package/components/apps/editor/component/ComponentWrapper.svelte +1 -4
- package/package/components/apps/editor/component/components.d.ts +138 -3
- package/package/components/apps/editor/component/components.js +131 -4
- package/package/components/apps/editor/component/default-codes.js +65 -35
- package/package/components/apps/editor/component/sets.js +2 -0
- package/package/components/apps/editor/componentsPanel/quickStyleProperties.js +6 -0
- package/package/components/apps/editor/contextPanel/components/IdEditor.svelte +2 -2
- package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +2 -1
- package/package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +3 -2
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +3 -3
- package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/GridCondition.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/GridPane.svelte +1 -2
- package/package/components/apps/editor/settingsPanel/GridTab.svelte +2 -2
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +6 -2
- package/package/components/apps/editor/settingsPanel/Recompute.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte +16 -2
- package/package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte.d.ts +1 -0
- package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +7 -4
- package/package/components/apps/editor/settingsPanel/script/shared/ScriptRunConfiguration.svelte +2 -2
- package/package/components/apps/types.d.ts +8 -0
- package/package/components/apps/utils.js +2 -0
- package/package/components/common/badge/Badge.svelte +2 -1
- package/package/components/common/badge/Badge.svelte.d.ts +1 -0
- package/package/components/common/fileInput/FileInput.svelte +1 -1
- package/package/components/common/modal/AlwaysMountedModal.svelte +52 -54
- package/package/components/common/modal/AlwaysMountedModal.svelte.d.ts +1 -0
- package/package/components/common/table/AppRow.svelte +28 -1
- package/package/components/common/table/AppRow.svelte.d.ts +2 -0
- package/package/components/common/table/FlowRow.svelte +29 -2
- package/package/components/common/table/FlowRow.svelte.d.ts +2 -0
- package/package/components/common/table/RawAppRow.svelte +16 -0
- package/package/components/common/table/RawAppRow.svelte.d.ts +2 -0
- package/package/components/common/table/ScriptRow.svelte +29 -2
- package/package/components/common/table/ScriptRow.svelte.d.ts +2 -0
- package/package/components/common/tabs/Tab.svelte +2 -2
- package/package/components/common/tabs/Tabs.svelte +3 -6
- package/package/components/common/tabs/Tabs.svelte.d.ts +1 -1
- package/package/components/common/toggleButton-v2/ToggleButton.svelte +3 -1
- package/package/components/common/toggleButton-v2/ToggleButton.svelte.d.ts +1 -0
- package/package/components/flows/common/FlowCardHeader.svelte +13 -15
- package/package/components/flows/content/FlowBranchesAllWrapper.svelte +8 -1
- package/package/components/flows/content/FlowBranchesOneWrapper.svelte +8 -1
- package/package/components/flows/content/FlowLoop.svelte +8 -1
- package/package/components/flows/content/FlowModuleCache.svelte +1 -1
- package/package/components/flows/content/FlowModuleComponent.svelte +13 -4
- package/package/components/flows/content/FlowModuleHeader.svelte +27 -18
- package/package/components/flows/content/FlowModuleHeader.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowModuleMock.svelte +51 -0
- package/package/components/flows/content/FlowModuleMock.svelte.d.ts +17 -0
- package/package/components/flows/content/FlowModuleSuspend.svelte +49 -2
- package/package/components/flows/flowExplorer.d.ts +11 -0
- package/package/components/flows/flowExplorer.js +137 -0
- package/package/components/flows/map/FlowErrorHandlerItem.svelte +3 -2
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +13 -1
- package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -0
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +1 -1
- package/package/components/flows/map/MapItem.svelte +2 -1
- package/package/components/flows/previousResults.d.ts +0 -2
- package/package/components/flows/previousResults.js +1 -67
- package/package/components/graph/FlowGraph.svelte +71 -13
- package/package/components/graph/svelvet/container/views/GraphView.svelte +22 -0
- package/package/components/graph/svelvet/container/views/GraphView.svelte.d.ts +2 -0
- package/package/components/graph/svelvet/container/views/Svelvet.svelte +13 -1
- package/package/components/graph/svelvet/container/views/Svelvet.svelte.d.ts +2 -0
- package/package/components/graph/svelvet/edges/models/Edge.d.ts +2 -1
- package/package/components/graph/svelvet/edges/models/Edge.js +3 -1
- package/package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte +2 -13
- package/package/components/graph/svelvet/store/controllers/util.js +1 -1
- package/package/components/graph/svelvet/types/types.d.ts +1 -0
- package/package/components/home/ItemsList.svelte +50 -41
- package/package/components/home/ListFilters.svelte +0 -1
- package/package/components/jobs/JobDetail.svelte +1 -1
- package/package/components/jobs/JobPreview.svelte +29 -13
- package/package/components/jobs/JobPreview.svelte.d.ts +1 -2
- package/package/components/scriptEditor/LogPanel.svelte +6 -1
- package/package/components/scriptEditor/LogPanel.svelte.d.ts +1 -1
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/index.d.ts +1 -0
- package/package/gen/models/EditResourceType.d.ts +1 -1
- package/package/gen/models/FlowModule.d.ts +7 -0
- package/package/gen/models/ScheduleWJobs.d.ts +8 -0
- package/package/gen/models/ScheduleWJobs.js +4 -0
- package/package/gen/services/DraftService.d.ts +10 -0
- package/package/gen/services/DraftService.js +16 -0
- package/package/gen/services/JobService.d.ts +24 -3
- package/package/gen/services/JobService.js +21 -3
- package/package/gen/services/ScheduleService.d.ts +17 -0
- package/package/gen/services/ScheduleService.js +18 -0
- package/package/gen/services/SettingsService.d.ts +6 -0
- package/package/gen/services/SettingsService.js +11 -0
- package/package/gen/services/WorkspaceService.d.ts +22 -0
- package/package/gen/services/WorkspaceService.js +30 -0
- package/package/infer.js +17 -3
- package/package/script_helpers.js +16 -5
- package/package/scripts.js +11 -1
- package/package/utils.d.ts +1 -0
- package/package/utils.js +1 -0
- package/package.json +21 -12
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import { Job } from '../gen';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
is_owner: boolean;
|
|
6
|
+
workspaceId: string | undefined;
|
|
7
|
+
job: Job;
|
|
8
|
+
};
|
|
9
|
+
events: {
|
|
10
|
+
[evt: string]: CustomEvent<any>;
|
|
11
|
+
};
|
|
12
|
+
slots: {};
|
|
13
|
+
};
|
|
14
|
+
export type FlowStatusWaitingForEventsProps = typeof __propDef.props;
|
|
15
|
+
export type FlowStatusWaitingForEventsEvents = typeof __propDef.events;
|
|
16
|
+
export type FlowStatusWaitingForEventsSlots = typeof __propDef.slots;
|
|
17
|
+
export default class FlowStatusWaitingForEvents extends SvelteComponentTyped<FlowStatusWaitingForEventsProps, FlowStatusWaitingForEventsEvents, FlowStatusWaitingForEventsSlots> {
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -4,11 +4,14 @@ import FieldHeader from './FieldHeader.svelte';
|
|
|
4
4
|
import DynamicInputHelpBox from './flows/content/DynamicInputHelpBox.svelte';
|
|
5
5
|
import { codeToStaticTemplate, getDefaultExpr, isCodeInjection } from './flows/utils';
|
|
6
6
|
import SimpleEditor from './SimpleEditor.svelte';
|
|
7
|
-
import { Button
|
|
8
|
-
import
|
|
7
|
+
import { Button } from './common';
|
|
8
|
+
import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
9
|
+
import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte';
|
|
10
|
+
import { ResourceService } from '../gen';
|
|
9
11
|
import TemplateEditor from './TemplateEditor.svelte';
|
|
10
12
|
import { setInputCat as computeInputCat } from '../utils';
|
|
11
|
-
import { Plug } from 'lucide-svelte';
|
|
13
|
+
import { Code, Plug } from 'lucide-svelte';
|
|
14
|
+
import { workspaceStore } from '../stores';
|
|
12
15
|
export let schema;
|
|
13
16
|
export let arg;
|
|
14
17
|
export let argName;
|
|
@@ -94,6 +97,11 @@ function setDefaultCode() {
|
|
|
94
97
|
}
|
|
95
98
|
}
|
|
96
99
|
$: schema.properties[argName].default && setDefaultCode();
|
|
100
|
+
let resourceTypes = undefined;
|
|
101
|
+
async function loadResourceTypes() {
|
|
102
|
+
resourceTypes = await ResourceService.listResourceTypeNames({ workspace: $workspaceStore });
|
|
103
|
+
}
|
|
104
|
+
loadResourceTypes();
|
|
97
105
|
</script>
|
|
98
106
|
|
|
99
107
|
{#if arg != undefined}
|
|
@@ -119,7 +127,7 @@ $: schema.properties[argName].default && setDefaultCode();
|
|
|
119
127
|
{/if}
|
|
120
128
|
</div>
|
|
121
129
|
{#if !noDynamicToggle}
|
|
122
|
-
<div class="flex flex-row gap-x-
|
|
130
|
+
<div class="flex flex-row gap-x-6 gap-y-1 flex-wrap z-10 items-center">
|
|
123
131
|
<div>
|
|
124
132
|
<ToggleButtonGroup
|
|
125
133
|
bind:selected={propertyType}
|
|
@@ -162,24 +170,25 @@ $: schema.properties[argName].default && setDefaultCode();
|
|
|
162
170
|
>
|
|
163
171
|
{#if isStaticTemplate(inputCat)}
|
|
164
172
|
<ToggleButton
|
|
165
|
-
|
|
173
|
+
tooltip={`Write text or surround javascript with \`\$\{\` and \`\}\`. Use \`results\` to connect to another node\'s output.`}
|
|
166
174
|
light
|
|
167
175
|
position="left"
|
|
168
176
|
value="static"
|
|
169
177
|
size="xs2"
|
|
170
|
-
|
|
171
|
-
{'${}
|
|
172
|
-
|
|
178
|
+
small
|
|
179
|
+
label={'${}'}
|
|
180
|
+
/>
|
|
173
181
|
{:else}
|
|
174
|
-
<ToggleButton
|
|
182
|
+
<ToggleButton small label="Static" position="left" value="static" size="xs2" />
|
|
175
183
|
{/if}
|
|
176
184
|
|
|
177
185
|
<ToggleButton
|
|
186
|
+
small
|
|
178
187
|
light
|
|
179
|
-
|
|
188
|
+
tooltip="Javascript expression ('flow_input' or 'results')."
|
|
180
189
|
position="right"
|
|
181
190
|
value="javascript"
|
|
182
|
-
|
|
191
|
+
icon={Code}
|
|
183
192
|
size="xs2"
|
|
184
193
|
/>
|
|
185
194
|
</ToggleButtonGroup>
|
|
@@ -229,6 +238,7 @@ $: schema.properties[argName].default && setDefaultCode();
|
|
|
229
238
|
</div>
|
|
230
239
|
{:else if propertyType === undefined || propertyType == 'static'}
|
|
231
240
|
<ArgInput
|
|
241
|
+
{resourceTypes}
|
|
232
242
|
noMargin
|
|
233
243
|
compact
|
|
234
244
|
bind:this={argInput}
|
|
@@ -2,7 +2,7 @@ import { SvelteComponentTyped } from "svelte";
|
|
|
2
2
|
import type { Schema } from '../common';
|
|
3
3
|
import type VariableEditor from './VariableEditor.svelte';
|
|
4
4
|
import type ItemPicker from './ItemPicker.svelte';
|
|
5
|
-
import type
|
|
5
|
+
import { type InputTransform } from '../gen';
|
|
6
6
|
declare const __propDef: {
|
|
7
7
|
props: {
|
|
8
8
|
schema: Schema;
|
|
@@ -49,7 +49,7 @@ $: {
|
|
|
49
49
|
{#if keys.length > 0}
|
|
50
50
|
{#each keys as argName (argName)}
|
|
51
51
|
{#if (!filter || filter.includes(argName)) && Object.keys(schema.properties ?? {}).includes(argName)}
|
|
52
|
-
<div class="z-10 pt-
|
|
52
|
+
<div class="z-10 pt-4">
|
|
53
53
|
<InputTransformForm
|
|
54
54
|
{previousModuleId}
|
|
55
55
|
bind:arg={args[argName]}
|
|
@@ -1,34 +1,127 @@
|
|
|
1
|
-
<script>import
|
|
2
|
-
import
|
|
1
|
+
<script>import { ChevronRightSquare, ClipboardCopy, Download, Expand } from 'lucide-svelte';
|
|
2
|
+
import ArgInfo from './ArgInfo.svelte';
|
|
3
|
+
import { Button, Drawer, DrawerContent, Skeleton } from './common';
|
|
3
4
|
import TableCustom from './TableCustom.svelte';
|
|
5
|
+
import Portal from 'svelte-portal';
|
|
6
|
+
import { Highlight } from 'svelte-highlight';
|
|
7
|
+
import { copyToClipboard } from '../utils';
|
|
8
|
+
import { json } from 'svelte-highlight/languages';
|
|
4
9
|
export let args;
|
|
5
10
|
export let tableClass = '';
|
|
11
|
+
let jsonViewer;
|
|
12
|
+
let runLocally;
|
|
13
|
+
let jsonStr = '';
|
|
14
|
+
function pythonCode() {
|
|
15
|
+
return `
|
|
16
|
+
if __name__ == 'main':
|
|
17
|
+
${Object.entries(args)
|
|
18
|
+
.map(([arg, value]) => {
|
|
19
|
+
return ` ${arg} = ${JSON.stringify(value)}`;
|
|
20
|
+
})
|
|
21
|
+
.join('\n')}
|
|
22
|
+
|
|
23
|
+
main(${Object.keys(args)
|
|
24
|
+
.map((x) => `${x} = ${x}`)
|
|
25
|
+
.join(', ')})
|
|
26
|
+
`;
|
|
27
|
+
}
|
|
28
|
+
function typescriptCode() {
|
|
29
|
+
return `
|
|
30
|
+
if (import.meta.main) {
|
|
31
|
+
${Object.entries(args)
|
|
32
|
+
.map(([arg, value]) => {
|
|
33
|
+
return ` let ${arg} = ${JSON.stringify(value)}`;
|
|
34
|
+
})
|
|
35
|
+
.join('\n')}
|
|
36
|
+
|
|
37
|
+
await main(...)
|
|
38
|
+
}
|
|
39
|
+
`;
|
|
40
|
+
}
|
|
6
41
|
</script>
|
|
7
42
|
|
|
8
|
-
<
|
|
9
|
-
<
|
|
10
|
-
<
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
43
|
+
<div class="relative">
|
|
44
|
+
<div class="text-gray-500 text-xs absolute top-8 right-0">
|
|
45
|
+
<button
|
|
46
|
+
on:click={() => {
|
|
47
|
+
jsonStr = JSON.stringify(args, null, 4)
|
|
48
|
+
jsonViewer.openDrawer()
|
|
49
|
+
}}><Expand size={18} /></button
|
|
50
|
+
>
|
|
51
|
+
</div>
|
|
52
|
+
<TableCustom class="py-2 {tableClass}">
|
|
53
|
+
<tr slot="header-row">
|
|
54
|
+
<th>Argument</th>
|
|
55
|
+
<th>Value</th>
|
|
56
|
+
</tr>
|
|
57
|
+
<tbody slot="body">
|
|
58
|
+
{#if args && Object.keys(args).length > 0}
|
|
59
|
+
{#each Object.entries(args) as [arg, value]}
|
|
60
|
+
<tr>
|
|
61
|
+
<td class="font-semibold">{arg}</td>
|
|
62
|
+
<td><ArgInfo {value} /></td>
|
|
63
|
+
</tr>
|
|
64
|
+
{/each}
|
|
65
|
+
{:else if args}
|
|
66
|
+
<tr><div class="text-gray-600 pt-2 pl-1 text-sm">No arguments</div></tr>
|
|
67
|
+
{:else}
|
|
16
68
|
<tr>
|
|
17
|
-
<td
|
|
18
|
-
|
|
69
|
+
<td>
|
|
70
|
+
<Skeleton layout={[[3], 0.5, [3]]} />
|
|
71
|
+
</td>
|
|
72
|
+
<td>
|
|
73
|
+
<Skeleton layout={[[3], 0.5, [3]]} />
|
|
74
|
+
</td>
|
|
19
75
|
</tr>
|
|
20
|
-
{/
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
76
|
+
{/if}
|
|
77
|
+
</tbody>
|
|
78
|
+
</TableCustom>
|
|
79
|
+
</div>
|
|
80
|
+
|
|
81
|
+
<Portal>
|
|
82
|
+
<Drawer bind:this={jsonViewer} size="900px">
|
|
83
|
+
<DrawerContent title="Expanded Args" on:close={jsonViewer.closeDrawer}>
|
|
84
|
+
<svelte:fragment slot="actions">
|
|
85
|
+
<a
|
|
86
|
+
class="text-sm text-gray-600 mr-2 inline-flex gap-2 items-center py-2 px-2 hover:bg-gray-100 rounded-lg"
|
|
87
|
+
download="windmill-args.json"
|
|
88
|
+
href="data:text/json;charset=utf-8,{encodeURIComponent(jsonStr)}"
|
|
89
|
+
>Download <Download size={14} /></a
|
|
90
|
+
>
|
|
91
|
+
<Button on:click={runLocally.openDrawer} color="light" size="xs">
|
|
92
|
+
<div class="flex gap-2 items-center">Use in a local script<ChevronRightSquare /> </div>
|
|
93
|
+
</Button>
|
|
94
|
+
<Button on:click={() => copyToClipboard(jsonStr)} color="light" size="xs">
|
|
95
|
+
<div class="flex gap-2 items-center">Copy to clipboard <ClipboardCopy /> </div>
|
|
96
|
+
</Button>
|
|
97
|
+
</svelte:fragment>
|
|
98
|
+
{#if jsonStr.length > 100000}
|
|
99
|
+
<div class="text-sm mb-2 text-gray-600">
|
|
100
|
+
<a
|
|
101
|
+
download="windmill-args.json"
|
|
102
|
+
href="data:text/json;charset=utf-8,{encodeURIComponent(jsonStr)}">Download</a
|
|
103
|
+
>
|
|
104
|
+
JSON is too large to be displayed in full.
|
|
105
|
+
</div>
|
|
106
|
+
{:else}
|
|
107
|
+
<Highlight language={json} code={jsonStr.replace(/\\n/g, '\n')} />
|
|
108
|
+
{/if}
|
|
109
|
+
</DrawerContent>
|
|
110
|
+
</Drawer>
|
|
111
|
+
<Drawer bind:this={runLocally} size="900px">
|
|
112
|
+
<DrawerContent title="Run locally" on:close={runLocally.closeDrawer}>
|
|
113
|
+
<h3 class="mb-2">Envs</h3>
|
|
114
|
+
If using the wmill client in your code, set the following env variables:
|
|
115
|
+
<pre
|
|
116
|
+
><code
|
|
117
|
+
>BASE_URL="{window.location.origin}"
|
|
118
|
+
WM_TOKEN="{'<TOKEN>'}"</code
|
|
119
|
+
></pre
|
|
120
|
+
>
|
|
121
|
+
<h3 class="mt-8">TypeScript</h3>
|
|
122
|
+
<pre><code>{typescriptCode()}</code></pre>
|
|
123
|
+
<h3 class="mt-8">Python</h3>
|
|
124
|
+
<pre><code>{pythonCode()}</code></pre>
|
|
125
|
+
</DrawerContent>
|
|
126
|
+
</Drawer>
|
|
127
|
+
</Portal>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<script>import {
|
|
1
|
+
<script>import { faPlus } from '@fortawesome/free-solid-svg-icons';
|
|
2
2
|
import { setInputCat as computeInputCat } from '../utils';
|
|
3
3
|
import { Badge, Button } from './common';
|
|
4
4
|
import { createEventDispatcher } from 'svelte';
|
|
@@ -11,6 +11,8 @@ import Toggle from './Toggle.svelte';
|
|
|
11
11
|
import Range from './Range.svelte';
|
|
12
12
|
import LightweightSchemaForm from './LightweightSchemaForm.svelte';
|
|
13
13
|
import { twMerge } from 'tailwind-merge';
|
|
14
|
+
import { fade } from 'svelte/transition';
|
|
15
|
+
import { X } from 'lucide-svelte';
|
|
14
16
|
export let css = undefined;
|
|
15
17
|
export let label = '';
|
|
16
18
|
export let value;
|
|
@@ -185,10 +187,10 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
|
|
|
185
187
|
<span> Not set</span>
|
|
186
188
|
{/if}
|
|
187
189
|
{:else if inputCat == 'list'}
|
|
188
|
-
<div>
|
|
189
|
-
<div>
|
|
190
|
+
<div class="w-full">
|
|
191
|
+
<div class="w-full">
|
|
190
192
|
{#each value ?? [] as v, i}
|
|
191
|
-
<div class="flex flex-row max-w-md mt-1">
|
|
193
|
+
<div class="flex flex-row max-w-md mt-1 w-full">
|
|
192
194
|
{#if itemsType?.type == 'number'}
|
|
193
195
|
<input type="number" bind:value={v} />
|
|
194
196
|
{:else if itemsType?.type == 'string' && itemsType?.contentEncoding == 'base64'}
|
|
@@ -198,14 +200,25 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
|
|
|
198
200
|
on:change={(x) => fileChanged(x, (val) => (value[i] = val))}
|
|
199
201
|
multiple={false}
|
|
200
202
|
/>
|
|
203
|
+
{:else if Array.isArray(itemsType?.enum)}
|
|
204
|
+
<select
|
|
205
|
+
on:focus={(e) => {
|
|
206
|
+
dispatch('focus')
|
|
207
|
+
}}
|
|
208
|
+
class="px-6"
|
|
209
|
+
bind:value={v}
|
|
210
|
+
>
|
|
211
|
+
{#each itemsType?.enum ?? [] as e}
|
|
212
|
+
<option>{e}</option>
|
|
213
|
+
{/each}
|
|
214
|
+
</select>
|
|
201
215
|
{:else}
|
|
202
216
|
<input type="text" bind:value={v} />
|
|
203
217
|
{/if}
|
|
204
|
-
<
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
btnClasses="mx-6"
|
|
218
|
+
<button
|
|
219
|
+
transition:fade|local={{ duration: 100 }}
|
|
220
|
+
class="rounded-full p-1 bg-white/60 duration-200 hover:bg-gray-200 ml-2"
|
|
221
|
+
aria-label="Clear"
|
|
209
222
|
on:click={() => {
|
|
210
223
|
value = value.filter((el) => el != v)
|
|
211
224
|
if (value.length == 0) {
|
|
@@ -213,15 +226,15 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
|
|
|
213
226
|
}
|
|
214
227
|
}}
|
|
215
228
|
>
|
|
216
|
-
<
|
|
217
|
-
</
|
|
229
|
+
<X size={14} />
|
|
230
|
+
</button>
|
|
218
231
|
</div>
|
|
219
232
|
{/each}
|
|
220
233
|
</div>
|
|
221
|
-
<div class="flex">
|
|
234
|
+
<div class="flex my-2">
|
|
222
235
|
<Button
|
|
223
236
|
variant="border"
|
|
224
|
-
color="
|
|
237
|
+
color="light"
|
|
225
238
|
size="sm"
|
|
226
239
|
btnClasses="mt-1"
|
|
227
240
|
on:click={() => {
|
|
@@ -232,7 +245,7 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
|
|
|
232
245
|
}}
|
|
233
246
|
>
|
|
234
247
|
<Icon data={faPlus} class="mr-2" />
|
|
235
|
-
Add
|
|
248
|
+
Add
|
|
236
249
|
</Button>
|
|
237
250
|
</div>
|
|
238
251
|
<span class="ml-2">
|
|
@@ -294,7 +307,7 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
|
|
|
294
307
|
/>
|
|
295
308
|
{:else if inputCat == 'string'}
|
|
296
309
|
<div class="flex flex-col w-full">
|
|
297
|
-
<div class="flex flex-row w-full items- justify-between">
|
|
310
|
+
<div class="flex flex-row w-full items-center justify-between">
|
|
298
311
|
<textarea
|
|
299
312
|
rows="1"
|
|
300
313
|
bind:this={el}
|
|
@@ -14,30 +14,30 @@ $: if (args === undefined) {
|
|
|
14
14
|
}
|
|
15
15
|
</script>
|
|
16
16
|
|
|
17
|
-
<div
|
|
17
|
+
<div
|
|
18
|
+
class={twMerge('w-full flex flex-col overflow-auto px-0.5 pb-2', largeGap ? 'gap-8' : 'gap-2')}
|
|
19
|
+
>
|
|
18
20
|
{#each Object.keys(schema.properties ?? {}) as argName (argName)}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
{/if}
|
|
41
|
-
</div>
|
|
21
|
+
{#if typeof args == 'object' && schema?.properties[argName] && args}
|
|
22
|
+
<LightweightArgInput
|
|
23
|
+
label={argName}
|
|
24
|
+
description={schema.properties[argName].description}
|
|
25
|
+
bind:value={args[argName]}
|
|
26
|
+
bind:valid={inputCheck[argName]}
|
|
27
|
+
type={schema.properties[argName].type}
|
|
28
|
+
required={schema.required?.includes(argName) ?? false}
|
|
29
|
+
pattern={schema.properties[argName].pattern}
|
|
30
|
+
defaultValue={schema.properties[argName].default}
|
|
31
|
+
enum_={schema.properties[argName].enum}
|
|
32
|
+
format={schema.properties[argName].format}
|
|
33
|
+
contentEncoding={schema.properties[argName].contentEncoding}
|
|
34
|
+
properties={schema.properties[argName].properties}
|
|
35
|
+
itemsType={schema.properties[argName].items}
|
|
36
|
+
extra={schema.properties[argName]}
|
|
37
|
+
on:inputClicked
|
|
38
|
+
{displayType}
|
|
39
|
+
{css}
|
|
40
|
+
/>
|
|
41
|
+
{/if}
|
|
42
42
|
{/each}
|
|
43
43
|
</div>
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
<script>import { Loader2 } from 'lucide-svelte';
|
|
2
|
-
import { Drawer, DrawerContent } from './common';
|
|
1
|
+
<script>import { ClipboardCopy, Download, Loader2 } from 'lucide-svelte';
|
|
2
|
+
import { Button, Drawer, DrawerContent } from './common';
|
|
3
|
+
import { copyToClipboard } from '../utils';
|
|
4
|
+
import { workspaceStore } from '../stores';
|
|
3
5
|
export let content;
|
|
4
6
|
export let isLoading;
|
|
5
7
|
export let duration = undefined;
|
|
6
8
|
export let mem = undefined;
|
|
7
9
|
export let wrapperClass = '';
|
|
10
|
+
export let jobId = undefined;
|
|
8
11
|
let scroll = true;
|
|
9
12
|
let div = null;
|
|
10
13
|
$: if (content != undefined) {
|
|
@@ -19,6 +22,16 @@ let logViewer;
|
|
|
19
22
|
|
|
20
23
|
<Drawer bind:this={logViewer} size="900px">
|
|
21
24
|
<DrawerContent title="Expanded Logs" on:close={logViewer.closeDrawer}>
|
|
25
|
+
<svelte:fragment slot="actions">
|
|
26
|
+
<a
|
|
27
|
+
class="text-sm text-gray-600 mr-2 inline-flex gap-2 items-center py-2 px-2 hover:bg-gray-100 rounded-lg"
|
|
28
|
+
download="windmill-logs.json"
|
|
29
|
+
href="/api/w/{$workspaceStore}/jobs_u/get_logs/{jobId}">Download <Download size={14} /></a
|
|
30
|
+
>
|
|
31
|
+
<Button on:click={() => copyToClipboard(content)} color="light" size="xs">
|
|
32
|
+
<div class="flex gap-2 items-center">Copy to clipboard <ClipboardCopy /> </div>
|
|
33
|
+
</Button>
|
|
34
|
+
</svelte:fragment>
|
|
22
35
|
<div>
|
|
23
36
|
<pre class="bg-gray-50 text-xs w-full p-2"
|
|
24
37
|
>{#if content}{content}{:else if isLoading}Waiting for job to start...{:else}No logs are available yet{/if}</pre
|
|
@@ -28,10 +41,8 @@ let logViewer;
|
|
|
28
41
|
</Drawer>
|
|
29
42
|
|
|
30
43
|
<div class="relative w-full h-full {wrapperClass}">
|
|
31
|
-
<div bind:this={div} class="w-full h-full overflow-auto
|
|
32
|
-
<div
|
|
33
|
-
class="sticky top-0 right-0 w-full flex flex-row-reverse justify-between text-gray-500 text-sm bg-gray-50/20"
|
|
34
|
-
>
|
|
44
|
+
<div bind:this={div} class="w-full h-full overflow-auto relative secondaryBackground">
|
|
45
|
+
<div class="sticky top-0 right-0 w-full flex flex-row-reverse justify-between text-sm">
|
|
35
46
|
<div class="flex gap-1">
|
|
36
47
|
<button on:click={logViewer.openDrawer}>Expand</button>
|
|
37
48
|
<div class="py-2 pr-2 text-xs flex gap-2 items-center">
|
|
@@ -43,16 +54,17 @@ let logViewer;
|
|
|
43
54
|
{#if isLoading}
|
|
44
55
|
<Loader2 class="animate-spin absolute top-2 left-2" />
|
|
45
56
|
{:else if duration}
|
|
46
|
-
<span class="absolute text-xs text-gray-500 top-2 left-2"
|
|
57
|
+
<span class="absolute text-xs text-gray-500 dark:text-gray-400 top-2 left-2"
|
|
58
|
+
>took {duration}ms</span
|
|
59
|
+
>
|
|
47
60
|
{/if}
|
|
48
61
|
{#if mem}
|
|
49
|
-
<span class="absolute text-xs text-gray-500 top-2 left-36"
|
|
62
|
+
<span class="absolute text-xs text-gray-500 dark:text-gray-400 top-2 left-36"
|
|
50
63
|
>mem peak: {(mem / 1024).toPrecision(4)}MB</span
|
|
51
64
|
>
|
|
52
65
|
{/if}
|
|
53
|
-
<pre class="whitespace-pre-wrap break-words
|
|
54
|
-
>{#if content}<span>{content}</span>{:else if !isLoading}<span
|
|
55
|
-
>No logs are available yet</span
|
|
66
|
+
<pre class="whitespace-pre-wrap break-words text-xs w-full p-2"
|
|
67
|
+
>{#if content}<span>{content}</span>{:else if !isLoading}<span>No logs are available yet</span
|
|
56
68
|
>{/if}</pre
|
|
57
69
|
>
|
|
58
70
|
</div>
|
|
@@ -87,7 +87,13 @@ function jobDone() {
|
|
|
87
87
|
<Pane size={50} minSize={20}>
|
|
88
88
|
<Splitpanes horizontal>
|
|
89
89
|
<Pane size={50} minSize={10}>
|
|
90
|
-
<LogViewer
|
|
90
|
+
<LogViewer
|
|
91
|
+
jobId={testJob?.id}
|
|
92
|
+
duration={testJob?.['duration_ms']}
|
|
93
|
+
mem={testJob?.['mem_peak']}
|
|
94
|
+
content={testJob?.logs}
|
|
95
|
+
isLoading={testIsLoading}
|
|
96
|
+
/>
|
|
91
97
|
</Pane>
|
|
92
98
|
<Pane size={50} minSize={10} class="text-sm text-gray-600">
|
|
93
99
|
{#if testJob != undefined && 'result' in testJob && testJob.result != undefined}
|
|
@@ -4,6 +4,8 @@ import ArgInput from './ArgInput.svelte';
|
|
|
4
4
|
import { Button } from './common';
|
|
5
5
|
import { getContext } from 'svelte';
|
|
6
6
|
import { evalValue } from './flows/utils';
|
|
7
|
+
import { ResourceService } from '../gen';
|
|
8
|
+
import { workspaceStore } from '../stores';
|
|
7
9
|
export let schema;
|
|
8
10
|
export let args = {};
|
|
9
11
|
export let mod;
|
|
@@ -43,6 +45,11 @@ function plugIt(argName) {
|
|
|
43
45
|
}
|
|
44
46
|
}
|
|
45
47
|
let editor = {};
|
|
48
|
+
let resourceTypes = undefined;
|
|
49
|
+
async function loadResourceTypes() {
|
|
50
|
+
resourceTypes = await ResourceService.listResourceTypeNames({ workspace: $workspaceStore });
|
|
51
|
+
}
|
|
52
|
+
loadResourceTypes();
|
|
46
53
|
</script>
|
|
47
54
|
|
|
48
55
|
<div class="w-full pt-2">
|
|
@@ -52,6 +59,7 @@ let editor = {};
|
|
|
52
59
|
<div class="flex gap-2 items-center">
|
|
53
60
|
{#if typeof args == 'object' && schema?.properties[argName]}
|
|
54
61
|
<ArgInput
|
|
62
|
+
{resourceTypes}
|
|
55
63
|
minW={false}
|
|
56
64
|
autofocus={i == 0 && autofocus}
|
|
57
65
|
label={argName}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SvelteComponentTyped } from "svelte";
|
|
2
2
|
import type { Schema } from '../common';
|
|
3
|
-
import type
|
|
3
|
+
import { type FlowModule } from '../gen';
|
|
4
4
|
import type { PickableProperties } from './flows/previousResults';
|
|
5
5
|
declare const __propDef: {
|
|
6
6
|
props: {
|
|
@@ -101,9 +101,9 @@ async function updatePath() {
|
|
|
101
101
|
<h2 class="border-b pb-1 mt-10 mb-4">Path</h2>
|
|
102
102
|
<div class="flex flex-col mb-2 gap-6">
|
|
103
103
|
<Path disabled={!own} {kind} {initialPath} bind:path />
|
|
104
|
-
<div class="mt-4" />
|
|
105
|
-
<Button disabled={!own} on:click={updatePath}>Move/Rename</Button>
|
|
106
|
-
<div />
|
|
107
104
|
</div>
|
|
105
|
+
<svelte:fragment slot="actions">
|
|
106
|
+
<Button disabled={!own} on:click={updatePath}>Move/Rename</Button>
|
|
107
|
+
</svelte:fragment>
|
|
108
108
|
</DrawerContent>
|
|
109
109
|
</Drawer>
|