@gits-id/dropdown
Version:
GITS Dropdown Component
2 lines (1 loc) • 4.18 kB
JavaScript
(function(o,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@headlessui/vue"),require("@gits-id/icon")):typeof define=="function"&&define.amd?define(["exports","vue","@headlessui/vue","@gits-id/icon"],e):(o=typeof globalThis<"u"?globalThis:o||self,e(o.Dropdown={},o.Vue,o.vue$1,o.VIcon))})(this,function(o,e,a,s){"use strict";const f=(t=>t&&typeof t=="object"&&"default"in t?t:{default:t})(s),w="",m={key:0,class:"dropdown-divider"},i=e.defineComponent({__name:"DropdownItem",props:{text:null,to:null,href:null,icon:null,iconSize:{default:"sm"},iconClass:{default:""},newTab:{type:Boolean},divider:{type:Boolean},nuxt:{type:Boolean}},setup(t){const n=t,r=e.computed(()=>n.nuxt?e.resolveComponent("NuxtLink"):n.href?"a":n.to?e.resolveComponent("RouterLink"):"button"),l=e.computed(()=>({to:n.to??void 0,href:n.href??void 0,target:n.href&&n.newTab?"_blank":void 0,rel:n.href&&n.newTab?"noopener":void 0,...e.useAttrs()}));return(c,B)=>(e.openBlock(),e.createBlock(e.unref(a.MenuItem),null,{default:e.withCtx(({active:p})=>[t.divider?(e.openBlock(),e.createElementBlock("div",m)):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(r)),e.mergeProps({key:1,class:["group dropdown-item",{"dropdown-item--active":p}]},e.unref(l)),{default:e.withCtx(()=>[e.renderSlot(c.$slots,"icon",{},()=>[typeof t.icon=="string"?(e.openBlock(),e.createBlock(e.unref(f.default),{key:0,name:t.icon,size:t.iconSize,class:e.normalizeClass([t.iconClass,"dropdown-item-icon"])},null,8,["name","size","class"])):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.icon),{key:1,class:e.normalizeClass([t.iconClass,"dropdown-item-icon"])},null,8,["class"]))]),e.renderSlot(c.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.text),1)])]),_:2},1040,["class"]))]),_:3}))}}),h="",d=e.defineComponent({__name:"Dropdown",props:{modelValue:{type:Boolean,default:!1},btnProps:{default:()=>({variant:"secondary"})},label:{default:"Options"},right:{type:Boolean,default:!1},items:{default:()=>[]},top:{type:Boolean,default:!1},topClass:{default:"bottom-10"},bottomClass:{default:"top-6"},panelClass:{default:""},buttonWrapperClass:{default:""},rightClass:{default:"right-0"},leftClass:{default:"left-0"},transition:{default:"fade-scale"},icon:{default:"ri:arrow-down-s-line"},iconSize:{default:"sm"},iconClass:{default:""},prefixIcon:{default:""},prefixIconSize:{default:"sm"},prefixIconClass:null},setup(t){return(n,r)=>(e.openBlock(),e.createBlock(e.unref(a.Menu),{as:"div",class:"dropdown"},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["dropdown-button-wrapper",t.buttonWrapperClass])},[e.renderSlot(n.$slots,"activator",{btnProps:t.btnProps,label:t.label},()=>[e.createVNode(e.unref(a.MenuButton),e.mergeProps({as:"button",class:"dropdown-button-activator"},t.btnProps),{default:e.withCtx(()=>[e.createVNode(e.unref(s.Icon),{name:t.prefixIcon,size:t.prefixIconSize,class:e.normalizeClass([t.prefixIconClass,"dropdown-button-icon"]),"aria-hidden":"true"},null,8,["name","size","class"]),e.createTextVNode(" "+e.toDisplayString(t.label)+" ",1),e.createVNode(e.unref(s.Icon),{name:t.icon,size:t.iconSize,class:e.normalizeClass([t.iconClass,"dropdown-button-icon"]),"aria-hidden":"true"},null,8,["name","size","class"])]),_:1},16)])],2),e.createVNode(e.Transition,{name:t.transition},{default:e.withCtx(()=>[e.createVNode(e.unref(a.MenuItems),{class:e.normalizeClass(["dropdown-panel",[t.right?t.rightClass:t.leftClass,t.top?t.topClass:t.bottomClass,t.panelClass]])},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,l=>(e.openBlock(),e.createBlock(i,e.mergeProps({key:l.text},l),null,16))),128))])]),_:3},8,["class"])]),_:3},8,["name"])]),_:3}))}}),u=e.defineComponent({__name:"DropdownButton",setup(t){return(n,r)=>(e.openBlock(),e.createBlock(e.unref(a.MenuButton),null,{default:e.withCtx(l=>[e.renderSlot(n.$slots,"default",e.normalizeProps(e.guardReactiveProps(l)))]),_:3}))}});o.Dropdown=d,o.DropdownButton=u,o.DropdownItem=i,o.default=d,Object.defineProperties(o,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});