UNPKG

jiku-ui

Version:

A Component Library for Vue.js.

2 lines (1 loc) 15.1 kB
module.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var s=t[n]={i:n,l:!1,exports:{}};return e[n].call(s.exports,s,s.exports,i),s.l=!0,s.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)i.d(n,s,function(t){return e[t]}.bind(null,s));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=113)}({0:function(e,t,i){"use strict";function n(e,t,i,n,s,r,o,a){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),r&&(u._scopeId="data-v-"+r),o?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),s&&s.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(o)},u._ssrRegister=l):s&&(l=a?function(){s.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:s),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var p=u.beforeCreate;u.beforeCreate=p?[].concat(p,l):[l]}return{exports:e,options:u}}i.d(t,"a",(function(){return n}))},10:function(e,t){e.exports=require("jiku-ui/lib/mixins/migrating")},11:function(e,t){e.exports=require("jiku-ui/lib/input")},113:function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:function(){return e.toggleDropDownVisible(!1)},expression:"() => toggleDropDownVisible(false)"}],ref:"reference",class:["hn-cascader",e.realSize&&"hn-cascader--"+e.realSize,{"is-disabled":e.isDisabled}],on:{mouseenter:function(t){e.inputHover=!0},mouseleave:function(t){e.inputHover=!1},click:function(){return e.toggleDropDownVisible(!e.readonly||void 0)},keydown:e.handleKeyDown}},[i("hn-input",{ref:"input",class:{"is-focus":e.dropDownVisible},attrs:{size:e.realSize,placeholder:e.placeholder,readonly:e.readonly,disabled:e.isDisabled,"validate-event":!1},on:{focus:e.handleFocus,blur:e.handleBlur,input:e.handleInput},model:{value:e.multiple?e.presentText:e.inputValue,callback:function(t){e.multiple?e.presentText:e.inputValue=t},expression:"multiple ? presentText : inputValue"}},[i("template",{slot:"suffix"},[e.clearBtnVisible?i("i",{key:"clear",staticClass:"hn-input__icon hn-icon-circle-close",on:{click:function(t){return t.stopPropagation(),e.handleClear(t)}}}):i("i",{key:"arrow-down",class:["hn-input__icon","hn-icon-arrow-down",e.dropDownVisible&&"is-reverse"],on:{click:function(t){return t.stopPropagation(),e.toggleDropDownVisible()}}})])],2),e.multiple?i("div",{staticClass:"hn-cascader__tags"},[e._l(e.presentTags,(function(t,n){return i("hn-tag",{key:t.key,attrs:{type:"info",size:e.tagSize,hit:t.hitState,closable:t.closable,"disable-transitions":""},on:{close:function(t){return e.deleteTag(n)}}},[i("span",[e._v(e._s(t.text))])])})),e.filterable&&!e.isDisabled?i("input",{directives:[{name:"model",rawName:"v-model.trim",value:e.inputValue,expression:"inputValue",modifiers:{trim:!0}}],staticClass:"hn-cascader__search-input",attrs:{type:"text",placeholder:e.presentTags.length?"":e.placeholder},domProps:{value:e.inputValue},on:{input:[function(t){t.target.composing||(e.inputValue=t.target.value.trim())},function(t){return e.handleInput(e.inputValue,t)}],click:function(t){return t.stopPropagation(),e.toggleDropDownVisible(!0)},keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"delete",[8,46],t.key,["Backspace","Delete","Del"])?null:e.handleDelete(t)},blur:function(t){return e.$forceUpdate()}}}):e._e()],2):e._e(),i("transition",{attrs:{name:"hn-zoom-in-top"},on:{"after-leave":e.handleDropdownLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.dropDownVisible,expression:"dropDownVisible"}],ref:"popper",class:["hn-popper","hn-cascader__dropdown",e.popperClass]},[i("hn-cascader-panel",{directives:[{name:"show",rawName:"v-show",value:!e.filtering,expression:"!filtering"}],ref:"panel",attrs:{options:e.options,props:e.config,border:!1,"render-label":e.$scopedSlots.default},on:{"expand-change":e.handleExpandChange,close:function(t){return e.toggleDropDownVisible(!1)}},model:{value:e.checkedValue,callback:function(t){e.checkedValue=t},expression:"checkedValue"}}),e.filterable?i("hn-scrollbar",{directives:[{name:"show",rawName:"v-show",value:e.filtering,expression:"filtering"}],ref:"suggestionPanel",staticClass:"hn-cascader__suggestion-panel",attrs:{tag:"ul","view-class":"hn-cascader__suggestion-list"},nativeOn:{keydown:function(t){return e.handleSuggestionKeyDown(t)}}},[e.suggestions.length?e._l(e.suggestions,(function(t,n){return i("li",{key:t.uid,class:["hn-cascader__suggestion-item",t.checked&&"is-checked"],attrs:{tabindex:-1},on:{click:function(t){return e.handleSuggestionClick(n)}}},[i("span",[e._v(e._s(t.text))]),t.checked?i("i",{staticClass:"hn-icon-check"}):e._e()])})):e._t("empty",[i("li",{staticClass:"hn-cascader__empty-text"},[e._v(e._s(e.t("hn.cascader.noMatch")))])])],2):e._e()],1)])],1)};n._withStripped=!0;var s=i(5),r=i.n(s),o=i(12),a=i.n(o),l=i(4),u=i.n(l),c=i(6),p=i.n(c),h=i(10),d=i.n(h),f=i(11),g=i.n(f),b=i(39),m=i.n(b),v=i(13),x=i.n(v),y=i(56),k=i.n(y),w=i(42),_=i.n(w),D=i(20),S=i(3),V=i(16),T=i(15),C=i(17),$=i.n(C),O=_.a.keys,P={expandTrigger:{newProp:"expandTrigger",type:String},changeOnSelect:{newProp:"checkStrictly",type:Boolean},hoverThreshold:{newProp:"hoverThreshold",type:Number}},j={props:{placement:{type:String,default:"bottom-start"},appendToBody:r.a.props.appendToBody,visibleArrow:{type:Boolean,default:!0},arrowOffset:r.a.props.arrowOffset,offset:r.a.props.offset,boundariesPadding:r.a.props.boundariesPadding,popperOptions:r.a.props.popperOptions},methods:r.a.methods,data:r.a.data,beforeDestroy:r.a.beforeDestroy},q={medium:36,small:32,mini:28},N={name:"HnCascader",directives:{Clickoutside:a.a},mixins:[j,u.a,p.a,d.a],inject:{hnForm:{default:""},hnFormItem:{default:""}},components:{HnInput:g.a,HnTag:m.a,HnScrollbar:x.a,HnCascaderPanel:k.a},props:{value:{},options:Array,props:Object,size:String,placeholder:{type:String,default:function(){return Object(D.t)("hn.cascader.placeholder")}},disabled:Boolean,clearable:Boolean,filterable:Boolean,filterMethod:Function,separator:{type:String,default:" / "},showAllLevels:{type:Boolean,default:!0},collapseTags:Boolean,debounce:{type:Number,default:300},beforeFilter:{type:Function,default:function(){return function(){}}},popperClass:String},data:function(){return{dropDownVisible:!1,checkedValue:this.value||null,inputHover:!1,inputValue:null,presentText:null,presentTags:[],checkedNodes:[],filtering:!1,suggestions:[],inputInitialHeight:0,pressDeleteCount:0}},computed:{realSize:function(){var e=(this.hnFormItem||{}).hnFormItemSize;return this.size||e||(this.$HEINER||{}).size},tagSize:function(){return["small","mini"].indexOf(this.realSize)>-1?"mini":"small"},isDisabled:function(){return this.disabled||(this.hnForm||{}).disabled},config:function(){var e=this.props||{},t=this.$attrs;return Object.keys(P).forEach((function(i){var n=P[i],s=n.newProp,r=n.type,o=t[i]||t[Object(S.kebabCase)(i)];Object(V.isDef)(i)&&!Object(V.isDef)(e[s])&&(r===Boolean&&""===o&&(o=!0),e[s]=o)})),e},multiple:function(){return this.config.multiple},leafOnly:function(){return!this.config.checkStrictly},readonly:function(){return!this.filterable||this.multiple},clearBtnVisible:function(){return!(!this.clearable||this.isDisabled||this.filtering||!this.inputHover)&&(this.multiple?!!this.checkedNodes.filter((function(e){return!e.isDisabled})).length:!!this.presentText)},panel:function(){return this.$refs.panel}},watch:{disabled:function(){this.computePresentContent()},value:function(e){Object(S.isEqual)(e,this.checkedValue)||(this.checkedValue=e,this.computePresentContent())},checkedValue:function(e){var t=this.value,i=this.dropDownVisible,n=this.config,s=n.checkStrictly,r=n.multiple;Object(S.isEqual)(e,t)&&!Object(V.isUndefined)(t)||(this.computePresentContent(),r||s||!i||this.toggleDropDownVisible(!1),this.$emit("input",e),this.$emit("change",e),this.dispatch("HnFormItem","hn.form.change",[e]))},options:{handler:function(){this.$nextTick(this.computePresentContent)},deep:!0},presentText:function(e){this.inputValue=e},presentTags:function(e,t){this.multiple&&(e.length||t.length)&&this.$nextTick(this.updateStyle)},filtering:function(e){this.$nextTick(this.updatePopper)}},mounted:function(){var e=this,t=this.$refs.input;t&&t.$el&&(this.inputInitialHeight=t.$el.offsetHeight||q[this.realSize]||40),Object(S.isEmpty)(this.value)||this.computePresentContent(),this.filterHandler=$()(this.debounce,(function(){var t=e.inputValue;if(t){var i=e.beforeFilter(t);i&&i.then?i.then(e.getSuggestions):!1!==i?e.getSuggestions():e.filtering=!1}else e.filtering=!1})),Object(T.addResizeListener)(this.$el,this.updateStyle)},beforeDestroy:function(){Object(T.removeResizeListener)(this.$el,this.updateStyle)},methods:{getMigratingConfig:function(){return{props:{"expand-trigger":"expand-trigger is removed, use `props.expandTrigger` instead.","change-on-select":"change-on-select is removed, use `props.checkStrictly` instead.","hover-threshold":"hover-threshold is removed, use `props.hoverThreshold` instead"},events:{"active-item-change":"active-item-change is renamed to expand-change"}}},toggleDropDownVisible:function(e){var t=this;if(!this.isDisabled){var i=this.dropDownVisible,n=this.$refs.input;(e=Object(V.isDef)(e)?e:!i)!==i&&(this.dropDownVisible=e,e&&this.$nextTick((function(){t.updatePopper(),t.panel.scrollIntoView()})),n.$refs.input.setAttribute("aria-expanded",e),this.$emit("visible-change",e))}},handleDropdownLeave:function(){this.filtering=!1,this.inputValue=this.presentText},handleKeyDown:function(e){switch(e.keyCode){case O.enter:this.toggleDropDownVisible();break;case O.down:this.toggleDropDownVisible(!0),this.focusFirstNode(),e.preventDefault();break;case O.esc:case O.tab:this.toggleDropDownVisible(!1)}},handleFocus:function(e){this.$emit("focus",e)},handleBlur:function(e){this.$emit("blur",e)},handleInput:function(e,t){!this.dropDownVisible&&this.toggleDropDownVisible(!0),t&&t.isComposing||(e?this.filterHandler():this.filtering=!1)},handleClear:function(){this.presentText="",this.panel.clearCheckedNodes()},handleExpandChange:function(e){this.$nextTick(this.updatePopper.bind(this)),this.$emit("expand-change",e),this.$emit("active-item-change",e)},focusFirstNode:function(){var e=this;this.$nextTick((function(){var t=e.filtering,i=e.$refs,n=i.popper,s=i.suggestionPanel,r=null;t&&s?r=s.$el.querySelector(".hn-cascader__suggestion-item"):r=n.querySelector(".hn-cascader-menu").querySelector('.hn-cascader-node[tabindex="-1"]');r&&(r.focus(),!t&&r.click())}))},computePresentContent:function(){var e=this;this.$nextTick((function(){e.config.multiple?(e.computePresentTags(),e.presentText=e.presentTags.length?" ":null):e.computePresentText()}))},computePresentText:function(){var e=this.checkedValue,t=this.config;if(!Object(S.isEmpty)(e)){var i=this.panel.getNodeByValue(e);if(i&&(t.checkStrictly||i.isLeaf))return void(this.presentText=i.getText(this.showAllLevels,this.separator))}this.presentText=null},computePresentTags:function(){var e=this.isDisabled,t=this.leafOnly,i=this.showAllLevels,n=this.separator,s=this.collapseTags,r=this.getCheckedNodes(t),o=[],a=function(t){return{node:t,key:t.uid,text:t.getText(i,n),hitState:!1,closable:!e&&!t.isDisabled}};if(r.length){var l=r[0],u=r.slice(1),c=u.length;o.push(a(l)),c&&(s?o.push({key:-1,text:"+ "+c,closable:!1}):u.forEach((function(e){return o.push(a(e))})))}this.checkedNodes=r,this.presentTags=o},getSuggestions:function(){var e=this,t=this.filterMethod;Object(V.isFunction)(t)||(t=function(e,t){return e.text.includes(t)});var i=this.panel.getFlattedNodes(this.leafOnly).filter((function(i){return!i.isDisabled&&(i.text=i.getText(e.showAllLevels,e.separator)||"",t(i,e.inputValue))}));this.multiple?this.presentTags.forEach((function(e){e.hitState=!1})):i.forEach((function(t){t.checked=Object(S.isEqual)(e.checkedValue,t.getValueByOption())})),this.filtering=!0,this.suggestions=i,this.$nextTick(this.updatePopper)},handleSuggestionKeyDown:function(e){var t=e.keyCode,i=e.target;switch(t){case O.enter:i.click();break;case O.up:var n=i.previousElementSibling;n&&n.focus();break;case O.down:var s=i.nextElementSibling;s&&s.focus();break;case O.esc:case O.tab:this.toggleDropDownVisible(!1)}},handleDelete:function(){var e=this.inputValue,t=this.pressDeleteCount,i=this.presentTags,n=i.length-1,s=i[n];this.pressDeleteCount=e?0:t+1,s&&this.pressDeleteCount&&(s.hitState?this.deleteTag(n):s.hitState=!0)},handleSuggestionClick:function(e){var t=this.multiple,i=this.suggestions[e];if(t){var n=i.checked;i.doCheck(!n),this.panel.calculateMultiCheckedValue()}else this.checkedValue=i.getValueByOption(),this.toggleDropDownVisible(!1)},deleteTag:function(e){var t=this.checkedValue,i=t[e];this.checkedValue=t.filter((function(t,i){return i!==e})),this.$emit("remove-tag",i)},updateStyle:function(){var e=this.$el,t=this.inputInitialHeight;if(!this.$isServer&&e){var i=this.$refs.suggestionPanel,n=e.querySelector(".hn-input__inner");if(n){var s=e.querySelector(".hn-cascader__tags"),r=null;if(i&&(r=i.$el))r.querySelector(".hn-cascader__suggestion-list").style.minWidth=n.offsetWidth+"px";if(s){var o=s.offsetHeight,a=Math.max(o+6,t)+"px";n.style.height=a,this.updatePopper()}}}},getCheckedNodes:function(e){return this.panel.getCheckedNodes(e)}}},E=i(0),z=Object(E.a)(N,n,[],!1,null,null,null);z.options.__file="packages/cascader/src/cascader.vue";var B=z.exports;B.install=function(e){e.component(B.name,B)};t.default=B},12:function(e,t){e.exports=require("jiku-ui/lib/utils/clickoutside")},13:function(e,t){e.exports=require("jiku-ui/lib/scrollbar")},15:function(e,t){e.exports=require("jiku-ui/lib/utils/resize-event")},16:function(e,t){e.exports=require("jiku-ui/lib/utils/types")},17:function(e,t){e.exports=require("throttle-debounce/debounce")},20:function(e,t){e.exports=require("jiku-ui/lib/locale")},3:function(e,t){e.exports=require("jiku-ui/lib/utils/util")},39:function(e,t){e.exports=require("jiku-ui/lib/tag")},4:function(e,t){e.exports=require("jiku-ui/lib/mixins/emitter")},42:function(e,t){e.exports=require("jiku-ui/lib/utils/aria-utils")},5:function(e,t){e.exports=require("jiku-ui/lib/utils/vue-popper")},56:function(e,t){e.exports=require("jiku-ui/lib/cascader-panel")},6:function(e,t){e.exports=require("jiku-ui/lib/mixins/locale")}}).default;