UNPKG

@ntohq/buefy-next

Version:

Lightweight UI components for Vue.js (v3) based on Bulma

3 lines (2 loc) 11.3 kB
/*! Buefy v0.2.0 | MIT License | github.com/buefy/buefy */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Menu={},e.Vue)}(this,(function(e,t){"use strict";var n=t.defineComponent({provide(){return{BMenuItemContainer:this}},data:()=>({menuItems:[]}),methods:{appendMenuItem(e){this.menuItems.push(e)},removeMenuItem(e){const t=this.menuItems.indexOf(e);-1!==t&&this.menuItems.splice(t,1)}}}),a=t.defineComponent({name:"BMenu",mixins:[n],props:{accordion:{type:Boolean,default:!0},activable:{type:Boolean,default:!0}},data:()=>({_isMenu:!0})}),l=(e,t)=>{const n=e.__vccOpts||e;for(const[e,a]of t)n[e]=a;return n};const o={class:"menu"};var i=l(a,[["render",function(e,n,a,l,i,r){return t.openBlock(),t.createElementBlock("div",o,[t.renderSlot(e.$slots,"default")])}],["__file","/home/runner/work/buefy-next/buefy-next/packages/buefy-next/src/components/menu/Menu.vue"]]);let r={defaultContainerElement:null,defaultIconPack:"mdi",defaultIconComponent:null,defaultIconPrev:"chevron-left",defaultIconNext:"chevron-right",defaultLocale:void 0,defaultDialogConfirmText:null,defaultDialogCancelText:null,defaultSnackbarDuration:3500,defaultSnackbarPosition:null,defaultToastDuration:2e3,defaultToastPosition:null,defaultNotificationDuration:2e3,defaultNotificationPosition:null,defaultTooltipType:"is-primary",defaultTooltipDelay:null,defaultTooltipCloseDelay:null,defaultSidebarDelay:null,defaultInputAutocomplete:"on",defaultDateFormatter:null,defaultDateParser:null,defaultDateCreator:null,defaultTimeCreator:null,defaultDayNames:null,defaultMonthNames:null,defaultFirstDayOfWeek:null,defaultUnselectableDaysOfWeek:null,defaultTimeFormatter:null,defaultTimeParser:null,defaultDatetimeFormatter:null,defaultDatetimeParser:null,defaultDatetimeCreator:null,defaultClockpickerHoursLabel:null,defaultClockpickerMinutesLabel:null,defaultColorFormatter:null,defaultColorParser:null,defaultModalCanCancel:["escape","x","outside","button"],defaultModalScroll:null,defaultDatepickerMobileNative:!0,defaultTimepickerMobileNative:!0,defaultTimepickerMobileModal:!0,defaultNoticeQueue:!0,defaultInputHasCounter:!0,defaultCompatFallthrough:!0,defaultTaginputHasCounter:!0,defaultUseHtml5Validation:!0,defaultDropdownMobileModal:!0,defaultFieldLabelPosition:null,defaultDatepickerYearsRange:[-100,10],defaultDatepickerNearbyMonthDays:!0,defaultDatepickerNearbySelectableMonthDays:!1,defaultDatepickerShowWeekNumber:!1,defaultDatepickerWeekNumberClickable:!1,defaultDatepickerMobileModal:!0,defaultTrapFocus:!0,defaultAutoFocus:!0,defaultButtonRounded:!1,defaultSwitchRounded:!0,defaultCarouselInterval:3500,defaultTabsExpanded:!1,defaultTabsAnimated:!0,defaultTabsType:null,defaultStatusIcon:!0,defaultProgrammaticPromise:!1,defaultLinkTags:["a","button","input","router-link","nuxt-link","n-link","RouterLink","NuxtLink","NLink"],defaultImageWebpFallback:null,defaultImageLazy:!0,defaultImageResponsive:!0,defaultImageRatio:null,defaultImageSrcsetFormatter:null,defaultBreadcrumbTag:"a",defaultBreadcrumbAlign:"is-left",defaultBreadcrumbSeparator:"",defaultBreadcrumbSize:"is-medium",customIconPacks:null};var s=Object.defineProperty,u=Object.getOwnPropertySymbols,c=Object.prototype.hasOwnProperty,d=Object.prototype.propertyIsEnumerable,f=(e,t,n)=>t in e?s(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,m=(e,t)=>{for(var n in t||(t={}))c.call(t,n)&&f(e,n,t[n]);if(u)for(var n of u(t))d.call(t,n)&&f(e,n,t[n]);return e};const p=e=>"object"==typeof e&&!Array.isArray(e),h=(e,t,n=!1)=>{if(n||!Object.assign){const a=n=>p(t[n])&&null!==e&&Object.prototype.hasOwnProperty.call(e,n)&&p(e[n]),l=Object.getOwnPropertyNames(t).map((l=>({[l]:a(l)?h(e[l],t[l]||{},n):t[l]}))).reduce(((e,t)=>m(m({},e),t)),{});return m(m({},e),l)}return Object.assign(e,t)},k=h,g={sizes:{default:"mdi-24px","is-small":null,"is-medium":"mdi-36px","is-large":"mdi-48px"},iconPrefix:"mdi-"},b=()=>{const e=r&&r.defaultIconComponent?"":"fa-";return{sizes:{default:null,"is-small":null,"is-medium":e+"lg","is-large":e+"2x"},iconPrefix:e,internalIcons:{information:"info-circle",alert:"exclamation-triangle","alert-circle":"exclamation-circle","chevron-right":"angle-right","chevron-left":"angle-left","chevron-down":"angle-down","eye-off":"eye-slash","menu-down":"caret-down","menu-up":"caret-up","close-circle":"times-circle"}}};var y=()=>{let e={mdi:g,fa:b(),fas:b(),far:b(),fad:b(),fab:b(),fal:b(),"fa-solid":b(),"fa-regular":b(),"fa-light":b(),"fa-thin":b(),"fa-duotone":b(),"fa-brands":b()};return r&&r.customIconPacks&&(e=k(e,r.customIconPacks,!0)),e};var C=l(t.defineComponent({name:"BIcon",props:{type:[String,Object],component:String,pack:String,icon:{type:String,required:!0},size:String,customSize:String,customClass:String,both:Boolean},computed:{iconConfig(){return y()[this.newPack]},iconPrefix(){return this.iconConfig&&this.iconConfig.iconPrefix?this.iconConfig.iconPrefix:""},newIcon(){return`${this.iconPrefix}${this.getEquivalentIconOf(this.icon)}`},newPack(){return this.pack||r.defaultIconPack},newType(){if(!this.type)return;let e=[];if("string"==typeof this.type)e=this.type.split("-");else for(const t in this.type)if(this.type[t]){e=t.split("-");break}if(e.length<=1)return;const[,...t]=e;return`has-text-${t.join("-")}`},newCustomSize(){return this.customSize||this.customSizeByPack},customSizeByPack(){if(this.iconConfig&&this.iconConfig.sizes){if(this.size&&void 0!==this.iconConfig.sizes[this.size])return this.iconConfig.sizes[this.size];if(this.iconConfig.sizes.default)return this.iconConfig.sizes.default}return null},useIconComponent(){return this.component||r.defaultIconComponent}},methods:{getEquivalentIconOf(e){if(!this.both)return e;if(null==this.iconConfig)return e;const t=this.iconConfig;return t&&t.internalIcons&&t.internalIcons[e]?t.internalIcons[e]:e}}}),[["render",function(e,n,a,l,o,i){return t.openBlock(),t.createElementBlock("span",{class:t.normalizeClass(["icon",[e.newType,e.size]])},[e.useIconComponent?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.useIconComponent),{key:1,icon:[e.newPack,e.newIcon],size:e.newCustomSize,class:t.normalizeClass([e.customClass])},null,8,["icon","size","class"])):(t.openBlock(),t.createElementBlock("i",{key:0,class:t.normalizeClass([e.newPack,e.newIcon,e.newCustomSize,e.customClass])},null,2))],2)}],["__file","/home/runner/work/buefy-next/buefy-next/packages/buefy-next/src/components/icon/Icon.vue"]]),v=t.defineComponent({name:"BMenuList",components:{BIcon:C},props:{label:String,icon:String,iconPack:String,ariaRole:{type:String,default:""},size:{type:String,default:"is-small"}}});const x={key:0,class:"menu-label"},w=["role"];var B=l(v,[["render",function(e,n,a,l,o,i){const r=t.resolveComponent("b-icon");return t.openBlock(),t.createElementBlock(t.Fragment,null,[e.label||e.$slots.label?(t.openBlock(),t.createElementBlock("p",x,[e.label?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[e.icon?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createVNode(r,{icon:e.icon,pack:e.iconPack,size:e.size},null,8,["icon","pack","size"]),t.createElementVNode("span",null,t.toDisplayString(e.label),1)],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(t.toDisplayString(e.label),1)],64))],64)):t.renderSlot(e.$slots,"label",{key:1})])):t.createCommentVNode("v-if",!0),t.createElementVNode("ul",{class:"menu-list",role:"menu"===e.ariaRole?e.ariaRole:void 0},[t.renderSlot(e.$slots,"default")],8,w)],64)}],["__file","/home/runner/work/buefy-next/buefy-next/packages/buefy-next/src/components/menu/MenuList.vue"]]),I=Object.getOwnPropertySymbols,S=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable,M=t.defineComponent({inheritAttrs:!1,props:{compatFallthrough:{type:Boolean,default:()=>r.defaultCompatFallthrough}},computed:{rootAttrs(){return this.compatFallthrough?{class:this.$attrs.class,style:this.$attrs.style,id:this.$attrs.id}:{}},fallthroughAttrs(){if(this.compatFallthrough){return((e,t)=>{var n={};for(var a in e)S.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&I)for(var a of I(e))t.indexOf(a)<0&&P.call(e,a)&&(n[a]=e[a]);return n})(this.$attrs,["style","class","id"])}return this.$attrs}}}),z=t.defineComponent({name:"BMenuItem",components:{BIcon:C},mixins:[M,n],inject:{parent:{from:"BMenuItemContainer",default:null}},props:{label:String,modelValue:Boolean,expanded:Boolean,disabled:Boolean,iconPack:String,icon:String,animation:{type:String,default:"slide"},tag:{type:String,default:"a",validator:e=>r.defaultLinkTags.indexOf(e)>=0},ariaRole:{type:String,default:""},size:{type:String,default:"is-small"}},emits:{"update:modelValue":e=>!0,"update:expanded":e=>!0},data(){return{newActive:this.modelValue,newExpanded:this.expanded}},computed:{ariaRoleMenu(){return"menuitem"===this.ariaRole?this.ariaRole:void 0}},watch:{modelValue(e){this.newActive=e},expanded(e){this.newExpanded=e}},methods:{onClick(){if(this.disabled)return;const e=this.getMenu();this.reset(this.parent,e),this.newExpanded=this.$props.expanded||!this.newExpanded,this.$emit("update:expanded",this.newExpanded),e&&e.activable&&(this.newActive=!0,this.$emit("update:modelValue",this.newActive))},reset(e,t){null!=e&&e.menuItems.forEach((n=>{n!==this&&(this.reset(n,t),(!e.$data._isMenu||e.$data._isMenu&&e.accordion)&&(n.newExpanded=!1,n.$emit("update:expanded",n.newExpanded)),t&&t.activable&&(n.newActive=!1,n.$emit("update:modelValue",n.newActive)))}))},getMenu(){let e=this.parent;for(;e&&!e.$data._isMenu;)e=e.parent;return e}},mounted(){this.parent&&this.parent.appendMenuItem(this)},beforeUnmount(){this.parent&&this.parent.removeMenuItem(this)}});const D=["role"],E={key:1};var O=l(z,[["render",function(e,n,a,l,o,i){const r=t.resolveComponent("b-icon");return t.openBlock(),t.createElementBlock("li",t.mergeProps({role:e.ariaRoleMenu},e.rootAttrs),[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.tag),t.mergeProps(e.fallthroughAttrs,{class:{"is-active":e.newActive,"is-expanded":e.newExpanded,"is-disabled":e.disabled,"icon-text":e.icon},onClick:n[0]||(n[0]=t=>e.onClick())}),{default:t.withCtx((()=>[e.icon?(t.openBlock(),t.createBlock(r,{key:0,icon:e.icon,pack:e.iconPack,size:e.size},null,8,["icon","pack","size"])):t.createCommentVNode("v-if",!0),e.label?(t.openBlock(),t.createElementBlock("span",E,t.toDisplayString(e.label),1)):t.renderSlot(e.$slots,"label",{key:2,expanded:e.newExpanded,active:e.newActive})])),_:3},16,["class"])),t.createCommentVNode(" sub menu items "),e.$slots.default?(t.openBlock(),t.createBlock(t.Transition,{key:0,name:e.animation,persisted:""},{default:t.withCtx((()=>[t.withDirectives(t.createElementVNode("ul",null,[t.renderSlot(e.$slots,"default")],512),[[t.vShow,e.newExpanded]])])),_:3},8,["name"])):t.createCommentVNode("v-if",!0)],16,D)}],["__file","/home/runner/work/buefy-next/buefy-next/packages/buefy-next/src/components/menu/MenuItem.vue"]]);const T=(e,t,n)=>{const a=n||t.name;if(null==a)throw new Error("Buefy.registerComponent: missing component name");e.component(a,t)},N={install(e){T(e,i),T(e,B,"BMenuList"),T(e,O)}};e.BMenu=i,e.BMenuItem=O,e.BMenuList=B,e.default=N,Object.defineProperty(e,"__esModule",{value:!0})}));