UNPKG

magix-components

Version:
1 lines 6.28 kB
define("mx-dropdown/index",["magix","$","../mx-monitor/index"],function(e,t,i){var s=e("magix"),a=e("$"),o=e("../mx-monitor/index");s.applyStyle("l",".bX{position:relative;width:340px;background-color:#fff;border:1px solid #e6e6e6;border-radius:4px;display:inline-block;vertical-align:middle;height:32px}.bX:hover{border-color:#ccc}.bY{color:#333;position:relative;width:100%;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:0 30px 0 12px}.bZ{cursor:not-allowed;background-color:#fbfbfb}.bZ:hover{border-color:#e6e6e6}.bZ .bY{cursor:not-allowed}.c_{position:absolute;right:0;top:2px;font-size:28px;color:#ccc;-webkit-transition:top .3s,-webkit-transform .3s;transition:top .3s,-webkit-transform .3s;transition:transform .3s,top .3s;transition:transform .3s,top .3s,-webkit-transform .3s}.ca .c_{-webkit-transform:rotate(180deg);transform:rotate(180deg);top:0}.ca,.ca:hover{border-color:#6363e6}.cb{height:30px;line-height:30px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.cc{color:#999}.cd{position:absolute;top:100%;left:-1px;right:-1px;margin-top:5px;border-radius:4px;z-index:300;border:1px solid #e6e6e6;background-color:#fff;display:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ca .cd{display:block}.ce{overflow:auto;max-height:196px;padding-bottom:3px;padding-top:5px}.cf{display:block;width:100%;padding:9px 9px 4px}.cg{padding:0;width:100%}.ch{color:#ccc;position:absolute;left:15px;top:16px}.ci{padding-left:28px;height:28px;line-height:28px;width:100%}.cj{padding:5px;color:#999;display:block;cursor:default}.ck{padding:0 4px;margin:2px 0}.cl{color:#666;display:block;width:100%;padding:0 12px;height:29px;line-height:29px;border-radius:4px}.cl:active,.cl:focus,.cl:hover{color:#333;background-color:#f0f0f0}.cm,.cm:active,.cm:focus,.cm:hover{color:#fff;background-color:#6363e6}");var r=function(e,t,i,s){if(!e[t]||i){var a=i||"";s||(a+=""),e[t]=a}return e[t]};i.exports=s.View.extend({tmpl:{html:'<div mx-guid="g0" class="bY" mx-click="__bw()" title="<%=$$.selectedText%>"><span mx-guid="g1" class="cb<%if($$.selected===\'\'){%> cc<%}%>">2</span><span class="_ c_">&#xe692;</span></div><div mx-guid="g2" class="cd">3</div>',subs:[{keys:["selectedText"],path:'div[mx-guid="g0"]',attr:'title="<%=$$.selectedText%>"',attrs:[{n:"title",p:1}]},{keys:["selected","selectedText"],path:'span[mx-guid="g1"]',tmpl:"<%=$$.selectedText%>",s:"2",attr:"class=\"cb<%if($$.selected===''){%> cc<%}%>\"",attrs:[{n:"class",p:1,f:"className"}],mask:"21"},{keys:["rList","searchbox"],path:'div[mx-guid="g2"]',tmpl:'<%if($$.rList){if($$.searchbox){%><div class="cf"><label class="cg"><span class="_ ch">&#xe608;</span><input placeholder="搜索关键词" mx-keyup="__by()" mx-paste="__by()" mx-change="__bA()" mx-focusin="__bA()" mx-focusout="__bA()" class="an ci"></label></div><%}%><ul mx-guid="g3" class="ce" id="list_<%=$$.viewId%>">4</ul><%}%>',s:"3"},{keys:["list","textKey","valueKey","selected"],path:'ul[mx-guid="g3"]',pKeys:["rList","searchbox"],tmpl:'<%var a=void 0,b=void 0;for(var c=0,d=$$.list;c<d.length;c++){var e=d[c];if($$.textKey&&$$.valueKey){a=e[$$.textKey];b=e[$$.valueKey];}else{a=e;b=e;}if(e&&e.group){%><li class="cj aj" title="<%=e[$$.textKey]%>"><%=e[$$.textKey]%></li><%}else{%><li title="<%=a%>" class="ck"><%var f=(b+\'\')===($$.selected+\'\')%><a href="#" class="cl aj<%if(f){%> cm<%}%>" mx-click="__bz({item:\'<%@e%>\'})"><%=a%></a></li><%}}%>',s:"4"}]},init:function(e){var t=this;o.__d(),t.on("destroy",function(){o.__f(t),o.__g()}),t.updater.set({viewId:t.id});var i=a("#"+t.id);i.addClass("bX"),t.__h=i,t.assign(e)},assign:function(e){var t=this;r(t,"__bl",e.list,!0);var i=r(t,"__bm",e.selected),o=r(t,"__bn",e.textKey),c=r(t,"__bo",e.valueKey),l=r(t,"__bp",e.emptyText);if(t.__bq=e.searchbox+""=="true",t.__br=e.disabled+""=="true",!t.__bl){var n,_=[];t.__h.children().each(function(e,t){t=a(t),n="true"==t.attr("group"),_.push({group:n,text:t.text(),value:n?s.guid():t.attr("value")})}),o=t.__bn="text",c=t.__bo="value",t.__bl=_}var d=t.__bl,p=s.toMap(d,c);if(l)if(o&&c){if(!p[""]){var u={};u[o]=l,u[c]="",d.unshift(u),p[""]=u}}else p[l]||(d.unshift(l),p[l]=l);return i||!l||o||c||(i=l),i&&p[i]||(i=p[i]||d[0],o&&c&&(i=i[c])),t.__bm=i,t.__bs=o&&c?p[i][o]:i,!0},__i:function(e){return s.inside(e,this.id)},render:function(){var e=this;e.__h[e.__br?"addClass":"removeClass"]("bZ"),e.__bt(!0)},__a:function(){var e=this;e.__h.hasClass("ca")&&(e.__h.removeClass("ca").trigger("focusout"),o.__f(e))},__e:function(){var e=this;if(!e.__h.hasClass("ca")){e.updater.get("rList")||e.updater.digest({rList:!0}),e.__h.addClass("ca").trigger("focusin");var t=a("#list_"+e.id),i=t.find(".cm").position(),s=t.height(),r=t.prop("scrollTop");if(i.top<0||i.top>s){var c=i.top-s+r+s/2;t.prop("scrollTop",c)}o.__k(e)}},__bt:function(e){var t=this,i=t.__bm;t.updater.digest({textKey:t.__bn,valueKey:t.__bo,selected:i,searchbox:t.__bq,selectedText:t.__bs,list:t.__bl.slice()}),t.__h.val(i),e||t.__u(i)},__bv:function(e,t){var i=this;clearTimeout(i.__bu);var s=i.__bl,a=[],o=0,r=s.length,c=i.__bn,l=i.__bo;if(e){var n=function(){if(o<r){for(var _=Math.min(o+400,r),d=o,p=void 0,u=void 0,b=void 0;d<_;d++)u=p=s[d],b=p,c&&l&&(u=p[c],b=p[l]),((u+"").indexOf(e)>=0||(b+"").indexOf(e)>=0)&&a.push(p);o=_,i.__bu=setTimeout(i.wrapAsync(n),20)}else t(a)};n()}else t(s)},__u:function(e,t){var i=this,s=i.updater,o=i.__bo,r=i.__bn,c=i.__bm,l=e,n=e;if(r&&o&&(n=e[r],l=e[o]),!t||c!==l){s.set({selected:i.__bm=l});var _=a.Event("change",{item:e,keys:{text:r,value:o},value:o?e[o]:e,text:r?e[r]:e});i.__h.val(o?e[o]:e).trigger(_),_.isDefaultPrevented()?s.set({selected:c}):s.digest({selected:l,selectedText:n})}},"__bw<click>":function(){var e=this,t=e.__h;t.hasClass("ca")?e.__a():t.hasClass("bZ")||e.__e()},"__by<keyup,paste>":function(e){var t=this;e.stopPropagation(),clearTimeout(t.__bx);var i=a.trim(e.eventTarget.value);t.__bx=setTimeout(t.wrapAsync(function(){i!=t.$lVal&&t.__bv(t.$lVal=i,function(e){t.updater.digest({list:e})})}),300)},"__bz<click>":function(e){e.preventDefault(),e.stopPropagation();var t=this;t.__u(e.params.item,!0),t.__a()},"__bA<change,focusin,focusout>":function(e){e.stopPropagation()}})});