magix-components
Version:
1 lines • 5.46 kB
JavaScript
define("mx-taginput/index",["magix","$","./suggest"],function(e,t,i){e("./suggest");var s=e("magix");s.applyStyle("E",".fa{height:auto;min-height:32px;padding:1px 7px;position:relative;border:1px solid #e6e6e6;border-radius:4px;width:340px;line-height:1}.fa:hover{border-color:#ccc}.fb{cursor:not-allowed;background-color:#fbfbfb}.fb:hover{border-color:#e6e6e6}.fc{height:auto;cursor:text}.fd{position:absolute;left:9px;top:8px;color:#999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fe{position:relative;display:inline-block;margin:1px;cursor:pointer;background-color:#eee;border-radius:4px}.ff{width:1px;visibility:hidden}.fg{float:left;border-right:1px solid #fff;max-width:200px;overflow:hidden}.fh,.fg{height:24px;line-height:24px;padding:0 4px}.fh{width:20px;font-weight:bolder;text-align:center;color:#999;display:inline-block}.fi{border:none;outline:none;height:24px;line-height:24px;padding:0;width:20px;position:relative;z-index:1;background:transparent}.fb .fc,.fb .fh,.fb .fg,.fb .fi{cursor:not-allowed}");var a=e("$");i.exports=s.View.extend({tmpl:{html:'<div mx-guid="g0" class="fc ah" mx-click="__eN()" id="ipt_<%=$$.viewId%>">1</div>',subs:[{keys:["viewId","items","placeholder","textKey"],path:'div[mx-guid="g0"]',tmpl:'<%if(!$$.items.length&&$$.placeholder){%><div class="fd"><%=$$.placeholder%></div><%}if($$.items.length){for(var a=0;a<$$.items.length;a++){var b=$$.items[a];%><div class="fe" mx-contextmenu="prevent()"><div class="fg aj"><%=$$.textKey?b[$$.textKey]:b%></div><div class="fh" mx-click="__eL({idx:<%!a%>})">x</div></div><%}}else{%><div class="fe ff" mx-click="stop()"><div class="fh" mx-click="__eL({idx:<%!a%>})">x</div></div><%}%><input mx-guid="g2" mx-keydown="__eM()" mx-keyup="__eM()" mx-input="__eM()" mx-paste="__eM()" mx-pick="__k()" mx-change="__bA()" mx-focusin="__bA()" mx-focusout="__bA()" mx-showlist="__eO()" mx-hidelist="__eO()" <%if(!$$.disabled){%> mx-view="mx-taginput/suggest?list=<%@$$.list%>&textKey=<%@$$.textKey%>&valueKey=<%@$$.valueKey%>&relateIds=ipt_<%!$eu($$.viewId)%>&offsetLeft=-11&width=<%!$eu($$.width)%>&scrollTop=<%@$$.scrollTop%>" <%}else{%> disabled="disabled" <%}%> class="fi" autocomplete="off">',s:"1",attr:'id="ipt_<%=$$.viewId%>"',attrs:[{n:"id",p:1}],mask:"3111"},{keys:["disabled","list","valueKey","viewId","width","scrollTop"],path:'input[mx-guid="g2"]',pKeys:["items","placeholder","textKey"],attr:'<%if(!$$.disabled){%> mx-view="mx-taginput/suggest?list=<%@$$.list%>&textKey=<%@$$.textKey%>&valueKey=<%@$$.valueKey%>&relateIds=ipt_<%!$eu($$.viewId)%>&offsetLeft=-11&width=<%!$eu($$.width)%>&scrollTop=<%@$$.scrollTop%>" <%}else{%> disabled="disabled" <%}%>',attrs:[{n:"mx-view",v:1},{n:"disabled",b:1,p:1}]}]},init:function(e){var t=this;t.__dz=e.list||[],t.__h=a("#"+t.id),t.updater.set({disabled:e.disabled,placeholder:e.placeholder||"",textKey:e.textKey,valueKey:e.valueKey}),t.__eF(e.selected)},__eG:function(){for(var e=this,t=e.updater,i=t.get("sMap"),s=t.get("valueKey"),a=e.__dz,d=[],o=0,l=void 0;o<a.length;o++)l=a[o],i[s?l[s]:l]||d.push(l);return d},render:function(){var e=this,t=a("#"+e.id),i=t.outerWidth();0===i&&(i=340),e.updater.digest({width:i,list:e.__eG(),viewId:e.id}),t.addClass("fa"),e.__cV=t,e.__eH(),e.updater.get().disabled&&t.addClass("fb")},__eH:function(){var e=this,t=e.__cV;e.__eI=t.find("input"),e.__eI.width(20);var i=a("#ipt_"+e.id).width()-e.__eI.position().left;e.__eI.width(i>=20?i:20)},__eF:function(e){var t=this;e=((e=e||"")+"").split(",");for(var i=[],a={},d=t.updater.get("valueKey"),o=t.__dz,l=s.toMap(e),_=0,r=void 0,n=void 0;_<o.length;_++)r=o[_],n=d?r[d]:r,s.has(l,n)&&(a[n]=1,i.push(r));t.updater.set({sMap:a,items:i}),t.__h.val(e.join(","))},val:function(e){var t=this;return e&&(t.__eF(e),t.updater.digest({list:t.__eG()}),t.__eH(),t.__cV.removeClass("ap"),t.__u()),t.updater.get("items")},__u:function(){for(var e=this,t=e.updater,i=[],s=t.get("items"),d=t.get("valueKey"),o=0,l=void 0;o<s.length;o++)l=s[o],i.push(d?l[d]:l);a("#"+e.id).val(i.join(",")).trigger({type:"change",ids:i,items:s})},__eK:function(){var e=this;clearTimeout(e.__eJ),e.__dm=!0,e.__eI.focus(),e.__eJ=setTimeout(e.wrapAsync(function(){delete e.__dm}),20)},"__eM<keydown,input,paste,keyup>":function(e){e.stopPropagation();var t=this,i=e.eventTarget.value;if(t.__bG!==i){t.__bG=i;var s=t.__cV.find(".fd");i?s.hide():s.show()}if(!i&&"keydown"==e.type&&8==e.keyCode){var a=t.updater.get("items").length-1;a>-1&&(t["__eL<click>"]({params:{idx:a}}),t.__eK())}},"__k<pick>":function(e){e.stopPropagation();var t=this,i=t.updater,s=i.get("items"),a=i.get("sMap"),d=e.item,o=i.get("valueKey"),l=o?d[o]:d;a[l]||(a[l]=1,s.push(d),i.digest({items:s,scrollTop:e.scrollTop,list:t.__eG()}),t.__eH(),t.__eK(),t.__u())},"__eN<click>":function(){var e=this;e.__h.hasClass("fb")||e.__eI.focus()},"__eL<click>":function(e){var t=this;if(!t.__h.hasClass("fb")){var i=t.updater,s=i.get("items"),a=i.get("sMap"),d=i.get("valueKey"),o=s[e.params.idx];delete a[d?o[d]:o],s.splice(e.params.idx,1),i.digest({items:s,list:t.__eG()}),t.__eH(),t.__u(),t.__eK()}},"__D<contextmenu>":function(e){e.preventDefault()},"__bA<change,focusin,focusout>":function(e){e.stopPropagation();var t=this.__cV;"focusin"==e.type&&t.addClass("ap")},"__eO<showlist,hidelist>":function(e){this.__dm||(a("#"+this.id).trigger({type:"showlist"==e.type?"focusin":"focusout"}),"hidelist"==e.type&&this.__cV.removeClass("ap"))}})});