element-gui
Version:
A Component Library for Vue.js.
1 lines • 7.68 kB
JavaScript
module.exports=function(t){var e={};function i(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)i.d(n,r,function(e){return t[e]}.bind(null,r));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="/dist/",i(i.s=145)}({0:function(t,e,i){"use strict";function n(t,e,i,n,r,s,o,l){var u,d="function"==typeof t?t.options:t;if(e&&(d.render=e,d.staticRenderFns=i,d._compiled=!0),n&&(d.functional=!0),s&&(d._scopeId="data-v-"+s),o?(u=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},d._ssrRegister=u):r&&(u=l?function(){r.call(this,(d.functional?this.parent:this).$root.$options.shadowRoot)}:r),u)if(d.functional){d._injectStyles=u;var a=d.render;d.render=function(t,e){return u.call(e),a(t,e)}}else{var c=d.beforeCreate;d.beforeCreate=c?[].concat(c,u):[u]}return{exports:t,options:d}}i.d(e,"a",(function(){return n}))},11:function(t,e){t.exports=require("element-gui/lib/utils/clickoutside")},13:function(t,e){t.exports=require("element-gui/lib/mixins/migrating")},145:function(t,e,i){"use strict";i.r(e);var n=i(11),r=i.n(n),s=i(4),o=i.n(s),l=i(13),u=i.n(l),d=i(21),a=i.n(d),c=i(40),h=i.n(c),m=i(2),f={name:"ElDropdown",componentName:"ElDropdown",mixins:[o.a,u.a],directives:{Clickoutside:r.a},components:{ElButton:a.a,ElButtonGroup:h.a},provide:function(){return{dropdown:this}},props:{trigger:{type:String,default:"hover"},type:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},placement:{type:String,default:"bottom-end"},showTimeout:{type:Number,default:250},hideTimeout:{type:Number,default:150},tabindex:{type:Number,default:0},disabled:{type:Boolean,default:!1},controllable:{type:Boolean,default:!0}},data:function(){return{timeout:null,visible:!1,triggerElm:null,menuItems:null,menuItemsArray:null,dropdownElm:null,focusing:!1,listId:"dropdown-menu-"+Object(m.generateId)()}},computed:{dropdownSize:function(){return this.size||(this.$ELEMENT||{}).size}},mounted:function(){this.$on("menu-item-click",this.handleMenuItemClick)},watch:{visible:function(t){this.broadcast("ElDropdownMenu","visible",t),this.$emit("visible-change",t)},focusing:function(t){var e=this.$el.querySelector(".el-dropdown-selfdefine");e&&(t?e.className+=" focusing":e.className=e.className.replace("focusing",""))}},methods:{getMigratingConfig:function(){return{props:{"menu-align":"menu-align is renamed to placement."}}},show:function(){var t=this;this.disabled||(clearTimeout(this.timeout),this.timeout=setTimeout((function(){t.visible=!0}),"click"===this.trigger?0:this.showTimeout))},hide:function(){var t=this;this.disabled||(this.removeTabindex(),this.tabindex>=0&&this.resetTabindex(this.triggerElm),clearTimeout(this.timeout),this.timeout=setTimeout((function(){t.visible=!1}),"click"===this.trigger?0:this.hideTimeout))},handleClick:function(t){this.disabled||("contextmenu"===this.trigger&&t.preventDefault(),this.visible?this.hide():this.show())},handleTriggerKeyDown:function(t){if(this.controllable){var e=t.keyCode;[38,40].indexOf(e)>-1?(this.removeTabindex(),this.resetTabindex(this.menuItems[0]),this.menuItems[0].focus(),t.preventDefault(),t.stopPropagation()):13===e?this.handleClick():[9,27].indexOf(e)>-1&&this.hide()}},handleItemKeyDown:function(t){if(this.controllable){var e=t.keyCode,i=t.target,n=this.menuItemsArray.indexOf(i),r=this.menuItemsArray.length-1,s=void 0;[38,40].indexOf(e)>-1?(s=38===e?0!==n?n-1:0:n<r?n+1:r,this.removeTabindex(),this.resetTabindex(this.menuItems[s]),this.menuItems[s].focus(),t.preventDefault(),t.stopPropagation()):13===e?(this.triggerElmFocus(),i.click(),this.hideOnClick&&(this.visible=!1)):[9,27].indexOf(e)>-1&&(this.hide(),this.triggerElmFocus())}},resetTabindex:function(t){this.removeTabindex(),t.setAttribute("tabindex","0")},removeTabindex:function(){this.triggerElm.setAttribute("tabindex","-1"),this.menuItemsArray.forEach((function(t){t.setAttribute("tabindex","-1")}))},initAria:function(){this.dropdownElm.setAttribute("id",this.listId),this.triggerElm.setAttribute("aria-haspopup","listbox"),this.triggerElm.setAttribute("aria-controls",this.listId),this.splitButton||(this.triggerElm.setAttribute("role","button"),this.triggerElm.setAttribute("tabindex",this.tabindex),this.triggerElm.setAttribute("class",(this.triggerElm.getAttribute("class")||"")+" el-dropdown-selfdefine"))},initEvent:function(){var t=this,e=this.trigger,i=this.show,n=this.hide,r=this.handleClick,s=this.splitButton,o=this.handleTriggerKeyDown,l=this.handleItemKeyDown;this.triggerElm=s?this.$refs.trigger.$el:this.$refs.default;var u=this.dropdownElm;this.triggerElm.addEventListener("keydown",o),u.addEventListener("keydown",l,!0),s||(this.triggerElm.addEventListener("focus",(function(){t.focusing=!0})),this.triggerElm.addEventListener("blur",(function(){t.focusing=!1})),this.triggerElm.addEventListener("click",(function(){t.focusing=!1}))),"hover"===e?(this.triggerElm.addEventListener("mouseenter",i),this.triggerElm.addEventListener("mouseleave",n),u.addEventListener("mouseenter",i),u.addEventListener("mouseleave",n)):"click"===e?this.triggerElm.addEventListener("click",r):"contextmenu"===e&&this.triggerElm.addEventListener("contextmenu",r)},handleMenuItemClick:function(t,e){clearTimeout(this.timeout),this.hideOnClick&&(this.visible=!1),this.$emit("command",t,e)},triggerElmFocus:function(){this.triggerElm.focus&&this.triggerElm.focus()},initDomOperation:function(){this.dropdownElm=this.popperElm,this.menuItems=this.dropdownElm.querySelectorAll('[tabindex="-1"]'),this.menuItemsArray=[].slice.call(this.menuItems),this.initEvent(),this.initAria()}},render:function(t){var e=this,i=this.hide,n=this.splitButton,r=this.type,s=this.dropdownSize,o=this.disabled,l=null;if(n)l=t("el-button-group",[t("el-button",{attrs:{type:r,size:s,disabled:o},nativeOn:{click:function(t){e.$emit("click",t),i()}}},[this.$slots.default]),t("el-button",{ref:"trigger",attrs:{type:r,size:s,disabled:o},class:"el-dropdown__caret-button"},[t("i",{class:"el-dropdown__icon el-icon-arrow-down"})])]);else{l=t("div",{class:"el-dropdown-link",attrs:{"aria-disabled":o}},[this.$slots.default]);var u=this.$slots.default[0].data||{},d=u.attrs,a=void 0===d?{}:d;o&&!a.disabled&&(a.disabled=!0,u.attrs=a)}var c=o?null:this.$slots.dropdown;return t("div",{class:{"is-disabled":o,"el-dropdown":!0},directives:[{name:"clickoutside",value:i}],attrs:{"aria-disabled":o}},[t("div",{ref:"default"},[l]),c])}},g=i(0),p=Object(g.a)(f,void 0,void 0,!1,null,null,null).exports;p.install=function(t){t.component(p.name,p)};e.default=p},2:function(t,e){t.exports=require("element-gui/lib/utils/util")},21:function(t,e){t.exports=require("element-gui/lib/button")},4:function(t,e){t.exports=require("element-gui/lib/mixins/emitter")},40:function(t,e){t.exports=require("element-gui/lib/button-group")}});