UNPKG

multiple-select

Version:

Multiple select is a jQuery plugin to select multiple elements with checkboxes :).

11 lines (9 loc) 4.09 kB
/** * multiple-select - Multiple select is a jQuery plugin to select multiple elements with checkboxes :). * * @version v1.6.0 * @homepage http://multiple-select.wenzhixin.net.cn * @author wenzhixin <wenzhixin2010@gmail.com> (http://wenzhixin.net.cn/) * @license MIT */ const t=window.jQuery;function e(t,e,i,s,l,r,n,a,u,h){"boolean"!=typeof n&&(u=a,a=n,n=!1);const o="function"==typeof i?i.options:i;let d;if(t&&t.render&&(o.render=t.render,o.staticRenderFns=t.staticRenderFns,o._compiled=!0,l&&(o.functional=!0)),s&&(o._scopeId=s),r?(d=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__),e&&e.call(this,u(t)),t&&t._registeredComponents&&t._registeredComponents.add(r)},o._ssrRegister=d):e&&(d=n?function(t){e.call(this,h(t,this.$root.$options.shadowRoot))}:function(t){e.call(this,a(t))}),d)if(o.functional){const t=o.render;o.render=function(e,i){return d.call(i),t(e,i)}}else{const t=o.beforeCreate;o.beforeCreate=t?[].concat(t,d):[d]}return i}const i={name:"MultipleSelect",props:{value:{type:[String,Number,Array,Object],default:void 0},name:{type:String,default:void 0},multiple:{type:[Boolean,String],default:!1},disabled:{type:Boolean,default:!1},width:{type:[Number,String],default:void 0},size:{type:String,default:void 0},data:{type:[Array,Object],default(){}},options:{type:Object,default:()=>({})}},data(){return{currentValue:this.value}},watch:{value(){this.currentValue!==this.value&&(this.currentValue=this.value,this._initDefaultValue())},multiple(){this._initSelect()},disabled(){this.$nextTick((()=>{this.disabled?this.disable():this.enable()}))},width(){this._initSelectValue()},options:{handler(){this._initSelectValue()},deep:!0},data:{handler(){this._initSelectValue()},deep:!0}},beforeUpdate(){(this.slotDefault||this.slotDefault!==this.$slots.default)&&(this.slotDefault=this.$slots.default,this.$nextTick((()=>{this._refresh(),this._initSelectValue()})))},destroyed(){this.destroy(!0)},mounted(){this._refresh(),this.$select=t(this.$el).change((()=>{const t=this.getSelects();Array.isArray(this.currentValue)?this.currentValue=t:"number"==typeof this.currentValue?this.currentValue=t.length?+t[0]:void 0:this.currentValue=t.length?t[0]:void 0,this.$emit("input",this.currentValue),this.$emit("change",this.currentValue)})),this._hasInit&&this.$select.val()&&(void 0===this.currentValue||Array.isArray(this.currentValue)&&!this.currentValue.length)&&(this.currentValue=this.$select.val(),this.$emit("input",this.currentValue),this.$emit("change",this.currentValue));for(const e in t.fn.multipleSelect.defaults)/^on[A-Z]/.test(e)&&(t.fn.multipleSelect.defaults[e]=(...t)=>{this.$emit(e.replace(/([A-Z])/g,"-$1").toLowerCase(),...t)});this._initSelectValue()},methods:{_initSelectValue(){this._initSelect(),void 0===this.currentValue||Array.isArray(this.currentValue)&&!this.currentValue.length||this._initDefaultValue()},_initSelect(){const e={...(i=this.options,i?t.extend(!0,Array.isArray(i)?[]:{},i):i),single:!this.multiple,width:this.width,size:this.size,data:this.data};var i;this._hasInit?this.refreshOptions(e):(this.$select.multipleSelect(e),this._hasInit=!0)},_initDefaultValue(){this.$nextTick((()=>{try{this.setSelects(Array.isArray(this.currentValue)?this.currentValue:[this.currentValue],null,!0)}catch(t){}}))},...(()=>{const e={};for(const i of t.fn.multipleSelect.methods)e[i]=function(...t){return this.$select.multipleSelect(i,...t)};return e})(),_refresh(){if(this.$slots.default)for(const e of this.$slots.default)"OPTION"===e.elm.nodeName&&e.data.domProps&&e.data.domProps.value&&t(e.elm).data("value",e.data.domProps.value)},refresh(){this._refresh(),this.$select.multipleSelect("refresh")}}};var s=function(){var t=this,e=t.$createElement;return(t._self._c||e)("select",{attrs:{name:t.name,multiple:t.multiple,disabled:t.disabled}},[t._t("default")],2)};s._withStripped=!0;const l=e({render:s,staticRenderFns:[]},undefined,i,undefined,false,undefined,!1,void 0,void 0,void 0);export{l as default};