From 6c693e1afd93862fb23bbf62cf4fcfd3f14301b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=A4=95=E0=A4=BE=E0=A4=B0=E0=A4=A4=E0=A5=8B=E0=A4=AB?= =?UTF-8?q?=E0=A5=8D=E0=A4=AB=E0=A5=87=E0=A4=B2=E0=A4=B8=E0=A5=8D=E0=A4=95?= =?UTF-8?q?=E0=A5=8D=E0=A4=B0=E0=A4=BF=E0=A4=AA=E0=A5=8D=E0=A4=9F=E2=84=A2?= Date: Fri, 15 Mar 2024 12:43:08 +0100 Subject: [PATCH] refactor(editor): Continue porting components over to composition API (no-changelog) (#8893) --- .../src/components/N8nCallout/Callout.vue | 5 +- .../src/components/N8nFormInput/FormInput.vue | 4 +- .../components/N8nFormInputs/FormInputs.vue | 19 +- .../N8nInfoAccordion/InfoAccordion.vue | 10 +- .../src/components/N8nLink/Link.vue | 5 +- .../src/components/N8nMarkdown/Markdown.vue | 2 +- .../src/components/N8nMenu/Menu.vue | 156 ++++---- .../src/components/N8nMenuItem/MenuItem.vue | 137 +++---- .../src/components/N8nMenuItem/routerUtil.ts | 11 +- .../src/components/N8nNodeIcon/NodeIcon.vue | 150 ++++---- .../components/N8nNotice/Notice.stories.ts | 11 +- .../src/components/N8nNotice/Notice.vue | 139 +++---- .../src/components/N8nPulse/Pulse.vue | 8 +- .../N8nRadioButtons/RadioButton.vue | 40 +- .../N8nRadioButtons/RadioButtons.stories.ts | 16 + .../N8nRadioButtons/RadioButtons.vue | 61 ++-- .../RecycleScroller.stories.ts | 6 +- .../N8nRecycleScroller/RecycleScroller.vue | 341 ++++++++---------- .../__tests__/RecycleScroller.spec.ts | 2 +- .../N8nResizeWrapper/ResizeWrapper.vue | 251 +++++++------ .../src/components/N8nRoute/Route.vue | 6 +- .../src/components/N8nRoute/index.ts | 1 - .../src/components/N8nSelect/Select.vue | 15 +- .../src/components/N8nSticky/Sticky.vue | 246 ++++++------- .../src/components/N8nTabs/Tabs.stories.ts | 8 +- .../src/components/N8nTabs/Tabs.vue | 137 +++---- .../src/components/N8nTags/Tags.vue | 8 +- .../src/components/N8nTree/Tree.vue | 95 +++-- .../components/N8nUserSelect/UserSelect.vue | 175 ++++----- packages/design-system/src/locale/format.ts | 4 +- .../src/styleguide/VariableTable.vue | 89 ++--- .../styleguide/components/SpacingPreview.vue | 63 ++-- .../src/styleguide/utilities/lists.stories.ts | 4 +- packages/design-system/src/types/index.ts | 2 +- packages/design-system/src/types/menu.ts | 2 +- packages/design-system/src/types/router.ts | 4 - packages/design-system/src/types/select.ts | 2 + .../src/utils/__tests__/event-bus.spec.ts | 6 - packages/design-system/tsconfig.json | 1 - 39 files changed, 989 insertions(+), 1253 deletions(-) delete mode 100644 packages/design-system/src/types/router.ts create mode 100644 packages/design-system/src/types/select.ts diff --git a/packages/design-system/src/components/N8nCallout/Callout.vue b/packages/design-system/src/components/N8nCallout/Callout.vue index 910a4326fc..453555cf99 100644 --- a/packages/design-system/src/components/N8nCallout/Callout.vue +++ b/packages/design-system/src/components/N8nCallout/Callout.vue @@ -19,6 +19,7 @@ import { computed, useCssModule } from 'vue'; import N8nText from '../N8nText'; import N8nIcon from '../N8nIcon'; +import type { IconSize } from '@/types/icon'; const THEMES = ['info', 'success', 'secondary', 'warning', 'danger', 'custom'] as const; export type CalloutTheme = (typeof THEMES)[number]; @@ -33,7 +34,7 @@ const CALLOUT_DEFAULT_ICONS = { interface CalloutProps { theme: CalloutTheme; icon?: string; - iconSize?: string; + iconSize?: IconSize; iconless?: boolean; slim?: boolean; roundCorners?: boolean; @@ -58,7 +59,7 @@ const getIcon = computed( () => props.icon ?? CALLOUT_DEFAULT_ICONS?.[props.theme] ?? CALLOUT_DEFAULT_ICONS.info, ); -const getIconSize = computed(() => { +const getIconSize = computed(() => { if (props.iconSize) { return props.iconSize; } diff --git a/packages/design-system/src/components/N8nFormInput/FormInput.vue b/packages/design-system/src/components/N8nFormInput/FormInput.vue index b6d538cde2..151fe6c3c3 100644 --- a/packages/design-system/src/components/N8nFormInput/FormInput.vue +++ b/packages/design-system/src/components/N8nFormInput/FormInput.vue @@ -34,11 +34,11 @@ ((accu, input) => { - if (this.values[input.name]) { - accu[input.name] = this.values[input.name]; - } - return accu; - }, {}); + const toSubmit = this.filteredInputs.reduce( + (accu, input) => { + if (this.values[input.name]) { + accu[input.name] = this.values[input.name]; + } + return accu; + }, + {} as { [key: string]: Validatable }, + ); this.$emit('submit', toSubmit); } }, diff --git a/packages/design-system/src/components/N8nInfoAccordion/InfoAccordion.vue b/packages/design-system/src/components/N8nInfoAccordion/InfoAccordion.vue index f06fa4c5cc..42a437e73a 100644 --- a/packages/design-system/src/components/N8nInfoAccordion/InfoAccordion.vue +++ b/packages/design-system/src/components/N8nInfoAccordion/InfoAccordion.vue @@ -39,7 +39,7 @@