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' ? JSON.parse(JSON.stringify(value)) : value;
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>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "windmill-components",
3
- "version": "1.362.4",
3
+ "version": "1.362.7",
4
4
  "scripts": {
5
5
  "dev": "vite dev",
6
6
  "build": "vite build",