textool.min.js 7.3 KB

1
  1. layui.define(["jquery"],function(t){var e,o,n=layui.$,i="layext-text-tool",s="layext-textool-pane",l=!0,a=[],r={hide:null,count:null,copy:null,reset:null,clear:null,hideIndex:-1,countIndex:-1,copyIndex:-1,resetIndex:-1,clearIndex:-1,hideName:"hide",countName:"count",copyName:"copy",resetName:"reset",clearName:"clear",hideClass:"layext-textool-minmax",countClass:"layext-textool-count",maxClass:"layext-textool-max",copyClass:"layext-textool-copy",resetClass:"layext-textool-reset",clearClass:"layext-textool-clear",copyTextId:i+"-copy-text",lengthClass:"layext-textool-length",lengthOverClass:i+"-length-over",laytips:"layext-textool-laytips"},p={eleId:null,maxlength:-1,initEnd:n.noop,showEnd:n.noop,hideEnd:n.noop,initShow:!0,inner:!1,align:"right",tools:["count","copy","reset","clear"],tipType:"title",tipColor:"#01AAED",color:"#666666",bgColor:"#FFFFFF",borderColor:"#E6E6E6",className:"",zIndex:19891014},c=function(t){var e=this;e.tipsAttr=null,e.selector=null,e.init(e,t||{})};c.prototype.init=function(t,e){t.options=n.extend({},p,e),t.selector=""===n.trim(t.options.eleId)?"."+i:"#"+t.options.eleId,t.initStyle(t),t.initPrototype(),n(t.selector).each(function(e,o){var i=n(this),s=t.options.maxlength;!isNaN(s)&&s>-1&&i.attr("maxlength",s),t.addTextool(t,i)}),t.initTips(t),"function"==typeof t.options.initEnd&&t.options.initEnd()},c.prototype.initStyle=function(t){t.options.zIndex=isNaN(t.options.zIndex)?0:t.options.zIndex||0,e=['<style type="text/css">',"#",r.copyTextId," { width: 0; height: 0; position: absolute; top: -190000px; }",t.selector," { position: relative; z-index: ",t.options.zIndex+(t.options.inner?0:1),"; }",t.selector," + .",s," { position: relative; z-index: ",t.options.zIndex,"; margin-top: -2px; display: block; outline: none; }",t.selector," + .",s," * { color: ",t.options.color||"#666666","; }",t.selector," + .",s," a > i { font-size: 12px!important; }",t.selector," + .",s," a { padding: 0 3px; cursor: pointer; }",t.selector," + .",s," a:active { background-color: #E2E2E2; opacity: 0.8; }",t.selector," + .",s," .",r.lengthClass," * { font-family: Consolas, sans-serif; }",t.selector," + .",s," .",r.lengthClass," { display: inline-block; border-width: 0 1px; }",t.selector," + .",s," .",r.lengthClass," * { font-family: Consolas, sans-serif; }",t.selector," + .",s," .",r.lengthOverClass," { color: #FF5722; }",t.selector," + .",s," .",r.countClass,", ",t.selector," + .",s," .",r.maxClass," { display: inline-block; min-width: 26px; height: 16px; line-height: 18px; }",t.selector," + .",s," > .layui-badge { overflow: hidden; border-color: ",t.options.borderColor||"#E6E6E6","; background-color: ",t.options.bgColor||"#FFFFFF","; }",t.selector," + .",s,"-r.",s,"-inner > .layui-badge { border-right: 0 none; border-radius: 15px 0 17px; margin-right: 1px; }",t.selector," + .",s,"-l.",s,"-inner > .layui-badge { border-left: 0 none; border-radius: 0 15px 0; margin-left: 1px; }",t.selector," + .",s,"-inner > .layui-badge { top: -18px; border-bottom: 0 none; opacity: 0.8; }",t.selector," + .",s,"-inner > .layui-badge:hover { opacity: 1; }",t.selector," + .",s," .",r.maxClass," { opacity: 0.9; }",t.selector," + .",s,"-r { text-align: right; }",t.selector," + .",s,"-l { text-align: left; }",t.selector," + .",s,"-inner { height: 0; }","</style>"].join(""),n("head link:last")[0]&&n("head link:last").after(e)||n("head").append(e)},c.prototype.initPrototype=function(){!Array.prototype.indexOf&&(Array.prototype.indexOf=function(t,e){t=t||[];for(var o=t.length;o--;)if(t[o]==e)return o;return-1})},c.prototype.addTextool=function(t,e){var o=e.next("."+s);o&&o.length&&o.remove(),e.after(t.getToolsNode(t,e)),o=e.next("."+s),t.setEvent(t,e,o),o.fadeIn(200,function(){!t.options.initShow&&o.find("."+r.hideClass).trigger("click")})},c.prototype.copyText=function(t,e){if(!e)return!1;!n("#"+r.copyTextId).length&&n("body").append("<textarea id="+r.copyTextId+' readonly="readonly"></textarea>');var o=n("#"+r.copyTextId),i=e.val();o.val(""===i?" ":i).select(),document.execCommand("copy"),t.showTip(t,e,"已复制!")},c.prototype.setValLength=function(t,e){var o=e.next("."+s).find("."+r.countClass);o.text(e.val().length),e.val().length>e.attr("maxlength")?o.addClass(r.lengthOverClass):o.hasClass(r.lengthOverClass)&&o.removeClass(r.lengthOverClass)},c.prototype.setEvent=function(t,e,o){t.setValLength(t,e);var i=e.val();o.on("click","a",function(s){var l=n(this),a=l.children("i.layui-icon");return l.hasClass(r.hideClass)&&(l.nextAll().toggle("fast"),l.prevAll().toggle("fast"),a.hasClass("layui-icon-more")?(a.removeClass("layui-icon-more").addClass("layui-icon-more-vertical"),l.attr(t.tipsAttr,"展开"),"function"==typeof t.options.hideEnd&&t.options.hideEnd(e,o)):(a.removeClass("layui-icon-more-vertical").addClass("layui-icon-more"),l.attr(t.tipsAttr,"收起"),"function"==typeof t.options.showEnd&&t.options.showEnd(e,o)),t.tipsAttr===r.laytips&&t.showTip(t,l,l.attr(t.tipsAttr))),l.hasClass(r.copyClass)&&t.copyText(t,e),l.hasClass(r.resetClass)&&(e.val(i),t.setValLength(t,e)),l.hasClass(r.clearClass)&&(e.val(""),t.setValLength(t,e)),layui.stope(s),!1}),e.on("keyup input",function(o){return t.setValLength(t,e),layui.stope(o),!1})},c.prototype.getToolsNode=function(t,e){if(!e)return!1;if(r.hide=['<a href="javascript:;"',t.getTips(t,"收起"),'class="',r.hideClass,'"><i class="layui-icon layui-icon-more"></i></a>'].join(""),t.options.tools=t.options.tools||[r.countName],r.countIndex=t.options.tools.indexOf(r.countName),r.countIndex>-1){var i=e.attr("maxlength")||-1;r.count=['<span class="',r.lengthClass,'"><b class="',r.countClass,'"',t.getTips(t,"当前字数"),">0</b>",i<0?"":['/<span class="',r.maxClass,'"',t.getTips(t,"最大字数"),">",i,"</span>"].join(""),"</span>"].join("")}r.copyIndex=t.options.tools.indexOf(r.copyName),r.copyIndex>-1&&(r.copy=['<a href="javascript:;" class="',r.copyClass,'"',t.getTips(t,"复制"),'><i class="layui-icon layui-icon-file"></i></a>'].join("")),r.resetIndex=t.options.tools.indexOf(r.resetName),r.resetIndex>-1&&(r.reset=['<a href="javascript:;" class="',r.resetClass,'"',t.getTips(t,"重置"),'><i class="layui-icon layui-icon-refresh-1"></i></a>'].join("")),r.clearIndex=t.options.tools.indexOf(r.clearName),r.clearIndex>-1&&(r.clear=['<a href="javascript:;" class="',r.clearClass,'"',t.getTips(t,"清空"),'><i class="layui-icon layui-icon-close"></i></a>'].join("")),"left"===t.options.align?(l=!1,o=s+"-l"):(l=!0,o=s+"-r"),a=['<span class="layui-unselect ',s," ",o," ",t.options.inner?s+"-inner ":"",n.trim(t.options.className),' layui-anim layui-anim-fadein"><span class="layui-badge layui-badge-rim">'],!l&&a.push(r.hide);for(var p=0;p<t.options.tools.length;p++)a.push(r[t.options.tools[p]]||"");return l&&a.push(r.hide),a.push("</span></span>"),a.join("")},c.prototype.getTips=function(t,e){switch(t.options.tipType){case"title":t.tipsAttr="title";break;case"laytips":t.tipsAttr=r.laytips;break;default:return""}return[" ",t.tipsAttr,"=",e," "].join("")},c.prototype.initTips=function(t){n("["+r.laytips+"]").each(function(e,o){var i=n(o);""!==n.trim(i.attr(t.tipsAttr))&&i.hover(function(){t.showTip(t,i,i.attr(t.tipsAttr))},t.hideTip)})},c.prototype.showTip=function(t,e,o){t.hideTip(),layui.layer.tips(o,e,{tips:[1,t.options.tipColor||"#01AAED"],time:2e3,anim:5,zIndex:(t.options.zIndex||0)+2})},c.prototype.hideTip=function(){layui.layer.closeAll("tips")},t("textool",{init:function(t){return new c(t)}})});