windmill-components 1.447.7 → 1.448.1
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/autosize.js +3 -8
- package/package/components/AppConnectInner.svelte +7 -1
- package/package/components/ArgInput.svelte +673 -596
- package/package/components/ArgInput.svelte.d.ts +11 -0
- package/package/components/AssignableTags.svelte +2 -1
- package/package/components/AssignableTags.svelte.d.ts +1 -0
- package/package/components/AssignableTagsInner.svelte +5 -1
- package/package/components/AssignableTagsInner.svelte.d.ts +3 -1
- package/package/components/AuthSettings.svelte +1 -1
- package/package/components/AuthSettings.svelte.d.ts +1 -0
- package/package/components/EditableSchemaForm.svelte +61 -29
- package/package/components/EditableSchemaForm.svelte.d.ts +9 -0
- package/package/components/FirstStepInputs.svelte +3 -1
- package/package/components/FlowPreviewContent.svelte +46 -45
- package/package/components/HistoricInputs.svelte +2 -0
- package/package/components/InstanceSettings.svelte +5 -1
- package/package/components/Range.svelte +5 -4
- package/package/components/Range.svelte.d.ts +2 -0
- package/package/components/RunFormAdvancedPopup.svelte +2 -2
- package/package/components/SavedInputsPicker.svelte +6 -0
- package/package/components/SchemaForm.svelte +70 -4
- package/package/components/SchemaForm.svelte.d.ts +11 -0
- package/package/components/ScriptBuilder.svelte +9 -1
- package/package/components/ScriptEditor.svelte.d.ts +2 -2
- package/package/components/ScriptPicker.svelte.d.ts +1 -1
- package/package/components/SimpleEditor.svelte +3 -1
- package/package/components/TestConnection.svelte +1 -1
- package/package/components/WorkerGroup.svelte +21 -0
- package/package/components/WorkerTagPicker.svelte +2 -2
- package/package/components/WorkerTagSelect.svelte +2 -2
- package/package/components/apps/components/display/table/AppAggridTable.svelte +3 -1
- package/package/components/apps/editor/component/components.d.ts +79 -79
- package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +1 -1
- package/package/components/flows/content/FlowEditorPanel.svelte +2 -2
- package/package/components/flows/content/FlowInput.svelte +193 -130
- package/package/components/flows/content/FlowInputEditor.svelte +12 -36
- package/package/components/flows/content/FlowInputEditor.svelte.d.ts +1 -5
- package/package/components/flows/content/FlowInputsQuick.svelte.d.ts +1 -1
- package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte +2 -2
- package/package/components/flows/flowStateUtils.d.ts +1 -2
- package/package/components/flows/flowStateUtils.js +1 -1
- package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte.d.ts +1 -1
- package/package/components/meltComponents/SideBarTab.svelte +60 -0
- package/package/components/meltComponents/SideBarTab.svelte.d.ts +24 -0
- package/package/components/runs/NoWorkerWithTagWarning.svelte +5 -1
- package/package/components/schema/AddProperty.svelte +3 -1
- package/package/components/schema/AddPropertyV2.svelte +5 -8
- package/package/components/schema/AddPropertyV2.svelte.d.ts +3 -0
- package/package/components/schema/EditableSchemaDrawer.svelte +12 -3
- package/package/components/schema/EditableSchemaWrapper.svelte +5 -0
- package/package/components/schema/SchemaFormDND.svelte +25 -9
- package/package/components/schema/SchemaFormDND.svelte.d.ts +12 -0
- package/package/components/schema/schemaUtils.d.ts +26 -0
- package/package/components/schema/schemaUtils.js +185 -0
- package/package/components/settings/PremiumInfo.svelte +212 -30
- package/package/components/triggers/CaptureSection.svelte.d.ts +1 -1
- package/package/components/triggers/CaptureTable.svelte +10 -2
- package/package/components/triggers/CaptureWrapper.svelte +2 -1
- package/package/components/triggers/KafkaTriggersConfigSection.svelte.d.ts +1 -1
- package/package/components/triggers/NatsTriggersConfigSection.svelte.d.ts +1 -1
- package/package/components/triggers/RouteEditorConfigSection.svelte +3 -2
- package/package/components/triggers/RouteEditorConfigSection.svelte.d.ts +2 -1
- package/package/components/triggers/RoutesPanel.svelte +2 -0
- package/package/components/triggers/RoutesPanel.svelte.d.ts +1 -0
- package/package/components/triggers/TriggersEditor.svelte +3 -1
- package/package/components/triggers/TriggersEditor.svelte.d.ts +1 -0
- package/package/components/triggers/TriggersEditorSection.svelte +0 -1
- package/package/components/triggers/TriggersWrapper.svelte +1 -1
- package/package/components/triggers/WebhooksConfigSection.svelte +9 -9
- package/package/components/triggers/WebhooksConfigSection.svelte.d.ts +2 -2
- package/package/components/triggers/WebhooksPanel.svelte +2 -2
- package/package/components/triggers/WebhooksPanel.svelte.d.ts +1 -1
- package/package/components/triggers/WebsocketEditorConfigSection.svelte.d.ts +1 -1
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +2 -2
- package/package/gen/schemas.gen.js +2 -2
- package/package/gen/services.gen.d.ts +22 -2
- package/package/gen/services.gen.js +44 -2
- package/package/gen/types.gen.d.ts +62 -2
- package/package/script_helpers.d.ts +1 -1
- package/package/script_helpers.js +7 -7
- package/package.json +11 -3
|
@@ -4,6 +4,7 @@ import type ItemPicker from './ItemPicker.svelte';
|
|
|
4
4
|
import SimpleEditor from './SimpleEditor.svelte';
|
|
5
5
|
import type VariableEditor from './VariableEditor.svelte';
|
|
6
6
|
import type { Script } from '../gen';
|
|
7
|
+
import type { SchemaDiff } from './schema/schemaUtils';
|
|
7
8
|
declare const __propDef: {
|
|
8
9
|
props: {
|
|
9
10
|
label?: string | undefined;
|
|
@@ -69,11 +70,21 @@ declare const __propDef: {
|
|
|
69
70
|
} | undefined;
|
|
70
71
|
otherArgs?: Record<string, any> | undefined;
|
|
71
72
|
lightHeader?: boolean | undefined;
|
|
73
|
+
diffStatus?: SchemaDiff | undefined;
|
|
74
|
+
hideNested?: boolean | undefined;
|
|
75
|
+
nestedParent?: {
|
|
76
|
+
label: string;
|
|
77
|
+
nestedParent: any | undefined;
|
|
78
|
+
} | undefined;
|
|
79
|
+
nestedClasses?: string | undefined;
|
|
72
80
|
focus?: (() => void) | undefined;
|
|
73
81
|
};
|
|
74
82
|
events: {
|
|
75
83
|
focus: CustomEvent<any>;
|
|
76
84
|
blur: CustomEvent<any>;
|
|
85
|
+
nestedChange: CustomEvent<any>;
|
|
86
|
+
acceptChange: CustomEvent<any>;
|
|
87
|
+
rejectChange: CustomEvent<any>;
|
|
77
88
|
change: CustomEvent<any>;
|
|
78
89
|
} & {
|
|
79
90
|
[evt: string]: CustomEvent<any>;
|
|
@@ -5,6 +5,7 @@ import AssignableTagsInner from './AssignableTagsInner.svelte';
|
|
|
5
5
|
export let placement = 'bottom-end';
|
|
6
6
|
export let color = 'dark';
|
|
7
7
|
export let disabled = false;
|
|
8
|
+
export let showWorkspaceRestriction = false;
|
|
8
9
|
</script>
|
|
9
10
|
|
|
10
11
|
<Popup
|
|
@@ -24,5 +25,5 @@ export let disabled = false;
|
|
|
24
25
|
>
|
|
25
26
|
</Button>
|
|
26
27
|
</svelte:fragment>
|
|
27
|
-
<AssignableTagsInner on:refresh />
|
|
28
|
+
<AssignableTagsInner {showWorkspaceRestriction} on:refresh />
|
|
28
29
|
</Popup>
|
|
@@ -7,11 +7,15 @@ import NoWorkerWithTagWarning from './runs/NoWorkerWithTagWarning.svelte';
|
|
|
7
7
|
import { CUSTOM_TAGS_SETTING } from '../consts';
|
|
8
8
|
import { base } from '../base';
|
|
9
9
|
import { createEventDispatcher } from 'svelte';
|
|
10
|
+
export let showWorkspaceRestriction = false;
|
|
10
11
|
let newTag = '';
|
|
11
12
|
let customTags = undefined;
|
|
12
13
|
async function loadCustomTags() {
|
|
13
14
|
try {
|
|
14
|
-
customTags =
|
|
15
|
+
customTags =
|
|
16
|
+
(await WorkerService.getCustomTags({
|
|
17
|
+
showWorkspaceRestriction
|
|
18
|
+
})) ?? [];
|
|
15
19
|
}
|
|
16
20
|
catch (err) {
|
|
17
21
|
sendUserToast(`Could not load global cache: ${err}`, true);
|
|
@@ -15,6 +15,7 @@ import Toggle from './Toggle.svelte';
|
|
|
15
15
|
import { ExternalLink, Plus } from 'lucide-svelte';
|
|
16
16
|
export let snowflakeAccountIdentifier = '';
|
|
17
17
|
export let oauths = {};
|
|
18
|
+
export let requirePreexistingUserForOauth = false;
|
|
18
19
|
const windmillBuiltins = [
|
|
19
20
|
'github',
|
|
20
21
|
'gitlab',
|
|
@@ -39,7 +40,6 @@ let oauth_name = undefined;
|
|
|
39
40
|
let clientName = '';
|
|
40
41
|
let resourceName = '';
|
|
41
42
|
let tab = 'sso';
|
|
42
|
-
let requirePreexistingUserForOauth = false;
|
|
43
43
|
</script>
|
|
44
44
|
|
|
45
45
|
<div>
|
|
@@ -38,6 +38,9 @@ export let editTab;
|
|
|
38
38
|
export let previewSchema = undefined;
|
|
39
39
|
export let editPanelInitialSize = undefined;
|
|
40
40
|
export let editPanelSize = 0;
|
|
41
|
+
export let diff = {};
|
|
42
|
+
export let disableDnd = false;
|
|
43
|
+
export let shouldDispatchChanges = false;
|
|
41
44
|
const dispatch = createEventDispatcher();
|
|
42
45
|
let clazz = '';
|
|
43
46
|
export { clazz as class };
|
|
@@ -193,6 +196,10 @@ $: updatePanelSizes($editPanelSizeSmooth, $inputPanelSizeSmooth);
|
|
|
193
196
|
$: !!editTab ? openEditTab() : closeEditTab();
|
|
194
197
|
let pannelButtonWidth = 0;
|
|
195
198
|
export let pannelExtraButtonWidth = 0;
|
|
199
|
+
export function updateJson() {
|
|
200
|
+
schemaString = JSON.stringify(schema, null, '\t');
|
|
201
|
+
editor?.setCode(schemaString);
|
|
202
|
+
}
|
|
196
203
|
</script>
|
|
197
204
|
|
|
198
205
|
<div class="w-full h-full">
|
|
@@ -208,37 +215,60 @@ export let pannelExtraButtonWidth = 0;
|
|
|
208
215
|
<Splitpanes class="splitter-hidden w-full">
|
|
209
216
|
{#if !noPreview}
|
|
210
217
|
<Pane bind:size={inputPanelSize} minSize={20}>
|
|
211
|
-
<div
|
|
218
|
+
<div
|
|
219
|
+
class="h-full flex flex-col gap-2 {$$slots.openEditTab && editPanelSize > 0
|
|
220
|
+
? 'pr-[38px]'
|
|
221
|
+
: 'pr-2'}"
|
|
222
|
+
>
|
|
212
223
|
{#if $$slots.addProperty}
|
|
213
|
-
<div class="w-full justify-left pr-2">
|
|
214
|
-
<div
|
|
224
|
+
<div class="w-full justify-left pr-2 grow-0">
|
|
225
|
+
<div
|
|
226
|
+
style={editPanelSize > 0
|
|
227
|
+
? `width: 100%;`
|
|
228
|
+
: `width: calc(100% - ${pannelButtonWidth - pannelExtraButtonWidth}px);`}
|
|
229
|
+
>
|
|
215
230
|
<slot name="addProperty" />
|
|
216
231
|
</div>
|
|
217
232
|
</div>
|
|
218
233
|
{/if}
|
|
219
234
|
|
|
220
|
-
<
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
235
|
+
<div
|
|
236
|
+
class="min-h-0 overflow-y-auto grow rounded-md {$$slots.runButton
|
|
237
|
+
? 'flex flex-col gap-2'
|
|
238
|
+
: ''}"
|
|
239
|
+
>
|
|
240
|
+
<SchemaFormDnd
|
|
241
|
+
nestedClasses={'flex flex-col gap-1'}
|
|
242
|
+
schema={previewSchema ? previewSchema : schema}
|
|
243
|
+
{dndType}
|
|
244
|
+
{disableDnd}
|
|
245
|
+
bind:args
|
|
246
|
+
on:click={(e) => {
|
|
247
|
+
opened = e.detail
|
|
248
|
+
}}
|
|
249
|
+
on:reorder={(e) => {
|
|
250
|
+
schema.order = e.detail
|
|
251
|
+
schema = schema
|
|
252
|
+
dispatch('change', schema)
|
|
253
|
+
}}
|
|
254
|
+
on:change={() => {
|
|
255
|
+
schema = schema
|
|
256
|
+
dispatch('change', schema)
|
|
257
|
+
}}
|
|
258
|
+
{lightweightMode}
|
|
259
|
+
prettifyHeader={isAppInput}
|
|
260
|
+
disabled={!!previewSchema}
|
|
261
|
+
{diff}
|
|
262
|
+
on:acceptChange
|
|
263
|
+
on:rejectChange
|
|
264
|
+
on:nestedChange={() => {
|
|
265
|
+
dispatch('change', schema)
|
|
266
|
+
}}
|
|
267
|
+
{shouldDispatchChanges}
|
|
268
|
+
/>
|
|
240
269
|
|
|
241
|
-
|
|
270
|
+
<slot name="runButton" />
|
|
271
|
+
</div>
|
|
242
272
|
</div>
|
|
243
273
|
</Pane>
|
|
244
274
|
{/if}
|
|
@@ -386,7 +416,6 @@ export let pannelExtraButtonWidth = 0;
|
|
|
386
416
|
{isAppInput}
|
|
387
417
|
on:change={() => {
|
|
388
418
|
schema = schema
|
|
389
|
-
// console.log('schema', schema)
|
|
390
419
|
dispatch('change', schema)
|
|
391
420
|
}}
|
|
392
421
|
>
|
|
@@ -401,8 +430,6 @@ export let pannelExtraButtonWidth = 0;
|
|
|
401
430
|
const isS3 = e.detail == 'S3'
|
|
402
431
|
const isOneOf = e.detail == 'oneOf'
|
|
403
432
|
|
|
404
|
-
selected = e.detail
|
|
405
|
-
|
|
406
433
|
const emptyProperty = {
|
|
407
434
|
contentEncoding: undefined,
|
|
408
435
|
enum_: undefined,
|
|
@@ -469,8 +496,12 @@ export let pannelExtraButtonWidth = 0;
|
|
|
469
496
|
type: e.detail
|
|
470
497
|
}
|
|
471
498
|
}
|
|
472
|
-
|
|
473
|
-
|
|
499
|
+
// No better solution than this, needs future rework
|
|
500
|
+
setTimeout(() => {
|
|
501
|
+
schema = schema
|
|
502
|
+
dispatch('change', schema)
|
|
503
|
+
}, 100)
|
|
504
|
+
dispatch('schemaChange')
|
|
474
505
|
}}
|
|
475
506
|
>
|
|
476
507
|
{#each [['String', 'string'], ['Number', 'number'], ['Integer', 'integer'], ['Object', 'object'], ['OneOf', 'oneOf'], ['Array', 'array'], ['Boolean', 'boolean'], ['S3 Object', 'S3']] as x}
|
|
@@ -519,6 +550,7 @@ export let pannelExtraButtonWidth = 0;
|
|
|
519
550
|
on:schemaChange={(e) => {
|
|
520
551
|
schema = schema
|
|
521
552
|
dispatch('change', schema)
|
|
553
|
+
dispatch('schemaChange')
|
|
522
554
|
}}
|
|
523
555
|
/>
|
|
524
556
|
{/if}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SvelteComponent } from "svelte";
|
|
2
2
|
import type { Schema } from '../common';
|
|
3
|
+
import type { SchemaDiff } from './schema/schemaUtils';
|
|
3
4
|
declare const __propDef: {
|
|
4
5
|
props: {
|
|
5
6
|
schema: Schema | any;
|
|
@@ -20,16 +21,23 @@ declare const __propDef: {
|
|
|
20
21
|
previewSchema?: Record<string, any> | undefined;
|
|
21
22
|
editPanelInitialSize?: number | undefined;
|
|
22
23
|
editPanelSize?: number | undefined;
|
|
24
|
+
diff?: Record<string, SchemaDiff> | undefined;
|
|
25
|
+
disableDnd?: boolean | undefined;
|
|
26
|
+
shouldDispatchChanges?: boolean | undefined;
|
|
23
27
|
class?: string | undefined;
|
|
24
28
|
setDefaults?: (() => void) | undefined;
|
|
25
29
|
openField?: ((key: string) => void) | undefined;
|
|
26
30
|
deleteField?: ((key: string) => void) | undefined;
|
|
27
31
|
pannelExtraButtonWidth?: number | undefined;
|
|
32
|
+
updateJson?: (() => void) | undefined;
|
|
28
33
|
};
|
|
29
34
|
events: {
|
|
35
|
+
acceptChange: CustomEvent<any>;
|
|
36
|
+
rejectChange: CustomEvent<any>;
|
|
30
37
|
click: MouseEvent;
|
|
31
38
|
change: CustomEvent<any>;
|
|
32
39
|
delete: CustomEvent<any>;
|
|
40
|
+
schemaChange: CustomEvent<any>;
|
|
33
41
|
editPanelSizeChanged: CustomEvent<any>;
|
|
34
42
|
} & {
|
|
35
43
|
[evt: string]: CustomEvent<any>;
|
|
@@ -48,5 +56,6 @@ export default class EditableSchemaForm extends SvelteComponent<EditableSchemaFo
|
|
|
48
56
|
get setDefaults(): () => void;
|
|
49
57
|
get openField(): (key: string) => void;
|
|
50
58
|
get deleteField(): (key: string) => void;
|
|
59
|
+
get updateJson(): () => void;
|
|
51
60
|
}
|
|
52
61
|
export {};
|
|
@@ -24,7 +24,7 @@ async function loadSchema() {
|
|
|
24
24
|
error = e;
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
loadSchema();
|
|
27
|
+
$: $flowStore && $flowStateStore && loadSchema();
|
|
28
28
|
function handleClick() {
|
|
29
29
|
selected = !selected;
|
|
30
30
|
dispatch('select', selected ? schema : undefined);
|
|
@@ -41,6 +41,8 @@ function handleKeydown(event) {
|
|
|
41
41
|
if (event.key === 'Escape' && selected) {
|
|
42
42
|
selected = false;
|
|
43
43
|
dispatch('select', undefined);
|
|
44
|
+
event.stopPropagation();
|
|
45
|
+
event.preventDefault();
|
|
44
46
|
}
|
|
45
47
|
}
|
|
46
48
|
let firstUpdate = true;
|
|
@@ -26,6 +26,7 @@ let selectedJobStepType = 'single';
|
|
|
26
26
|
let isRunning = false;
|
|
27
27
|
let jobProgressReset;
|
|
28
28
|
export function test() {
|
|
29
|
+
renderCount++;
|
|
29
30
|
runPreview($previewArgs, undefined);
|
|
30
31
|
}
|
|
31
32
|
const { selectedId, previewArgs, flowStateStore, flowStore, pathStore, initialPath, customUi, executionCount } = getContext('FlowEditorContext');
|
|
@@ -126,53 +127,53 @@ let selectedCapture = undefined;
|
|
|
126
127
|
on:close={captureLibraryDrawer?.toggleDrawer}
|
|
127
128
|
>
|
|
128
129
|
<div class="h-full flex flex-col gap-2">
|
|
129
|
-
<
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
130
|
+
<div class="min-h-0 grow h-full">
|
|
131
|
+
<CapturesInputs
|
|
132
|
+
flowPath={$pathStore}
|
|
133
|
+
headless={false}
|
|
134
|
+
addButton={true}
|
|
135
|
+
on:select={(e) => {
|
|
136
|
+
selectedCapture = e.detail
|
|
137
|
+
}}
|
|
138
|
+
on:openTriggers={(e) => {
|
|
139
|
+
dispatch('openTriggers', e.detail)
|
|
140
|
+
captureLibraryDrawer?.closeDrawer()
|
|
141
|
+
}}
|
|
142
|
+
/>
|
|
143
|
+
</div>
|
|
141
144
|
|
|
142
|
-
<div class="
|
|
143
|
-
<div class="w-full flex flex-col
|
|
144
|
-
<
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
145
|
+
<div class="w-full flex flex-col gap-2 px-2 py-2 h-[50%]">
|
|
146
|
+
<div class="w-full flex flex-col">
|
|
147
|
+
<Button
|
|
148
|
+
color="blue"
|
|
149
|
+
btnClasses="w-full"
|
|
150
|
+
size="sm"
|
|
151
|
+
spacingSize="xl"
|
|
152
|
+
on:click={async () => {
|
|
153
|
+
$previewArgs = JSON.parse(JSON.stringify(selectedCapture))
|
|
154
|
+
captureLibraryDrawer?.closeDrawer()
|
|
155
|
+
renderCount++
|
|
156
|
+
}}
|
|
157
|
+
disabled={!selectedCapture}
|
|
158
|
+
>
|
|
159
|
+
<ArrowLeftIcon class="w-4 h-4 mr-2" />
|
|
160
|
+
Use input
|
|
161
|
+
</Button>
|
|
162
|
+
</div>
|
|
163
|
+
<div class="w-full min-h-0 grow overflow-auto">
|
|
164
|
+
{#if typeof selectedCapture == 'string' && selectedCapture == 'WINDMILL_TOO_BIG'}
|
|
165
|
+
<div class="text-secondary mt-2">
|
|
166
|
+
Payload too big to preview but can still be loaded</div
|
|
156
167
|
>
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
{:else if Object.keys(selectedCapture || {}).length > 0}
|
|
167
|
-
<div class=" overflow-auto h-full p-2">
|
|
168
|
-
<ObjectViewer json={selectedCapture} />
|
|
169
|
-
</div>
|
|
170
|
-
{:else}
|
|
171
|
-
<div class="text-center text-tertiary">
|
|
172
|
-
Select an Input to preview scripts arguments
|
|
173
|
-
</div>
|
|
174
|
-
{/if}
|
|
175
|
-
</div>
|
|
168
|
+
{:else if Object.keys(selectedCapture || {}).length > 0}
|
|
169
|
+
<div class=" overflow-auto h-full p-2">
|
|
170
|
+
<ObjectViewer json={selectedCapture} />
|
|
171
|
+
</div>
|
|
172
|
+
{:else}
|
|
173
|
+
<div class="text-center text-tertiary">
|
|
174
|
+
Select an Input to preview scripts arguments
|
|
175
|
+
</div>
|
|
176
|
+
{/if}
|
|
176
177
|
</div>
|
|
177
178
|
</div>
|
|
178
179
|
</div>
|
|
@@ -238,7 +238,11 @@ async function sendStats() {
|
|
|
238
238
|
>
|
|
239
239
|
{/if}
|
|
240
240
|
{:else if category == 'Auth/OAuth'}
|
|
241
|
-
<AuthSettings
|
|
241
|
+
<AuthSettings
|
|
242
|
+
bind:oauths
|
|
243
|
+
bind:snowflakeAccountIdentifier
|
|
244
|
+
bind:requirePreexistingUserForOauth
|
|
245
|
+
>
|
|
242
246
|
<svelte:fragment slot="scim">
|
|
243
247
|
<div class="flex-col flex gap-2 pb-4">
|
|
244
248
|
{#each scimSamlSetting as setting}
|
|
@@ -5,6 +5,8 @@ export let initialValue = 0;
|
|
|
5
5
|
export let value = typeof initialValue === 'string' ? parseInt(initialValue) : initialValue;
|
|
6
6
|
export let disabled = false;
|
|
7
7
|
export let defaultValue = undefined;
|
|
8
|
+
export let format = (v) => `${v}`;
|
|
9
|
+
export let hideInput = false;
|
|
8
10
|
let step = 1;
|
|
9
11
|
let slider;
|
|
10
12
|
function calculateAxisStep(min, max) {
|
|
@@ -15,9 +17,6 @@ $: if (value === null) {
|
|
|
15
17
|
value = 0;
|
|
16
18
|
}
|
|
17
19
|
$: axisStep = calculateAxisStep(min, max);
|
|
18
|
-
const format = (v, i, p) => {
|
|
19
|
-
return `${v}`;
|
|
20
|
-
};
|
|
21
20
|
function handleKeyDown(event) {
|
|
22
21
|
if (disabled)
|
|
23
22
|
return;
|
|
@@ -75,7 +74,9 @@ $: handleWidth = `${Math.max(max.toString().length ?? 2, 2)}em`;
|
|
|
75
74
|
{/if}
|
|
76
75
|
</div>
|
|
77
76
|
|
|
78
|
-
|
|
77
|
+
{#if !hideInput}
|
|
78
|
+
<input bind:value type="number" class="!w-16 h-8 !text-xs mb-6" {max} {min} {disabled} />
|
|
79
|
+
{/if}
|
|
79
80
|
</div>
|
|
80
81
|
|
|
81
82
|
<style>
|
|
@@ -7,6 +7,8 @@ declare const __propDef: {
|
|
|
7
7
|
value?: number | undefined;
|
|
8
8
|
disabled?: boolean | undefined;
|
|
9
9
|
defaultValue?: number | undefined;
|
|
10
|
+
format?: ((value: number) => string) | undefined;
|
|
11
|
+
hideInput?: boolean | undefined;
|
|
10
12
|
};
|
|
11
13
|
events: {
|
|
12
14
|
pointerdown: PointerEvent;
|
|
@@ -3,7 +3,7 @@ import Label from './Label.svelte';
|
|
|
3
3
|
import CloseButton from './common/CloseButton.svelte';
|
|
4
4
|
import Toggle from './Toggle.svelte';
|
|
5
5
|
import Tooltip from './Tooltip.svelte';
|
|
6
|
-
import { userStore, workerTags } from '../stores';
|
|
6
|
+
import { userStore, workerTags, workspaceStore } from '../stores';
|
|
7
7
|
import { Button } from './common';
|
|
8
8
|
import { WorkerService } from '../gen';
|
|
9
9
|
import DateTimeInput from './DateTimeInput.svelte';
|
|
@@ -14,7 +14,7 @@ export let overrideTag;
|
|
|
14
14
|
loadWorkerGroups();
|
|
15
15
|
async function loadWorkerGroups() {
|
|
16
16
|
if (!$workerTags) {
|
|
17
|
-
$workerTags = await WorkerService.getCustomTags();
|
|
17
|
+
$workerTags = await WorkerService.getCustomTags({ workspace: $workspaceStore });
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
</script>
|
|
@@ -97,16 +97,22 @@ async function getPropPickerElements() {
|
|
|
97
97
|
function handleKeydown(event) {
|
|
98
98
|
if (event.key === 'Escape' && isEditing) {
|
|
99
99
|
setEditing(null);
|
|
100
|
+
event.stopPropagation();
|
|
101
|
+
event.preventDefault();
|
|
100
102
|
}
|
|
101
103
|
else if (event.key === 'Escape' && selectedInput) {
|
|
102
104
|
selectedInput = null;
|
|
103
105
|
selectedArgs = undefined;
|
|
104
106
|
dispatch('select', undefined);
|
|
107
|
+
event.stopPropagation();
|
|
108
|
+
event.preventDefault();
|
|
105
109
|
}
|
|
106
110
|
if (event.key === 'Enter' && isEditing) {
|
|
107
111
|
updateInput(isEditing).then(() => {
|
|
108
112
|
setEditing(null);
|
|
109
113
|
});
|
|
114
|
+
event.stopPropagation();
|
|
115
|
+
event.preventDefault();
|
|
110
116
|
}
|
|
111
117
|
}
|
|
112
118
|
function setEditing(input) {
|
|
@@ -38,6 +38,10 @@ export let dndConfig = undefined;
|
|
|
38
38
|
export let items = undefined;
|
|
39
39
|
export let helperScript = undefined;
|
|
40
40
|
export let lightHeader = false;
|
|
41
|
+
export let diff = {};
|
|
42
|
+
export let nestedParent = undefined;
|
|
43
|
+
export let shouldDispatchChanges = false;
|
|
44
|
+
export let nestedClasses = '';
|
|
41
45
|
const dispatch = createEventDispatcher();
|
|
42
46
|
let inputCheck = {};
|
|
43
47
|
$: if (args == undefined || typeof args !== 'object') {
|
|
@@ -136,7 +140,9 @@ $: isValid = allTrue(inputCheck ?? {});
|
|
|
136
140
|
{/if}
|
|
137
141
|
|
|
138
142
|
<div
|
|
139
|
-
class="w-full {$$props.class} {flexWrap
|
|
143
|
+
class="w-full {$$props.class} {flexWrap
|
|
144
|
+
? 'flex flex-row flex-wrap gap-x-6 '
|
|
145
|
+
: ''} {nestedClasses}"
|
|
140
146
|
use:dragHandleZone={dndConfig ?? { items: [], dragDisabled: true }}
|
|
141
147
|
on:finalize
|
|
142
148
|
on:consider
|
|
@@ -144,12 +150,61 @@ $: isValid = allTrue(inputCheck ?? {});
|
|
|
144
150
|
{#if keys.length > 0}
|
|
145
151
|
{#each fields as item, i (item.id)}
|
|
146
152
|
{@const argName = item.value}
|
|
147
|
-
<div
|
|
153
|
+
<div
|
|
154
|
+
class={typeof diff[argName] === 'object' && diff[argName].diff !== 'same'
|
|
155
|
+
? 'bg-red-300 dark:bg-red-800 rounded-md'
|
|
156
|
+
: ''}
|
|
157
|
+
>
|
|
148
158
|
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
149
159
|
{#if !schemaSkippedValues.includes(argName) && keys.includes(argName)}
|
|
160
|
+
{#if typeof diff[argName] === 'object' && diff[argName].oldSchema}
|
|
161
|
+
{@const formerProperty = diff[argName].oldSchema}
|
|
162
|
+
<ArgInput
|
|
163
|
+
{disablePortal}
|
|
164
|
+
{resourceTypes}
|
|
165
|
+
{prettifyHeader}
|
|
166
|
+
autofocus={i == 0 && autofocus ? true : null}
|
|
167
|
+
label={argName}
|
|
168
|
+
description={formerProperty?.description}
|
|
169
|
+
value={args[argName]}
|
|
170
|
+
type={formerProperty?.type}
|
|
171
|
+
oneOf={formerProperty?.oneOf}
|
|
172
|
+
required={formerProperty?.required}
|
|
173
|
+
pattern={formerProperty?.pattern}
|
|
174
|
+
valid={inputCheck[argName]}
|
|
175
|
+
defaultValue={structuredClone(formerProperty?.default)}
|
|
176
|
+
enum_={formerProperty?.enum}
|
|
177
|
+
format={formerProperty?.format}
|
|
178
|
+
contentEncoding={formerProperty?.contentEncoding}
|
|
179
|
+
customErrorMessage={formerProperty?.customErrorMessage}
|
|
180
|
+
properties={formerProperty?.properties}
|
|
181
|
+
order={formerProperty?.order}
|
|
182
|
+
nestedRequired={formerProperty?.required}
|
|
183
|
+
itemsType={formerProperty?.items}
|
|
184
|
+
disabled={disabledArgs.includes(argName) || disabled || formerProperty?.disabled}
|
|
185
|
+
{compact}
|
|
186
|
+
{variableEditor}
|
|
187
|
+
{itemPicker}
|
|
188
|
+
{pickForField}
|
|
189
|
+
password={linkedSecret == argName}
|
|
190
|
+
extra={formerProperty}
|
|
191
|
+
{showSchemaExplorer}
|
|
192
|
+
simpleTooltip={schemaFieldTooltip[argName]}
|
|
193
|
+
{onlyMaskPassword}
|
|
194
|
+
nullable={formerProperty?.nullable}
|
|
195
|
+
title={formerProperty?.title}
|
|
196
|
+
placeholder={formerProperty?.placeholder}
|
|
197
|
+
orderEditable={dndConfig != undefined}
|
|
198
|
+
otherArgs={args}
|
|
199
|
+
{helperScript}
|
|
200
|
+
{lightHeader}
|
|
201
|
+
hideNested={typeof diff[argName].diff === 'object'}
|
|
202
|
+
diffStatus={undefined}
|
|
203
|
+
/>
|
|
204
|
+
{/if}
|
|
150
205
|
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
|
151
206
|
<div
|
|
152
|
-
class="flex flex-row items-center
|
|
207
|
+
class="flex flex-row items-center"
|
|
153
208
|
on:click={() => {
|
|
154
209
|
dispatch('click', argName)
|
|
155
210
|
}}
|
|
@@ -214,7 +269,14 @@ $: isValid = allTrue(inputCheck ?? {});
|
|
|
214
269
|
</LightweightArgInput>
|
|
215
270
|
{:else}
|
|
216
271
|
<ArgInput
|
|
217
|
-
on:change={() =>
|
|
272
|
+
on:change={() => {
|
|
273
|
+
dispatch('change')
|
|
274
|
+
}}
|
|
275
|
+
on:nestedChange={() => {
|
|
276
|
+
dispatch('nestedChange')
|
|
277
|
+
}}
|
|
278
|
+
on:acceptChange={(e) => dispatch('acceptChange', e.detail)}
|
|
279
|
+
on:rejectChange={(e) => dispatch('rejectChange', e.detail)}
|
|
218
280
|
{disablePortal}
|
|
219
281
|
{resourceTypes}
|
|
220
282
|
{prettifyHeader}
|
|
@@ -255,6 +317,10 @@ $: isValid = allTrue(inputCheck ?? {});
|
|
|
255
317
|
otherArgs={args}
|
|
256
318
|
{helperScript}
|
|
257
319
|
{lightHeader}
|
|
320
|
+
diffStatus={diff[argName] ?? undefined}
|
|
321
|
+
{nestedParent}
|
|
322
|
+
{shouldDispatchChanges}
|
|
323
|
+
{nestedClasses}
|
|
258
324
|
>
|
|
259
325
|
<svelte:fragment slot="actions">
|
|
260
326
|
<slot name="actions" />
|
|
@@ -2,6 +2,7 @@ import { SvelteComponent } from "svelte";
|
|
|
2
2
|
import type { Schema } from '../common';
|
|
3
3
|
import { type Script } from '../gen';
|
|
4
4
|
import { type Options as DndOptions } from '@windmill-labs/svelte-dnd-action';
|
|
5
|
+
import type { SchemaDiff } from './schema/schemaUtils';
|
|
5
6
|
declare const __propDef: {
|
|
6
7
|
props: {
|
|
7
8
|
[x: string]: any;
|
|
@@ -41,6 +42,13 @@ declare const __propDef: {
|
|
|
41
42
|
hash: string;
|
|
42
43
|
} | undefined;
|
|
43
44
|
lightHeader?: boolean | undefined;
|
|
45
|
+
diff?: Record<string, SchemaDiff> | undefined;
|
|
46
|
+
nestedParent?: {
|
|
47
|
+
label: string;
|
|
48
|
+
nestedParent: any | undefined;
|
|
49
|
+
} | undefined;
|
|
50
|
+
shouldDispatchChanges?: boolean | undefined;
|
|
51
|
+
nestedClasses?: string | undefined;
|
|
44
52
|
setDefaults?: (() => void) | undefined;
|
|
45
53
|
};
|
|
46
54
|
events: {
|
|
@@ -48,6 +56,9 @@ declare const __propDef: {
|
|
|
48
56
|
consider: Event | ClipboardEvent | CompositionEvent | UIEvent | FocusEvent | InputEvent | SubmitEvent | FormDataEvent | KeyboardEvent | MouseEvent | DragEvent | TouchEvent | PointerEvent | WheelEvent | AnimationEvent | TransitionEvent | ErrorEvent | ProgressEvent<EventTarget> | SecurityPolicyViolationEvent;
|
|
49
57
|
click: CustomEvent<any>;
|
|
50
58
|
change: CustomEvent<any>;
|
|
59
|
+
nestedChange: CustomEvent<any>;
|
|
60
|
+
acceptChange: CustomEvent<any>;
|
|
61
|
+
rejectChange: CustomEvent<any>;
|
|
51
62
|
} & {
|
|
52
63
|
[evt: string]: CustomEvent<any>;
|
|
53
64
|
};
|