From 69fc8a98ae78bc01dc3d97f9732ee28864b323dd Mon Sep 17 00:00:00 2001 From: Guilhem Date: Wed, 26 Feb 2025 16:32:40 +0000 Subject: [PATCH] feat(frontend): migrate toggle to melt (4/4) (#5329) * use melt menu in sidebar * stop keyboard navigation for disabled items * use melt menu for FavoriteMenu and WorkspaceMenu * fix popover placement for menuButton * use melt menu for operator menu * fix notification * fix operator menu * Use melt menu in FlowJobsMenu * use melt menu for AppMenu * clean code * clean code * add use clickOutside option to Menu * use pointerdown_outside * use pointerdown_outside # Conflicts: # frontend/src/lib/components/meltComponents/Menu.svelte * use pointerdown in menus * add max-h to app dropdown menu * keep more open in operator menu * add a MenuItem component * clean * nit * nit * clean code * put conditionalMelt as utility function * remove unused Portal * Add debounce effect in operator menu * fix component jumping due to z-index * format pages * migrate dropdown to melt * migrate toggle to melt * migrate popup to melt popover * fix missing toggle item * feat: remove `pip` fallback option for python and ansible (#5186) * refactor!: Remove `pip` fallback option for python and ansible BREAKING CHANGE: pip was deprecated since 1.425.0 (2024-11-15) * fix errors in main.rs * fix tests * remove nsjail for pip * fix imports * fix compilation error * reinforce melt types * fix racing condition issue in closing operator menu * nit * fix id conflix with melt element * nit * clean code * use melt dropdown instead of menubar * prevent modal from closing on click outside button in menu * Apply automatic changes * fix nit * nit * close dropdown when opening a new one * replace MenuV2 with melt Menu (1/4) (#5214) * use melt menu in sidebar * stop keyboard navigation for disabled items * use melt menu for FavoriteMenu and WorkspaceMenu * fix popover placement for menuButton * use melt menu for operator menu * fix notification * fix operator menu * Use melt menu in FlowJobsMenu * use melt menu for AppMenu * clean code * clean code * add use clickOutside option to Menu * use pointerdown_outside * use pointerdown_outside # Conflicts: # frontend/src/lib/components/meltComponents/Menu.svelte * use pointerdown in menus * add max-h to app dropdown menu * keep more open in operator menu * add a MenuItem component * clean * nit * nit * clean code * put conditionalMelt as utility function * remove unused Portal * Add debounce effect in operator menu * fix component jumping due to z-index * feat: remove `pip` fallback option for python and ansible (#5186) * refactor!: Remove `pip` fallback option for python and ansible BREAKING CHANGE: pip was deprecated since 1.425.0 (2024-11-15) * fix errors in main.rs * fix tests * remove nsjail for pip * fix imports * fix compilation error * reinforce melt types * fix racing condition issue in closing operator menu * nit * fix id conflix with melt element * nit * prevent modal from closing on click outside button in menu --------- Co-authored-by: pyranota <92104930+pyranota@users.noreply.github.com> Co-authored-by: Ruben Fiszel # Conflicts: # frontend/src/lib/components/meltComponents/MenuItem.svelte # frontend/src/lib/utils.ts * clean * fix z index and render * fix initialize of dropdownmenu after melt migration * feat: add support for | None and Optional in python (#5361) * feat: add support for | None and Optional in python * update python parser package * add local rooting for MenuItem * fix z index * clean * nit * nit * clean code * nit * nit * clean code * reinforce melt types * wip * reiforce instance select types for toggleButton * nit * fix double event * fix selectedTable toggle * fix sqs toggleButton * fix potential issue with binding in toggleGroup * Update frontend/src/routes/(root)/(logged)/runs/[...path]/+page.svelte Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --------- Co-authored-by: pyranota <92104930+pyranota@users.noreply.github.com> Co-authored-by: Ruben Fiszel Co-authored-by: HugoCasa Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --- frontend/src/.d.ts | 10 +- frontend/src/lib/components/AddUser.svelte | 10 +- frontend/src/lib/components/ArgInput.svelte | 10 +- .../src/lib/components/Auth0Setting.svelte | 12 +- .../components/AutoscalingConfigEditor.svelte | 29 +- .../lib/components/ContentSearchInner.svelte | 16 +- .../lib/components/DBSchemaExplorer.svelte | 17 +- .../src/lib/components/DateTimeInput.svelte | 6 +- .../src/lib/components/DisplayResult.svelte | 18 +- frontend/src/lib/components/DropdownV2.svelte | 8 +- .../lib/components/EditableSchemaForm.svelte | 3 +- .../src/lib/components/FolderEditor.svelte | 21 +- .../src/lib/components/GroupEditor.svelte | 4 + .../lib/components/InputTransformForm.svelte | 5 +- .../src/lib/components/InstanceSetting.svelte | 3 +- frontend/src/lib/components/InviteUser.svelte | 10 +- .../src/lib/components/OktaSetting.svelte | 12 +- frontend/src/lib/components/Path.svelte | 3 + frontend/src/lib/components/RunForm.svelte | 20 +- frontend/src/lib/components/SchemaForm.svelte | 11 +- .../src/lib/components/ScriptBuilder.svelte | 2 + .../src/lib/components/ScriptPicker.svelte | 6 +- .../components/ScriptVersionHistory.svelte | 12 +- frontend/src/lib/components/ShareModal.svelte | 15 +- .../lib/components/StringTypeNarrowing.svelte | 9 +- .../lib/components/SuperadminSettings.svelte | 11 +- .../lib/components/ToggleHubWorkspace.svelte | 6 +- .../components/ToggleHubWorkspaceQuick.svelte | 8 +- .../src/lib/components/VariableEditor.svelte | 8 +- .../src/lib/components/WorkerGroup.svelte | 15 +- .../apps/editor/AppEditorHeader.svelte | 11 +- .../apps/editor/PreviewToggle.svelte | 3 + .../editor/componentsPanel/CssProperty.svelte | 12 +- .../settingsPanel/AlignmentEditor.svelte | 14 +- .../ComponentInputTypeEditor.svelte | 7 + .../ComponentPanelDataSource.svelte | 7 +- .../settingsPanel/InputsSpecEditor.svelte | 19 +- .../auditLogs/AuditLogsFilters.svelte | 13 +- .../toggleButton-v2/ToggleButton.svelte | 81 ++-- .../toggleButton-v2/ToggleButtonGroup.svelte | 68 +-- .../toggleButton-v2/ToggleButtonMore.svelte | 37 +- .../toggleButton-v2/ToggleEnable.svelte | 37 -- .../copilot/FlowCopilotDrawer.svelte | 5 +- .../lib/components/copilot/ScriptGen.svelte | 16 +- .../details/DetailPageTriggerPanel.svelte | 8 +- .../details/EmailTriggerConfigSection.svelte | 6 +- .../flows/content/FlowInputs.svelte | 5 +- .../flows/content/FlowModuleComponent.svelte | 15 +- .../flows/content/FlowRetries.svelte | 7 +- .../src/lib/components/home/FlowIcon.svelte | 5 +- .../src/lib/components/home/ItemsList.svelte | 13 +- .../src/lib/components/instanceSettings.ts | 40 +- .../components/meltComponents/Popover.svelte | 2 +- .../src/lib/components/runs/RunsFilter.svelte | 82 ++-- .../schema/FlowPropertyEditor.svelte | 9 +- .../components/schema/PropertyEditor.svelte | 4 +- .../settings/WorkspaceOperatorSettings.svelte | 38 +- .../settings/WorkspaceUserSettings.svelte | 24 +- .../components/triggers/CaptureButton.svelte | 134 +++--- .../components/triggers/CaptureTable.svelte | 4 +- .../components/triggers/TriggersEditor.svelte | 8 +- .../http/RouteEditorConfigSection.svelte | 11 +- .../triggers/http/RouteEditorInner.svelte | 30 +- .../kafka/KafkaTriggersConfigSection.svelte | 5 +- .../nats/NatsTriggersConfigSection.svelte | 5 +- .../PostgresTriggerEditorInner.svelte | 15 +- .../triggers/postgres/RelationPicker.svelte | 25 +- .../sqs/SqsTriggerEditorConfigSection.svelte | 12 +- .../webhook/WebhooksConfigSection.svelte | 15 +- .../WebsocketEditorConfigSection.svelte | 5 +- .../components/wizards/AgChartWizard.svelte | 2 +- .../components/wizards/AgGridWizard.svelte | 2 +- .../components/wizards/ChartJSWizard.svelte | 2 +- .../wizards/DBExplorerWizard.svelte | 2 +- .../components/wizards/PlotlyWizard.svelte | 2 +- .../(logged)/kafka_triggers/+page.svelte | 6 +- .../(logged)/nats_triggers/+page.svelte | 415 +++++++++--------- .../(logged)/postgres_triggers/+page.svelte | 6 +- .../(root)/(logged)/routes/+page.svelte | 6 +- .../(logged)/runs/[...path]/+page.svelte | 19 +- .../(root)/(logged)/schedules/+page.svelte | 14 +- .../(root)/(logged)/sqs_triggers/+page.svelte | 18 +- .../user/(user)/create_workspace/+page.svelte | 30 +- .../(logged)/websocket_triggers/+page.svelte | 6 +- .../(logged)/workspace_settings/+page.svelte | 16 +- 85 files changed, 959 insertions(+), 764 deletions(-) delete mode 100644 frontend/src/lib/components/common/toggleButton-v2/ToggleEnable.svelte diff --git a/frontend/src/.d.ts b/frontend/src/.d.ts index 1d15de31c8..2aa2423b71 100644 --- a/frontend/src/.d.ts +++ b/frontend/src/.d.ts @@ -1,7 +1,7 @@ -declare namespace svelte.JSX { - interface DOMAttributes { - onclick_outside?: CompositionEventHandler - onpointerdown_outside?: (event: CustomEvent) => void - onpointerdown_connecting?: (event: CustomEvent) => void +declare namespace svelteHTML { + interface HTMLAttributes { + 'on:click_outside'?: (event: CustomEvent) => void + 'on:pointerdown_outside'?: (event: CustomEvent) => void + 'on:pointerdown_connecting'?: (event: CustomEvent) => void } } diff --git a/frontend/src/lib/components/AddUser.svelte b/frontend/src/lib/components/AddUser.svelte index 54acc1157a..6144d6e84b 100644 --- a/frontend/src/lib/components/AddUser.svelte +++ b/frontend/src/lib/components/AddUser.svelte @@ -92,26 +92,24 @@ {/if} Role - + {#if dbSchema.lang !== 'graphql' && (dbSchema.schema?.public || dbSchema.schema?.PUBLIC || dbSchema.schema?.dbo)} - - - + + + {/if} {#if dbSchema.lang === 'graphql'} diff --git a/frontend/src/lib/components/DateTimeInput.svelte b/frontend/src/lib/components/DateTimeInput.svelte index 687ee3d3ea..8bf8157dd6 100644 --- a/frontend/src/lib/components/DateTimeInput.svelte +++ b/frontend/src/lib/components/DateTimeInput.svelte @@ -146,9 +146,9 @@ {/if} diff --git a/frontend/src/lib/components/DisplayResult.svelte b/frontend/src/lib/components/DisplayResult.svelte index b365bbdd96..2fcdcc2d06 100644 --- a/frontend/src/lib/components/DisplayResult.svelte +++ b/frontend/src/lib/components/DisplayResult.svelte @@ -402,10 +402,11 @@ on:selected={(ev) => { globalForceJson = ev.detail === 'json' }} + let:item > - + - + {/if} @@ -438,16 +439,23 @@ {#if !hideAsJson && !['json', 's3object'].includes(resultKind ?? '') && typeof result === 'object'} { forceJson = ev.detail === 'json' }} > {#if ['table-col', 'table-row', 'table-row-object'].includes(resultKind ?? '')} - + {:else} - + {/if} - + {/if} diff --git a/frontend/src/lib/components/DropdownV2.svelte b/frontend/src/lib/components/DropdownV2.svelte index 57a67eed84..3046f2c7ac 100644 --- a/frontend/src/lib/components/DropdownV2.svelte +++ b/frontend/src/lib/components/DropdownV2.svelte @@ -93,7 +93,13 @@ {#if $$slots.buttonReplacement} {:else} - diff --git a/frontend/src/lib/components/EditableSchemaForm.svelte b/frontend/src/lib/components/EditableSchemaForm.svelte index a19135709a..b460dbfa60 100644 --- a/frontend/src/lib/components/EditableSchemaForm.svelte +++ b/frontend/src/lib/components/EditableSchemaForm.svelte @@ -465,6 +465,7 @@ { const isS3 = e.detail == 'S3' @@ -545,7 +546,7 @@ }} > {#each [['String', 'string'], ['Number', 'number'], ['Integer', 'integer'], ['Object', 'object'], ['OneOf', 'oneOf'], ['Array', 'array'], ['Boolean', 'boolean'], ['S3 Object', 'S3']] as x} - + {/each} diff --git a/frontend/src/lib/components/FolderEditor.svelte b/frontend/src/lib/components/FolderEditor.svelte index efeff315f8..da4a46f2cd 100644 --- a/frontend/src/lib/components/FolderEditor.svelte +++ b/frontend/src/lib/components/FolderEditor.svelte @@ -184,9 +184,13 @@
- (ownerItem = '')}> - - + (ownerItem = '')} + let:item + > + +
@@ -194,7 +198,9 @@ !perms?.map((y) => y.owner_name).includes('u/'+x)) : groups.filter((x) => !perms?.map((y) => y.owner_name).includes('g/'+x))} + items={ownerKind === 'user' + ? usernames.filter((x) => !perms?.map((y) => y.owner_name).includes('u/' + x)) + : groups.filter((x) => !perms?.map((y) => y.owner_name).includes('g/' + x))} bind:selectedItem={ownerItem} /> {#if ownerKind == 'group'} @@ -271,6 +277,7 @@
{ const role = e.detail // const wasInFolder = (folder?.owners ?? []).includes(folder) @@ -309,25 +316,25 @@ >
diff --git a/frontend/src/lib/components/GroupEditor.svelte b/frontend/src/lib/components/GroupEditor.svelte index 7b7c5f067c..8ea5127e25 100644 --- a/frontend/src/lib/components/GroupEditor.svelte +++ b/frontend/src/lib/components/GroupEditor.svelte @@ -150,6 +150,7 @@
{ const role = e.detail // const wasInGroup = (group?.members ?? []).includes(group) @@ -215,6 +216,7 @@ size="xs" label="Member" tooltip="A Member of a group can see everything the group can see, write to everything the group can write, and generally act on behalf of the group" + {item} /> {#if role === 'manager'} {/if} diff --git a/frontend/src/lib/components/InputTransformForm.svelte b/frontend/src/lib/components/InputTransformForm.svelte index 50ad1e8922..3d174b5996 100644 --- a/frontend/src/lib/components/InputTransformForm.svelte +++ b/frontend/src/lib/components/InputTransformForm.svelte @@ -358,6 +358,7 @@
{ if (e.detail == propertyType) return const staticTemplate = isStaticTemplate(inputCat) @@ -417,9 +418,10 @@ value="static" size="xs2" label={'${}'} + {item} /> {:else} - + {/if} {#if codeInjectionDetected && propertyType == 'static'} @@ -441,6 +443,7 @@ tooltip="JavaScript expression ('flow_input' or 'results')." value="javascript" icon={FunctionSquare} + {item} /> {/if} diff --git a/frontend/src/lib/components/InstanceSetting.svelte b/frontend/src/lib/components/InstanceSetting.svelte index 57a5ba804c..30d9d98bae 100644 --- a/frontend/src/lib/components/InstanceSetting.svelte +++ b/frontend/src/lib/components/InstanceSetting.svelte @@ -185,12 +185,13 @@ {/if} - + {#each setting.select_items ?? [] as item} {/each} diff --git a/frontend/src/lib/components/InviteUser.svelte b/frontend/src/lib/components/InviteUser.svelte index ae5a824190..1655ca444d 100644 --- a/frontend/src/lib/components/InviteUser.svelte +++ b/frontend/src/lib/components/InviteUser.svelte @@ -80,28 +80,26 @@ bind:value={email} class="mr-4" /> - +
- +