mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-05 16:03:47 +00:00
* feat: add EditableInput component
* feat: add EditorHeader for flow editor with file picker entry point
* feat: WorkspaceItemPicker for editor header navigation
* feat: clickable breadcrumb in EditorHeader, scoped picker keyboard nav
* fix: reload flow on URL change and reset highlight in search mode
* feat: editor header layout polish and trigger removal
* feat: apply EditorHeader to script, app, and raw app editors
* fix: show generated initial path for new apps in EditorHeader
* fix: align EditorHeader new-app path with draft drawer's Path component
* fix: read page.params.path in loadApp to reload on URL change
* fix: remount AppEditor when navigating between apps
* fix: clear app/files on URL change so editor remounts with fresh data
* fix: route picker selections to /apps/edit or /apps_raw/edit based on raw_app
* fix: drop Save button from path popover; defer rename to deploy
* refactor: drop pathPopoverContent snippet, bind newEditedPath directly
* refactor: dedupe editor header plumbing (editPathFor, userPathPrefix, breadcrumb snippet)
* fix: freeze breadcrumb during path edit so popover doesn't drift
* fix: drop spinner from path dependency-check; render nothing when no usages
* fix: swallow 404 in checkFlowOnBehalfOf so renaming a flow doesn't toast
* Revert "fix: swallow 404 in checkFlowOnBehalfOf so renaming a flow doesn't toast"
This reverts commit 82dec462ae.
* refactor: drop moveRenameManager dep from EditorHeader; pass onBehalfOfEmail as prop
* refactor: replace breadcrumb-snapshot effect with open/close setter
* refactor: drop unused dirtyPath state from EditorHeader
* fix: surface Path validation error in pen popover
* fix: decouple Path validation error from hideFullPath toggle
* refactor: use InputError for path validation message (slide transition)
* fix: re-derive Path meta from external path changes (sibling sync)
* docs: note Path's meta could be replaced with function-form bindings
* fix: 'Exit & see details' uses deployed path, not live store
* fix: undo/redo shortcut uses shiftKey instead of fragile case-match
* fix: type errors and keep edit pen visible while popover is open
* chore: remove unused meltComponents/Accordion wrapper
* fix: focus search input on picker open via popover openFocus selector
* fix: refocus picker search input on every popover open
* fix: pre-seed picker loaded state from cache so accordion opens at the right place
* fix: breadcrumb and picker track savedPath, not draft-renamed live path
* fix: inject current draft item into picker so breadcrumb scope isn't empty
* docs: add component-level and prop-level docs to EditableInput
* feat: warn that a deploy is needed when path is edited on a saved item
* feat: show same path-change-needs-deploy message in flow/script settings
* fix(flows): persist draft-renamed path through reload and dirty check
* fix: include path in unsaved-changes diff so renames trigger the modal
* feat: nested folders in picker tree and breadcrumb
* fix: per-segment popover state so switching breadcrumbs closes the previous one
* refactor: replace accordion picker with drill-through picker
* refactor(picker): review fixes, drill polish, and breadcrumb collapse
* fix(picker): review fixes — banned bindable, drop sibling-sync, load races, mouse highlight
* fix(picker): smooth-scroll highlighted row into view on open
* fix(picker): second-pass review fixes — load races, cache invalidation, breadcrumb/picker a11y, raw_app routing
* fix(RowIcon): apply size prop to resource_type and fallback divs
* feat(picker): add cross-kind 'All' root; deeper breadcrumb segments open there
* fix(picker,editor): third-pass review — search loading state, pen autofocus, allow empty summary, a11y
* fix(picker,editor): fourth-pass review — own check, flowbuilder arrows, editableinput double-save, customui.path gate, invalidate races
* fix(editor,picker): codex review — fresh URL state per load, granular whitelabel topBar gates
* fix(flows): clear localStorage in auto-reload to break URL-state loop
54 lines
2.0 KiB
TypeScript
54 lines
2.0 KiB
TypeScript
import type { OpenFlow } from '$lib/gen'
|
|
import type { StateStore } from '$lib/utils'
|
|
import type { FlowState } from './flows/flowState'
|
|
import type { FlowWithDraftAndDraftTriggers, Trigger } from './triggers/utils'
|
|
import type { DiffDrawerI } from './diff_drawer'
|
|
import type { FlowBuilderWhitelabelCustomUi } from './custom_ui'
|
|
import type { ScheduleTrigger } from './triggers'
|
|
import type { stepState } from './stepHistoryLoader.svelte'
|
|
import type { WorkspaceItem } from './workspacePicker'
|
|
|
|
export type FlowBuilderProps = {
|
|
initialPath?: string
|
|
pathStoreInit?: string | undefined
|
|
newFlow: boolean
|
|
selectedId: string | undefined
|
|
initialArgs?: Record<string, any>
|
|
loading?: boolean
|
|
flowStore: StateStore<OpenFlow>
|
|
flowStateStore: StateStore<FlowState>
|
|
savedFlow?: FlowWithDraftAndDraftTriggers | undefined
|
|
diffDrawer?: DiffDrawerI | undefined
|
|
customUi?: FlowBuilderWhitelabelCustomUi
|
|
disableAi?: boolean
|
|
disabledFlowInputs?: boolean
|
|
savedPrimarySchedule?: ScheduleTrigger | undefined // used to set the primary schedule in the legacy primaryScheduleStore
|
|
version?: number | undefined
|
|
setSavedraftCb?: ((cb: () => void) => void) | undefined
|
|
draftTriggersFromUrl?: Trigger[] | undefined
|
|
selectedTriggerIndexFromUrl?: number | undefined
|
|
children?: import('svelte').Snippet
|
|
loadedFromHistoryFromUrl?: {
|
|
flowJobInitial: boolean | undefined
|
|
stepsState: Record<string, stepState>
|
|
}
|
|
noInitial?: boolean
|
|
onSaveInitial?: ({ path, id }: { path: string; id: string }) => void
|
|
onSaveDraft?: ({
|
|
path,
|
|
savedAtNewPath,
|
|
newFlow
|
|
}: {
|
|
path: string
|
|
savedAtNewPath: boolean
|
|
newFlow: boolean
|
|
}) => void
|
|
onSaveDraftError?: ({ error }: { error: any }) => void
|
|
onSaveDraftOnlyAtNewPath?: ({ path, selectedId }: { path: string; selectedId: string }) => void
|
|
onDeploy?: ({ path }: { path: string }) => void
|
|
onDeployError?: ({ error }: { error: any }) => void
|
|
onDetails?: ({ path }: { path: string }) => void
|
|
onHistoryRestore?: () => void
|
|
onNavigate?: (item: WorkspaceItem) => void
|
|
}
|