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
package/package/cloud.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { BROWSER } from 'esm-env';
|
|
2
|
-
import { get } from 'svelte/store';
|
|
3
2
|
import { premiumStore, userStore, workspaceStore } from './stores';
|
|
4
3
|
import { getUserExt } from './user';
|
|
5
4
|
import { WorkspaceService } from './gen';
|
|
@@ -25,17 +24,4 @@ if (BROWSER) {
|
|
|
25
24
|
userStore.set(undefined);
|
|
26
25
|
}
|
|
27
26
|
});
|
|
28
|
-
setInterval(async () => {
|
|
29
|
-
try {
|
|
30
|
-
const workspace = get(workspaceStore);
|
|
31
|
-
const user = get(userStore);
|
|
32
|
-
if (workspace && user && !user.is_super_admin && !user.is_admin) {
|
|
33
|
-
userStore.set(await getUserExt(workspace));
|
|
34
|
-
console.log('refreshed user');
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
catch (e) {
|
|
38
|
-
console.error('Could not refresh user', e);
|
|
39
|
-
}
|
|
40
|
-
}, 30000);
|
|
41
27
|
}
|
package/package/common.d.ts
CHANGED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<script>import { Pen } from 'lucide-svelte';
|
|
2
|
+
import { createEventDispatcher } from 'svelte';
|
|
3
|
+
import { twMerge } from 'tailwind-merge';
|
|
4
|
+
export let customValue;
|
|
5
|
+
export let disabled;
|
|
6
|
+
export let value;
|
|
7
|
+
export let enum_;
|
|
8
|
+
export let autofocus;
|
|
9
|
+
export let defaultValue;
|
|
10
|
+
export let valid;
|
|
11
|
+
const dispatch = createEventDispatcher();
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
{#if !customValue}
|
|
15
|
+
<select
|
|
16
|
+
on:focus={(e) => {
|
|
17
|
+
dispatch('focus')
|
|
18
|
+
}}
|
|
19
|
+
{disabled}
|
|
20
|
+
class="px-6"
|
|
21
|
+
bind:value
|
|
22
|
+
>
|
|
23
|
+
{#each enum_ ?? [] as e}
|
|
24
|
+
<option>{e}</option>
|
|
25
|
+
{/each}
|
|
26
|
+
</select>
|
|
27
|
+
{:else}
|
|
28
|
+
<input
|
|
29
|
+
{autofocus}
|
|
30
|
+
on:focus
|
|
31
|
+
type="text"
|
|
32
|
+
class={twMerge(
|
|
33
|
+
'secondaryBackground',
|
|
34
|
+
valid
|
|
35
|
+
? ''
|
|
36
|
+
: 'border border-red-700 border-opacity-30 focus:border-red-700 focus:border-opacity-30 bg-red-100'
|
|
37
|
+
)}
|
|
38
|
+
placeholder={defaultValue ?? ''}
|
|
39
|
+
bind:value
|
|
40
|
+
/>
|
|
41
|
+
{/if}
|
|
42
|
+
|
|
43
|
+
{#if !disabled}
|
|
44
|
+
<button
|
|
45
|
+
class="min-w-min !px-2 items-center text-gray-800 bg-gray-100 border rounded center-center hover:bg-gray-300 transition-all cursor-pointer"
|
|
46
|
+
on:click={() => {
|
|
47
|
+
customValue = !customValue
|
|
48
|
+
}}
|
|
49
|
+
title="Custom Value"
|
|
50
|
+
>
|
|
51
|
+
<Pen size={14} />
|
|
52
|
+
</button>
|
|
53
|
+
{/if}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
customValue: boolean;
|
|
5
|
+
disabled: boolean;
|
|
6
|
+
value: any;
|
|
7
|
+
enum_: string[] | undefined;
|
|
8
|
+
autofocus: boolean;
|
|
9
|
+
defaultValue: string | undefined;
|
|
10
|
+
valid: boolean;
|
|
11
|
+
};
|
|
12
|
+
events: {
|
|
13
|
+
focus: CustomEvent<any>;
|
|
14
|
+
} & {
|
|
15
|
+
[evt: string]: CustomEvent<any>;
|
|
16
|
+
};
|
|
17
|
+
slots: {};
|
|
18
|
+
};
|
|
19
|
+
export type ArgEnumProps = typeof __propDef.props;
|
|
20
|
+
export type ArgEnumEvents = typeof __propDef.events;
|
|
21
|
+
export type ArgEnumSlots = typeof __propDef.slots;
|
|
22
|
+
export default class ArgEnum extends SvelteComponentTyped<ArgEnumProps, ArgEnumEvents, ArgEnumSlots> {
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
<script>import { ResourceService } from '../gen';
|
|
2
2
|
import { workspaceStore } from '../stores';
|
|
3
|
-
import { truncate } from '../utils';
|
|
4
|
-
import {
|
|
3
|
+
import { copyToClipboard, truncate } from '../utils';
|
|
4
|
+
import { ClipboardCopy, Expand } from 'lucide-svelte';
|
|
5
|
+
import { Button, DrawerContent } from './common';
|
|
5
6
|
import Drawer from './common/drawer/Drawer.svelte';
|
|
6
7
|
import ObjectViewer from './propertyPicker/ObjectViewer.svelte';
|
|
7
8
|
import Tooltip from './Tooltip.svelte';
|
|
@@ -18,7 +19,16 @@ async function getResource(path) {
|
|
|
18
19
|
</script>
|
|
19
20
|
|
|
20
21
|
<Drawer bind:this={jsonViewer} size="800px">
|
|
21
|
-
<DrawerContent title="Argument Details" on:close={jsonViewer.
|
|
22
|
+
<DrawerContent title="Argument Details" on:close={jsonViewer.closeDrawer}>
|
|
23
|
+
<svelte:fragment slot="actions">
|
|
24
|
+
<Button
|
|
25
|
+
on:click={() => copyToClipboard(JSON.stringify(jsonViewerContent, null, 4))}
|
|
26
|
+
color="light"
|
|
27
|
+
size="xs"
|
|
28
|
+
>
|
|
29
|
+
<div class="flex gap-2 items-center">Copy to clipboard <ClipboardCopy /> </div>
|
|
30
|
+
</Button>
|
|
31
|
+
</svelte:fragment>
|
|
22
32
|
{#if isString(jsonViewerContent)}
|
|
23
33
|
<pre>{jsonViewerContent}</pre>
|
|
24
34
|
{:else}
|
|
@@ -54,16 +64,18 @@ async function getResource(path) {
|
|
|
54
64
|
>
|
|
55
65
|
{/if}
|
|
56
66
|
{:else}
|
|
57
|
-
<div class="
|
|
58
|
-
|
|
67
|
+
<div class="relative">
|
|
68
|
+
{#if JSON.stringify(value).length > 120}
|
|
69
|
+
<button
|
|
70
|
+
class="text-xs absolute top-0 right-4 text-gray-500"
|
|
71
|
+
on:click={() => {
|
|
72
|
+
jsonViewerContent = value
|
|
73
|
+
jsonViewer.toggleDrawer()
|
|
74
|
+
}}><Expand size={18} /></button
|
|
75
|
+
>
|
|
76
|
+
{/if}
|
|
77
|
+
<div class="max-h-40 overflow-auto">
|
|
78
|
+
<ObjectViewer collapsed={false} topBrackets={true} pureViewer={true} json={value} />
|
|
79
|
+
</div>
|
|
59
80
|
</div>
|
|
60
|
-
{#if JSON.stringify(value).length > 120}
|
|
61
|
-
<button
|
|
62
|
-
class="text-xs text-blue-500"
|
|
63
|
-
on:click={() => {
|
|
64
|
-
jsonViewerContent = value
|
|
65
|
-
jsonViewer.toggleDrawer()
|
|
66
|
-
}}>See JSON</button
|
|
67
|
-
>
|
|
68
|
-
{/if}
|
|
69
81
|
{/if}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script>import { faChevronDown, faChevronUp, faPlus } from '@fortawesome/free-solid-svg-icons';
|
|
2
2
|
import { setInputCat as computeInputCat } from '../utils';
|
|
3
|
-
import { DollarSign,
|
|
3
|
+
import { DollarSign, X } from 'lucide-svelte';
|
|
4
4
|
import { createEventDispatcher } from 'svelte';
|
|
5
5
|
import autosize from 'svelte-autosize';
|
|
6
6
|
import Icon from 'svelte-awesome';
|
|
@@ -18,6 +18,9 @@ import SchemaForm from './SchemaForm.svelte';
|
|
|
18
18
|
import SimpleEditor from './SimpleEditor.svelte';
|
|
19
19
|
import StringTypeNarrowing from './StringTypeNarrowing.svelte';
|
|
20
20
|
import Toggle from './Toggle.svelte';
|
|
21
|
+
import { twMerge } from 'tailwind-merge';
|
|
22
|
+
import ArgEnum from './ArgEnum.svelte';
|
|
23
|
+
import ArrayTypeNarrowing from './ArrayTypeNarrowing.svelte';
|
|
21
24
|
export let label = '';
|
|
22
25
|
export let value;
|
|
23
26
|
export let defaultValue = undefined;
|
|
@@ -44,6 +47,7 @@ export let noMargin = false;
|
|
|
44
47
|
export let extra = {};
|
|
45
48
|
export let minW = true;
|
|
46
49
|
export let prettifyHeader = false;
|
|
50
|
+
export let resourceTypes;
|
|
47
51
|
let seeEditable = enum_ != undefined || pattern != undefined;
|
|
48
52
|
const dispatch = createEventDispatcher();
|
|
49
53
|
let error = '';
|
|
@@ -76,6 +80,14 @@ function computeDefaultValue(nvalue, inputCat, defaultValue) {
|
|
|
76
80
|
}
|
|
77
81
|
computeDefaultValue();
|
|
78
82
|
$: computeDefaultValue(value, inputCat, defaultValue);
|
|
83
|
+
$: defaultValue != undefined && handleDefaultValueChange();
|
|
84
|
+
let oldDefaultValue = defaultValue;
|
|
85
|
+
function handleDefaultValueChange() {
|
|
86
|
+
if (value == oldDefaultValue) {
|
|
87
|
+
value = defaultValue;
|
|
88
|
+
}
|
|
89
|
+
oldDefaultValue = defaultValue;
|
|
90
|
+
}
|
|
79
91
|
function evalValueToRaw() {
|
|
80
92
|
rawValue = inputCat === 'object' ? JSON.stringify(value, null, 2) : undefined;
|
|
81
93
|
}
|
|
@@ -144,52 +156,47 @@ $: validateInput(pattern, value);
|
|
|
144
156
|
<FieldHeader prettify={prettifyHeader} {label} {required} {type} {contentEncoding} {format} />
|
|
145
157
|
{/if}
|
|
146
158
|
{#if editableSchema}
|
|
147
|
-
<
|
|
148
|
-
|
|
149
|
-
<
|
|
150
|
-
class="
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
159
|
+
<label class="text-gray-700">
|
|
160
|
+
Description
|
|
161
|
+
<textarea
|
|
162
|
+
class="mb-1"
|
|
163
|
+
use:autosize
|
|
164
|
+
rows="1"
|
|
165
|
+
bind:value={description}
|
|
166
|
+
on:keydown={onKeyDown}
|
|
167
|
+
placeholder="Field description"
|
|
168
|
+
/>
|
|
169
|
+
</label>
|
|
158
170
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
+
{#if type == 'array'}
|
|
172
|
+
<ArrayTypeNarrowing bind:itemsType />
|
|
173
|
+
{:else if (type == 'string' && format != 'date-time') || ['number', 'object'].includes(type ?? '')}
|
|
174
|
+
<div class="p-2 my-1 text-xs border-solid border border-gray-200 rounded-lg">
|
|
175
|
+
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
176
|
+
<span
|
|
177
|
+
class="underline"
|
|
178
|
+
on:click={() => {
|
|
179
|
+
seeEditable = !seeEditable
|
|
180
|
+
}}
|
|
181
|
+
>
|
|
182
|
+
Customize
|
|
183
|
+
<Icon class="ml-2" data={seeEditable ? faChevronUp : faChevronDown} scale={0.7} />
|
|
184
|
+
</span>
|
|
185
|
+
|
|
186
|
+
{#if seeEditable}
|
|
187
|
+
<div class="mt-2">
|
|
171
188
|
{#if type == 'string' && format != 'date-time'}
|
|
172
189
|
<StringTypeNarrowing bind:format bind:pattern bind:enum_ bind:contentEncoding />
|
|
173
190
|
{:else if type == 'number'}
|
|
174
191
|
<NumberTypeNarrowing bind:min={extra['min']} bind:max={extra['max']} />
|
|
175
192
|
{:else if type == 'object'}
|
|
176
193
|
<ObjectTypeNarrowing bind:format />
|
|
177
|
-
{:else if type == 'array'}
|
|
178
|
-
<select bind:value={itemsType}>
|
|
179
|
-
<option value={undefined}>No specific item type</option>
|
|
180
|
-
<option value={{ type: 'string' }}> Items are strings</option>
|
|
181
|
-
<option value={{ type: 'object' }}> Items are objects (JSON)</option>
|
|
182
|
-
<option value={{ type: 'number' }}>Items are numbers</option>
|
|
183
|
-
<option value={{ type: 'string', contentEncoding: 'base64' }}
|
|
184
|
-
>Items are bytes</option
|
|
185
|
-
>
|
|
186
|
-
</select>
|
|
187
194
|
{/if}
|
|
188
|
-
</
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
<span class="text-2xs">
|
|
195
|
+
</div>
|
|
196
|
+
{/if}
|
|
197
|
+
</div>
|
|
198
|
+
{/if}
|
|
199
|
+
<span class="text-2xs font-semibold">Preview:</span>
|
|
193
200
|
{/if}
|
|
194
201
|
|
|
195
202
|
{#if description}
|
|
@@ -259,12 +266,24 @@ $: validateInput(pattern, value);
|
|
|
259
266
|
/>
|
|
260
267
|
{:else if itemsType?.type == 'object'}
|
|
261
268
|
<JsonEditor code={JSON.stringify(v, null, 2)} bind:value={v} />
|
|
269
|
+
{:else if Array.isArray(itemsType?.enum)}
|
|
270
|
+
<select
|
|
271
|
+
on:focus={(e) => {
|
|
272
|
+
dispatch('focus')
|
|
273
|
+
}}
|
|
274
|
+
class="px-6"
|
|
275
|
+
bind:value={v}
|
|
276
|
+
>
|
|
277
|
+
{#each itemsType?.enum ?? [] as e}
|
|
278
|
+
<option>{e}</option>
|
|
279
|
+
{/each}
|
|
280
|
+
</select>
|
|
262
281
|
{:else}
|
|
263
282
|
<input type="text" bind:value={v} />
|
|
264
283
|
{/if}
|
|
265
284
|
<button
|
|
266
285
|
transition:fade|local={{ duration: 100 }}
|
|
267
|
-
class="rounded-full p-1 bg-white/60 duration-200 hover:bg-gray-200"
|
|
286
|
+
class="rounded-full p-1 bg-white/60 duration-200 hover:bg-gray-200 ml-2"
|
|
268
287
|
aria-label="Clear"
|
|
269
288
|
on:click={() => {
|
|
270
289
|
value.splice(i, 1)
|
|
@@ -287,7 +306,7 @@ $: validateInput(pattern, value);
|
|
|
287
306
|
<div class="flex mt-2">
|
|
288
307
|
<Button
|
|
289
308
|
variant="border"
|
|
290
|
-
color="
|
|
309
|
+
color="light"
|
|
291
310
|
size="xs"
|
|
292
311
|
btnClasses="mt-1"
|
|
293
312
|
on:click={() => {
|
|
@@ -302,9 +321,9 @@ $: validateInput(pattern, value);
|
|
|
302
321
|
</Button>
|
|
303
322
|
</div>
|
|
304
323
|
</div>
|
|
305
|
-
{:else if inputCat == 'resource-object'}
|
|
324
|
+
{:else if inputCat == 'resource-object' && (resourceTypes == undefined || (format.split('-').length > 1 && resourceTypes.includes(format.substring('resource-'.length))))}
|
|
306
325
|
<ObjectResourceInput {format} bind:value />
|
|
307
|
-
{:else if inputCat == 'object'}
|
|
326
|
+
{:else if inputCat == 'object' || inputCat == 'resource-object'}
|
|
308
327
|
{#if properties && Object.keys(properties).length > 0}
|
|
309
328
|
<div class="p-4 pl-8 border rounded w-full">
|
|
310
329
|
<SchemaForm
|
|
@@ -327,43 +346,7 @@ $: validateInput(pattern, value);
|
|
|
327
346
|
{/if}
|
|
328
347
|
{:else if inputCat == 'enum'}
|
|
329
348
|
<div class="flex flex-row w-full gap-1">
|
|
330
|
-
{
|
|
331
|
-
<select
|
|
332
|
-
on:focus={(e) => {
|
|
333
|
-
dispatch('focus')
|
|
334
|
-
}}
|
|
335
|
-
{disabled}
|
|
336
|
-
class="px-6"
|
|
337
|
-
bind:value
|
|
338
|
-
>
|
|
339
|
-
{#each enum_ ?? [] as e}
|
|
340
|
-
<option>{e}</option>
|
|
341
|
-
{/each}
|
|
342
|
-
</select>
|
|
343
|
-
{:else}
|
|
344
|
-
<input
|
|
345
|
-
{autofocus}
|
|
346
|
-
on:focus
|
|
347
|
-
type="text"
|
|
348
|
-
class={valid
|
|
349
|
-
? ''
|
|
350
|
-
: 'border border-red-700 border-opacity-30 focus:border-red-700 focus:border-opacity-30 bg-red-100'}
|
|
351
|
-
placeholder={defaultValue ?? ''}
|
|
352
|
-
bind:value
|
|
353
|
-
/>
|
|
354
|
-
{/if}
|
|
355
|
-
|
|
356
|
-
{#if !disabled}
|
|
357
|
-
<button
|
|
358
|
-
class="min-w-min !px-2 items-center text-gray-800 bg-gray-100 border rounded center-center hover:bg-gray-300 transition-all cursor-pointer"
|
|
359
|
-
on:click={() => {
|
|
360
|
-
customValue = !customValue
|
|
361
|
-
}}
|
|
362
|
-
title="Custom Value"
|
|
363
|
-
>
|
|
364
|
-
<Pen size={14} />
|
|
365
|
-
</button>
|
|
366
|
-
{/if}
|
|
349
|
+
<ArgEnum {defaultValue} {valid} {customValue} {disabled} bind:value {enum_} {autofocus} />
|
|
367
350
|
</div>
|
|
368
351
|
{:else if inputCat == 'date'}
|
|
369
352
|
<input {autofocus} class="inline-block" type="datetime-local" bind:value />
|
|
@@ -411,9 +394,12 @@ $: validateInput(pattern, value);
|
|
|
411
394
|
on:keydown={onKeyDown}
|
|
412
395
|
type="text"
|
|
413
396
|
{disabled}
|
|
414
|
-
class=
|
|
415
|
-
|
|
416
|
-
|
|
397
|
+
class={twMerge(
|
|
398
|
+
'w-full',
|
|
399
|
+
valid
|
|
400
|
+
? ''
|
|
401
|
+
: 'border border-red-700 border-opacity-30 focus:border-red-700 focus:border-opacity-30 bg-red-100'
|
|
402
|
+
)}
|
|
417
403
|
placeholder={defaultValue ?? ''}
|
|
418
404
|
bind:value
|
|
419
405
|
/>
|
|
@@ -21,6 +21,7 @@ declare const __propDef: {
|
|
|
21
21
|
itemsType?: {
|
|
22
22
|
type?: "string" | "number" | "object" | "bytes" | undefined;
|
|
23
23
|
contentEncoding?: "base64" | undefined;
|
|
24
|
+
enum?: string[] | undefined;
|
|
24
25
|
} | undefined;
|
|
25
26
|
displayHeader?: boolean | undefined;
|
|
26
27
|
properties?: {
|
|
@@ -36,6 +37,7 @@ declare const __propDef: {
|
|
|
36
37
|
extra?: Record<string, any> | undefined;
|
|
37
38
|
minW?: boolean | undefined;
|
|
38
39
|
prettifyHeader?: boolean | undefined;
|
|
40
|
+
resourceTypes: string[] | undefined;
|
|
39
41
|
editor?: SimpleEditor | undefined;
|
|
40
42
|
focus?: (() => void) | undefined;
|
|
41
43
|
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
<script>import { Button } from './common';
|
|
2
|
+
export let itemsType;
|
|
3
|
+
let selected = itemsType?.type != 'string'
|
|
4
|
+
? itemsType?.type
|
|
5
|
+
: Array.isArray(itemsType?.enum)
|
|
6
|
+
? 'enum'
|
|
7
|
+
: 'string';
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<select
|
|
11
|
+
bind:value={selected}
|
|
12
|
+
on:change={() => {
|
|
13
|
+
if (selected == 'enum') {
|
|
14
|
+
itemsType = { type: 'string', enum: [] }
|
|
15
|
+
} else if (selected == 'string') {
|
|
16
|
+
itemsType = { type: 'string' }
|
|
17
|
+
} else if (selected == 'number') {
|
|
18
|
+
itemsType = { type: 'number' }
|
|
19
|
+
} else if (selected == 'object') {
|
|
20
|
+
itemsType = { type: 'object' }
|
|
21
|
+
} else if (selected == 'bytes') {
|
|
22
|
+
itemsType = { type: 'string', contentEncoding: 'base64' }
|
|
23
|
+
} else {
|
|
24
|
+
itemsType = undefined
|
|
25
|
+
}
|
|
26
|
+
}}
|
|
27
|
+
>
|
|
28
|
+
<option value="string"> Items are strings</option>
|
|
29
|
+
<option value="enum">Items are strings from an enum</option>
|
|
30
|
+
<option value="object"> Items are objects (JSON)</option>
|
|
31
|
+
<option value="number">Items are numbers</option>
|
|
32
|
+
<option value="bytes">Items are bytes</option>
|
|
33
|
+
</select>
|
|
34
|
+
{#if Array.isArray(itemsType?.enum)}
|
|
35
|
+
<div class="pt-1" />
|
|
36
|
+
<label for="input" class="mb-2 text-gray-700 text-xs">
|
|
37
|
+
Enums
|
|
38
|
+
<div class="flex flex-col gap-1">
|
|
39
|
+
{#each itemsType?.enum || [] as e}
|
|
40
|
+
<div class="flex flex-row max-w-md">
|
|
41
|
+
<input id="input" type="text" bind:value={e} />
|
|
42
|
+
<Button
|
|
43
|
+
size="sm"
|
|
44
|
+
btnClasses="ml-6"
|
|
45
|
+
on:click={() => {
|
|
46
|
+
if (itemsType?.enum) {
|
|
47
|
+
itemsType.enum = (itemsType.enum || []).filter((el) => el !== e)
|
|
48
|
+
}
|
|
49
|
+
}}>-</Button
|
|
50
|
+
>
|
|
51
|
+
</div>
|
|
52
|
+
{/each}
|
|
53
|
+
</div>
|
|
54
|
+
<div class="flex flex-row my-1">
|
|
55
|
+
<Button
|
|
56
|
+
size="sm"
|
|
57
|
+
on:click={() => {
|
|
58
|
+
if (itemsType?.enum) {
|
|
59
|
+
itemsType.enum = itemsType.enum ? itemsType.enum.concat('') : ['']
|
|
60
|
+
}
|
|
61
|
+
}}>+</Button
|
|
62
|
+
>
|
|
63
|
+
<Button
|
|
64
|
+
variant="border"
|
|
65
|
+
size="sm"
|
|
66
|
+
btnClasses="ml-2"
|
|
67
|
+
on:click={() => itemsType?.enum && (itemsType.enum = undefined)}
|
|
68
|
+
>
|
|
69
|
+
Clear
|
|
70
|
+
</Button>
|
|
71
|
+
</div>
|
|
72
|
+
</label>
|
|
73
|
+
{/if}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
itemsType: {
|
|
5
|
+
type?: 'string' | 'number' | 'bytes' | 'object';
|
|
6
|
+
contentEncoding?: 'base64';
|
|
7
|
+
enum?: string[];
|
|
8
|
+
} | undefined;
|
|
9
|
+
};
|
|
10
|
+
events: {
|
|
11
|
+
[evt: string]: CustomEvent<any>;
|
|
12
|
+
};
|
|
13
|
+
slots: {};
|
|
14
|
+
};
|
|
15
|
+
export type ArrayTypeNarrowingProps = typeof __propDef.props;
|
|
16
|
+
export type ArrayTypeNarrowingEvents = typeof __propDef.events;
|
|
17
|
+
export type ArrayTypeNarrowingSlots = typeof __propDef.slots;
|
|
18
|
+
export default class ArrayTypeNarrowing extends SvelteComponentTyped<ArrayTypeNarrowingProps, ArrayTypeNarrowingEvents, ArrayTypeNarrowingSlots> {
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
<script>import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
<script>import WindmillIcon from './icons/WindmillIcon.svelte';
|
|
2
|
+
import Uptodate from './Uptodate.svelte';
|
|
3
|
+
import Version from './Version.svelte';
|
|
4
4
|
export let subtitle = undefined;
|
|
5
5
|
export let title = 'Windmill';
|
|
6
6
|
export let disableLogo = false;
|
|
7
|
-
let version = '';
|
|
8
|
-
onMount(async () => {
|
|
9
|
-
version = await SettingsService.backendVersion();
|
|
10
|
-
});
|
|
11
7
|
</script>
|
|
12
8
|
|
|
13
9
|
<div class="center-center min-h-screen p-4 relative bg-gray-50">
|
|
@@ -39,7 +35,9 @@ onMount(async () => {
|
|
|
39
35
|
</div>
|
|
40
36
|
</div>
|
|
41
37
|
|
|
42
|
-
<div class="absolute top-0 right-0 text-2xs text-gray-
|
|
43
|
-
<span class="font-mono">
|
|
38
|
+
<div class="absolute top-0 right-0 text-2xs text-gray-600 italic px-3 py-1">
|
|
39
|
+
<span class="font-mono flex flex-col">
|
|
40
|
+
<div>Windmill <Version /></div><div><Uptodate /></div>
|
|
41
|
+
</span>
|
|
44
42
|
</div>
|
|
45
43
|
</div>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<script>import { WorkspaceService } from '../gen';
|
|
2
|
+
import { usersWorkspaceStore, workspaceStore } from '../stores';
|
|
3
|
+
import { sendUserToast } from '../toast';
|
|
4
|
+
export let workspaceToDeployTo;
|
|
5
|
+
$: deployableWorkspaces = $usersWorkspaceStore?.workspaces
|
|
6
|
+
.map((w) => w.id)
|
|
7
|
+
.filter((w) => w != $workspaceStore);
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<h3 class="mt-8">Workspace to link to</h3>
|
|
11
|
+
<div class="flex min-w-0 mt-2">
|
|
12
|
+
<select
|
|
13
|
+
bind:value={workspaceToDeployTo}
|
|
14
|
+
on:change={async (e) => {
|
|
15
|
+
await WorkspaceService.editDeployTo({
|
|
16
|
+
workspace: $workspaceStore ?? '',
|
|
17
|
+
requestBody: { deploy_to: workspaceToDeployTo == '' ? undefined : workspaceToDeployTo }
|
|
18
|
+
})
|
|
19
|
+
if (workspaceToDeployTo == '') {
|
|
20
|
+
workspaceToDeployTo = undefined
|
|
21
|
+
sendUserToast('Disabled setting deployable workspace')
|
|
22
|
+
} else {
|
|
23
|
+
sendUserToast('Set deployable workspace to ' + workspaceToDeployTo)
|
|
24
|
+
}
|
|
25
|
+
}}
|
|
26
|
+
>
|
|
27
|
+
{#if deployableWorkspaces?.length == 0}
|
|
28
|
+
<option disabled>No workspace deployable to</option>
|
|
29
|
+
{/if}
|
|
30
|
+
<option value="">Disable deployment</option>
|
|
31
|
+
{#each deployableWorkspaces ?? [] as name}
|
|
32
|
+
<option value={name}>{name}</option>
|
|
33
|
+
{/each}
|
|
34
|
+
</select>
|
|
35
|
+
</div>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
workspaceToDeployTo: string | undefined;
|
|
5
|
+
};
|
|
6
|
+
events: {
|
|
7
|
+
[evt: string]: CustomEvent<any>;
|
|
8
|
+
};
|
|
9
|
+
slots: {};
|
|
10
|
+
};
|
|
11
|
+
export type DeployToSettingProps = typeof __propDef.props;
|
|
12
|
+
export type DeployToSettingEvents = typeof __propDef.events;
|
|
13
|
+
export type DeployToSettingSlots = typeof __propDef.slots;
|
|
14
|
+
export default class DeployToSetting extends SvelteComponentTyped<DeployToSettingProps, DeployToSettingEvents, DeployToSettingSlots> {
|
|
15
|
+
}
|
|
16
|
+
export {};
|