feat: migrated several components

This commit is contained in:
Alex Grozav 2023-06-19 15:07:45 +03:00
parent 57f7288316
commit edefe06282
32 changed files with 148 additions and 120 deletions

View file

@ -28,8 +28,18 @@ module.exports = {
'../src/components/N8nMarkdown/*.stories.@(js|jsx|ts|tsx)', '../src/components/N8nMarkdown/*.stories.@(js|jsx|ts|tsx)',
'../src/components/N8nMenu/*.stories.@(js|jsx|ts|tsx)', '../src/components/N8nMenu/*.stories.@(js|jsx|ts|tsx)',
'../src/components/N8nMenuItem/*.stories.@(js|jsx|ts|tsx)', '../src/components/N8nMenuItem/*.stories.@(js|jsx|ts|tsx)',
'../src/components/N8nText/*.stories.@(js|jsx|ts|tsx)', '../src/components/N8nNodeCreatorNode/*.stories.@(js|jsx|ts|tsx)',
'../src/components/N8nNodeIcon/*.stories.@(js|jsx|ts|tsx)',
'../src/components/N8nNotice/*.stories.@(js|jsx|ts|tsx)',
'../src/components/N8nOption/*.stories.@(js|jsx|ts|tsx)',
'../src/components/N8nPulse/*.stories.@(js|jsx|ts|tsx)',
'../src/components/N8nPopover/*.stories.@(js|jsx|ts|tsx)', '../src/components/N8nPopover/*.stories.@(js|jsx|ts|tsx)',
'../src/components/N8nRadioButtons/*.stories.@(js|jsx|ts|tsx)',
'../src/components/N8nSelect/*.stories.@(js|jsx|ts|tsx)',
'../src/components/N8nSpinner/*.stories.@(js|jsx|ts|tsx)',
'../src/components/N8nSticky/*.stories.@(js|jsx|ts|tsx)',
'../src/components/N8nTags/*.stories.@(js|jsx|ts|tsx)',
'../src/components/N8nText/*.stories.@(js|jsx|ts|tsx)',
'../src/components/N8nTooltip/*.stories.@(js|jsx|ts|tsx)', '../src/components/N8nTooltip/*.stories.@(js|jsx|ts|tsx)',
], ],
addons: [ addons: [

View file

@ -7,13 +7,14 @@ export default {
}; };
const DefaultTemplate: StoryFn = (args, { argTypes }) => ({ const DefaultTemplate: StoryFn = (args, { argTypes }) => ({
setup: () => ({ args }),
props: Object.keys(argTypes), props: Object.keys(argTypes),
components: { components: {
N8nNodeCreatorNode, N8nNodeCreatorNode,
}, },
template: ` template: `
<n8n-node-creator-node v-bind="args"> <n8n-node-creator-node v-bind="args">
<template v-slot:icon> <template #icon>
<img src="https://dev.w3.org/SVG/tools/svgweb/samples/svg-files/cartman.svg" /> <img src="https://dev.w3.org/SVG/tools/svgweb/samples/svg-files/cartman.svg" />
</template> </template>
</n8n-node-creator-node> </n8n-node-creator-node>
@ -29,6 +30,7 @@ WithTitle.args = {
}; };
const PanelTemplate: StoryFn = (args, { argTypes }) => ({ const PanelTemplate: StoryFn = (args, { argTypes }) => ({
setup: () => ({ args }),
props: Object.keys(argTypes), props: Object.keys(argTypes),
components: { components: {
N8nNodeCreatorNode, N8nNodeCreatorNode,
@ -40,10 +42,10 @@ const PanelTemplate: StoryFn = (args, { argTypes }) => ({
}, },
template: ` template: `
<n8n-node-creator-node v-bind="args" :isPanelActive="isPanelActive" @click.capture="isPanelActive = true"> <n8n-node-creator-node v-bind="args" :isPanelActive="isPanelActive" @click.capture="isPanelActive = true">
<template v-slot:icon> <template #icon>
<img src="https://dev.w3.org/SVG/tools/svgweb/samples/svg-files/cartman.svg" /> <img src="https://dev.w3.org/SVG/tools/svgweb/samples/svg-files/cartman.svg" />
</template> </template>
<template v-slot:panel> <template #panel>
<p style="width: 100%; height: 300px; background: white">Lorem ipsum dolor sit amet</p> <p style="width: 100%; height: 300px; background: white">Lorem ipsum dolor sit amet</p>
<button @click="isPanelActive = false">Close</button> <button @click="isPanelActive = false">Close</button>
</template> </template>

View file

@ -5,7 +5,6 @@
[$style.hasAction]: !showActionArrow, [$style.hasAction]: !showActionArrow,
}" }"
v-bind="$attrs" v-bind="$attrs"
v-bind="$attrs"
> >
<div :class="$style.nodeIcon"> <div :class="$style.nodeIcon">
<slot name="icon" /> <slot name="icon" />

View file

@ -7,6 +7,7 @@ export default {
}; };
const DefaultTemplate: StoryFn = (args, { argTypes }) => ({ const DefaultTemplate: StoryFn = (args, { argTypes }) => ({
setup: () => ({ args }),
props: Object.keys(argTypes), props: Object.keys(argTypes),
components: { components: {
N8nNodeIcon, N8nNodeIcon,

View file

@ -13,6 +13,7 @@ export default {
}; };
const SlotTemplate: StoryFn = (args, { argTypes }) => ({ const SlotTemplate: StoryFn = (args, { argTypes }) => ({
setup: () => ({ args }),
props: Object.keys(argTypes), props: Object.keys(argTypes),
components: { components: {
N8nNotice, N8nNotice,
@ -22,6 +23,7 @@ const SlotTemplate: StoryFn = (args, { argTypes }) => ({
}); });
const PropTemplate: StoryFn = (args, { argTypes }) => ({ const PropTemplate: StoryFn = (args, { argTypes }) => ({
setup: () => ({ args }),
props: Object.keys(argTypes), props: Object.keys(argTypes),
components: { components: {
N8nNotice, N8nNotice,

View file

@ -9,7 +9,13 @@
}" }"
aria-checked="true" aria-checked="true"
> >
<input type="radio" tabindex="-1" autocomplete="off" :class="$style.input" :value="value" /> <input
type="radio"
tabindex="-1"
autocomplete="off"
:class="$style.input"
:modelValue="value"
/>
<div <div
:class="{ :class="{
[$style.button]: true, [$style.button]: true,

View file

@ -18,7 +18,7 @@ export default {
}; };
const methods = { const methods = {
onInput: action('input'), onInput: action('update:modelValue'),
}; };
const Template: StoryFn = (args, { argTypes }) => ({ const Template: StoryFn = (args, { argTypes }) => ({
@ -27,7 +27,7 @@ const Template: StoryFn = (args, { argTypes }) => ({
components: { components: {
N8nRadioButtons, N8nRadioButtons,
}, },
template: `<n8n-radio-buttons v-model="val" v-bind="args" @input="onInput"> template: `<n8n-radio-buttons v-model="val" v-bind="args" @update:modelValue="onInput">
</n8n-radio-buttons>`, </n8n-radio-buttons>`,
methods, methods,
data() { data() {

View file

@ -7,7 +7,7 @@
v-for="option in options" v-for="option in options"
:key="option.value" :key="option.value"
v-bind="option" v-bind="option"
:active="value === option.value" :active="modelValue === option.value"
:size="size" :size="size"
:disabled="disabled || option.disabled" :disabled="disabled || option.disabled"
@click="() => onClick(option)" @click="() => onClick(option)"
@ -30,7 +30,7 @@ export interface RadioOption {
export default defineComponent({ export default defineComponent({
name: 'n8n-radio-buttons', name: 'n8n-radio-buttons',
props: { props: {
value: { modelValue: {
type: String, type: String,
}, },
options: { options: {
@ -52,7 +52,7 @@ export default defineComponent({
if (this.disabled || option.disabled) { if (this.disabled || option.disabled) {
return; return;
} }
this.$emit('input', option.value); this.$emit('update:modelValue', option.value);
}, },
}, },
}); });

View file

@ -42,7 +42,7 @@ const Template = (args, { argTypes }) => ({
}, },
template: `<div style="width: fit-content; height: fit-content"> template: `<div style="width: fit-content; height: fit-content">
<n8n-resize-wrapper <n8n-resize-wrapper
v-bind="$props" v-bind="args"
@resize="onResize" @resize="onResize"
@resizeend="onResizeEnd" @resizeend="onResizeEnd"
@resizestart="onResizeStart" @resizestart="onResizeStart"

View file

@ -79,6 +79,7 @@ const selects = ['large', 'medium', 'small', 'mini']
.join(''); .join('');
const ManyTemplate: StoryFn = (args, { argTypes }) => ({ const ManyTemplate: StoryFn = (args, { argTypes }) => ({
setup: () => ({ args }),
props: Object.keys(argTypes), props: Object.keys(argTypes),
components: { components: {
N8nSelect, N8nSelect,
@ -109,6 +110,7 @@ const selectsWithIcon = ['xlarge', 'large', 'medium', 'small', 'mini']
.join(''); .join('');
const ManyTemplateWithIcon: StoryFn = (args, { argTypes }) => ({ const ManyTemplateWithIcon: StoryFn = (args, { argTypes }) => ({
setup: () => ({ args }),
props: Object.keys(argTypes), props: Object.keys(argTypes),
components: { components: {
N8nSelect, N8nSelect,
@ -132,6 +134,7 @@ WithIcon.args = {
}; };
const LimitedWidthTemplate: StoryFn = (args, { argTypes }) => ({ const LimitedWidthTemplate: StoryFn = (args, { argTypes }) => ({
setup: () => ({ args }),
props: Object.keys(argTypes), props: Object.keys(argTypes),
components: { components: {
N8nSelect, N8nSelect,

View file

@ -17,15 +17,13 @@
:popper-class="popperClass" :popper-class="popperClass"
ref="innerSelect" ref="innerSelect"
> >
<template #prefix> <template #prefix v-if="$slots.prefix">
<slot name="prefix" /> <slot name="prefix" />
</template> </template>
<template #suffix> <template #suffix v-if="$slots.suffix">
<slot name="suffix" /> <slot name="suffix" />
</template> </template>
<template #default>
<slot></slot> <slot></slot>
</template>
</el-select> </el-select>
</div> </div>
</template> </template>

View file

@ -40,7 +40,7 @@ export default {
}; };
const methods = { const methods = {
onInput: action('input'), onInput: action('update:modelValue'),
onResize: action('resize'), onResize: action('resize'),
onResizeEnd: action('resizeend'), onResizeEnd: action('resizeend'),
onResizeStart: action('resizestart'), onResizeStart: action('resizestart'),

View file

@ -16,7 +16,6 @@
@resize="onResize" @resize="onResize"
@resizestart="onResizeStart" @resizestart="onResizeStart"
> >
<template>
<div <div
v-show="!editMode" v-show="!editMode"
class="ph-no-capture" class="ph-no-capture"
@ -42,11 +41,11 @@
:class="{ 'full-height': !shouldShowFooter }" :class="{ 'full-height': !shouldShowFooter }"
> >
<n8n-input <n8n-input
:value="content" :modelValue="content"
type="textarea" type="textarea"
:rows="5" :rows="5"
@blur="onInputBlur" @blur="onInputBlur"
@input="onInput" @update:modelValue="onInput"
ref="input" ref="input"
/> />
</div> </div>
@ -55,7 +54,6 @@
<span v-html="t('sticky.markdownHint')"></span> <span v-html="t('sticky.markdownHint')"></span>
</n8n-text> </n8n-text>
</div> </div>
</template>
</n8n-resize-wrapper> </n8n-resize-wrapper>
</div> </div>
</template> </template>

View file

@ -26,19 +26,19 @@ export { default as N8nLoading } from './N8nLoading';
export { default as N8nMarkdown } from './N8nMarkdown'; export { default as N8nMarkdown } from './N8nMarkdown';
export { default as N8nMenu } from './N8nMenu'; export { default as N8nMenu } from './N8nMenu';
export { default as N8nMenuItem } from './N8nMenuItem'; export { default as N8nMenuItem } from './N8nMenuItem';
// export { default as N8nNodeCreatorNode } from './N8nNodeCreatorNode'; export { default as N8nNodeCreatorNode } from './N8nNodeCreatorNode';
// export { default as N8nNodeIcon } from './N8nNodeIcon'; export { default as N8nNodeIcon } from './N8nNodeIcon';
// export { default as N8nNotice } from './N8nNotice'; export { default as N8nNotice } from './N8nNotice';
// export { default as N8nOption } from './N8nOption'; export { default as N8nOption } from './N8nOption';
export { default as N8nPopover } from './N8nPopover'; export { default as N8nPopover } from './N8nPopover';
// export { default as N8nPulse } from './N8nPulse'; export { default as N8nPulse } from './N8nPulse';
// export { default as N8nRadioButtons } from './N8nRadioButtons'; export { default as N8nRadioButtons } from './N8nRadioButtons';
// export { default as N8nSelect } from './N8nSelect'; export { default as N8nSelect } from './N8nSelect';
// export { default as N8nSpinner } from './N8nSpinner'; export { default as N8nSpinner } from './N8nSpinner';
// export { default as N8nSticky } from './N8nSticky'; export { default as N8nSticky } from './N8nSticky';
export { default as N8nTags } from './N8nTags';
// export { default as N8nTabs } from './N8nTabs'; // export { default as N8nTabs } from './N8nTabs';
// export { default as N8nTag } from './N8nTag'; // export { default as N8nTag } from './N8nTag';
// export { default as N8nTags } from './N8nTags';
export { default as N8nText } from './N8nText'; export { default as N8nText } from './N8nText';
export { default as N8nTooltip } from './N8nTooltip'; export { default as N8nTooltip } from './N8nTooltip';
// export { default as N8nTree } from './N8nTree'; // export { default as N8nTree } from './N8nTree';

View file

@ -26,22 +26,22 @@ import {
N8nInputNumber, N8nInputNumber,
N8nLink, N8nLink,
N8nLoading, N8nLoading,
// N8nMarkdown, N8nMarkdown,
// N8nMenu, N8nMenu,
// N8nMenuItem, N8nMenuItem,
// N8nNodeCreatorNode, N8nNodeCreatorNode,
// N8nNodeIcon, N8nNodeIcon,
// N8nNotice, N8nNotice,
// N8nOption, N8nOption,
N8nPopover, N8nPopover,
// N8nPulse, N8nPulse,
// N8nRadioButtons, N8nRadioButtons,
// N8nSelect, N8nSelect,
// N8nSpinner, N8nSpinner,
// N8nSticky, N8nSticky,
N8nTags,
// N8nTabs, // N8nTabs,
// N8nTag, // N8nTag,
// N8nTags,
N8nText, N8nText,
N8nTooltip, N8nTooltip,
// N8nTree, // N8nTree,
@ -81,20 +81,20 @@ export const N8nPlugin: Plugin<{}> = {
app.component('n8n-input-number', N8nInputNumber); app.component('n8n-input-number', N8nInputNumber);
app.component('n8n-link', N8nLink); app.component('n8n-link', N8nLink);
app.component('n8n-loading', N8nLoading); app.component('n8n-loading', N8nLoading);
// app.component('n8n-markdown', N8nMarkdown); app.component('n8n-markdown', N8nMarkdown);
// app.component('n8n-menu', N8nMenu); app.component('n8n-menu', N8nMenu);
// app.component('n8n-menu-item', N8nMenuItem); app.component('n8n-menu-item', N8nMenuItem);
// app.component('n8n-node-creator-node', N8nNodeCreatorNode); app.component('n8n-node-creator-node', N8nNodeCreatorNode);
// app.component('n8n-node-icon', N8nNodeIcon); app.component('n8n-node-icon', N8nNodeIcon);
// app.component('n8n-notice', N8nNotice); app.component('n8n-notice', N8nNotice);
// app.component('n8n-option', N8nOption); app.component('n8n-option', N8nOption);
app.component('n8n-popover', N8nPopover); app.component('n8n-popover', N8nPopover);
// app.component('n8n-pulse', N8nPulse); app.component('n8n-pulse', N8nPulse);
// app.component('n8n-select', N8nSelect); app.component('n8n-radio-buttons', N8nRadioButtons);
// app.component('n8n-spinner', N8nSpinner); app.component('n8n-select', N8nSelect);
// app.component('n8n-sticky', N8nSticky); app.component('n8n-spinner', N8nSpinner);
// app.component('n8n-radio-buttons', N8nRadioButtons); app.component('n8n-sticky', N8nSticky);
// app.component('n8n-tags', N8nTags); app.component('n8n-tags', N8nTags);
// app.component('n8n-tabs', N8nTabs); // app.component('n8n-tabs', N8nTabs);
// app.component('n8n-tag', N8nTag); // app.component('n8n-tag', N8nTag);
app.component('n8n-text', N8nText); app.component('n8n-text', N8nText);

View file

@ -4,7 +4,7 @@
<n8n-select <n8n-select
:size="inputSize" :size="inputSize"
filterable filterable
:value="displayValue" :modelValue="displayValue"
:placeholder=" :placeholder="
parameter.placeholder ? getPlaceholder() : $locale.baseText('parameterInput.select') parameter.placeholder ? getPlaceholder() : $locale.baseText('parameterInput.select')
" "

View file

@ -24,7 +24,7 @@
:placeholder="$locale.baseText('credentialSelectModal.searchForApp')" :placeholder="$locale.baseText('credentialSelectModal.searchForApp')"
size="xlarge" size="xlarge"
ref="select" ref="select"
:value="selected" :modelValue="selected"
@change="onSelect" @change="onSelect"
data-test-id="new-credential-type-select" data-test-id="new-credential-type-select"
> >

View file

@ -27,8 +27,8 @@
v-if="parentNodes.length" v-if="parentNodes.length"
:popper-append-to-body="true" :popper-append-to-body="true"
size="small" size="small"
:value="currentNodeName" :modelValue="currentNodeName"
@input="onSelect" @update:modelValue="onSelect"
:no-data-text="$locale.baseText('ndv.input.noNodesFound')" :no-data-text="$locale.baseText('ndv.input.noNodesFound')"
:placeholder="$locale.baseText('ndv.input.parentNodes')" :placeholder="$locale.baseText('ndv.input.parentNodes')"
filterable filterable

View file

@ -7,7 +7,7 @@
[$style.menuCollapsed]: mainSidebarCollapsed, [$style.menuCollapsed]: mainSidebarCollapsed,
}" }"
> >
<n8n-radio-buttons :value="activeTab" :options="items" @input="onSelect" /> <n8n-radio-buttons :modelValue="activeTab" :options="items" @update:modelValue="onSelect" />
</div> </div>
</template> </template>

View file

@ -29,7 +29,7 @@
data-test-id="node-credentials-select" data-test-id="node-credentials-select"
> >
<n8n-select <n8n-select
:value="getSelectedId(credentialTypeDescription.name)" :modelValue="getSelectedId(credentialTypeDescription.name)"
@change=" @change="
(value) => (value) =>
onCredentialSelected( onCredentialSelected(

View file

@ -252,7 +252,7 @@
ref="inputField" ref="inputField"
:size="inputSize" :size="inputSize"
filterable filterable
:value="displayValue" :modelValue="displayValue"
:placeholder=" :placeholder="
parameter.placeholder ? getPlaceholder() : $locale.baseText('parameterInput.select') parameter.placeholder ? getPlaceholder() : $locale.baseText('parameterInput.select')
" "
@ -292,7 +292,7 @@
:size="inputSize" :size="inputSize"
filterable filterable
multiple multiple
:value="displayValue" :modelValue="displayValue"
:loading="remoteParameterOptionsLoading" :loading="remoteParameterOptionsLoading"
:disabled="isReadOnly || remoteParameterOptionsLoading" :disabled="isReadOnly || remoteParameterOptionsLoading"
:title="displayTitle" :title="displayTitle"

View file

@ -27,13 +27,13 @@
<n8n-radio-buttons <n8n-radio-buttons
v-if="shouldShowExpressionSelector" v-if="shouldShowExpressionSelector"
size="small" size="small"
:value="selectedView" :modelValue="selectedView"
:disabled="isReadOnly" :disabled="isReadOnly"
@input="onViewSelected"
:options="[ :options="[
{ label: $locale.baseText('parameterInput.fixed'), value: 'fixed' }, { label: $locale.baseText('parameterInput.fixed'), value: 'fixed' },
{ label: $locale.baseText('parameterInput.expression'), value: 'expression' }, { label: $locale.baseText('parameterInput.expression'), value: 'expression' },
]" ]"
@update:modelValue="onViewSelected"
/> />
</div> </div>
</div> </div>

View file

@ -45,7 +45,7 @@
> >
<div v-if="hasMultipleModes" :class="$style.modeSelector"> <div v-if="hasMultipleModes" :class="$style.modeSelector">
<n8n-select <n8n-select
:value="selectedMode" :modelValue="selectedMode"
filterable filterable
:size="inputSize" :size="inputSize"
:disabled="isReadOnly" :disabled="isReadOnly"

View file

@ -111,7 +111,7 @@ defineExpose({
> >
<template> <template>
<div class="mt-5xs"> <div class="mt-5xs">
<n8n-select :value="selected" :size="props.inputSize" @change="onModeChanged"> <n8n-select :modelValue="selected" :size="props.inputSize" @change="onModeChanged">
<n8n-option <n8n-option
v-for="option in mappingModeOptions" v-for="option in mappingModeOptions"
:key="option.value" :key="option.value"

View file

@ -131,7 +131,7 @@ defineExpose({
> >
<n8n-select <n8n-select
:multiple="resourceMapperTypeOptions?.multiKeyMatch === true" :multiple="resourceMapperTypeOptions?.multiKeyMatch === true"
:value="state.selected" :modelValue="state.selected"
:size="props.inputSize" :size="props.inputSize"
:disabled="loading" :disabled="loading"
@change="onSelectionChange" @change="onSelectionChange"

View file

@ -53,10 +53,10 @@
((jsonData && jsonData.length > 0) || (binaryData && binaryData.length > 0)) && ((jsonData && jsonData.length > 0) || (binaryData && binaryData.length > 0)) &&
!editMode.enabled !editMode.enabled
" "
:value="displayMode" :modelValue="displayMode"
:options="buttons" :options="buttons"
@input="onDisplayModeChange"
data-test-id="ndv-run-data-display-mode" data-test-id="ndv-run-data-display-mode"
@update:modelValue="onDisplayModeChange"
/> />
<n8n-icon-button <n8n-icon-button
v-if="canPinData && !isReadOnly" v-if="canPinData && !isReadOnly"
@ -129,8 +129,8 @@
> >
<n8n-select <n8n-select
size="small" size="small"
:value="runIndex" :modelValue="runIndex"
@input="onRunIndexChange" @update:modelValue="onRunIndexChange"
@click.stop @click.stop
popper-append-to-body popper-append-to-body
> >
@ -451,7 +451,12 @@
</el-pagination> </el-pagination>
<div :class="$style.pageSizeSelector"> <div :class="$style.pageSizeSelector">
<n8n-select size="mini" :value="pageSize" @input="onPageSizeChange" popper-append-to-body> <n8n-select
size="mini"
:modelValue="pageSize"
@update:modelValue="onPageSizeChange"
popper-append-to-body
>
<template #prepend>{{ $locale.baseText('ndv.output.pageSize') }}</template> <template #prepend>{{ $locale.baseText('ndv.output.pageSize') }}</template>
<n8n-option v-for="size in pageSizes" :key="size" :label="size" :value="size"> <n8n-option v-for="size in pageSizes" :key="size" :label="size" :value="size">
</n8n-option> </n8n-option>

View file

@ -83,7 +83,7 @@
:underline="false" :underline="false"
> >
<n8n-select <n8n-select
:value="typeSelectValue" :modelValue="typeSelectValue"
:placeholder="typeSelectPlaceholder" :placeholder="typeSelectPlaceholder"
@change="onTypeSelectInput" @change="onTypeSelectInput"
data-test-id="select-destination-type" data-test-id="select-destination-type"

View file

@ -2,7 +2,7 @@
<div :class="{ 'tags-container': true, focused }" @keydown.stop v-click-outside="onClickOutside"> <div :class="{ 'tags-container': true, focused }" @keydown.stop v-click-outside="onClickOutside">
<n8n-select <n8n-select
:popperAppendToBody="false" :popperAppendToBody="false"
:value="appliedTags" :modelValue="appliedTags"
:loading="tagsStore.isLoading" :loading="tagsStore.isLoading"
:placeholder="placeholder" :placeholder="placeholder"
:filter-method="filterOptions" :filter-method="filterOptions"

View file

@ -55,7 +55,7 @@
<template #actions="{ user }"> <template #actions="{ user }">
<n8n-select <n8n-select
:class="$style.roleSelect" :class="$style.roleSelect"
value="editor" modelValue="editor"
size="small" size="small"
@change="onRoleAction(user, $event)" @change="onRoleAction(user, $event)"
> >

View file

@ -23,13 +23,13 @@
class="mb-3xs" class="mb-3xs"
/> />
<n8n-select <n8n-select
:value="filters.type" :modelValue="filters.type"
size="medium" size="medium"
multiple multiple
filterable filterable
ref="typeInput" ref="typeInput"
:class="$style['type-input']" :class="$style['type-input']"
@input="setKeyValue('type', $event)" @update:modelValue="setKeyValue('type', $event)"
> >
<n8n-option <n8n-option
v-for="credentialType in allCredentialTypes" v-for="credentialType in allCredentialTypes"

View file

@ -307,11 +307,11 @@ const refreshBranches = async () => {
<label>{{ locale.baseText('settings.versionControl.branches') }}</label> <label>{{ locale.baseText('settings.versionControl.branches') }}</label>
<div :class="$style.branchSelection"> <div :class="$style.branchSelection">
<n8n-select <n8n-select
:value="versionControlStore.preferences.branchName" :modelValue="versionControlStore.preferences.branchName"
class="mb-s" class="mb-s"
size="medium" size="medium"
filterable filterable
@input="onSelect" @update:modelValue="onSelect"
data-test-id="version-control-branch-select" data-test-id="version-control-branch-select"
> >
<n8n-option <n8n-option

View file

@ -77,7 +77,11 @@
color="text-base" color="text-base"
class="mb-3xs" class="mb-3xs"
/> />
<n8n-select :value="filters.status" @input="setKeyValue('status', $event)" size="medium"> <n8n-select
:modelValue="filters.status"
@update:modelValue="setKeyValue('status', $event)"
size="medium"
>
<n8n-option <n8n-option
v-for="option in statusFilterOptions" v-for="option in statusFilterOptions"
:key="option.label" :key="option.label"