windmill-components 1.362.4 → 1.362.7
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.
|
@@ -45,7 +45,7 @@ export function setDefaults() {
|
|
|
45
45
|
Object.keys(schema?.properties ?? {}).forEach((key) => {
|
|
46
46
|
if (schema?.properties[key].default != undefined && args[key] == undefined) {
|
|
47
47
|
let value = schema?.properties[key].default;
|
|
48
|
-
nargs[key] = value === 'object' ?
|
|
48
|
+
nargs[key] = value === 'object' ? structuredClone(value) : value;
|
|
49
49
|
}
|
|
50
50
|
});
|
|
51
51
|
args = nargs;
|
|
@@ -399,6 +399,8 @@ let editor = undefined;
|
|
|
399
399
|
type: e.detail
|
|
400
400
|
}
|
|
401
401
|
}
|
|
402
|
+
schema = schema
|
|
403
|
+
dispatch('change', schema)
|
|
402
404
|
}}
|
|
403
405
|
>
|
|
404
406
|
{#each [['String', 'string'], ['Number', 'number'], ['Integer', 'integer'], ['Object', 'object'], ['OneOf', 'oneOf'], ['Array', 'array'], ['Boolean', 'boolean'], ['S3 Object', 'S3']] as x}
|
|
@@ -467,6 +469,7 @@ let editor = undefined;
|
|
|
467
469
|
on:change={() => {
|
|
468
470
|
try {
|
|
469
471
|
schema = JSON.parse(schemaString)
|
|
472
|
+
dispatch('change', schema)
|
|
470
473
|
error = ''
|
|
471
474
|
} catch (err) {
|
|
472
475
|
error = err.message
|
|
@@ -20,7 +20,7 @@ export let disableVariablePicker = false;
|
|
|
20
20
|
export let password = false;
|
|
21
21
|
export let noExtra = false;
|
|
22
22
|
export let dateFormat;
|
|
23
|
-
export let enumLabels =
|
|
23
|
+
export let enumLabels = undefined;
|
|
24
24
|
export let overrideAllowKindChange = true;
|
|
25
25
|
export let originalType = undefined;
|
|
26
26
|
let kind = computeKind(enum_, contentEncoding, pattern, format);
|
|
@@ -73,6 +73,9 @@ const presetOptions = [
|
|
|
73
73
|
{ label: 'EU Format', format: 'dd/MM/yyyy' }
|
|
74
74
|
];
|
|
75
75
|
function onEnumKeyChange(oldKey, newKey) {
|
|
76
|
+
if (enumLabels === undefined) {
|
|
77
|
+
enumLabels = {};
|
|
78
|
+
}
|
|
76
79
|
if (oldKey !== newKey) {
|
|
77
80
|
enumLabels[newKey] = enumLabels[oldKey];
|
|
78
81
|
delete enumLabels[oldKey];
|
|
@@ -180,6 +183,9 @@ function onEnumKeyChange(oldKey, newKey) {
|
|
|
180
183
|
placeholder="Optional title..."
|
|
181
184
|
on:input={(event) => {
|
|
182
185
|
if (event?.currentTarget.value === '') {
|
|
186
|
+
if (enumLabels === undefined) {
|
|
187
|
+
enumLabels = {}
|
|
188
|
+
}
|
|
183
189
|
delete enumLabels[e]
|
|
184
190
|
}
|
|
185
191
|
}}
|
|
@@ -10,6 +10,7 @@ import EditableSchemaForm from '../EditableSchemaForm.svelte';
|
|
|
10
10
|
import { deepEqual } from 'fast-equals';
|
|
11
11
|
import ToggleButtonGroup from '../common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
12
12
|
import ToggleButton from '../common/toggleButton-v2/ToggleButton.svelte';
|
|
13
|
+
import { createEventDispatcher, onMount } from 'svelte';
|
|
13
14
|
export let description = '';
|
|
14
15
|
export let format = undefined;
|
|
15
16
|
export let contentEncoding = undefined;
|
|
@@ -22,11 +23,12 @@ export let minW = true;
|
|
|
22
23
|
export let customErrorMessage = undefined;
|
|
23
24
|
export let title = undefined;
|
|
24
25
|
export let placeholder = undefined;
|
|
25
|
-
export let properties =
|
|
26
|
+
export let properties = undefined;
|
|
26
27
|
export let isFlowInput = false;
|
|
27
28
|
export let isAppInput = false;
|
|
28
|
-
export let order =
|
|
29
|
+
export let order = undefined;
|
|
29
30
|
export let itemsType = undefined;
|
|
31
|
+
const dispatch = createEventDispatcher();
|
|
30
32
|
let el = undefined;
|
|
31
33
|
let oneOfSelected = (oneOf && oneOf.length >= 2 && oneOf[0]['title']) || undefined;
|
|
32
34
|
let oneOfSchemas = undefined;
|
|
@@ -60,6 +62,24 @@ let schema = {
|
|
|
60
62
|
properties,
|
|
61
63
|
order
|
|
62
64
|
};
|
|
65
|
+
let initialExtra = structuredClone({ order: undefined, properties: undefined, ...extra });
|
|
66
|
+
let mounted = false;
|
|
67
|
+
let firstOnContentChange = true;
|
|
68
|
+
onMount(() => {
|
|
69
|
+
mounted = true;
|
|
70
|
+
});
|
|
71
|
+
$: extra && mounted && onContentChange();
|
|
72
|
+
function onContentChange() {
|
|
73
|
+
if (firstOnContentChange) {
|
|
74
|
+
firstOnContentChange = false;
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (!deepEqual(extra, initialExtra)) {
|
|
78
|
+
initialExtra = structuredClone(extra);
|
|
79
|
+
console.debug('property content updated');
|
|
80
|
+
dispatch('change');
|
|
81
|
+
}
|
|
82
|
+
}
|
|
63
83
|
$: (properties || order) && updateSchema();
|
|
64
84
|
function updateSchema() {
|
|
65
85
|
if (!deepEqual(schema.properties, properties) || !deepEqual(schema.order, order)) {
|
|
@@ -67,6 +87,8 @@ function updateSchema() {
|
|
|
67
87
|
properties,
|
|
68
88
|
order
|
|
69
89
|
};
|
|
90
|
+
console.debug('property schema updated');
|
|
91
|
+
dispatch('change');
|
|
70
92
|
}
|
|
71
93
|
}
|
|
72
94
|
</script>
|
|
@@ -105,6 +127,7 @@ function updateSchema() {
|
|
|
105
127
|
placeholder="Enter a placeholder"
|
|
106
128
|
rows="1"
|
|
107
129
|
bind:value={placeholder}
|
|
130
|
+
on:change={() => dispatch('change')}
|
|
108
131
|
disabled={!shouldDisplayPlaceholder(type, format, enum_, contentEncoding, pattern, extra)}
|
|
109
132
|
/>
|
|
110
133
|
</Label>
|