{#snippet itemRow(item: ItemType & { marked?: string }, depth: number)} {@const wmItem = pickerItems.find((p) => p.path === item.path)} {/snippet} {#snippet treeNode(node: ItemType | FolderItem | UserItem, depth: number)} {#if 'folderName' in node}
0 ? `padding-left: ${depth * 16}px;` : ''} >
{#if depth === 0} {:else} {/if}
{#if depth === 0}f/{/if}{node.folderName}
({pluralize(node.items.length, 'item')})
{#each node.items as child ('folderName' in child ? `f__${child.folderName}` : 'username' in child ? `u__${child.username}` : `i__${child.type}__${child.path}`)} {@render treeNode(child, depth + 1)} {/each}
{:else if 'username' in node}
0 ? `padding-left: ${depth * 16}px;` : ''} >
u/{node.username}
({pluralize(node.items.length, 'item')})
{#each node.items as child ('folderName' in child ? `f__${child.folderName}` : 'username' in child ? `u__${child.username}` : `i__${child.type}__${child.path}`)} {@render treeNode(child, depth + 1)} {/each}
{:else} {@render itemRow(node as ItemType & { marked?: string }, depth)} {/if} {/snippet} {#if pickerMode}
{#if $userStore} {$userStore?.username} on {$workspaceStore} {:else} Unable to login on {$workspaceStore} {/if}

{$workspaceStore} (local)

Click a flow or a script to preview it.

`${item.path} ${item.summary ?? ''}`} bind:filteredItems={pickerFilteredItems} /> {#if wsState !== 'closed'}
{#snippet children({ item })} {/snippet}
{/if} {#if wsState === 'closed'} Start it from your workspace root with wmill dev to preview your flows, scripts, and apps. {:else if pickerItems.length === 0}
No flows, scripts, or apps detected in this workspace.
{:else if pickerGroups.length === 0}
No items match the search.
{:else}
{#each pickerGroups as group ('folderName' in group ? `f__${group.folderName}` : 'username' in group ? `u__${group.username}` : `i__${group.type}__${group.path}`)} {@render treeNode(group, 0)} {/each}
{/if}
{:else if mode == 'script'}
{currentScript?.path ?? 'Not editing a script'} {currentScript?.language ?? ''}{currentScript?.isCodebase ? ' (codebase)' : ''}
{#if $userStore != undefined} As {$userStore?.username} in {$workspaceStore} {:else} Unable to login {/if}
{#if !validCode}
Invalid code
{/if}
{#if (currentScript?.language == 'bun' || currentScript?.language == 'python3') && currentScript?.content != undefined} {#if relativePaths.length > 0}
{#if currentScript?.language == 'bun' && !currentScript?.isCodebase} {:else if currentScript?.language == 'python3'}
relative imports detectedBeware that when using relative imports, the code used in preview for those is the one that is already deployed. If you make update to the common logic, you will need to `wmill sync push` to see it reflected in the preview runs.
{/if}
{/if} {/if}
{#if testIsLoading} {:else} {/if}
{#if jsonView}
{ if (e.detail) { args = e.detail } }} initialCode={argsToJsonPayload(schema, args)} updateOnBlur={false} placeholder={`Write args as JSON.

Example:

{
  "foo": "12"
}`} />
{:else}
{/if}
{:else}
{#if $userStore} As {$userStore?.username} in {$workspaceStore} {:else} Unable to login on {$workspaceStore} {/if}
{#if flowStore.val?.value?.modules}
{ showJobStatus = true }} />
{ delete localModuleStates[id] delete modulesTestStates.states[id] }} {flowHasChanged} controlsPosition="bottom" /> {:else}
Missing flow modules
{/if}
{#if selectedModule}
{selectedModule.id} summary
{/if} {#key reload} { if (ev.detail.kind === 'preprocessor') { stepsInputArgs.setStepArgs('preprocessor', ev.detail.args ?? {}) selectionManager.selectId('preprocessor') } else { previewArgsStore.val = ev.detail.args ?? {} flowPreviewButtons?.openPreview() } }} onTestFlow={flowPreviewButtons?.runPreview} {job} isOwner={flowPreviewContent?.getIsOwner()} {suspendStatus} onOpenDetails={flowPreviewButtons?.openPreview} previewOpen={flowPreviewButtons?.getPreviewOpen()} /> {/key}
true} /> {/if}