windmill-components 1.339.2 → 1.352.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/assets/app.css +0 -12
- package/package/ata/index.js +1 -0
- package/package/autosize.js +1 -1
- package/package/common.d.ts +6 -2
- package/package/common.js +2 -1
- package/package/components/AppConnectDrawer.svelte +1 -1
- package/package/components/AppConnectInner.svelte +9 -15
- package/package/components/ArgEnum.svelte +4 -1
- package/package/components/ArgEnum.svelte.d.ts +3 -1
- package/package/components/ArgInput.svelte +184 -141
- package/package/components/ArgInput.svelte.d.ts +7 -7
- package/package/components/ArrayTypeNarrowing.svelte +29 -27
- package/package/components/CenteredPage.svelte +2 -2
- package/package/components/DefaultTagsInner.svelte +1 -1
- package/package/components/Dev.svelte +2 -1
- package/package/components/DiffDrawer.svelte +1 -2
- package/package/components/DisplayResult.svelte +293 -233
- package/package/components/DurationMs.svelte +11 -3
- package/package/components/DurationMs.svelte.d.ts +2 -0
- package/package/components/EditableSchemaForm.svelte +447 -103
- package/package/components/EditableSchemaForm.svelte.d.ts +16 -6
- package/package/components/Editor.svelte +3 -1
- package/package/components/EditorBar.svelte +2 -2
- package/package/components/FlowBuilder.svelte +14 -6
- package/package/components/FlowGraphViewer.svelte +1 -1
- package/package/components/FlowGraphViewerStep.svelte +37 -9
- package/package/components/FlowGraphViewerStep.svelte.d.ts +2 -7
- package/package/components/FlowJobResult.svelte +1 -3
- package/package/components/FlowMetadata.svelte +1 -1
- package/package/components/FlowPreviewContent.svelte +5 -3
- package/package/components/FlowStatusViewer.svelte +4 -0
- package/package/components/FlowStatusViewer.svelte.d.ts +3 -0
- package/package/components/FlowStatusViewerInner.svelte +50 -17
- package/package/components/FlowStatusViewerInner.svelte.d.ts +3 -0
- package/package/components/FlowTimeline.svelte +13 -0
- package/package/components/FlowTimeline.svelte.d.ts +2 -0
- package/package/components/FlowViewer.svelte +0 -5
- package/package/components/FolderEditor.svelte +25 -0
- package/package/components/FolderEditor.svelte.d.ts +2 -0
- package/package/components/GroupEditor.svelte +36 -91
- package/package/components/GroupInfo.svelte +1 -1
- package/package/components/InputTransformForm.svelte +16 -1
- package/package/components/InputTransformForm.svelte.d.ts +2 -0
- package/package/components/InputTransformSchemaForm.svelte +6 -0
- package/package/components/InputTransformSchemaForm.svelte.d.ts +2 -0
- package/package/components/InstanceSettings.svelte +36 -3
- package/package/components/InstanceSettings.svelte.d.ts +2 -0
- package/package/components/JobStatus.svelte +2 -2
- package/package/components/LightweightArgInput.svelte +66 -14
- package/package/components/LightweightArgInput.svelte.d.ts +3 -2
- package/package/components/LightweightSchemaForm.svelte +24 -15
- package/package/components/ModulePreviewForm.svelte +1 -0
- package/package/components/NumberTypeNarrowing.svelte +71 -44
- package/package/components/ObjectResourceInput.svelte +2 -0
- package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
- package/package/components/ObjectTypeNarrowing.svelte +0 -1
- package/package/components/ParqetCsvTableRenderer.svelte +181 -0
- package/package/components/ParqetCsvTableRenderer.svelte.d.ts +21 -0
- package/package/components/Path.svelte +2 -2
- package/package/components/PersistentScriptDrawer.svelte +6 -3
- package/package/components/Range.svelte +88 -286
- package/package/components/Range.svelte.d.ts +9 -23
- package/package/components/ResourceEditor.svelte +138 -141
- package/package/components/ResourceEditor.svelte.d.ts +9 -2
- package/package/components/ResourceEditorDrawer.svelte +45 -0
- package/package/components/ResourceEditorDrawer.svelte.d.ts +21 -0
- package/package/components/ResourcePicker.svelte +5 -2
- package/package/components/ResourceTypePicker.svelte +88 -36
- package/package/components/RunChart.svelte +55 -5
- package/package/components/RunChart.svelte.d.ts +1 -0
- package/package/components/RunForm.svelte +1 -1
- package/package/components/S3FilePicker.svelte +20 -8
- package/package/components/S3FilePicker.svelte.d.ts +2 -0
- package/package/components/ScheduleEditorInner.svelte +40 -37
- package/package/components/SchemaForm.svelte +192 -103
- package/package/components/SchemaForm.svelte.d.ts +16 -2
- package/package/components/ScriptBuilder.svelte +13 -8
- package/package/components/ScriptSchedules.svelte +11 -8
- package/package/components/ScriptSchema.svelte +3 -21
- package/package/components/ScriptVersionHistory.svelte +1 -1
- package/package/components/StringTypeNarrowing.svelte +217 -174
- package/package/components/StringTypeNarrowing.svelte.d.ts +5 -1
- package/package/components/Toggle.svelte +6 -3
- package/package/components/Toggle.svelte.d.ts +1 -0
- package/package/components/UserSettings.svelte +24 -1
- package/package/components/WorkspaceGroup.svelte +11 -13
- package/package/components/apps/components/buttons/AppButton.svelte +2 -0
- package/package/components/apps/components/buttons/AppButton.svelte.d.ts +1 -0
- package/package/components/apps/components/display/AppFlowStatusComponent.svelte +13 -70
- package/package/components/apps/components/display/AppFlowStatusComponent.svelte.d.ts +1 -9
- package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +21 -8
- package/package/components/apps/components/display/AppJobIdFlowStatus.svelte.d.ts +1 -3
- package/package/components/apps/components/display/AppJobIdLogComponent.svelte +19 -7
- package/package/components/apps/components/display/AppJobIdLogComponent.svelte.d.ts +1 -3
- package/package/components/apps/components/display/AppLogsComponent.svelte +13 -70
- package/package/components/apps/components/display/AppLogsComponent.svelte.d.ts +1 -9
- package/package/components/apps/components/display/charts/AppAgCharts.svelte +25 -15
- package/package/components/apps/components/display/table/AppAggridTableActions.svelte +2 -0
- package/package/components/apps/components/display/table/SyncColumnDefs.svelte +1 -1
- package/package/components/apps/components/helpers/HiddenComponent.svelte +2 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte +18 -8
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -0
- package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -0
- package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -0
- package/package/components/apps/components/helpers/eval.js +1 -36
- package/package/components/apps/components/inputs/AppFileInput.svelte +3 -1
- package/package/components/apps/components/inputs/AppFileInput.svelte.d.ts +1 -0
- package/package/components/apps/components/inputs/AppS3FileInput.svelte +3 -1
- package/package/components/apps/components/inputs/AppS3FileInput.svelte.d.ts +1 -0
- package/package/components/apps/components/layout/AppConditionalWrapper.svelte +3 -1
- package/package/components/apps/components/layout/AppConditionalWrapper.svelte.d.ts +1 -0
- package/package/components/apps/components/layout/AppStepper.svelte +5 -1
- package/package/components/apps/components/layout/AppStepper.svelte.d.ts +2 -0
- package/package/components/apps/components/layout/AppTabs.svelte +3 -1
- package/package/components/apps/components/layout/AppTabs.svelte.d.ts +1 -0
- package/package/components/apps/editor/AppEditorHeader.svelte +6 -7
- package/package/components/apps/editor/SettingsPanel.svelte +13 -3
- package/package/components/apps/editor/component/Component.svelte +8 -16
- package/package/components/apps/editor/component/components.d.ts +11 -2
- package/package/components/apps/editor/component/components.js +2 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +5 -34
- package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +3 -41
- package/package/components/apps/editor/settingsPanel/EventHandlerItem.svelte +33 -0
- package/package/components/apps/editor/settingsPanel/EventHandlerItem.svelte.d.ts +19 -0
- package/package/components/apps/editor/settingsPanel/EventHandlers.svelte +103 -0
- package/package/components/apps/editor/settingsPanel/EventHandlers.svelte.d.ts +18 -0
- package/package/components/apps/editor/settingsPanel/GridCondition.svelte +21 -45
- package/package/components/apps/editor/settingsPanel/GridTab.svelte +3 -23
- package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +5 -1
- package/package/components/apps/editor/settingsPanel/SubTypeEditor.svelte +0 -2
- package/package/components/apps/editor/settingsPanel/SubTypeEditor.svelte.d.ts +0 -1
- package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +7 -1
- package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +7 -14
- package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +0 -1
- package/package/components/common/button/ButtonDropdown.svelte +1 -0
- package/package/components/common/drawer/Disposable.svelte +3 -2
- package/package/components/common/drawer/Disposable.svelte.d.ts +1 -0
- package/package/components/common/drawer/Drawer.svelte +12 -2
- package/package/components/common/drawer/Drawer.svelte.d.ts +1 -0
- package/package/components/common/fileDownload/FileDownload.svelte +4 -2
- package/package/components/common/fileUpload/FileUpload.svelte +4 -3
- package/package/components/common/modal/Modal.svelte +4 -1
- package/package/components/common/modal/Modal.svelte.d.ts +1 -0
- package/package/components/common/popup/Popup.svelte +1 -1
- package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +4 -1
- package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -0
- package/package/components/common/waitTimeWarning/WaitTimeWarning.svelte +79 -0
- package/package/components/common/waitTimeWarning/WaitTimeWarning.svelte.d.ts +18 -0
- package/package/components/flows/content/FlowEditorPanel.svelte +16 -2
- package/package/components/flows/content/FlowInput.svelte +63 -53
- package/package/components/flows/content/FlowModuleComponent.svelte +26 -3
- package/package/components/flows/content/FlowModuleScript.svelte +40 -1
- package/package/components/flows/content/FlowModuleScript.svelte.d.ts +2 -0
- package/package/components/flows/content/FlowModuleSuspend.svelte +99 -59
- package/package/components/flows/content/FlowModuleWrapper.svelte +16 -1
- package/package/components/flows/content/FlowSchedules.svelte +11 -8
- package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -4
- package/package/components/flows/flowStateUtils.js +4 -1
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +16 -1
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +6 -1
- package/package/components/flows/types.d.ts +4 -0
- package/package/components/flows/utils.d.ts +5 -1
- package/package/components/flows/utils.js +36 -0
- package/package/components/graph/FlowGraph.svelte +5 -2
- package/package/components/graph/FlowGraph.svelte.d.ts +2 -0
- package/package/components/graph/svelvet/container/models/index.d.ts +0 -5
- package/package/components/graph/svelvet/container/models/index.js +1 -1
- package/package/components/graph/svelvet/container/views/Svelvet.svelte +2 -5
- package/package/components/graph/util.d.ts +1 -37
- package/package/components/graph/util.js +0 -34
- package/package/components/instanceSettings.js +2 -1
- package/package/components/jobs/JobPreview.svelte +1 -1
- package/package/components/multiselect/MultiSelect.svelte +4 -3
- package/package/components/multiselect/MultiSelect.svelte.d.ts +1 -0
- package/package/components/multiselect/MultiSelectWrapper.svelte +89 -0
- package/package/components/multiselect/MultiSelectWrapper.svelte.d.ts +20 -0
- package/package/components/propertyPicker/ObjectViewer.svelte +6 -2
- package/package/components/runs/JobPreview.svelte +5 -1
- package/package/components/runs/RunRow.svelte +22 -3
- package/package/components/runs/RunRow.svelte.d.ts +2 -1
- package/package/components/runs/RunsTable.svelte +22 -9
- package/package/components/runs/RunsTable.svelte.d.ts +2 -1
- package/package/components/schema/AddProperty.svelte +149 -0
- package/package/components/schema/AddProperty.svelte.d.ts +23 -0
- package/package/components/schema/AddPropertyForm.svelte +33 -0
- package/package/components/schema/AddPropertyForm.svelte.d.ts +16 -0
- package/package/components/schema/EditableSchemaDrawer.svelte +198 -0
- package/package/components/schema/EditableSchemaDrawer.svelte.d.ts +21 -0
- package/package/components/schema/EditableSchemaWrapper.svelte +31 -0
- package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +22 -0
- package/package/components/schema/FlowPropertyEditor.svelte +393 -0
- package/package/components/schema/FlowPropertyEditor.svelte.d.ts +47 -0
- package/package/components/schema/PropertyEditor.svelte +185 -0
- package/package/components/schema/PropertyEditor.svelte.d.ts +46 -0
- package/package/components/schema/SchemaFormDND.svelte +75 -0
- package/package/components/schema/SchemaFormDND.svelte.d.ts +28 -0
- package/package/components/table/AutoDataTable.svelte +90 -104
- package/package/components/table/Cell.svelte +4 -1
- package/package/components/table/Cell.svelte.d.ts +1 -0
- package/package/components/table/DownloadCsv.svelte +30 -0
- package/package/components/table/DownloadCsv.svelte.d.ts +17 -0
- package/package/components/table/tableUtils.d.ts +8 -0
- package/package/components/table/tableUtils.js +37 -0
- package/package/consts.js +3 -1
- package/package/deno_fetch.d.ts.txt +6 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +76 -0
- package/package/gen/schemas.gen.js +76 -0
- package/package/gen/services.gen.d.ts +100 -5
- package/package/gen/services.gen.js +216 -16
- package/package/gen/types.gen.d.ts +378 -5
- package/package/inferArgSig.d.ts +10 -0
- package/package/inferArgSig.js +59 -2
- package/package/scripts.d.ts +2 -0
- package/package/scripts.js +6 -3
- package/package/utils.d.ts +4 -3
- package/package/utils.js +9 -4
- package/package/workspace_settings.d.ts +15 -0
- package/package/workspace_settings.js +81 -0
- package/package.json +16 -7
- package/package/components/ParqetTableRenderer.svelte +0 -117
- package/package/components/ParqetTableRenderer.svelte.d.ts +0 -18
- package/package/components/PropertyRow.svelte +0 -88
- package/package/components/PropertyRow.svelte.d.ts +0 -23
- package/package/components/SchemaEditor.svelte +0 -346
- package/package/components/SchemaEditor.svelte.d.ts +0 -25
- package/package/components/SchemaModal.svelte +0 -443
- package/package/components/SchemaModal.svelte.d.ts +0 -33
- package/package/components/apps/editor/settingsPanel/Recompute.svelte +0 -55
- package/package/components/apps/editor/settingsPanel/Recompute.svelte.d.ts +0 -20
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
<script>import { computeKind } from '../utils';
|
|
2
2
|
import Label from './Label.svelte';
|
|
3
|
-
import RadioButton from './RadioButton.svelte';
|
|
4
3
|
import ResourceTypePicker from './ResourceTypePicker.svelte';
|
|
5
4
|
import Toggle from './Toggle.svelte';
|
|
6
5
|
import Tooltip from './Tooltip.svelte';
|
|
7
6
|
import { Button } from './common';
|
|
8
7
|
import Alert from './common/alert/Alert.svelte';
|
|
9
8
|
import ClearableInput from './common/clearableInput/ClearableInput.svelte';
|
|
9
|
+
import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte';
|
|
10
|
+
import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
10
11
|
import RegexGen from './copilot/RegexGen.svelte';
|
|
11
12
|
export let pattern;
|
|
12
13
|
export let enum_;
|
|
@@ -19,7 +20,11 @@ export let disableVariablePicker = false;
|
|
|
19
20
|
export let password = false;
|
|
20
21
|
export let noExtra = false;
|
|
21
22
|
export let dateFormat;
|
|
23
|
+
export let enumLabels = {};
|
|
24
|
+
export let overrideAllowKindChange = true;
|
|
25
|
+
export let originalType = undefined;
|
|
22
26
|
let kind = computeKind(enum_, contentEncoding, pattern, format);
|
|
27
|
+
const allowKindChange = overrideAllowKindChange || originalType === 'string';
|
|
23
28
|
let patternStr = pattern ?? '';
|
|
24
29
|
let resource;
|
|
25
30
|
const FORMATS = [
|
|
@@ -47,6 +52,9 @@ $: {
|
|
|
47
52
|
}
|
|
48
53
|
}
|
|
49
54
|
function add() {
|
|
55
|
+
if (enumLabels === undefined) {
|
|
56
|
+
enumLabels = {};
|
|
57
|
+
}
|
|
50
58
|
let choice = `choice ${enum_?.length ? enum_?.length + 1 : 1}`;
|
|
51
59
|
enum_ = enum_ ? enum_.concat(choice) : [choice];
|
|
52
60
|
}
|
|
@@ -55,204 +63,239 @@ function remove(item) {
|
|
|
55
63
|
if (enum_.length == 0) {
|
|
56
64
|
enum_ = undefined;
|
|
57
65
|
}
|
|
66
|
+
if (enumLabels !== undefined) {
|
|
67
|
+
delete enumLabels[item];
|
|
68
|
+
}
|
|
58
69
|
}
|
|
59
70
|
const presetOptions = [
|
|
60
71
|
{ label: 'ISO Format', format: 'yyyy-MM-dd' },
|
|
61
72
|
{ label: 'US Format', format: 'MM/dd/yyyy' },
|
|
62
73
|
{ label: 'EU Format', format: 'dd/MM/yyyy' }
|
|
63
74
|
];
|
|
75
|
+
function onEnumKeyChange(oldKey, newKey) {
|
|
76
|
+
if (oldKey !== newKey) {
|
|
77
|
+
enumLabels[newKey] = enumLabels[oldKey];
|
|
78
|
+
delete enumLabels[oldKey];
|
|
79
|
+
}
|
|
80
|
+
}
|
|
64
81
|
</script>
|
|
65
82
|
|
|
66
|
-
<
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
<
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
83
|
+
<div class="flex flex-col gap-2">
|
|
84
|
+
{#if allowKindChange}
|
|
85
|
+
<ToggleButtonGroup
|
|
86
|
+
bind:selected={kind}
|
|
87
|
+
on:selected={(e) => {
|
|
88
|
+
if (e.detail != 'enum') {
|
|
89
|
+
enum_ = undefined
|
|
90
|
+
}
|
|
91
|
+
if (e.detail == 'none') {
|
|
92
|
+
pattern = undefined
|
|
93
|
+
format = undefined
|
|
94
|
+
contentEncoding = undefined
|
|
95
|
+
customErrorMessage = undefined
|
|
96
|
+
minRows = undefined
|
|
97
|
+
disableCreate = undefined
|
|
98
|
+
disableVariablePicker = undefined
|
|
99
|
+
}
|
|
100
|
+
}}
|
|
101
|
+
>
|
|
102
|
+
{#each [['None', 'none'], ['File', 'base64', 'Encoded as Base 64'], ['Enum', 'enum'], ['Format', 'format'], ['Pattern', 'pattern']] as x}
|
|
103
|
+
<ToggleButton value={x[1]} label={x[0]} tooltip={x[2]} showTooltipIcon={Boolean(x[2])} />
|
|
104
|
+
{/each}
|
|
105
|
+
</ToggleButtonGroup>
|
|
106
|
+
{/if}
|
|
107
|
+
{#if kind == 'pattern'}
|
|
108
|
+
<Label label="Pattern (Regex)">
|
|
109
|
+
<svelte:fragment slot="header">
|
|
110
|
+
<Tooltip light>
|
|
111
|
+
Setting a pattern will allow you to specify a regular expression that the input should
|
|
112
|
+
adhere to. You can use the regex generator to help you create a pattern.
|
|
113
|
+
</Tooltip>
|
|
114
|
+
</svelte:fragment>
|
|
115
|
+
<div class="flex flex-row gap-1">
|
|
116
|
+
<ClearableInput
|
|
117
|
+
id="input"
|
|
118
|
+
type="text"
|
|
119
|
+
placeholder="^(\\([0-9]{3}\\))?[0-9]{3}-[0-9]{4}$"
|
|
120
|
+
bind:value={patternStr}
|
|
121
|
+
/>
|
|
122
|
+
<RegexGen
|
|
123
|
+
on:gen={(e) => {
|
|
124
|
+
const { res, prompt } = e.detail
|
|
125
|
+
patternStr = res
|
|
126
|
+
customErrorMessage = 'does not match: ' + prompt
|
|
127
|
+
}}
|
|
128
|
+
/>
|
|
129
|
+
</div>
|
|
130
|
+
</Label>
|
|
131
|
+
<Label label="Custom error message" class="w-full">
|
|
132
|
+
<svelte:fragment slot="header">
|
|
133
|
+
<Tooltip light>
|
|
134
|
+
Setting a custom error message will allow you to specify a message that will be shown when
|
|
135
|
+
the input does not match the pattern.
|
|
136
|
+
</Tooltip>
|
|
137
|
+
</svelte:fragment>
|
|
138
|
+
<svelte:fragment slot="action">
|
|
139
|
+
<Toggle
|
|
140
|
+
size="xs"
|
|
141
|
+
options={{ right: 'Enable' }}
|
|
142
|
+
checked={customErrorMessage != undefined && customErrorMessage != ''}
|
|
143
|
+
on:change={(e) => {
|
|
144
|
+
if (e.detail) {
|
|
145
|
+
customErrorMessage = 'Custom error message'
|
|
146
|
+
} else {
|
|
147
|
+
customErrorMessage = undefined
|
|
148
|
+
}
|
|
149
|
+
}}
|
|
150
|
+
/>
|
|
151
|
+
</svelte:fragment>
|
|
97
152
|
<input
|
|
98
|
-
id="input"
|
|
99
153
|
type="text"
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
class="text-sm"
|
|
103
|
-
/>
|
|
104
|
-
<RegexGen
|
|
105
|
-
on:gen={(e) => {
|
|
106
|
-
const { res, prompt } = e.detail
|
|
107
|
-
patternStr = res
|
|
108
|
-
customErrorMessage = 'does not match: ' + prompt
|
|
109
|
-
}}
|
|
154
|
+
bind:value={customErrorMessage}
|
|
155
|
+
disabled={customErrorMessage == undefined || customErrorMessage == ''}
|
|
110
156
|
/>
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
157
|
+
</Label>
|
|
158
|
+
{:else if kind == 'enum'}
|
|
159
|
+
<Label label="Enums">
|
|
160
|
+
<svelte:fragment slot="header">
|
|
161
|
+
<Tooltip light>
|
|
162
|
+
Setting enums will allow you to specify a list of values that the input can take. If you
|
|
163
|
+
want to allow custom values, you can disable the option below.
|
|
164
|
+
</Tooltip>
|
|
165
|
+
</svelte:fragment>
|
|
166
|
+
<div class="flex flex-col gap-1">
|
|
167
|
+
{#each enum_ || [] as e}
|
|
168
|
+
<div class="flex flex-row w-full gap-2 pt-2">
|
|
169
|
+
<input
|
|
170
|
+
id="input"
|
|
171
|
+
type="text"
|
|
172
|
+
bind:value={e}
|
|
173
|
+
on:input={(event) => onEnumKeyChange(event?.currentTarget.value, e)}
|
|
174
|
+
/>
|
|
175
|
+
{#if enumLabels !== undefined}
|
|
176
|
+
<input
|
|
177
|
+
id="input"
|
|
178
|
+
type="text"
|
|
179
|
+
bind:value={enumLabels[e]}
|
|
180
|
+
placeholder="Optional title..."
|
|
181
|
+
on:input={(event) => {
|
|
182
|
+
if (event?.currentTarget.value === '') {
|
|
183
|
+
delete enumLabels[e]
|
|
184
|
+
}
|
|
185
|
+
}}
|
|
186
|
+
/>
|
|
187
|
+
{/if}
|
|
188
|
+
|
|
189
|
+
{#if allowKindChange}
|
|
190
|
+
<Button size="sm" on:click={() => remove(e)}>-</Button>
|
|
191
|
+
{/if}
|
|
192
|
+
</div>
|
|
193
|
+
{/each}
|
|
194
|
+
</div>
|
|
195
|
+
{#if allowKindChange}
|
|
196
|
+
<div class="flex flex-row my-1">
|
|
197
|
+
<Button color="light" size="sm" on:click={add}>+</Button>
|
|
198
|
+
</div>
|
|
199
|
+
{/if}
|
|
200
|
+
</Label>
|
|
201
|
+
{#if !noExtra}
|
|
123
202
|
<Toggle
|
|
124
203
|
size="xs"
|
|
125
|
-
options={{ right: '
|
|
126
|
-
checked={
|
|
204
|
+
options={{ right: 'Disallow creating custom values' }}
|
|
205
|
+
checked={disableCreate != undefined && disableCreate}
|
|
127
206
|
on:change={(e) => {
|
|
128
207
|
if (e.detail) {
|
|
129
|
-
|
|
208
|
+
disableCreate = true
|
|
130
209
|
} else {
|
|
131
|
-
|
|
210
|
+
disableCreate = undefined
|
|
132
211
|
}
|
|
133
212
|
}}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
{:else if kind == '
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
213
|
+
/>
|
|
214
|
+
{/if}
|
|
215
|
+
{:else if kind == 'resource'}
|
|
216
|
+
<div class="mt-1" />
|
|
217
|
+
<ResourceTypePicker bind:value={resource} />
|
|
218
|
+
{:else if kind == 'format'}
|
|
219
|
+
<Label label="Format">
|
|
220
|
+
<svelte:fragment slot="header">
|
|
221
|
+
<Tooltip light>
|
|
222
|
+
Setting the format will allow you to specify a format that the input should adhere to.
|
|
223
|
+
</Tooltip>
|
|
224
|
+
</svelte:fragment>
|
|
225
|
+
<select bind:value={format}>
|
|
226
|
+
<option value={undefined} />
|
|
227
|
+
{#each FORMATS as f}
|
|
228
|
+
<option value={f}>{f}</option>
|
|
229
|
+
{/each}
|
|
230
|
+
</select>
|
|
231
|
+
</Label>
|
|
232
|
+
{#if format == 'date'}
|
|
233
|
+
<div class="mt-1" />
|
|
234
|
+
|
|
235
|
+
<div class="grid grid-cols-3 gap-2"
|
|
236
|
+
>x
|
|
237
|
+
<Label label="Date format passed to script" class="col-span-2">
|
|
238
|
+
<svelte:fragment slot="header">
|
|
239
|
+
<Tooltip light>
|
|
240
|
+
Setting the date output format will allow you to specify how the date will be passed
|
|
241
|
+
to the script.
|
|
242
|
+
</Tooltip>
|
|
243
|
+
</svelte:fragment>
|
|
244
|
+
<ClearableInput type="text" bind:value={dateFormat} placeholder="yyyy-MM-dd" />
|
|
245
|
+
</Label>
|
|
246
|
+
<Label label="Presets">
|
|
247
|
+
<select
|
|
248
|
+
bind:value={dateFormat}
|
|
249
|
+
disabled={dateFormat ? !presetOptions.map((f) => f.format).includes(dateFormat) : false}
|
|
250
|
+
>
|
|
251
|
+
{#each presetOptions as f}
|
|
252
|
+
<option value={f.format}>{f.label}</option>
|
|
253
|
+
{/each}
|
|
254
|
+
</select>
|
|
255
|
+
</Label>
|
|
256
|
+
</div>
|
|
257
|
+
{/if}
|
|
258
|
+
{:else if kind == 'none'}
|
|
259
|
+
{#if !noExtra}
|
|
260
|
+
<Label label="Min textarea rows">
|
|
261
|
+
<input type="number" bind:value={minRows} />
|
|
262
|
+
</Label>
|
|
263
|
+
{/if}
|
|
264
|
+
{:else if kind === 'base64'}
|
|
265
|
+
<Alert
|
|
266
|
+
type="warning"
|
|
267
|
+
title="S3 Object recommended"
|
|
268
|
+
size="xs"
|
|
269
|
+
tooltip="Check out the documentation for more information:"
|
|
270
|
+
documentationLink="https://www.windmill.dev/docs/core_concepts/persistent_storage#large-data-files-s3-r2-minio-azure-blob"
|
|
271
|
+
>
|
|
272
|
+
For large files, we recommend using the S3 Object type instead of the base64 string type.
|
|
273
|
+
</Alert>
|
|
274
|
+
{/if}
|
|
275
|
+
{#if (kind == 'none' || kind == 'pattern' || kind == 'format') && !noExtra}
|
|
164
276
|
<Toggle
|
|
165
|
-
size="
|
|
166
|
-
options={{ right: '
|
|
167
|
-
checked={
|
|
277
|
+
size="xs"
|
|
278
|
+
options={{ right: 'Disable variable picker' }}
|
|
279
|
+
checked={disableVariablePicker != undefined && disableVariablePicker}
|
|
168
280
|
on:change={(e) => {
|
|
169
281
|
if (e.detail) {
|
|
170
|
-
|
|
282
|
+
disableVariablePicker = true
|
|
171
283
|
} else {
|
|
172
|
-
|
|
284
|
+
disableVariablePicker = undefined
|
|
173
285
|
}
|
|
174
286
|
}}
|
|
287
|
+
disabled={['email', 'yaml', 'sql', 'date-time', 'date'].includes(format ?? '')}
|
|
175
288
|
/>
|
|
176
289
|
{/if}
|
|
177
|
-
{:else if kind == 'resource'}
|
|
178
|
-
<div class="mt-1" />
|
|
179
|
-
<ResourceTypePicker bind:value={resource} />
|
|
180
|
-
{:else if kind == 'format'}
|
|
181
|
-
<select class="mt-1" bind:value={format}>
|
|
182
|
-
<option value={undefined} />
|
|
183
|
-
{#each FORMATS as f}
|
|
184
|
-
<option value={f}>{f}</option>
|
|
185
|
-
{/each}
|
|
186
|
-
</select>
|
|
187
|
-
|
|
188
|
-
{#if format == 'date'}
|
|
189
|
-
<div class="mt-1" />
|
|
190
290
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
</Label>
|
|
201
|
-
<Label label="Presets">
|
|
202
|
-
<select
|
|
203
|
-
bind:value={dateFormat}
|
|
204
|
-
disabled={dateFormat ? !presetOptions.map((f) => f.format).includes(dateFormat) : false}
|
|
205
|
-
>
|
|
206
|
-
{#each presetOptions as f}
|
|
207
|
-
<option value={f.format}>{f.label}</option>
|
|
208
|
-
{/each}
|
|
209
|
-
</select>
|
|
210
|
-
</Label>
|
|
211
|
-
</div>
|
|
212
|
-
{/if}
|
|
213
|
-
{:else if kind == 'none'}
|
|
214
|
-
{#if !noExtra}
|
|
215
|
-
<label
|
|
216
|
-
>min textarea rows:
|
|
217
|
-
<input type="number" bind:value={minRows} />
|
|
218
|
-
</label>
|
|
291
|
+
{#if kind == 'none' || kind == 'pattern'}
|
|
292
|
+
<Toggle
|
|
293
|
+
size="xs"
|
|
294
|
+
options={{ right: 'Is Password' }}
|
|
295
|
+
checked={password}
|
|
296
|
+
on:change={(e) => {
|
|
297
|
+
password = e.detail
|
|
298
|
+
}}
|
|
299
|
+
/>
|
|
219
300
|
{/if}
|
|
220
|
-
|
|
221
|
-
<Alert
|
|
222
|
-
type="warning"
|
|
223
|
-
title="S3 Object recommended"
|
|
224
|
-
collapsible
|
|
225
|
-
size="xs"
|
|
226
|
-
documentationLink="https://www.windmill.dev/docs/core_concepts/persistent_storage/large_data_files"
|
|
227
|
-
>
|
|
228
|
-
For large files, we recommend using the S3 Object type instead of the base64 string type.
|
|
229
|
-
</Alert>
|
|
230
|
-
{/if}
|
|
231
|
-
{#if (kind == 'none' || kind == 'pattern' || kind == 'format') && !noExtra}
|
|
232
|
-
<div class="mt-1" />
|
|
233
|
-
<Toggle
|
|
234
|
-
size="xs"
|
|
235
|
-
options={{ right: 'Disable variable picker' }}
|
|
236
|
-
checked={disableVariablePicker != undefined && disableVariablePicker}
|
|
237
|
-
on:change={(e) => {
|
|
238
|
-
if (e.detail) {
|
|
239
|
-
disableVariablePicker = true
|
|
240
|
-
} else {
|
|
241
|
-
disableVariablePicker = undefined
|
|
242
|
-
}
|
|
243
|
-
}}
|
|
244
|
-
/>
|
|
245
|
-
{/if}
|
|
246
|
-
|
|
247
|
-
{#if kind == 'none' || kind == 'pattern'}
|
|
248
|
-
<div class="mt-1" />
|
|
249
|
-
<Toggle
|
|
250
|
-
size="xs"
|
|
251
|
-
options={{ right: 'Is Password' }}
|
|
252
|
-
checked={password}
|
|
253
|
-
on:change={(e) => {
|
|
254
|
-
password = e.detail
|
|
255
|
-
}}
|
|
256
|
-
/>
|
|
257
|
-
<div class="mb-4" />
|
|
258
|
-
{/if}
|
|
301
|
+
</div>
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { SvelteComponent } from "svelte";
|
|
2
|
+
import type { EnumType } from '../common';
|
|
2
3
|
declare const __propDef: {
|
|
3
4
|
props: {
|
|
4
5
|
pattern: string | undefined;
|
|
5
|
-
enum_:
|
|
6
|
+
enum_: EnumType;
|
|
6
7
|
format: string | undefined;
|
|
7
8
|
contentEncoding: 'base64' | 'binary' | undefined;
|
|
8
9
|
customErrorMessage: string | undefined;
|
|
@@ -12,6 +13,9 @@ declare const __propDef: {
|
|
|
12
13
|
password?: boolean | undefined;
|
|
13
14
|
noExtra?: boolean | undefined;
|
|
14
15
|
dateFormat: string | undefined;
|
|
16
|
+
enumLabels?: Record<string, string> | undefined;
|
|
17
|
+
overrideAllowKindChange?: boolean | undefined;
|
|
18
|
+
originalType?: string | undefined;
|
|
15
19
|
};
|
|
16
20
|
events: {
|
|
17
21
|
[evt: string]: CustomEvent<any>;
|
|
@@ -9,6 +9,7 @@ export let textClass = '';
|
|
|
9
9
|
export let textStyle = '';
|
|
10
10
|
export let color = 'blue';
|
|
11
11
|
export let id = (Math.random() + 1).toString(36).substring(10);
|
|
12
|
+
export let lightMode = false;
|
|
12
13
|
export let size = 'sm';
|
|
13
14
|
const dispatch = createEventDispatcher();
|
|
14
15
|
const bothOptions = Boolean(options.left) && Boolean(options.right);
|
|
@@ -32,7 +33,7 @@ const bothOptions = Boolean(options.left) && Boolean(options.right);
|
|
|
32
33
|
>
|
|
33
34
|
{options?.left}
|
|
34
35
|
{#if options?.leftTooltip}
|
|
35
|
-
<Tooltip>{options?.leftTooltip}</Tooltip>
|
|
36
|
+
<Tooltip light={lightMode}>{options?.leftTooltip}</Tooltip>
|
|
36
37
|
{/if}
|
|
37
38
|
</span>
|
|
38
39
|
{/if}
|
|
@@ -55,7 +56,9 @@ const bothOptions = Boolean(options.left) && Boolean(options.right);
|
|
|
55
56
|
<div
|
|
56
57
|
class={classNames(
|
|
57
58
|
"transition-all bg-surface-selected rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:bg-surface after:border-white after:border after:rounded-full after:transition-all ",
|
|
58
|
-
color == 'red'
|
|
59
|
+
color == 'red'
|
|
60
|
+
? 'peer-checked:bg-red-600'
|
|
61
|
+
: 'peer-checked:bg-blue-600 dark:peer-checked:bg-blue-500',
|
|
59
62
|
size === 'sm'
|
|
60
63
|
? 'w-11 h-6 after:top-0.5 after:left-[2px] after:h-5 after:w-5'
|
|
61
64
|
: 'w-7 h-4 after:top-0.5 after:left-[2px] after:h-3 after:w-3'
|
|
@@ -74,7 +77,7 @@ const bothOptions = Boolean(options.left) && Boolean(options.right);
|
|
|
74
77
|
>
|
|
75
78
|
{options?.right}
|
|
76
79
|
{#if options?.rightTooltip}
|
|
77
|
-
<Tooltip>{options?.rightTooltip}</Tooltip>
|
|
80
|
+
<Tooltip light={lightMode}>{options?.rightTooltip}</Tooltip>
|
|
78
81
|
{/if}
|
|
79
82
|
</span>
|
|
80
83
|
{/if}
|
|
@@ -71,8 +71,9 @@ async function createToken() {
|
|
|
71
71
|
listTokens();
|
|
72
72
|
displayCreateToken = false;
|
|
73
73
|
}
|
|
74
|
+
let tokenPage = 1;
|
|
74
75
|
async function listTokens() {
|
|
75
|
-
tokens = await UserService.listTokens({ excludeEphemeral: true });
|
|
76
|
+
tokens = await UserService.listTokens({ excludeEphemeral: true, page: tokenPage, perPage: 100 });
|
|
76
77
|
}
|
|
77
78
|
async function deleteToken(tokenPrefix) {
|
|
78
79
|
await UserService.deleteToken({ tokenPrefix });
|
|
@@ -324,6 +325,28 @@ loadSettings();
|
|
|
324
325
|
{/if}
|
|
325
326
|
</tbody>
|
|
326
327
|
</TableCustom>
|
|
328
|
+
<div class="flex flex-row-reverse gap-2 w-full">
|
|
329
|
+
{#if tokens?.length == 100}
|
|
330
|
+
<button
|
|
331
|
+
class=" p-1 underline text-sm whitespace-nowrap text-center"
|
|
332
|
+
on:click={() => {
|
|
333
|
+
tokenPage += 1
|
|
334
|
+
listTokens()
|
|
335
|
+
}}
|
|
336
|
+
>Next
|
|
337
|
+
</button>
|
|
338
|
+
{/if}
|
|
339
|
+
{#if tokenPage > 1}
|
|
340
|
+
<button
|
|
341
|
+
class="p-1 underline text-sm whitespace-nowrap text-center"
|
|
342
|
+
on:click={() => {
|
|
343
|
+
tokenPage -= 1
|
|
344
|
+
listTokens()
|
|
345
|
+
}}
|
|
346
|
+
>Previous
|
|
347
|
+
</button>
|
|
348
|
+
{/if}
|
|
349
|
+
</div>
|
|
327
350
|
</div>
|
|
328
351
|
</div>
|
|
329
352
|
</div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<script>import { Plus, X } from 'lucide-svelte';
|
|
1
|
+
<script>import { Copy, Plus, RefreshCcwIcon, Settings, Trash, X } from 'lucide-svelte';
|
|
2
2
|
import { Alert, Button, Drawer } from './common';
|
|
3
3
|
import Multiselect from 'svelte-multiselect';
|
|
4
4
|
import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte';
|
|
@@ -714,7 +714,7 @@ let createdTags = [];
|
|
|
714
714
|
dirtyCode = true
|
|
715
715
|
const code = e.detail
|
|
716
716
|
if (code != '') {
|
|
717
|
-
nconfig.init_bash = code
|
|
717
|
+
nconfig.init_bash = code?.replace(/\r\n/g, '\n')
|
|
718
718
|
} else {
|
|
719
719
|
nconfig.init_bash = undefined
|
|
720
720
|
}
|
|
@@ -765,8 +765,7 @@ let createdTags = [];
|
|
|
765
765
|
</DrawerContent>
|
|
766
766
|
</Drawer>
|
|
767
767
|
|
|
768
|
-
<div class="flex gap-2 items-center"
|
|
769
|
-
><h4 class="py-4 truncate w-40 text-primary">{name}</h4>
|
|
768
|
+
<div class="flex gap-2 items-center justify-end flex-row my-2">
|
|
770
769
|
{#if $superadmin}
|
|
771
770
|
<Button
|
|
772
771
|
color="light"
|
|
@@ -776,9 +775,10 @@ let createdTags = [];
|
|
|
776
775
|
loadNConfig()
|
|
777
776
|
drawer.openDrawer()
|
|
778
777
|
}}
|
|
778
|
+
startIcon={{ icon: config == undefined ? Plus : Settings }}
|
|
779
779
|
>
|
|
780
780
|
<div class="flex flex-row gap-1 items-center">
|
|
781
|
-
{config == undefined ? '
|
|
781
|
+
{config == undefined ? 'Create' : 'Edit'} config
|
|
782
782
|
</div>
|
|
783
783
|
</Button>
|
|
784
784
|
|
|
@@ -794,8 +794,9 @@ let createdTags = [];
|
|
|
794
794
|
)
|
|
795
795
|
sendUserToast('Worker config copied to clipboard as YAML')
|
|
796
796
|
}}
|
|
797
|
+
startIcon={{ icon: Copy }}
|
|
797
798
|
>
|
|
798
|
-
|
|
799
|
+
Copy config
|
|
799
800
|
</Button>
|
|
800
801
|
|
|
801
802
|
{#if config}
|
|
@@ -809,9 +810,10 @@ let createdTags = [];
|
|
|
809
810
|
openDelete = true
|
|
810
811
|
}
|
|
811
812
|
}}
|
|
813
|
+
startIcon={{ icon: Trash }}
|
|
812
814
|
btnClasses="text-red-400"
|
|
813
815
|
>
|
|
814
|
-
|
|
816
|
+
Delete config
|
|
815
817
|
</Button>
|
|
816
818
|
{/if}
|
|
817
819
|
|
|
@@ -824,8 +826,9 @@ let createdTags = [];
|
|
|
824
826
|
openClean = true
|
|
825
827
|
}}
|
|
826
828
|
btnClasses="text-red-400"
|
|
829
|
+
startIcon={{ icon: RefreshCcwIcon }}
|
|
827
830
|
>
|
|
828
|
-
|
|
831
|
+
Clean cache
|
|
829
832
|
</Button>
|
|
830
833
|
{:else if config}
|
|
831
834
|
<Button
|
|
@@ -839,9 +842,4 @@ let createdTags = [];
|
|
|
839
842
|
<div class="flex flex-row gap-1 items-center"> config </div>
|
|
840
843
|
</Button>
|
|
841
844
|
{/if}
|
|
842
|
-
{#if activeWorkers > 1}
|
|
843
|
-
<span class="ml-4 text-xs"
|
|
844
|
-
>{activeWorkers} Workers <Tooltip>Number of workers active in the last 10s</Tooltip></span
|
|
845
|
-
>
|
|
846
|
-
{/if}
|
|
847
845
|
</div>
|
|
@@ -26,6 +26,7 @@ export let errorHandledByComponent = false;
|
|
|
26
26
|
export let extraKey = undefined;
|
|
27
27
|
export let isMenuItem = false;
|
|
28
28
|
export let noInitialize = false;
|
|
29
|
+
export let replaceCallback = false;
|
|
29
30
|
export let controls = undefined;
|
|
30
31
|
const { worldStore, app, componentControl, selectedComponent } = getContext('AppViewerContext');
|
|
31
32
|
const rowContext = getContext('RowWrapperContext');
|
|
@@ -149,6 +150,7 @@ let css = initCss($app.css?.buttoncomponent, customCss);
|
|
|
149
150
|
}
|
|
150
151
|
}}
|
|
151
152
|
refreshOnStart={resolvedConfig.triggerOnAppLoad}
|
|
153
|
+
{replaceCallback}
|
|
152
154
|
>
|
|
153
155
|
<AlignWrapper {noWFull} {horizontalAlignment} {verticalAlignment} class="wm-button-wrapper">
|
|
154
156
|
{#if errorsMessage}
|