diff --git a/frontend/package.json b/frontend/package.json index b3a514cd5e..2d9ddce842 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "windmill-components", - "version": "1.362.0", + "version": "1.362.1", "scripts": { "dev": "vite dev", "build": "vite build", diff --git a/frontend/src/lib/components/EditableSchemaForm.svelte b/frontend/src/lib/components/EditableSchemaForm.svelte index 5af91ba17b..ac5b9cd93b 100644 --- a/frontend/src/lib/components/EditableSchemaForm.svelte +++ b/frontend/src/lib/components/EditableSchemaForm.svelte @@ -87,7 +87,6 @@ hasChanged = hasChanged || alignOrderWithProperties(schema.properties[k]) } if (!norder.includes(k)) { - console.log('adding', k, index) norder = [...norder.slice(0, index), k, ...norder.slice(index)] } index += 1 @@ -100,21 +99,23 @@ return hasChanged } function onSchemaChange() { - dispatch('change', schema) + let editSchema = false if (alignOrderWithProperties(schema)) { - schema = schema + editSchema = true } let lkeys = schema?.order ?? Object.keys(schema?.properties ?? {}) if (schema?.properties && !deepEqual(lkeys, keys)) { keys = [...lkeys] - schema = schema + editSchema = true if (opened == undefined) { opened = keys[0] } } + if (editSchema) { + schema = schema + } } - let renderCount: number = 0 let opened: string | undefined = keys[0] let selected = '' @@ -194,25 +195,25 @@ {#if !noPreview}
- {#key renderCount} - { - opened = e.detail - }} - on:reorder={(e) => { - schema.order = e.detail - }} - on:change={() => { - schema = schema - dispatch('change', schema) - }} - {lightweightMode} - prettifyHeader={isAppInput} - /> - {/key} + { + opened = e.detail + }} + on:reorder={(e) => { + schema.order = e.detail + schema = schema + dispatch('change', schema) + }} + on:change={() => { + schema = schema + dispatch('change', schema) + }} + {lightweightMode} + prettifyHeader={isAppInput} + />
{/if} @@ -468,8 +469,9 @@ schema.required = schema.required?.filter((x) => x !== argName) } }} - on:schemaChange={() => { - renderCount++ + on:schemaChange={(e) => { + schema = schema + dispatch('change', schema) }} /> {/if} diff --git a/frontend/src/lib/components/schema/EditableSchemaDrawer.svelte b/frontend/src/lib/components/schema/EditableSchemaDrawer.svelte index 31a73c0f7d..247b0ded13 100644 --- a/frontend/src/lib/components/schema/EditableSchemaDrawer.svelte +++ b/frontend/src/lib/components/schema/EditableSchemaDrawer.svelte @@ -172,9 +172,10 @@ - +
- +
{ addProperty?.openDrawer(e.detail) diff --git a/frontend/src/lib/components/schema/FlowPropertyEditor.svelte b/frontend/src/lib/components/schema/FlowPropertyEditor.svelte index 7a7c1baf3a..371aea266a 100644 --- a/frontend/src/lib/components/schema/FlowPropertyEditor.svelte +++ b/frontend/src/lib/components/schema/FlowPropertyEditor.svelte @@ -20,7 +20,7 @@ import Popup from '../common/popup/Popup.svelte' import { deepEqual } from 'fast-equals' - export let format: string = '' + export let format: string | undefined = undefined export let contentEncoding: 'base64' | 'binary' | undefined = undefined export let type: string | undefined = undefined export let oneOf: SchemaProperty[] | undefined = undefined @@ -74,9 +74,11 @@ ) { // update schema if not exists or order changed schema.oneOf = getOneOfWithoutLabel(oneOf) + schema = schema } } else if (!oneOf) { schema.oneOf = undefined + schema = schema } } $: oneOfUpdate(oneOf) @@ -85,6 +87,7 @@ if (order && !deepEqual(order, schema.order)) { // update from external reordering schema.order = order + schema = schema } } $: orderUpdate(order) @@ -106,8 +109,6 @@ oneOf: oneOf ? getOneOfWithoutLabel(oneOf) : undefined } - console.log('initial schema', schema) - function schemaUpdate(changedSchema: typeof schema) { if ( !deepEqual(changedSchema, { @@ -117,9 +118,9 @@ oneOf: oneOf ? getOneOfWithoutLabel(oneOf) : undefined }) ) { - properties = changedSchema.properties - order = changedSchema.order - requiredProperty = changedSchema.required + properties = structuredClone(changedSchema.properties) + order = structuredClone(changedSchema.order) + requiredProperty = structuredClone(changedSchema.required) oneOf = changedSchema.oneOf?.map((v) => { return { ...v, @@ -132,8 +133,7 @@ } } }) - - dispatch('schemaChange') + dispatch('schemaChange', { properties, order, requiredProperty, oneOf }) } } @@ -174,6 +174,9 @@ variantName = '' } } + + let initialObjectSelected = + Object.keys(schema?.properties ?? {}).length == 0 ? 'resource' : 'custom-object'
@@ -297,7 +300,7 @@ {/if} {:else if type === 'object' && format !== 'resource-s3_object'} { if (e.detail === 'custom-object') { format = '' diff --git a/frontend/src/lib/components/schema/PropertyEditor.svelte b/frontend/src/lib/components/schema/PropertyEditor.svelte index db693d1881..71a8184846 100644 --- a/frontend/src/lib/components/schema/PropertyEditor.svelte +++ b/frontend/src/lib/components/schema/PropertyEditor.svelte @@ -16,7 +16,7 @@ import ToggleButton from '../common/toggleButton-v2/ToggleButton.svelte' export let description: string = '' - export let format: string = '' + export let format: string | undefined = undefined export let contentEncoding: 'base64' | 'binary' | undefined = undefined export let type: string | undefined = undefined export let oneOf: SchemaProperty[] | undefined = undefined diff --git a/frontend/src/routes/(root)/(logged)/resources/+page.svelte b/frontend/src/routes/(root)/(logged)/resources/+page.svelte index b7cb40be08..11c50b4da7 100644 --- a/frontend/src/routes/(root)/(logged)/resources/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/resources/+page.svelte @@ -480,7 +480,14 @@
- + { + console.log('change') + }} + bind:schema={newResourceType.schema} + fullHeight + />
diff --git a/frontend/src/routes/test_dev_page/+page.svelte b/frontend/src/routes/test_dev_page/+page.svelte new file mode 100644 index 0000000000..bf6ed2e08b --- /dev/null +++ b/frontend/src/routes/test_dev_page/+page.svelte @@ -0,0 +1,14 @@ + + + console.log('FOO')} {schema} />