windmill-components 1.394.7 → 1.405.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.
Files changed (227) hide show
  1. package/package/ata/edgeCases.d.ts +0 -1
  2. package/package/ata/edgeCases.js +2 -8
  3. package/package/ata/index.js +4 -3
  4. package/package/common.d.ts +1 -1
  5. package/package/common.js +2 -2
  6. package/package/components/ApiConnectForm.svelte +33 -7
  7. package/package/components/ArgInput.svelte +4 -2
  8. package/package/components/CenteredModal.svelte +4 -1
  9. package/package/components/CenteredModal.svelte.d.ts +1 -0
  10. package/package/components/DateInput.svelte +2 -0
  11. package/package/components/DateInput.svelte.d.ts +1 -0
  12. package/package/components/DefaultScripts.svelte +8 -3
  13. package/package/components/DefaultScripts.svelte.d.ts +5 -1
  14. package/package/components/DefaultScriptsInner.svelte +16 -7
  15. package/package/components/DefaultScriptsInner.svelte.d.ts +3 -1
  16. package/package/components/Dev.svelte +68 -11
  17. package/package/components/DropdownV2.svelte.d.ts +3 -3
  18. package/package/components/DropdownV2Inner.svelte.d.ts +3 -3
  19. package/package/components/EditableSchemaForm.svelte +1 -0
  20. package/package/components/Editor.svelte +3 -2
  21. package/package/components/Editor.svelte.d.ts +1 -1
  22. package/package/components/ExecutionDuration.svelte +44 -0
  23. package/package/components/ExecutionDuration.svelte.d.ts +24 -0
  24. package/package/components/FlowBuilder.svelte +20 -12
  25. package/package/components/FlowGraphViewer.svelte +9 -2
  26. package/package/components/FlowGraphViewerStep.svelte +23 -10
  27. package/package/components/FlowJobResult.svelte +0 -1
  28. package/package/components/FlowStatusViewerInner.svelte +17 -4
  29. package/package/components/FlowTimeline.svelte +3 -3
  30. package/package/components/HighlightCode.svelte +3 -0
  31. package/package/components/IconedResourceType.svelte +17 -10
  32. package/package/components/IconedResourceType.svelte.d.ts +2 -0
  33. package/package/components/IdEditorInput.svelte +0 -1
  34. package/package/components/InstanceSettings.svelte +247 -129
  35. package/package/components/InstanceSettings.svelte.d.ts +2 -0
  36. package/package/components/JobArgs.svelte +3 -1
  37. package/package/components/LightweightArgInput.svelte +35 -10
  38. package/package/components/LightweightArgInput.svelte.d.ts +1 -0
  39. package/package/components/LightweightObjectResourceInput.svelte +2 -0
  40. package/package/components/LightweightObjectResourceInput.svelte.d.ts +1 -0
  41. package/package/components/LightweightSchemaForm.svelte +2 -0
  42. package/package/components/LightweightSchemaForm.svelte.d.ts +1 -0
  43. package/package/components/Login.svelte +10 -5
  44. package/package/components/Login.svelte.d.ts +1 -0
  45. package/package/components/ModulePreview.svelte +21 -2
  46. package/package/components/ModuleStatus.svelte +3 -0
  47. package/package/components/ModuleStatus.svelte.d.ts +1 -0
  48. package/package/components/OAuthSetting.svelte +40 -15
  49. package/package/components/ObjectStoreConfigSettings.svelte +78 -76
  50. package/package/components/ParqetCsvTableRenderer.svelte +25 -3
  51. package/package/components/Password.svelte.d.ts +1 -1
  52. package/package/components/Path.svelte +74 -54
  53. package/package/components/Path.svelte.d.ts +2 -1
  54. package/package/components/ResourceEditor.svelte +38 -9
  55. package/package/components/ResultJobLoader.svelte +6 -3
  56. package/package/components/ResultJobLoader.svelte.d.ts +1 -1
  57. package/package/components/ScheduleEditorInner.svelte +2 -2
  58. package/package/components/SchemaForm.svelte +6 -1
  59. package/package/components/ScriptBuilder.svelte +12 -5
  60. package/package/components/ScriptEditor.svelte +33 -3
  61. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  62. package/package/components/Scrollable.svelte +47 -0
  63. package/package/components/Scrollable.svelte.d.ts +21 -0
  64. package/package/components/ShareModal.svelte.d.ts +2 -2
  65. package/package/components/SuperadminSettings.svelte +5 -7
  66. package/package/components/TestJobLoader.svelte +46 -5
  67. package/package/components/TestJobLoader.svelte.d.ts +2 -1
  68. package/package/components/ToggleHubWorkspaceQuick.svelte +14 -0
  69. package/package/components/ToggleHubWorkspaceQuick.svelte.d.ts +16 -0
  70. package/package/components/WorkspaceGroup.svelte +3 -2
  71. package/package/components/apps/components/helpers/DebouncedInput.svelte +9 -1
  72. package/package/components/apps/components/inputs/AppSelect.svelte +1 -1
  73. package/package/components/apps/editor/component/components.d.ts +79 -79
  74. package/package/components/apps/svelte-select/lib/Select.svelte +1 -1
  75. package/package/components/common/fileUpload/FileUpload.svelte +1 -1
  76. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  77. package/package/components/common/menu/Menu.svelte +2 -1
  78. package/package/components/common/menu/MenuV2.svelte +3 -1
  79. package/package/components/common/menu/MenuV2.svelte.d.ts +1 -0
  80. package/package/components/common/popup/Popup.svelte +22 -12
  81. package/package/components/common/popup/Popup.svelte.d.ts +2 -0
  82. package/package/components/common/popup/PopupV2.svelte +58 -0
  83. package/package/components/common/popup/PopupV2.svelte.d.ts +27 -0
  84. package/package/components/copilot/CronGen.svelte +1 -1
  85. package/package/components/copilot/RegexGen.svelte +4 -4
  86. package/package/components/copilot/StepGen.svelte +6 -6
  87. package/package/components/copilot/StepGenQuick.svelte +57 -0
  88. package/package/components/copilot/StepGenQuick.svelte.d.ts +23 -0
  89. package/package/components/copilot/flow.d.ts +2 -0
  90. package/package/components/copilot/flow.js +55 -0
  91. package/package/components/details/DetailPageDetailPanel.svelte +9 -1
  92. package/package/components/details/DetailPageDetailPanel.svelte.d.ts +2 -1
  93. package/package/components/details/DetailPageLayout.svelte +2 -0
  94. package/package/components/details/DetailPageLayout.svelte.d.ts +3 -0
  95. package/package/components/details/utils.d.ts +0 -1
  96. package/package/components/details/utils.js +1 -12
  97. package/package/components/flows/FlowEditor.svelte +2 -1
  98. package/package/components/flows/FlowProgressBar.svelte +16 -1
  99. package/package/components/flows/FlowProgressBar.svelte.d.ts +1 -0
  100. package/package/components/flows/content/FlowBranchesAllWrapper.svelte +8 -0
  101. package/package/components/flows/content/FlowBranchesAllWrapper.svelte.d.ts +1 -0
  102. package/package/components/flows/content/FlowBranchesOneWrapper.svelte +8 -0
  103. package/package/components/flows/content/FlowBranchesOneWrapper.svelte.d.ts +1 -0
  104. package/package/components/flows/content/FlowConstants.svelte +1 -1
  105. package/package/components/flows/content/FlowEditorPanel.svelte +3 -0
  106. package/package/components/flows/content/FlowInputs.svelte +7 -6
  107. package/package/components/flows/content/FlowInputs.svelte.d.ts +1 -0
  108. package/package/components/flows/content/FlowInputsFlowQuick.svelte +65 -0
  109. package/package/components/flows/content/FlowInputsFlowQuick.svelte.d.ts +19 -0
  110. package/package/components/flows/content/FlowInputsQuick.svelte +419 -0
  111. package/package/components/flows/content/FlowInputsQuick.svelte.d.ts +33 -0
  112. package/package/components/flows/content/FlowLoop.svelte +7 -1
  113. package/package/components/flows/content/FlowModuleComponent.svelte +12 -3
  114. package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
  115. package/package/components/flows/content/FlowModuleSkip.svelte +69 -0
  116. package/package/components/flows/content/FlowModuleSkip.svelte.d.ts +20 -0
  117. package/package/components/flows/content/FlowModuleWrapper.svelte +17 -4
  118. package/package/components/flows/content/FlowPreprocessorModule.svelte +16 -0
  119. package/package/components/flows/content/FlowPreprocessorModule.svelte.d.ts +16 -0
  120. package/package/components/flows/content/FlowWhileLoop.svelte +9 -0
  121. package/package/components/flows/content/FlowWhileLoop.svelte.d.ts +1 -0
  122. package/package/components/flows/content/GenAiQuick.svelte +30 -0
  123. package/package/components/flows/content/GenAiQuick.svelte.d.ts +20 -0
  124. package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -2
  125. package/package/components/flows/flowInfers.js +1 -1
  126. package/package/components/flows/header/FlowPreviewButtons.svelte +1 -0
  127. package/package/components/flows/idUtils.js +3 -1
  128. package/package/components/flows/map/FlowCopilotButton.svelte +55 -0
  129. package/package/components/flows/map/FlowCopilotButton.svelte.d.ts +16 -0
  130. package/package/components/flows/map/FlowErrorHandlerItem.svelte +77 -47
  131. package/package/components/flows/map/FlowJobsMenu.svelte +1 -1
  132. package/package/components/flows/map/FlowModuleSchemaItem.svelte +25 -12
  133. package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -0
  134. package/package/components/flows/map/FlowModuleSchemaMap.svelte +61 -18
  135. package/package/components/flows/map/InsertModuleButton.svelte +161 -138
  136. package/package/components/flows/map/InsertModuleButton.svelte.d.ts +7 -4
  137. package/package/components/flows/map/MapItem.svelte +11 -0
  138. package/package/components/flows/map/MapItem.svelte.d.ts +1 -0
  139. package/package/components/flows/pickers/FlowScriptPickerQuick.svelte +48 -0
  140. package/package/components/flows/pickers/FlowScriptPickerQuick.svelte.d.ts +23 -0
  141. package/package/components/flows/pickers/FlowToplevelNode.svelte +19 -0
  142. package/package/components/flows/pickers/FlowToplevelNode.svelte.d.ts +19 -0
  143. package/package/components/flows/pickers/PickHubScriptQuick.svelte +138 -0
  144. package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +33 -0
  145. package/package/components/flows/pickers/TopLevelNode.svelte +58 -0
  146. package/package/components/flows/pickers/TopLevelNode.svelte.d.ts +21 -0
  147. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte +120 -0
  148. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte.d.ts +35 -0
  149. package/package/components/flows/types.d.ts +1 -0
  150. package/package/components/graph/FlowGraphV2.svelte +93 -58
  151. package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -1
  152. package/package/components/graph/graphBuilder.d.ts +2 -1
  153. package/package/components/graph/graphBuilder.js +345 -280
  154. package/package/components/graph/model.d.ts +1 -0
  155. package/package/components/graph/renderers/edges/BaseEdge.svelte +36 -14
  156. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
  157. package/package/components/graph/renderers/nodes/InputNode.svelte +31 -51
  158. package/package/components/graph/renderers/nodes/InputNode.svelte.d.ts +6 -1
  159. package/package/components/graph/renderers/nodes/ModuleNode.svelte +2 -1
  160. package/package/components/graph/util.d.ts +1 -1
  161. package/package/components/graph/util.js +7 -2
  162. package/package/components/home/ListFiltersQuick.svelte +51 -0
  163. package/package/components/home/ListFiltersQuick.svelte.d.ts +23 -0
  164. package/package/components/icons/AnsibleIcon.svelte +42 -0
  165. package/package/components/icons/AnsibleIcon.svelte.d.ts +25 -0
  166. package/package/components/icons/WindmillIcon2.svelte +141 -0
  167. package/package/components/icons/WindmillIcon2.svelte.d.ts +20 -0
  168. package/package/components/icons/index.d.ts +2 -1
  169. package/package/components/icons/index.js +2 -1
  170. package/package/components/instanceSettings.d.ts +2 -2
  171. package/package/components/instanceSettings.js +25 -58
  172. package/package/components/jobs/JobProgressBar.svelte +52 -0
  173. package/package/components/jobs/JobProgressBar.svelte.d.ts +23 -0
  174. package/package/components/progressBar/ProgressBar.svelte +18 -1
  175. package/package/components/progressBar/ProgressBar.svelte.d.ts +3 -0
  176. package/package/components/runs/JobPreview.svelte +1 -0
  177. package/package/components/runs/PreprocessedArgsDisplay.svelte +71 -0
  178. package/package/components/runs/PreprocessedArgsDisplay.svelte.d.ts +16 -0
  179. package/package/components/schema/AddProperty.svelte +1 -0
  180. package/package/components/schema/EditableSchemaWrapper.svelte +142 -19
  181. package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +1 -0
  182. package/package/components/schema/FlowPropertyEditor.svelte +12 -0
  183. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -0
  184. package/package/components/scriptEditor/LogPanel.svelte +1 -0
  185. package/package/components/scriptEditor/LogPanel.svelte.d.ts +3 -1
  186. package/package/components/search/GlobalSearchModal.svelte +2 -1
  187. package/package/components/sidebar/SidebarContent.svelte +69 -8
  188. package/package/components/sidebar/changelogs.js +10 -0
  189. package/package/components/triggers/RouteEditor.svelte +19 -0
  190. package/package/components/triggers/RouteEditor.svelte.d.ts +21 -0
  191. package/package/components/triggers/RouteEditorInner.svelte +327 -0
  192. package/package/components/triggers/RouteEditorInner.svelte.d.ts +21 -0
  193. package/package/components/triggers/RoutesPanel.svelte +74 -0
  194. package/package/components/triggers/RoutesPanel.svelte.d.ts +17 -0
  195. package/package/editorUtils.js +2 -0
  196. package/package/gen/core/OpenAPI.js +1 -1
  197. package/package/gen/schemas.gen.d.ts +159 -8
  198. package/package/gen/schemas.gen.js +161 -8
  199. package/package/gen/services.gen.d.ts +139 -1
  200. package/package/gen/services.gen.js +282 -1
  201. package/package/gen/types.gen.d.ts +455 -12
  202. package/package/hubPaths.json +6 -8
  203. package/package/infer.d.ts +4 -2
  204. package/package/infer.js +25 -23
  205. package/package/inferArgSig.js +8 -2
  206. package/package/monaco_workers/build_workers.js +8 -13
  207. package/package/monaco_workers/graphql.worker.bundle.js +45440 -174
  208. package/package/relative_imports.d.ts +3 -0
  209. package/package/relative_imports.js +25 -0
  210. package/package/script_helpers.d.ts +7 -2
  211. package/package/script_helpers.js +151 -3
  212. package/package/scripts.d.ts +1 -1
  213. package/package/scripts.js +5 -1
  214. package/package/stores.d.ts +1 -0
  215. package/package/stores.js +1 -0
  216. package/package/utils.d.ts +1 -0
  217. package/package/utils.js +4 -0
  218. package/package.json +16 -7
  219. package/package/components/flows/map/InsertTriggerButton.svelte +0 -48
  220. package/package/components/flows/map/InsertTriggerButton.svelte.d.ts +0 -24
  221. package/package/monaco_workers/cssWorker-es.js +0 -43763
  222. package/package/monaco_workers/editorWorker-es.d.ts +0 -2
  223. package/package/monaco_workers/editorWorker-es.js +0 -8066
  224. package/package/monaco_workers/htmlWorker-es.js +0 -21551
  225. package/package/monaco_workers/jsonWorker-es.js +0 -13523
  226. package/package/monaco_workers/tsWorker-es.d.ts +0 -103
  227. package/package/monaco_workers/tsWorker-es.js +0 -212193
@@ -30,6 +30,9 @@ export let contentEncoding = undefined;
30
30
  export let type = undefined;
31
31
  export let oneOf = undefined;
32
32
  export let required = false;
33
+ //todo
34
+ // export let nullable = false
35
+ export let disabled = false;
33
36
  export let pattern = undefined;
34
37
  export let valid = required ? false : true;
35
38
  export let enum_ = undefined;
@@ -229,7 +232,7 @@ function addItemByItemsType() {
229
232
  <div class="flex space-x-1">
230
233
  {#if inputCat == 'number'}
231
234
  {#if extra['min'] != undefined && extra['max'] != undefined}
232
- <Range bind:value min={extra['min']} max={extra['max']} {defaultValue} />
235
+ <Range bind:value min={extra['min']} max={extra['max']} {defaultValue} {disabled} />
233
236
  {:else if extra?.currency}
234
237
  <CurrencyInput
235
238
  inputClasses={{
@@ -241,6 +244,7 @@ function addItemByItemsType() {
241
244
  bind:value
242
245
  currency={extra?.currency}
243
246
  locale={extra?.currencyLocale ?? 'en-US'}
247
+ {disabled}
244
248
  />
245
249
  {:else}
246
250
  <input
@@ -255,6 +259,7 @@ function addItemByItemsType() {
255
259
  bind:value
256
260
  min={extra['min']}
257
261
  max={extra['max']}
262
+ {disabled}
258
263
  />
259
264
  {/if}
260
265
  {:else if inputCat == 'boolean'}
@@ -266,6 +271,7 @@ function addItemByItemsType() {
266
271
  ? ''
267
272
  : 'border !border-red-700 !border-opacity-70 focus:!border-red-700 focus:!border-opacity-30'}
268
273
  bind:checked={value}
274
+ {disabled}
269
275
  />
270
276
  {#if type == 'boolean' && value == undefined}
271
277
  <span>&nbsp; Not set</span>
@@ -279,6 +285,7 @@ function addItemByItemsType() {
279
285
  bind:selected={value}
280
286
  options={itemsType?.multiselect ?? []}
281
287
  selectedOptionsDraggable={true}
288
+ {disabled}
282
289
  />
283
290
  </div>
284
291
  {:else if Array.isArray(itemsType?.enum) && Array.isArray(value)}
@@ -288,6 +295,7 @@ function addItemByItemsType() {
288
295
  bind:selected={value}
289
296
  options={itemsType?.enum ?? []}
290
297
  selectedOptionsDraggable={true}
298
+ {disabled}
291
299
  />
292
300
  </div>
293
301
  {:else if Array.isArray(enum_) && Array.isArray(value)}
@@ -297,6 +305,7 @@ function addItemByItemsType() {
297
305
  bind:selected={value}
298
306
  options={enum_ ?? []}
299
307
  selectedOptionsDraggable={true}
308
+ {disabled}
300
309
  />
301
310
  </div>
302
311
  {:else}
@@ -305,13 +314,14 @@ function addItemByItemsType() {
305
314
  {#each value ?? [] as v, i}
306
315
  <div class="flex flex-row max-w-md mt-1 w-full">
307
316
  {#if itemsType?.type == 'number'}
308
- <input type="number" bind:value={v} />
317
+ <input type="number" bind:value={v} {disabled} />
309
318
  {:else if itemsType?.type == 'string' && itemsType?.contentEncoding == 'base64'}
310
319
  <input
311
320
  type="file"
312
321
  class="my-6"
313
322
  on:change={(x) => fileChanged(x, (val) => (value[i] = val))}
314
323
  multiple={false}
324
+ {disabled}
315
325
  />
316
326
  {:else if Array.isArray(itemsType?.enum)}
317
327
  <select
@@ -320,6 +330,7 @@ function addItemByItemsType() {
320
330
  }}
321
331
  class="px-6"
322
332
  bind:value={v}
333
+ {disabled}
323
334
  >
324
335
  {#each itemsType?.enum ?? [] as e}
325
336
  <option>{e}</option>
@@ -329,16 +340,18 @@ function addItemByItemsType() {
329
340
  <LightweightResourcePicker
330
341
  bind:value={v}
331
342
  resourceType={itemsType?.resourceType}
343
+ {disabled}
332
344
  />
333
345
  {:else if itemsType?.type === 'object' && itemsType?.properties}
334
346
  <div class="p-8 border rounded-md w-full">
335
347
  <LightweightSchemaForm
336
348
  schema={getSchemaFromProperties(itemsType?.properties)}
337
349
  bind:args={v}
350
+ {disabled}
338
351
  />
339
352
  </div>
340
353
  {:else}
341
- <input type="text" bind:value={v} />
354
+ <input type="text" bind:value={v} {disabled} />
342
355
  {/if}
343
356
  <button
344
357
  transition:fade|local={{ duration: 100 }}
@@ -350,6 +363,7 @@ function addItemByItemsType() {
350
363
  value = undefined
351
364
  }
352
365
  }}
366
+ {disabled}
353
367
  >
354
368
  <X size={14} />
355
369
  </button>
@@ -369,6 +383,7 @@ function addItemByItemsType() {
369
383
  addItemByItemsType()
370
384
  }}
371
385
  startIcon={{ icon: Plus }}
386
+ {disabled}
372
387
  >
373
388
  Add
374
389
  </Button>
@@ -388,7 +403,8 @@ function addItemByItemsType() {
388
403
  randomFileKey={true}
389
404
  on:addition={(evt) => {
390
405
  value = {
391
- s3: evt.detail?.path ?? ''
406
+ s3: evt.detail?.path ?? '',
407
+ filename: evt.detail?.filename ?? ''
392
408
  }
393
409
  }}
394
410
  on:deletion={(evt) => {
@@ -400,13 +416,13 @@ function addItemByItemsType() {
400
416
  />
401
417
  </div>
402
418
  {:else if inputCat == 'resource-object'}
403
- <LightweightObjectResourceInput {format} bind:value />
419
+ <LightweightObjectResourceInput {format} bind:value {disabled} />
404
420
  {:else if inputCat == 'object' && oneOf && oneOf.length >= 2}
405
421
  <div class="flex flex-col gap-2 w-full">
406
422
  {#if oneOf && oneOf.length >= 2}
407
- <ToggleButtonGroup bind:selected={oneOfSelected}>
423
+ <ToggleButtonGroup bind:selected={oneOfSelected} {disabled}>
408
424
  {#each oneOf as obj}
409
- <ToggleButton value={obj.title} label={obj.title} />
425
+ <ToggleButton value={obj.title} label={obj.title} {disabled} />
410
426
  {/each}
411
427
  </ToggleButtonGroup>
412
428
 
@@ -425,6 +441,7 @@ function addItemByItemsType() {
425
441
  type: 'object'
426
442
  }}
427
443
  bind:args={value}
444
+ {disabled}
428
445
  />
429
446
  </div>
430
447
  {/if}
@@ -442,6 +459,7 @@ function addItemByItemsType() {
442
459
  type: 'object'
443
460
  }}
444
461
  bind:args={value}
462
+ {disabled}
445
463
  />
446
464
  </div>
447
465
  {:else}
@@ -457,6 +475,7 @@ function addItemByItemsType() {
457
475
  : 'border !border-red-700 !border-opacity-70 focus:!border-red-700 focus:!border-opacity-30'}"
458
476
  placeholder={defaultValue ? JSON.stringify(defaultValue, null, 4) : ''}
459
477
  bind:value={rawValue}
478
+ {disabled}
460
479
  />
461
480
  {/if}
462
481
  {:else if inputCat == 'enum'}
@@ -466,6 +485,7 @@ function addItemByItemsType() {
466
485
  }}
467
486
  class="px-6"
468
487
  bind:value
488
+ {disabled}
469
489
  >
470
490
  {#each enum_ ?? [] as e}
471
491
  <option value={e}>{extra?.['enumLabels']?.[e] ?? e}</option>
@@ -474,9 +494,9 @@ function addItemByItemsType() {
474
494
  {:else if inputCat == 'date'}
475
495
  {#key defaultChange}
476
496
  {#if format === 'date'}
477
- <DateInput bind:value dateFormat={extra['dateFormat']} />
497
+ <DateInput bind:value dateFormat={extra['dateFormat']} {disabled} />
478
498
  {:else}
479
- <DateTimeInput useDropdown bind:value />
499
+ <DateTimeInput useDropdown bind:value {disabled} />
480
500
  {/if}
481
501
  {/key}
482
502
  {:else if inputCat == 'base64'}
@@ -485,6 +505,7 @@ function addItemByItemsType() {
485
505
  type="file"
486
506
  on:change={(x) => fileChanged(x, (val) => (value = val))}
487
507
  multiple={false}
508
+ {disabled}
488
509
  />
489
510
  {#if value?.length}
490
511
  <div class="text-2xs text-tertiary mt-1"
@@ -501,6 +522,7 @@ function addItemByItemsType() {
501
522
  resourceType={format.split('-').length > 1
502
523
  ? format.substring('resource-'.length)
503
524
  : undefined}
525
+ {disabled}
504
526
  />
505
527
  </div>
506
528
  {:else if inputCat == 'email'}
@@ -512,6 +534,7 @@ function addItemByItemsType() {
512
534
  : 'border border-red-700 border-opacity-30 focus:border-red-700 focus:border-opacity-3'}
513
535
  placeholder={placeholder ?? defaultValue ?? ''}
514
536
  bind:value
537
+ {disabled}
515
538
  />
516
539
  {:else if inputCat == 'currency'}
517
540
  <input
@@ -521,12 +544,13 @@ function addItemByItemsType() {
521
544
  : 'border border-red-700 border-opacity-30 focus:border-red-700 focus:border-opacity-3'}
522
545
  placeholder={placeholder ?? defaultValue ?? ''}
523
546
  bind:value
547
+ {disabled}
524
548
  />
525
549
  {:else if inputCat == 'string'}
526
550
  <div class="flex flex-col w-full">
527
551
  <div class="flex flex-row w-full items-center justify-between">
528
552
  {#if extra?.['password'] == true}
529
- <Password bind:password={value} />
553
+ <Password bind:password={value} {disabled} />
530
554
  {:else}
531
555
  <textarea
532
556
  rows={extra?.['minRows'] || 1}
@@ -543,6 +567,7 @@ function addItemByItemsType() {
543
567
  on:pointerdown|stopPropagation={(e) => {
544
568
  dispatch('inputClicked', e)
545
569
  }}
570
+ {disabled}
546
571
  />
547
572
  {/if}
548
573
  </div>
@@ -13,6 +13,7 @@ declare const __propDef: {
13
13
  type?: string | undefined;
14
14
  oneOf?: SchemaProperty[] | undefined;
15
15
  required?: boolean | undefined;
16
+ disabled?: boolean | undefined;
16
17
  pattern?: undefined | string;
17
18
  valid?: boolean | undefined;
18
19
  enum_?: EnumType;
@@ -2,6 +2,7 @@
2
2
  export let format;
3
3
  export let value;
4
4
  export let disablePortal = false;
5
+ export let disabled = false;
5
6
  function isString(value) {
6
7
  return typeof value === 'string' || value instanceof String;
7
8
  }
@@ -27,6 +28,7 @@ $: value && valueToPath();
27
28
 
28
29
  <div class="flex flex-row w-full flex-wrap gap-x-2 gap-y-0.5">
29
30
  <LightweightResourcePicker
31
+ {disabled}
30
32
  {disablePortal}
31
33
  on:change={(e) => {
32
34
  path = e.detail
@@ -4,6 +4,7 @@ declare const __propDef: {
4
4
  format: string;
5
5
  value: any;
6
6
  disablePortal?: boolean | undefined;
7
+ disabled?: boolean | undefined;
7
8
  };
8
9
  events: {
9
10
  [evt: string]: CustomEvent<any>;
@@ -10,6 +10,7 @@ export let largeGap = false;
10
10
  export let isValid = true;
11
11
  export let defaultValues = {};
12
12
  export let dynamicEnums = {};
13
+ export let disabled = false;
13
14
  let inputCheck = {};
14
15
  let errors = {};
15
16
  $: isValid = allTrue(inputCheck) ?? false;
@@ -86,6 +87,7 @@ function reorder() {
86
87
  on:inputClicked
87
88
  {displayType}
88
89
  {css}
90
+ disabled={disabled || schema.properties[argName].disabled}
89
91
  />
90
92
  {/if}
91
93
  {/each}
@@ -11,6 +11,7 @@ declare const __propDef: {
11
11
  isValid?: boolean | undefined;
12
12
  defaultValues?: Record<string, any> | undefined;
13
13
  dynamicEnums?: Record<string, any> | undefined;
14
+ disabled?: boolean | undefined;
14
15
  invalidate?: ((key: string, error: string) => void) | undefined;
15
16
  validate?: ((key: string) => void) | undefined;
16
17
  validateAll?: (() => void) | undefined;
@@ -19,6 +19,7 @@ export let email = undefined;
19
19
  export let password = undefined;
20
20
  export let error = undefined;
21
21
  export let popup = false;
22
+ export let firstTime = false;
22
23
  const providers = [
23
24
  {
24
25
  type: 'github',
@@ -66,6 +67,10 @@ async function login() {
66
67
  sendUserToast('Invalid credentials', true);
67
68
  return;
68
69
  }
70
+ if (firstTime) {
71
+ goto('/user/first-time');
72
+ return;
73
+ }
69
74
  // Once logged in, we can fetch the workspaces
70
75
  $usersWorkspaceStore = await WorkspaceService.listUserWorkspaces();
71
76
  // trigger a reload of the user
@@ -77,11 +82,6 @@ async function login() {
77
82
  redirectUser();
78
83
  }
79
84
  async function redirectUser() {
80
- const firstTimeCookie = document.cookie.match('(^|;)\\s*first_time\\s*=\\s*([^;]+)')?.pop() || '0';
81
- if (Number(firstTimeCookie) > 0 && email === 'admin@windmill.dev') {
82
- goto('/user/first-time');
83
- return;
84
- }
85
85
  if (rd?.startsWith('http')) {
86
86
  window.location.href = rd;
87
87
  return;
@@ -247,6 +247,11 @@ $: error && sendUserToast(error, true);
247
247
 
248
248
  {#if showPassword}
249
249
  <div>
250
+ {#if firstTime}
251
+ <div class="text-lg text-center w-full pb-6"
252
+ >First time login: admin@windmill.dev / changeme</div
253
+ >
254
+ {/if}
250
255
  <div class="space-y-6">
251
256
  {#if isCloudHosted()}
252
257
  <p class="text-xs text-tertiary italic pb-6">
@@ -6,6 +6,7 @@ declare const __propDef: {
6
6
  password?: string | undefined;
7
7
  error?: string | undefined;
8
8
  popup?: boolean | undefined;
9
+ firstTime?: boolean | undefined;
9
10
  };
10
11
  events: {
11
12
  login: CustomEvent<any>;
@@ -9,6 +9,7 @@ import DisplayResult from './DisplayResult.svelte';
9
9
  import LogViewer from './LogViewer.svelte';
10
10
  import TestJobLoader from './TestJobLoader.svelte';
11
11
  import ModulePreviewForm from './ModulePreviewForm.svelte';
12
+ import JobProgressBar from './jobs/JobProgressBar.svelte';
12
13
  import { evalValue } from './flows/utils';
13
14
  import ScriptFix from './copilot/ScriptFix.svelte';
14
15
  export let mod;
@@ -20,9 +21,11 @@ export let diffEditor;
20
21
  export let noEditor = false;
21
22
  const { flowStore, flowStateStore, testStepStore, pathStore } = getContext('FlowEditorContext');
22
23
  // Test
24
+ let scriptProgress = undefined;
23
25
  let testJobLoader;
24
26
  let testIsLoading = false;
25
27
  let testJob = undefined;
28
+ let jobProgressReset;
26
29
  let stepArgs = Object.fromEntries(Object.keys(schema.properties ?? {}).map((k) => [
27
30
  k,
28
31
  evalValue(k, mod, $testStepStore, pickableProperties, false)
@@ -32,10 +35,13 @@ export function runTestWithStepArgs() {
32
35
  runTest(stepArgs);
33
36
  }
34
37
  export async function runTest(args) {
38
+ // Not defined if JobProgressBar not loaded
39
+ if (jobProgressReset)
40
+ jobProgressReset();
35
41
  const val = mod.value;
36
42
  // let jobId: string | undefined = undefined
37
43
  if (val.type == 'rawscript') {
38
- await testJobLoader?.runPreview(val.path ?? ($pathStore ?? '') + '/' + mod.id, val.content, val.language, args, $flowStore?.tag ?? val.tag);
44
+ await testJobLoader?.runPreview(val.path ?? ($pathStore ?? '') + '/' + mod.id, val.content, val.language, mod.id === 'preprocessor' ? { _ENTRYPOINT_OVERRIDE: 'preprocessor', ...args } : args, $flowStore?.tag ?? val.tag);
39
45
  }
40
46
  else if (val.type == 'script') {
41
47
  const script = val.hash
@@ -44,7 +50,12 @@ export async function runTest(args) {
44
50
  await testJobLoader?.runPreview(val.path, script.content, script.language, args, $flowStore?.tag ?? script.tag);
45
51
  }
46
52
  else if (val.type == 'flow') {
47
- await testJobLoader?.abstractRun(() => JobService.runFlowByPath({ workspace: $workspaceStore, path: val.path, requestBody: args }));
53
+ await testJobLoader?.abstractRun(() => JobService.runFlowByPath({
54
+ workspace: $workspaceStore,
55
+ path: val.path,
56
+ requestBody: args,
57
+ skipPreprocessor: true
58
+ }));
48
59
  }
49
60
  else {
50
61
  throw Error('Not supported module type');
@@ -61,9 +72,12 @@ function jobDone() {
61
72
  let forceJson = false;
62
73
  </script>
63
74
 
75
+
76
+
64
77
  <TestJobLoader
65
78
  toastError={noEditor}
66
79
  on:done={() => jobDone()}
80
+ bind:scriptProgress
67
81
  bind:this={testJobLoader}
68
82
  bind:isLoading={testIsLoading}
69
83
  bind:job={testJob}
@@ -113,6 +127,9 @@ let forceJson = false;
113
127
  />
114
128
  </Pane>
115
129
  <Pane size={50} minSize={10} class="text-sm text-tertiary">
130
+ {#if scriptProgress}
131
+ <JobProgressBar job={testJob} bind:scriptProgress bind:reset={jobProgressReset} compact={true} />
132
+ {/if}
116
133
  {#if testJob != undefined && 'result' in testJob && testJob.result != undefined}
117
134
  <div class="break-words relative h-full p-2">
118
135
  <DisplayResult
@@ -137,7 +154,9 @@ let forceJson = false;
137
154
  {:else}
138
155
  <div class="p-2">
139
156
  {#if testIsLoading}
157
+ {#if !scriptProgress}
140
158
  <Loader2 class="animate-spin" />
159
+ {/if}
141
160
  {:else}
142
161
  Test to see the result here
143
162
  {/if}
@@ -4,6 +4,7 @@ import { displayDate } from '../utils';
4
4
  import { Hourglass } from 'lucide-svelte';
5
5
  export let type;
6
6
  export let scheduled_for;
7
+ export let skipped = false;
7
8
  </script>
8
9
 
9
10
  {#if type == 'WaitingForEvents'}
@@ -25,6 +26,8 @@ export let scheduled_for;
25
26
  Job is waiting for an executor
26
27
  {/if}
27
28
  </span>
29
+ {:else if skipped}
30
+ <Badge color="blue">Skipped</Badge>
28
31
  {:else if type == 'Success'}
29
32
  <Badge color="green">Success</Badge>
30
33
  {:else if type == 'Failure'}
@@ -4,6 +4,7 @@ declare const __propDef: {
4
4
  props: {
5
5
  type: FlowStatusModule['type'];
6
6
  scheduled_for: Date | undefined;
7
+ skipped?: boolean | undefined;
7
8
  };
8
9
  events: {
9
10
  [evt: string]: CustomEvent<any>;
@@ -1,11 +1,11 @@
1
- <script>import CollapseLink from './CollapseLink.svelte';
1
+ <script>import { X } from 'lucide-svelte';
2
+ import CollapseLink from './CollapseLink.svelte';
2
3
  import IconedResourceType from './IconedResourceType.svelte';
3
4
  import Toggle from './Toggle.svelte';
4
5
  export let name;
5
6
  export let value;
6
7
  export let login = true;
7
8
  $: enabled = value != undefined;
8
- let allowed_domains = value?.['allowed_domains'] ?? '';
9
9
  let tenant = '';
10
10
  $: name == 'microsoft' && changeTenantId(tenant);
11
11
  function changeTenantId(tenant) {
@@ -61,19 +61,44 @@ function changeTenantId(tenant) {
61
61
  </label>
62
62
  {:else if login}
63
63
  <label class="block pb-2">
64
- <span class="text-primary font-semibold text-sm">Allowed domain</span>
65
- <input
66
- type="text"
67
- placeholder="windmill.dev"
68
- bind:value={allowed_domains}
69
- on:keyup={() => {
70
- if (allowed_domains == '') {
71
- value['allowed_domains'] = undefined
72
- } else {
73
- value['allowed_domains'] = [allowed_domains]
74
- }
75
- }}
76
- />
64
+ <span class="text-primary font-semibold text-sm">Allowed domains</span>
65
+ <div class="flex flex-col gap-1">
66
+ {#each value?.['allowed_domains'] ?? [] as domain}
67
+ <div class="flex gap-2">
68
+ <input
69
+ class="max-w-96 w-full"
70
+ type="text"
71
+ bind:value={domain}
72
+ on:keyup={(e) => {
73
+ if (domain == '') {
74
+ value['allowed_domains'] = value['allowed_domains']?.filter(
75
+ (d) => d != domain
76
+ )
77
+ }
78
+ }}
79
+ />
80
+ <button
81
+ class="text-primary text-xs rounded hover:bg-surface-hover"
82
+ on:click={() => {
83
+ value['allowed_domains'] = value['allowed_domains']?.filter((d) => d != domain)
84
+ if (value['allowed_domains'].length == 0) {
85
+ value['allowed_domains'] = undefined
86
+ }
87
+ }}
88
+ >
89
+ <X size={14} />
90
+ </button>
91
+ </div>
92
+ {/each}
93
+ <div class="flex gap-2">
94
+ <button
95
+ class="text-primary text-sm border rounded p-1"
96
+ on:click={() => {
97
+ value['allowed_domains'] = [...(value['allowed_domains'] ?? []), 'mydomain.com']
98
+ }}>+ Add domain</button
99
+ >
100
+ </div>
101
+ </div>
77
102
  </label>
78
103
  {/if}
79
104
  {#if name == 'google'}