From 4b6fd1ae04bbc56da851ce53285c8b214784e91e Mon Sep 17 00:00:00 2001 From: Joseph Ojoko Date: Fri, 29 Mar 2024 05:08:26 +0100 Subject: [PATCH] fix(RuiMenuSelect): extend component to work as v-select replacement --- example/src/views/IconView.vue | 30 +- example/src/views/MenuView.vue | 98 ++++- .../accordions/accordions/Accordions.vue | 2 +- src/components/buttons/button/Button.vue | 4 + .../forms/select/RuiMenuSelect.spec.ts | 8 +- .../forms/select/RuiMenuSelect.stories.ts | 14 +- src/components/forms/select/RuiMenuSelect.vue | 373 ++++++++++++------ src/components/overlays/Teleport.ts | 2 +- src/components/overlays/menu/Menu.vue | 38 +- src/components/tables/TablePagination.vue | 10 +- src/components/tabs/tabs/Tabs.vue | 2 +- src/composables/dropdown-menu.ts | 123 ++++++ tests/stubs/RouterLinkStub.ts | 4 +- 13 files changed, 549 insertions(+), 159 deletions(-) create mode 100644 src/composables/dropdown-menu.ts diff --git a/example/src/views/IconView.vue b/example/src/views/IconView.vue index 3625882..5ffd34e 100644 --- a/example/src/views/IconView.vue +++ b/example/src/views/IconView.vue @@ -1,5 +1,5 @@ diff --git a/example/src/views/MenuView.vue b/example/src/views/MenuView.vue index 20e8d74..75cc24a 100644 --- a/example/src/views/MenuView.vue +++ b/example/src/views/MenuView.vue @@ -153,7 +153,7 @@ const menuSelect = ref([ }, { disabled: false, - outlined: true, + variant: 'outlined', keyAttr: 'id', textAttr: 'label', value: undefined, @@ -161,7 +161,7 @@ const menuSelect = ref([ }, { disabled: true, - outlined: true, + variant: 'outlined', keyAttr: 'id', textAttr: 'label', value: undefined, @@ -186,7 +186,7 @@ const menuSelect = ref([ { dense: true, disabled: false, - outlined: true, + variant: 'outlined', keyAttr: 'id', textAttr: 'label', value: undefined, @@ -195,7 +195,7 @@ const menuSelect = ref([ { dense: true, disabled: true, - outlined: true, + variant: 'outlined', keyAttr: 'id', textAttr: 'label', value: undefined, @@ -209,36 +209,46 @@ const menuSelectCustom = ref([ keyAttr: 'id', textAttr: 'label', value: undefined, + label: 'Menu with very long name to test and see truncate behaviour', + hint: 'lorem ipsum dolor', options, }, { - disabled: true, keyAttr: 'id', textAttr: 'label', value: undefined, + dense: true, + errorMessages: ['This is required'], + hint: 'lorem ipsum dolor', + showDetails: true, options, }, { disabled: false, - outlined: true, + variant: 'outlined', keyAttr: 'id', textAttr: 'label', + successMessages: ['lgtm!'], + showDetails: true, value: undefined, options, }, { disabled: true, - outlined: true, + variant: 'outlined', keyAttr: 'id', textAttr: 'label', value: undefined, options, }, ]); + +const test = ref(null);