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
|
@@ -11,12 +11,13 @@ import { Icon } from 'svelte-awesome';
|
|
|
11
11
|
import { writable } from 'svelte/store';
|
|
12
12
|
import { Button, Drawer, DrawerContent } from './common';
|
|
13
13
|
import Badge from './common/badge/Badge.svelte';
|
|
14
|
-
import ToggleButton from './common/toggleButton/ToggleButton.svelte';
|
|
15
|
-
import ToggleButtonGroup from './common/toggleButton/ToggleButtonGroup.svelte';
|
|
14
|
+
import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte';
|
|
15
|
+
import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
16
16
|
import FolderEditor from './FolderEditor.svelte';
|
|
17
17
|
import { random_adj } from './random_positive_adjetive';
|
|
18
18
|
import Required from './Required.svelte';
|
|
19
19
|
import Tooltip from './Tooltip.svelte';
|
|
20
|
+
import { Folder, User } from 'lucide-svelte';
|
|
20
21
|
let meta = undefined;
|
|
21
22
|
export let namePlaceholder = '';
|
|
22
23
|
export let initialPath;
|
|
@@ -252,7 +253,7 @@ async function addFolder() {
|
|
|
252
253
|
<div class="flex gap-4 shrink">
|
|
253
254
|
<!-- svelte-ignore a11y-label-has-associated-control -->
|
|
254
255
|
<label class="block">
|
|
255
|
-
<span class="text-gray-700 text-sm whitespace-nowrap"
|
|
256
|
+
<span class="text-gray-700 text-sm whitespace-nowrap"> </span>
|
|
256
257
|
|
|
257
258
|
<ToggleButtonGroup
|
|
258
259
|
class="mt-0.5"
|
|
@@ -261,7 +262,8 @@ async function addFolder() {
|
|
|
261
262
|
const kind = e.detail
|
|
262
263
|
if (meta) {
|
|
263
264
|
if (kind === 'folder') {
|
|
264
|
-
|
|
265
|
+
console.log($userStore?.folders)
|
|
266
|
+
meta.owner = folders?.[0]?.name ?? ''
|
|
265
267
|
} else if (kind === 'group') {
|
|
266
268
|
meta.owner = 'all'
|
|
267
269
|
} else {
|
|
@@ -270,9 +272,25 @@ async function addFolder() {
|
|
|
270
272
|
}
|
|
271
273
|
}}
|
|
272
274
|
>
|
|
273
|
-
<ToggleButton
|
|
275
|
+
<ToggleButton
|
|
276
|
+
icon={User}
|
|
277
|
+
{disabled}
|
|
278
|
+
light
|
|
279
|
+
size="xs"
|
|
280
|
+
value="user"
|
|
281
|
+
position="left"
|
|
282
|
+
label="User"
|
|
283
|
+
/>
|
|
274
284
|
<!-- <ToggleButton light size="xs" value="group" position="center">Group</ToggleButton> -->
|
|
275
|
-
<ToggleButton
|
|
285
|
+
<ToggleButton
|
|
286
|
+
icon={Folder}
|
|
287
|
+
{disabled}
|
|
288
|
+
light
|
|
289
|
+
size="xs"
|
|
290
|
+
value="folder"
|
|
291
|
+
position="right"
|
|
292
|
+
label="Folder"
|
|
293
|
+
/>
|
|
276
294
|
</ToggleButtonGroup>
|
|
277
295
|
</label>
|
|
278
296
|
{#if meta.ownerKind === 'user'}
|
|
@@ -283,7 +301,7 @@ async function addFolder() {
|
|
|
283
301
|
type="text"
|
|
284
302
|
bind:value={meta.owner}
|
|
285
303
|
placeholder={$userStore?.username ?? ''}
|
|
286
|
-
disabled={!($superadmin || ($userStore?.is_admin ?? false))}
|
|
304
|
+
disabled={disabled || !($superadmin || ($userStore?.is_admin ?? false))}
|
|
287
305
|
/>
|
|
288
306
|
</label>
|
|
289
307
|
{:else if meta.ownerKind === 'folder'}
|
|
@@ -309,6 +327,7 @@ async function addFolder() {
|
|
|
309
327
|
title="View folder"
|
|
310
328
|
btnClasses="!p-1.5"
|
|
311
329
|
variant="border"
|
|
330
|
+
color="light"
|
|
312
331
|
size="xs"
|
|
313
332
|
disabled={!meta.owner || meta.owner == ''}
|
|
314
333
|
on:click={viewFolder.openDrawer}
|
|
@@ -319,6 +338,7 @@ async function addFolder() {
|
|
|
319
338
|
title="New folder"
|
|
320
339
|
btnClasses="!p-1.5"
|
|
321
340
|
variant="border"
|
|
341
|
+
color="light"
|
|
322
342
|
size="xs"
|
|
323
343
|
{disabled}
|
|
324
344
|
on:click={newFolder.openDrawer}
|
|
@@ -5,6 +5,7 @@ export let notClickable = false;
|
|
|
5
5
|
export let popupClass = '';
|
|
6
6
|
export let disablePopup = false;
|
|
7
7
|
export let disappearTimeout = 100;
|
|
8
|
+
export let appearTimeout = 300;
|
|
8
9
|
const [popperRef, popperContent] = createPopperActions({ placement });
|
|
9
10
|
const popperOptions = {
|
|
10
11
|
placement: 'bottom-end',
|
|
@@ -20,12 +21,20 @@ const popperOptions = {
|
|
|
20
21
|
]
|
|
21
22
|
};
|
|
22
23
|
let showTooltip = false;
|
|
23
|
-
let timeout;
|
|
24
|
+
let timeout = undefined;
|
|
25
|
+
let inTimeout = undefined;
|
|
24
26
|
function open() {
|
|
25
27
|
clearTimeout(timeout);
|
|
26
|
-
|
|
28
|
+
if (appearTimeout == 0) {
|
|
29
|
+
showTooltip = true;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
inTimeout = setTimeout(() => (showTooltip = true), appearTimeout);
|
|
33
|
+
}
|
|
27
34
|
}
|
|
28
35
|
function close() {
|
|
36
|
+
inTimeout && clearTimeout(inTimeout);
|
|
37
|
+
inTimeout = undefined;
|
|
29
38
|
timeout = setTimeout(() => (showTooltip = false), disappearTimeout);
|
|
30
39
|
}
|
|
31
40
|
</script>
|
|
@@ -3,7 +3,7 @@ export let detail = '';
|
|
|
3
3
|
</script>
|
|
4
4
|
|
|
5
5
|
{#if required}
|
|
6
|
-
<span class="text-red-700 font-normal {$$props.class}">*</span>
|
|
6
|
+
<span class="text-red-700 dark:text-red-400 font-normal {$$props.class}">*</span>
|
|
7
7
|
{:else if detail || detail != ''}
|
|
8
8
|
<span class="text-sm text-gray-500 ml-2 font-normal {$$props.class}"
|
|
9
9
|
>({detail != '' ? `${detail}` : ''})</span
|
|
@@ -86,11 +86,17 @@ let resourceEditor;
|
|
|
86
86
|
>
|
|
87
87
|
{/if}
|
|
88
88
|
|
|
89
|
-
<Button
|
|
89
|
+
<Button
|
|
90
|
+
color="light"
|
|
91
|
+
variant="border"
|
|
92
|
+
size="xs"
|
|
93
|
+
on:click={() => appConnect?.open?.(resourceType)}
|
|
94
|
+
>
|
|
90
95
|
<Icon scale={0.8} data={faPlus} /></Button
|
|
91
96
|
>
|
|
92
97
|
<Button
|
|
93
98
|
variant="border"
|
|
99
|
+
color="light"
|
|
94
100
|
size="xs"
|
|
95
101
|
on:click={() => {
|
|
96
102
|
loadResources(resourceType)
|
|
@@ -25,6 +25,10 @@ if ($runFormStore) {
|
|
|
25
25
|
args = $runFormStore;
|
|
26
26
|
$runFormStore = undefined;
|
|
27
27
|
}
|
|
28
|
+
export async function setArgs(nargs) {
|
|
29
|
+
args = nargs;
|
|
30
|
+
reloadArgs++;
|
|
31
|
+
}
|
|
28
32
|
export function run() {
|
|
29
33
|
runAction(scheduledForStr, args, invisible_to_owner);
|
|
30
34
|
}
|
|
@@ -32,6 +36,7 @@ export let isValid = true;
|
|
|
32
36
|
let scheduledForStr;
|
|
33
37
|
let invisible_to_owner;
|
|
34
38
|
$: cliCommand = `wmill ${isFlow ? 'flow' : 'script'} run ${runnable?.path} -d '${JSON.stringify(args)}'`;
|
|
39
|
+
let reloadArgs = 0;
|
|
35
40
|
</script>
|
|
36
41
|
|
|
37
42
|
<div class="max-w-3xl">
|
|
@@ -91,14 +96,16 @@ $: cliCommand = `wmill ${isFlow ? 'flow' : 'script'} run ${runnable?.path} -d '$
|
|
|
91
96
|
{#if !runnable.schema.properties || Object.keys(runnable.schema.properties).length === 0}
|
|
92
97
|
<div class="text-sm p-4">No arguments</div>
|
|
93
98
|
{:else}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
99
|
+
{#key reloadArgs}
|
|
100
|
+
<SchemaForm
|
|
101
|
+
prettifyHeader
|
|
102
|
+
{noVariablePicker}
|
|
103
|
+
{autofocus}
|
|
104
|
+
schema={runnable.schema}
|
|
105
|
+
bind:isValid
|
|
106
|
+
bind:args
|
|
107
|
+
/>
|
|
108
|
+
{/key}
|
|
102
109
|
{/if}
|
|
103
110
|
{:else}
|
|
104
111
|
<div class="text-xs text-gray-600">No arguments</div>
|
|
@@ -26,6 +26,7 @@ declare const __propDef: {
|
|
|
26
26
|
viewCliRun?: boolean | undefined;
|
|
27
27
|
isFlow: boolean;
|
|
28
28
|
args?: Record<string, any> | undefined;
|
|
29
|
+
setArgs?: ((nargs: Record<string, any>) => Promise<void>) | undefined;
|
|
29
30
|
run?: (() => void) | undefined;
|
|
30
31
|
isValid?: boolean | undefined;
|
|
31
32
|
};
|
|
@@ -38,6 +39,7 @@ export type RunFormProps = typeof __propDef.props;
|
|
|
38
39
|
export type RunFormEvents = typeof __propDef.events;
|
|
39
40
|
export type RunFormSlots = typeof __propDef.slots;
|
|
40
41
|
export default class RunForm extends SvelteComponentTyped<RunFormProps, RunFormEvents, RunFormSlots> {
|
|
42
|
+
get setArgs(): (nargs: Record<string, any>) => Promise<void>;
|
|
41
43
|
get run(): () => void;
|
|
42
44
|
}
|
|
43
45
|
export {};
|
|
@@ -248,18 +248,20 @@ function displayInfoKey(displayInfo) {
|
|
|
248
248
|
<th />
|
|
249
249
|
</tr>
|
|
250
250
|
<tbody slot="body">
|
|
251
|
-
{#
|
|
252
|
-
|
|
253
|
-
<
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
251
|
+
{#key schema.required}
|
|
252
|
+
{#each schemaPropertiesToDisplay(schema) as displayInfo (displayInfoKey(displayInfo))}
|
|
253
|
+
<tr animate:flip={{ duration: moveAnimationDuration }}>
|
|
254
|
+
<PropertyRow
|
|
255
|
+
{displayInfo}
|
|
256
|
+
{isAnimated}
|
|
257
|
+
{lightMode}
|
|
258
|
+
on:startEditArgument={handleStartEditEvent}
|
|
259
|
+
on:deleteArgument={handleDeleteEvent}
|
|
260
|
+
on:changePosition={handleChangePositionEvent}
|
|
261
|
+
/>
|
|
262
|
+
</tr>
|
|
263
|
+
{/each}
|
|
264
|
+
{/key}
|
|
263
265
|
</tbody>
|
|
264
266
|
</TableCustom>
|
|
265
267
|
{:else}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<script>import { VariableService } from '../gen';
|
|
1
|
+
<script>import { ResourceService, VariableService } from '../gen';
|
|
2
2
|
import { workspaceStore } from '../stores';
|
|
3
3
|
import { allTrue } from '../utils';
|
|
4
4
|
import { faPlus } from '@fortawesome/free-solid-svg-icons';
|
|
@@ -49,16 +49,22 @@ $: {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
+
let resourceTypes = undefined;
|
|
53
|
+
async function loadResourceTypes() {
|
|
54
|
+
resourceTypes = await ResourceService.listResourceTypeNames({ workspace: $workspaceStore });
|
|
55
|
+
}
|
|
56
|
+
loadResourceTypes();
|
|
52
57
|
</script>
|
|
53
58
|
|
|
54
59
|
<div class="w-full {clazz} {flexWrap ? 'flex flex-row flex-wrap gap-x-6 gap-y-2' : ''}">
|
|
55
60
|
{#if keys.length > 0}
|
|
56
61
|
{#each keys as argName, i (argName)}
|
|
57
|
-
{#if Object.keys(schema
|
|
62
|
+
{#if Object.keys(schema?.properties ?? {}).includes(argName)}
|
|
58
63
|
<div>
|
|
59
64
|
{#if typeof args == 'object' && schema?.properties[argName]}
|
|
60
65
|
{#if editableSchema}
|
|
61
66
|
<ArgInput
|
|
67
|
+
{resourceTypes}
|
|
62
68
|
{prettifyHeader}
|
|
63
69
|
autofocus={i == 0 && autofocus}
|
|
64
70
|
label={argName}
|
|
@@ -85,6 +91,7 @@ $: {
|
|
|
85
91
|
/>
|
|
86
92
|
{:else}
|
|
87
93
|
<ArgInput
|
|
94
|
+
{resourceTypes}
|
|
88
95
|
{prettifyHeader}
|
|
89
96
|
autofocus={i == 0 && autofocus}
|
|
90
97
|
label={argName}
|
|
@@ -29,6 +29,7 @@ import { Alert, Button } from './common';
|
|
|
29
29
|
import Toggle from './Toggle.svelte';
|
|
30
30
|
import DrawerContent from './common/drawer/DrawerContent.svelte';
|
|
31
31
|
import Drawer from './common/drawer/Drawer.svelte';
|
|
32
|
+
import ArrayTypeNarrowing from './ArrayTypeNarrowing.svelte';
|
|
32
33
|
export let error = '';
|
|
33
34
|
export let editing = false;
|
|
34
35
|
export let oldArgName = undefined;
|
|
@@ -118,6 +119,11 @@ else {
|
|
|
118
119
|
property.contentEncoding = undefined
|
|
119
120
|
property.enum_ = undefined
|
|
120
121
|
property.pattern = undefined
|
|
122
|
+
if (argType == 'array') {
|
|
123
|
+
property.items = { type: 'string' }
|
|
124
|
+
} else {
|
|
125
|
+
property.items = undefined
|
|
126
|
+
}
|
|
121
127
|
}}
|
|
122
128
|
>
|
|
123
129
|
{argType}
|
|
@@ -139,10 +145,12 @@ else {
|
|
|
139
145
|
<div>
|
|
140
146
|
<div class="flex flex-row gap-x-4 items-center">
|
|
141
147
|
<ArgInput
|
|
148
|
+
resourceTypes={[]}
|
|
142
149
|
label="Default"
|
|
143
150
|
bind:value={property.default}
|
|
144
151
|
type={property.selectedType}
|
|
145
152
|
pattern={property.pattern}
|
|
153
|
+
itemsType={property.items}
|
|
146
154
|
/>
|
|
147
155
|
<Toggle
|
|
148
156
|
options={{ right: 'Required' }}
|
|
@@ -170,11 +178,7 @@ else {
|
|
|
170
178
|
bind:contentEncoding={property.contentEncoding}
|
|
171
179
|
/>
|
|
172
180
|
{:else if property.selectedType == 'array'}
|
|
173
|
-
<
|
|
174
|
-
<option value={undefined}>No specific item type</option>
|
|
175
|
-
<option value={{ type: 'string' }}> Items are strings</option>
|
|
176
|
-
<option value={{ type: 'number' }}>Items are numbers</option>
|
|
177
|
-
</select>
|
|
181
|
+
<ArrayTypeNarrowing bind:itemsType={property.items} />
|
|
178
182
|
{:else if property.selectedType == 'object'}
|
|
179
183
|
<h3 class="mb-2 font-bold mt-4">Resource type</h3>
|
|
180
184
|
<ObjectTypeNarrowing bind:format={property.format} />
|
|
@@ -369,6 +369,7 @@ function onKeyDown(event) {
|
|
|
369
369
|
{#if !isCloudHosted()}
|
|
370
370
|
<h2 class="border-b pb-1 mt-10 mb-4"
|
|
371
371
|
>Custom env variables<Tooltip
|
|
372
|
+
documentationLink="https://docs.windmill.dev/docs/reference#custom-environment-variables"
|
|
372
373
|
>Additional static custom env variables to pass to the script.</Tooltip
|
|
373
374
|
></h2
|
|
374
375
|
>
|
|
@@ -399,30 +400,30 @@ function onKeyDown(event) {
|
|
|
399
400
|
{/if}
|
|
400
401
|
{/if}
|
|
401
402
|
</div>
|
|
403
|
+
<div class="flex mt-2">
|
|
404
|
+
<Button
|
|
405
|
+
variant="border"
|
|
406
|
+
color="dark"
|
|
407
|
+
size="xs"
|
|
408
|
+
btnClasses="mt-1"
|
|
409
|
+
on:click={() => {
|
|
410
|
+
if (script.envs == undefined || !Array.isArray(script.envs)) {
|
|
411
|
+
script.envs = []
|
|
412
|
+
}
|
|
413
|
+
script.envs = script.envs.concat('')
|
|
414
|
+
}}
|
|
415
|
+
>
|
|
416
|
+
<Icon data={faPlus} class="mr-2" />
|
|
417
|
+
Add item
|
|
418
|
+
</Button>
|
|
419
|
+
</div>
|
|
402
420
|
{/if}
|
|
403
|
-
<div class="flex mt-2">
|
|
404
|
-
<Button
|
|
405
|
-
variant="border"
|
|
406
|
-
color="dark"
|
|
407
|
-
size="xs"
|
|
408
|
-
btnClasses="mt-1"
|
|
409
|
-
on:click={() => {
|
|
410
|
-
if (script.envs == undefined || !Array.isArray(script.envs)) {
|
|
411
|
-
script.envs = []
|
|
412
|
-
}
|
|
413
|
-
script.envs = script.envs.concat('')
|
|
414
|
-
}}
|
|
415
|
-
>
|
|
416
|
-
<Icon data={faPlus} class="mr-2" />
|
|
417
|
-
Add item
|
|
418
|
-
</Button>
|
|
419
|
-
</div>
|
|
420
421
|
</DrawerContent>
|
|
421
422
|
</Drawer>
|
|
422
423
|
|
|
423
424
|
<div class="flex flex-col h-screen">
|
|
424
425
|
<div class="flex flex-col w-full px-2 py-1 border-b shadow-sm">
|
|
425
|
-
<div class="justify-between flex gap-8 w-full items-center px-2">
|
|
426
|
+
<div class="justify-between flex gap-2 lg:gap-8 w-full items-center px-2">
|
|
426
427
|
<div class="min-w-64 w-full max-w-md">
|
|
427
428
|
<input
|
|
428
429
|
type="text"
|
|
@@ -472,7 +473,7 @@ function onKeyDown(event) {
|
|
|
472
473
|
<Awareness />
|
|
473
474
|
{/if}
|
|
474
475
|
|
|
475
|
-
<div class="flex flex-row gap-x-4">
|
|
476
|
+
<div class="flex flex-row gap-x-1 lg:gap-x-4">
|
|
476
477
|
<Button
|
|
477
478
|
color="light"
|
|
478
479
|
variant="border"
|
|
@@ -558,6 +559,7 @@ function onKeyDown(event) {
|
|
|
558
559
|
<ScriptSchema bind:schema={script.schema} />
|
|
559
560
|
</DrawerContent>
|
|
560
561
|
</Drawer>
|
|
562
|
+
|
|
561
563
|
<ScriptEditor
|
|
562
564
|
collabMode
|
|
563
565
|
edit={initialPath != ''}
|
|
@@ -81,29 +81,15 @@ async function loadPastTests() {
|
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
83
|
export async function inferSchema(code, nlang) {
|
|
84
|
-
|
|
85
|
-
let isDefault = [];
|
|
86
|
-
Object.entries(args).forEach(([k, v]) => {
|
|
87
|
-
if (schema.properties?.[k]?.default == v) {
|
|
88
|
-
isDefault.push(k);
|
|
89
|
-
}
|
|
90
|
-
});
|
|
84
|
+
let nschema = schema ?? emptySchema();
|
|
91
85
|
try {
|
|
92
|
-
await inferArgs(nlang ?? lang, code,
|
|
86
|
+
await inferArgs(nlang ?? lang, code, nschema);
|
|
93
87
|
validCode = true;
|
|
88
|
+
schema = nschema;
|
|
94
89
|
}
|
|
95
90
|
catch (e) {
|
|
96
91
|
validCode = false;
|
|
97
92
|
}
|
|
98
|
-
schema = schema;
|
|
99
|
-
isDefault
|
|
100
|
-
.filter((key) => schema.properties[key] != undefined)
|
|
101
|
-
.forEach((key) => (args[key] = schema.properties[key].default));
|
|
102
|
-
for (const key of Object.keys(args)) {
|
|
103
|
-
if (schema.properties[key] == undefined) {
|
|
104
|
-
delete args[key];
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
93
|
}
|
|
108
94
|
onMount(() => {
|
|
109
95
|
inferSchema(code);
|
|
@@ -200,6 +186,7 @@ function collabUrl() {
|
|
|
200
186
|
<div class="border-b-2 shadow-sm px-1 pr-4" bind:clientWidth={width}>
|
|
201
187
|
<div class="flex justify-between space-x-2">
|
|
202
188
|
<EditorBar
|
|
189
|
+
scriptPath={edit ? path : undefined}
|
|
203
190
|
on:toggleCollabMode={() => {
|
|
204
191
|
if (wsProvider?.shouldConnect) {
|
|
205
192
|
disableCollaboration()
|
|
@@ -222,7 +209,7 @@ function collabUrl() {
|
|
|
222
209
|
<div class="py-1">
|
|
223
210
|
<Button
|
|
224
211
|
target="_blank"
|
|
225
|
-
href="https://
|
|
212
|
+
href="https://docs.windmill.dev/docs/cli_local_dev/vscode-extension"
|
|
226
213
|
color="light"
|
|
227
214
|
size="xs"
|
|
228
215
|
btnClasses="mr-1 hidden lg:block"
|
|
@@ -230,7 +217,7 @@ function collabUrl() {
|
|
|
230
217
|
icon: faGithub
|
|
231
218
|
}}
|
|
232
219
|
>
|
|
233
|
-
|
|
220
|
+
Use VScode
|
|
234
221
|
</Button>
|
|
235
222
|
</div>
|
|
236
223
|
{/if}
|
|
@@ -3,11 +3,13 @@ import { hubScripts, workspaceStore } from '../stores';
|
|
|
3
3
|
import { createEventDispatcher } from 'svelte';
|
|
4
4
|
import Select from 'svelte-select';
|
|
5
5
|
import { getScriptByPath } from '../scripts';
|
|
6
|
-
import RadioButton from './RadioButton.svelte';
|
|
7
6
|
import { Button, Drawer, DrawerContent } from './common';
|
|
8
7
|
import HighlightCode from './HighlightCode.svelte';
|
|
9
8
|
import FlowPathViewer from './flows/content/FlowPathViewer.svelte';
|
|
10
9
|
import { SELECT_INPUT_DEFAULT_STYLE } from '../defaults';
|
|
10
|
+
import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte';
|
|
11
|
+
import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
12
|
+
import { Code2, Globe } from 'lucide-svelte';
|
|
11
13
|
export let initialPath = undefined;
|
|
12
14
|
export let scriptPath = undefined;
|
|
13
15
|
export let allowFlow = false;
|
|
@@ -20,9 +22,9 @@ let drawerViewer;
|
|
|
20
22
|
let drawerFlowViewer;
|
|
21
23
|
let code = '';
|
|
22
24
|
let lang;
|
|
23
|
-
let options = [['Script', 'script']];
|
|
24
|
-
allowHub && options.unshift(['Hub', 'hub']);
|
|
25
|
-
allowFlow && options.push(['Flow', 'flow']);
|
|
25
|
+
let options = [['Script', 'script', Code2]];
|
|
26
|
+
allowHub && options.unshift(['Hub', 'hub', Globe]);
|
|
27
|
+
allowFlow && options.push(['Flow', 'flow', undefined]);
|
|
26
28
|
const dispatch = createEventDispatcher();
|
|
27
29
|
async function loadItems() {
|
|
28
30
|
if (itemKind == 'flow') {
|
|
@@ -60,10 +62,14 @@ $: itemKind && $workspaceStore && loadItems();
|
|
|
60
62
|
</DrawerContent>
|
|
61
63
|
</Drawer>
|
|
62
64
|
|
|
63
|
-
<div class="flex flex-row items-center gap-4 w-full">
|
|
65
|
+
<div class="flex flex-row items-center gap-4 w-full mt-2">
|
|
64
66
|
{#if options.length > 1}
|
|
65
|
-
<div
|
|
66
|
-
<
|
|
67
|
+
<div>
|
|
68
|
+
<ToggleButtonGroup bind:selected={itemKind}>
|
|
69
|
+
{#each options as [label, value, icon]}
|
|
70
|
+
<ToggleButton {icon} {disabled} {value} {label} />
|
|
71
|
+
{/each}
|
|
72
|
+
</ToggleButtonGroup>
|
|
67
73
|
</div>
|
|
68
74
|
{/if}
|
|
69
75
|
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<script>import { Pane, Splitpanes } from 'svelte-splitpanes';
|
|
2
|
+
import PanelSection from './apps/editor/settingsPanel/common/PanelSection.svelte';
|
|
3
|
+
import { classNames } from '../utils';
|
|
4
|
+
import { ScriptService } from '../gen';
|
|
5
|
+
import { workspaceStore } from '../stores';
|
|
6
|
+
import { Skeleton } from './common';
|
|
7
|
+
import FlowModuleScript from './flows/content/FlowModuleScript.svelte';
|
|
8
|
+
export let scriptPath;
|
|
9
|
+
let selectedVersion = undefined;
|
|
10
|
+
let versions = undefined;
|
|
11
|
+
async function loadVersions() {
|
|
12
|
+
versions = (await ScriptService.getScriptByPath({ workspace: $workspaceStore, path: scriptPath })).parent_hashes;
|
|
13
|
+
}
|
|
14
|
+
loadVersions();
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<Splitpanes class="!overflow-visible">
|
|
18
|
+
<Pane size={20}>
|
|
19
|
+
<PanelSection title="Past Versions">
|
|
20
|
+
<div class="flex flex-col gap-2 w-full">
|
|
21
|
+
{#if versions}
|
|
22
|
+
{#if versions.length > 0}
|
|
23
|
+
<div class="flex gap-2 flex-col">
|
|
24
|
+
{#each versions ?? [] as version}
|
|
25
|
+
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
26
|
+
<div
|
|
27
|
+
class={classNames(
|
|
28
|
+
'border flex gap-1 truncate justify-between flex-row w-full items-center p-2 rounded-md cursor-pointer hover:bg-blue-50 hover:text-blue-400',
|
|
29
|
+
selectedVersion == version ? 'bg-blue-100 text-blue-600' : ''
|
|
30
|
+
)}
|
|
31
|
+
on:click={() => (selectedVersion = version)}
|
|
32
|
+
>
|
|
33
|
+
<span class="text-xs truncate">{version}</span>
|
|
34
|
+
</div>
|
|
35
|
+
{/each}
|
|
36
|
+
</div>
|
|
37
|
+
{:else}
|
|
38
|
+
<div class="text-sm text-gray-500">No items</div>
|
|
39
|
+
{/if}
|
|
40
|
+
{:else}
|
|
41
|
+
<Skeleton layout={[[40], [40], [40], [40], [40]]} />
|
|
42
|
+
{/if}
|
|
43
|
+
</div>
|
|
44
|
+
</PanelSection>
|
|
45
|
+
</Pane>
|
|
46
|
+
<Pane size={80}>
|
|
47
|
+
<div class="h-full w-full overflow-auto">
|
|
48
|
+
{#if selectedVersion}
|
|
49
|
+
{#key selectedVersion}
|
|
50
|
+
<FlowModuleScript path={scriptPath} hash={selectedVersion} />
|
|
51
|
+
{/key}
|
|
52
|
+
{:else}
|
|
53
|
+
<div class="text-sm p-2 text-gray-500">Select a deployment version to see its details</div>
|
|
54
|
+
{/if}
|
|
55
|
+
</div>
|
|
56
|
+
</Pane>
|
|
57
|
+
</Splitpanes>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
scriptPath: string;
|
|
5
|
+
};
|
|
6
|
+
events: {
|
|
7
|
+
[evt: string]: CustomEvent<any>;
|
|
8
|
+
};
|
|
9
|
+
slots: {};
|
|
10
|
+
};
|
|
11
|
+
export type ScriptVersionHistoryProps = typeof __propDef.props;
|
|
12
|
+
export type ScriptVersionHistoryEvents = typeof __propDef.events;
|
|
13
|
+
export type ScriptVersionHistorySlots = typeof __propDef.slots;
|
|
14
|
+
export default class ScriptVersionHistory extends SvelteComponentTyped<ScriptVersionHistoryProps, ScriptVersionHistoryEvents, ScriptVersionHistorySlots> {
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
@@ -45,6 +45,7 @@ export let extraLib = '';
|
|
|
45
45
|
export let shouldBindKey = true;
|
|
46
46
|
export let autoHeight = false;
|
|
47
47
|
export let fixedOverflowWidgets = true;
|
|
48
|
+
export let small = false;
|
|
48
49
|
const dispatch = createEventDispatcher();
|
|
49
50
|
const uri = `file:///${hash}.${langToExt(lang)}`;
|
|
50
51
|
buildWorkerDefinition('../../../workers', import.meta.url, false);
|
|
@@ -82,7 +83,8 @@ async function loadMonaco() {
|
|
|
82
83
|
let widgets = document.getElementById('monaco-widgets-root') ?? undefined;
|
|
83
84
|
editor = meditor.create(divEl, {
|
|
84
85
|
...editorConfig(model, code, lang, automaticLayout, fixedOverflowWidgets),
|
|
85
|
-
overflowWidgetsDomNode: widgets
|
|
86
|
+
overflowWidgetsDomNode: widgets,
|
|
87
|
+
fontSize: small ? 12 : 14
|
|
86
88
|
});
|
|
87
89
|
let timeoutModel = undefined;
|
|
88
90
|
editor.onDidChangeModelContent((event) => {
|
|
@@ -19,6 +19,7 @@ declare const __propDef: {
|
|
|
19
19
|
shouldBindKey?: boolean | undefined;
|
|
20
20
|
autoHeight?: boolean | undefined;
|
|
21
21
|
fixedOverflowWidgets?: boolean | undefined;
|
|
22
|
+
small?: boolean | undefined;
|
|
22
23
|
getCode?: (() => string) | undefined;
|
|
23
24
|
insertAtCursor?: ((code: string) => void) | undefined;
|
|
24
25
|
setCode?: ((ncode: string) => void) | undefined;
|
|
@@ -5,9 +5,10 @@ import Tooltip from './Tooltip.svelte';
|
|
|
5
5
|
export let text;
|
|
6
6
|
export let tooltip = undefined;
|
|
7
7
|
export let view = false;
|
|
8
|
+
export let size = 'md';
|
|
8
9
|
</script>
|
|
9
10
|
|
|
10
|
-
<Button color="light" on:click={() => (view = !view)} variant="border"
|
|
11
|
+
<Button color="light" on:click={() => (view = !view)} {size} variant="border"
|
|
11
12
|
>{text}
|
|
12
13
|
{#if tooltip}
|
|
13
14
|
<Tooltip wrapperClass="mx-1">{tooltip}</Tooltip>
|