jquery-weui.min.js 121 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569
  1. (function($){"use strict";$.fn.transitionEnd=function(callback){var events=['webkitTransitionEnd','transitionend','oTransitionEnd','MSTransitionEnd','msTransitionEnd'],i,dom=this;function fireCallBack(e){if(e.target!==this)return;callback.call(this,e);for(i=0;i<events.length;i++){dom.off(events[i],fireCallBack);}}
  2. if(callback){for(i=0;i<events.length;i++){dom.on(events[i],fireCallBack);}}
  3. return this;};$.support=(function(){var support={touch:!!(('ontouchstart'in window)||window.DocumentTouch&&document instanceof window.DocumentTouch)};return support;})();$.touchEvents={start:$.support.touch?'touchstart':'mousedown',move:$.support.touch?'touchmove':'mousemove',end:$.support.touch?'touchend':'mouseup'};$.getTouchPosition=function(e){e=e.originalEvent||e;if(e.type==='touchstart'||e.type==='touchmove'||e.type==='touchend'){return{x:e.targetTouches[0].pageX,y:e.targetTouches[0].pageY};}else{return{x:e.pageX,y:e.pageY};}};$.fn.scrollHeight=function(){return this[0].scrollHeight;};$.fn.transform=function(transform){for(var i=0;i<this.length;i++){var elStyle=this[i].style;elStyle.webkitTransform=elStyle.MsTransform=elStyle.msTransform=elStyle.MozTransform=elStyle.OTransform=elStyle.transform=transform;}
  4. return this;};$.fn.transition=function(duration){if(typeof duration!=='string'){duration=duration+'ms';}
  5. for(var i=0;i<this.length;i++){var elStyle=this[i].style;elStyle.webkitTransitionDuration=elStyle.MsTransitionDuration=elStyle.msTransitionDuration=elStyle.MozTransitionDuration=elStyle.OTransitionDuration=elStyle.transitionDuration=duration;}
  6. return this;};$.getTranslate=function(el,axis){var matrix,curTransform,curStyle,transformMatrix;if(typeof axis==='undefined'){axis='x';}
  7. curStyle=window.getComputedStyle(el,null);if(window.WebKitCSSMatrix){transformMatrix=new WebKitCSSMatrix(curStyle.webkitTransform==='none'?'':curStyle.webkitTransform);}
  8. else{transformMatrix=curStyle.MozTransform||curStyle.OTransform||curStyle.MsTransform||curStyle.msTransform||curStyle.transform||curStyle.getPropertyValue('transform').replace('translate(','matrix(1, 0, 0, 1,');matrix=transformMatrix.toString().split(',');}
  9. if(axis==='x'){if(window.WebKitCSSMatrix)
  10. curTransform=transformMatrix.m41;else if(matrix.length===16)
  11. curTransform=parseFloat(matrix[12]);else
  12. curTransform=parseFloat(matrix[4]);}
  13. if(axis==='y'){if(window.WebKitCSSMatrix)
  14. curTransform=transformMatrix.m42;else if(matrix.length===16)
  15. curTransform=parseFloat(matrix[13]);else
  16. curTransform=parseFloat(matrix[5]);}
  17. return curTransform||0;};$.requestAnimationFrame=function(callback){if(window.requestAnimationFrame)return window.requestAnimationFrame(callback);else if(window.webkitRequestAnimationFrame)return window.webkitRequestAnimationFrame(callback);else if(window.mozRequestAnimationFrame)return window.mozRequestAnimationFrame(callback);else{return window.setTimeout(callback,1000/60);}};$.cancelAnimationFrame=function(id){if(window.cancelAnimationFrame)return window.cancelAnimationFrame(id);else if(window.webkitCancelAnimationFrame)return window.webkitCancelAnimationFrame(id);else if(window.mozCancelAnimationFrame)return window.mozCancelAnimationFrame(id);else{return window.clearTimeout(id);}};$.fn.join=function(arg){return this.toArray().join(arg);}})($);+function($){"use strict";$.Template7=$.t7=(function(){function isArray(arr){return Object.prototype.toString.apply(arr)==='[object Array]';}
  18. function isObject(obj){return obj instanceof Object;}
  19. function isFunction(func){return typeof func==='function';}
  20. var cache={};function helperToSlices(string){var helperParts=string.replace(/[{}#}]/g,'').split(' ');var slices=[];var shiftIndex,i,j;for(i=0;i<helperParts.length;i++){var part=helperParts[i];if(i===0)slices.push(part);else{if(part.indexOf('"')===0){if(part.match(/"/g).length===2){slices.push(part);}
  21. else{shiftIndex=0;for(j=i+1;j<helperParts.length;j++){part+=' '+helperParts[j];if(helperParts[j].indexOf('"')>=0){shiftIndex=j;slices.push(part);break;}}
  22. if(shiftIndex)i=shiftIndex;}}
  23. else{if(part.indexOf('=')>0){var hashParts=part.split('=');var hashName=hashParts[0];var hashContent=hashParts[1];if(hashContent.match(/"/g).length!==2){shiftIndex=0;for(j=i+1;j<helperParts.length;j++){hashContent+=' '+helperParts[j];if(helperParts[j].indexOf('"')>=0){shiftIndex=j;break;}}
  24. if(shiftIndex)i=shiftIndex;}
  25. var hash=[hashName,hashContent.replace(/"/g,'')];slices.push(hash);}
  26. else{slices.push(part);}}}}
  27. return slices;}
  28. function stringToBlocks(string){var blocks=[],i,j,k;if(!string)return[];var _blocks=string.split(/({{[^{^}]*}})/);for(i=0;i<_blocks.length;i++){var block=_blocks[i];if(block==='')continue;if(block.indexOf('{{')<0){blocks.push({type:'plain',content:block});}
  29. else{if(block.indexOf('{/')>=0){continue;}
  30. if(block.indexOf('{#')<0&&block.indexOf(' ')<0&&block.indexOf('else')<0){blocks.push({type:'variable',contextName:block.replace(/[{}]/g,'')});continue;}
  31. var helperSlices=helperToSlices(block);var helperName=helperSlices[0];var helperContext=[];var helperHash={};for(j=1;j<helperSlices.length;j++){var slice=helperSlices[j];if(isArray(slice)){helperHash[slice[0]]=slice[1]==='false'?false:slice[1];}
  32. else{helperContext.push(slice);}}
  33. if(block.indexOf('{#')>=0){var helperStartIndex=i;var helperContent='';var elseContent='';var toSkip=0;var shiftIndex;var foundClosed=false,foundElse=false,foundClosedElse=false,depth=0;for(j=i+1;j<_blocks.length;j++){if(_blocks[j].indexOf('{{#')>=0){depth++;}
  34. if(_blocks[j].indexOf('{{/')>=0){depth--;}
  35. if(_blocks[j].indexOf('{{#'+helperName)>=0){helperContent+=_blocks[j];if(foundElse)elseContent+=_blocks[j];toSkip++;}
  36. else if(_blocks[j].indexOf('{{/'+helperName)>=0){if(toSkip>0){toSkip--;helperContent+=_blocks[j];if(foundElse)elseContent+=_blocks[j];}
  37. else{shiftIndex=j;foundClosed=true;break;}}
  38. else if(_blocks[j].indexOf('else')>=0&&depth===0){foundElse=true;}
  39. else{if(!foundElse)helperContent+=_blocks[j];if(foundElse)elseContent+=_blocks[j];}}
  40. if(foundClosed){if(shiftIndex)i=shiftIndex;blocks.push({type:'helper',helperName:helperName,contextName:helperContext,content:helperContent,inverseContent:elseContent,hash:helperHash});}}
  41. else if(block.indexOf(' ')>0){blocks.push({type:'helper',helperName:helperName,contextName:helperContext,hash:helperHash});}}}
  42. return blocks;}
  43. var Template7=function(template){var t=this;t.template=template;function getCompileFn(block,depth){if(block.content)return compile(block.content,depth);else return function(){return'';};}
  44. function getCompileInverse(block,depth){if(block.inverseContent)return compile(block.inverseContent,depth);else return function(){return'';};}
  45. function getCompileVar(name,ctx){var variable,parts,levelsUp=0,initialCtx=ctx;if(name.indexOf('../')===0){levelsUp=name.split('../').length-1;var newDepth=ctx.split('_')[1]-levelsUp;ctx='ctx_'+(newDepth>=1?newDepth:1);parts=name.split('../')[levelsUp].split('.');}
  46. else if(name.indexOf('@global')===0){ctx='$.Template7.global';parts=name.split('@global.')[1].split('.');}
  47. else if(name.indexOf('@root')===0){ctx='ctx_1';parts=name.split('@root.')[1].split('.');}
  48. else{parts=name.split('.');}
  49. variable=ctx;for(var i=0;i<parts.length;i++){var part=parts[i];if(part.indexOf('@')===0){if(i>0){variable+='[(data && data.'+part.replace('@','')+')]';}
  50. else{variable='(data && data.'+name.replace('@','')+')';}}
  51. else{if(isFinite(part)){variable+='['+part+']';}
  52. else{if(part.indexOf('this')===0){variable=part.replace('this',ctx);}
  53. else{variable+='.'+part;}}}}
  54. return variable;}
  55. function getCompiledArguments(contextArray,ctx){var arr=[];for(var i=0;i<contextArray.length;i++){if(contextArray[i].indexOf('"')===0)arr.push(contextArray[i]);else{arr.push(getCompileVar(contextArray[i],ctx));}}
  56. return arr.join(', ');}
  57. function compile(template,depth){depth=depth||1;template=template||t.template;if(typeof template!=='string'){throw new Error('Template7: Template must be a string');}
  58. var blocks=stringToBlocks(template);if(blocks.length===0){return function(){return'';};}
  59. var ctx='ctx_'+depth;var resultString='(function ('+ctx+', data) {\n';if(depth===1){resultString+='function isArray(arr){return Object.prototype.toString.apply(arr) === \'[object Array]\';}\n';resultString+='function isFunction(func){return (typeof func === \'function\');}\n';resultString+='function c(val, ctx) {if (typeof val !== "undefined") {if (isFunction(val)) {return val.call(ctx);} else return val;} else return "";}\n';}
  60. resultString+='var r = \'\';\n';var i,j,context;for(i=0;i<blocks.length;i++){var block=blocks[i];if(block.type==='plain'){resultString+='r +=\''+(block.content).replace(/\r/g,'\\r').replace(/\n/g,'\\n').replace(/'/g,'\\'+'\'')+'\';';continue;}
  61. var variable,compiledArguments;if(block.type==='variable'){variable=getCompileVar(block.contextName,ctx);resultString+='r += c('+variable+', '+ctx+');';}
  62. if(block.type==='helper'){if(block.helperName in t.helpers){compiledArguments=getCompiledArguments(block.contextName,ctx);resultString+='r += ($.Template7.helpers.'+block.helperName+').call('+ctx+', '+(compiledArguments&&(compiledArguments+', '))+'{hash:'+JSON.stringify(block.hash)+', data: data || {}, fn: '+getCompileFn(block,depth+1)+', inverse: '+getCompileInverse(block,depth+1)+', root: ctx_1});';}
  63. else{if(block.contextName.length>0){throw new Error('Template7: Missing helper: "'+block.helperName+'"');}
  64. else{variable=getCompileVar(block.helperName,ctx);resultString+='if ('+variable+') {';resultString+='if (isArray('+variable+')) {';resultString+='r += ($.Template7.helpers.each).call('+ctx+', '+variable+', {hash:'+JSON.stringify(block.hash)+', data: data || {}, fn: '+getCompileFn(block,depth+1)+', inverse: '+getCompileInverse(block,depth+1)+', root: ctx_1});';resultString+='}else {';resultString+='r += ($.Template7.helpers.with).call('+ctx+', '+variable+', {hash:'+JSON.stringify(block.hash)+', data: data || {}, fn: '+getCompileFn(block,depth+1)+', inverse: '+getCompileInverse(block,depth+1)+', root: ctx_1});';resultString+='}}';}}}}
  65. resultString+='\nreturn r;})';return eval.call(window,resultString);}
  66. t.compile=function(template){if(!t.compiled){t.compiled=compile(template);}
  67. return t.compiled;};};Template7.prototype={options:{},helpers:{'if':function(context,options){if(isFunction(context)){context=context.call(this);}
  68. if(context){return options.fn(this,options.data);}
  69. else{return options.inverse(this,options.data);}},'unless':function(context,options){if(isFunction(context)){context=context.call(this);}
  70. if(!context){return options.fn(this,options.data);}
  71. else{return options.inverse(this,options.data);}},'each':function(context,options){var ret='',i=0;if(isFunction(context)){context=context.call(this);}
  72. if(isArray(context)){if(options.hash.reverse){context=context.reverse();}
  73. for(i=0;i<context.length;i++){ret+=options.fn(context[i],{first:i===0,last:i===context.length-1,index:i});}
  74. if(options.hash.reverse){context=context.reverse();}}
  75. else{for(var key in context){i++;ret+=options.fn(context[key],{key:key});}}
  76. if(i>0)return ret;else return options.inverse(this);},'with':function(context,options){if(isFunction(context)){context=context.call(this);}
  77. return options.fn(context);},'join':function(context,options){if(isFunction(context)){context=context.call(this);}
  78. return context.join(options.hash.delimiter||options.hash.delimeter);},'js':function(expression,options){var func;if(expression.indexOf('return')>=0){func='(function(){'+expression+'})';}
  79. else{func='(function(){return ('+expression+')})';}
  80. return eval.call(this,func).call(this);},'js_compare':function(expression,options){var func;if(expression.indexOf('return')>=0){func='(function(){'+expression+'})';}
  81. else{func='(function(){return ('+expression+')})';}
  82. var condition=eval.call(this,func).call(this);if(condition){return options.fn(this,options.data);}
  83. else{return options.inverse(this,options.data);}}}};var t7=function(template,data){if(arguments.length===2){var instance=new Template7(template);var rendered=instance.compile()(data);instance=null;return(rendered);}
  84. else return new Template7(template);};t7.registerHelper=function(name,fn){Template7.prototype.helpers[name]=fn;};t7.unregisterHelper=function(name){Template7.prototype.helpers[name]=undefined;delete Template7.prototype.helpers[name];};t7.compile=function(template,options){var instance=new Template7(template,options);return instance.compile();};t7.options=Template7.prototype.options;t7.helpers=Template7.prototype.helpers;return t7;})();}($);(function(window,document,exportName,undefined){'use strict';var VENDOR_PREFIXES=['','webkit','Moz','MS','ms','o'];var TEST_ELEMENT=document.createElement('div');var TYPE_FUNCTION='function';var round=Math.round;var abs=Math.abs;var now=Date.now;function setTimeoutContext(fn,timeout,context){return setTimeout(bindFn(fn,context),timeout);}
  85. function invokeArrayArg(arg,fn,context){if(Array.isArray(arg)){each(arg,context[fn],context);return true;}
  86. return false;}
  87. function each(obj,iterator,context){var i;if(!obj){return;}
  88. if(obj.forEach){obj.forEach(iterator,context);}else if(obj.length!==undefined){i=0;while(i<obj.length){iterator.call(context,obj[i],i,obj);i++;}}else{for(i in obj){obj.hasOwnProperty(i)&&iterator.call(context,obj[i],i,obj);}}}
  89. function deprecate(method,name,message){var deprecationMessage='DEPRECATED METHOD: '+name+'\n'+message+' AT \n';return function(){var e=new Error('get-stack-trace');var stack=e&&e.stack?e.stack.replace(/^[^\(]+?[\n$]/gm,'').replace(/^\s+at\s+/gm,'').replace(/^Object.<anonymous>\s*\(/gm,'{anonymous}()@'):'Unknown Stack Trace';var log=window.console&&(window.console.warn||window.console.log);if(log){log.call(window.console,deprecationMessage,stack);}
  90. return method.apply(this,arguments);};}
  91. var assign;if(typeof Object.assign!=='function'){assign=function assign(target){if(target===undefined||target===null){throw new TypeError('Cannot convert undefined or null to object');}
  92. var output=Object(target);for(var index=1;index<arguments.length;index++){var source=arguments[index];if(source!==undefined&&source!==null){for(var nextKey in source){if(source.hasOwnProperty(nextKey)){output[nextKey]=source[nextKey];}}}}
  93. return output;};}else{assign=Object.assign;}
  94. var extend=deprecate(function extend(dest,src,merge){var keys=Object.keys(src);var i=0;while(i<keys.length){if(!merge||(merge&&dest[keys[i]]===undefined)){dest[keys[i]]=src[keys[i]];}
  95. i++;}
  96. return dest;},'extend','Use `assign`.');var merge=deprecate(function merge(dest,src){return extend(dest,src,true);},'merge','Use `assign`.');function inherit(child,base,properties){var baseP=base.prototype,childP;childP=child.prototype=Object.create(baseP);childP.constructor=child;childP._super=baseP;if(properties){assign(childP,properties);}}
  97. function bindFn(fn,context){return function boundFn(){return fn.apply(context,arguments);};}
  98. function boolOrFn(val,args){if(typeof val==TYPE_FUNCTION){return val.apply(args?args[0]||undefined:undefined,args);}
  99. return val;}
  100. function ifUndefined(val1,val2){return(val1===undefined)?val2:val1;}
  101. function addEventListeners(target,types,handler){each(splitStr(types),function(type){target.addEventListener(type,handler,false);});}
  102. function removeEventListeners(target,types,handler){each(splitStr(types),function(type){target.removeEventListener(type,handler,false);});}
  103. function hasParent(node,parent){while(node){if(node==parent){return true;}
  104. node=node.parentNode;}
  105. return false;}
  106. function inStr(str,find){return str.indexOf(find)>-1;}
  107. function splitStr(str){return str.trim().split(/\s+/g);}
  108. function inArray(src,find,findByKey){if(src.indexOf&&!findByKey){return src.indexOf(find);}else{var i=0;while(i<src.length){if((findByKey&&src[i][findByKey]==find)||(!findByKey&&src[i]===find)){return i;}
  109. i++;}
  110. return-1;}}
  111. function toArray(obj){return Array.prototype.slice.call(obj,0);}
  112. function uniqueArray(src,key,sort){var results=[];var values=[];var i=0;while(i<src.length){var val=key?src[i][key]:src[i];if(inArray(values,val)<0){results.push(src[i]);}
  113. values[i]=val;i++;}
  114. if(sort){if(!key){results=results.sort();}else{results=results.sort(function sortUniqueArray(a,b){return a[key]>b[key];});}}
  115. return results;}
  116. function prefixed(obj,property){var prefix,prop;var camelProp=property[0].toUpperCase()+property.slice(1);var i=0;while(i<VENDOR_PREFIXES.length){prefix=VENDOR_PREFIXES[i];prop=(prefix)?prefix+camelProp:property;if(prop in obj){return prop;}
  117. i++;}
  118. return undefined;}
  119. var _uniqueId=1;function uniqueId(){return _uniqueId++;}
  120. function getWindowForElement(element){var doc=element.ownerDocument||element;return(doc.defaultView||doc.parentWindow||window);}
  121. var MOBILE_REGEX=/mobile|tablet|ip(ad|hone|od)|android/i;var SUPPORT_TOUCH=('ontouchstart'in window);var SUPPORT_POINTER_EVENTS=prefixed(window,'PointerEvent')!==undefined;var SUPPORT_ONLY_TOUCH=SUPPORT_TOUCH&&MOBILE_REGEX.test(navigator.userAgent);var INPUT_TYPE_TOUCH='touch';var INPUT_TYPE_PEN='pen';var INPUT_TYPE_MOUSE='mouse';var INPUT_TYPE_KINECT='kinect';var COMPUTE_INTERVAL=25;var INPUT_START=1;var INPUT_MOVE=2;var INPUT_END=4;var INPUT_CANCEL=8;var DIRECTION_NONE=1;var DIRECTION_LEFT=2;var DIRECTION_RIGHT=4;var DIRECTION_UP=8;var DIRECTION_DOWN=16;var DIRECTION_HORIZONTAL=DIRECTION_LEFT|DIRECTION_RIGHT;var DIRECTION_VERTICAL=DIRECTION_UP|DIRECTION_DOWN;var DIRECTION_ALL=DIRECTION_HORIZONTAL|DIRECTION_VERTICAL;var PROPS_XY=['x','y'];var PROPS_CLIENT_XY=['clientX','clientY'];function Input(manager,callback){var self=this;this.manager=manager;this.callback=callback;this.element=manager.element;this.target=manager.options.inputTarget;this.domHandler=function(ev){if(boolOrFn(manager.options.enable,[manager])){self.handler(ev);}};this.init();}
  122. Input.prototype={handler:function(){},init:function(){this.evEl&&addEventListeners(this.element,this.evEl,this.domHandler);this.evTarget&&addEventListeners(this.target,this.evTarget,this.domHandler);this.evWin&&addEventListeners(getWindowForElement(this.element),this.evWin,this.domHandler);},destroy:function(){this.evEl&&removeEventListeners(this.element,this.evEl,this.domHandler);this.evTarget&&removeEventListeners(this.target,this.evTarget,this.domHandler);this.evWin&&removeEventListeners(getWindowForElement(this.element),this.evWin,this.domHandler);}};function createInputInstance(manager){var Type;var inputClass=manager.options.inputClass;if(inputClass){Type=inputClass;}else if(SUPPORT_POINTER_EVENTS){Type=PointerEventInput;}else if(SUPPORT_ONLY_TOUCH){Type=TouchInput;}else if(!SUPPORT_TOUCH){Type=MouseInput;}else{Type=TouchMouseInput;}
  123. return new(Type)(manager,inputHandler);}
  124. function inputHandler(manager,eventType,input){var pointersLen=input.pointers.length;var changedPointersLen=input.changedPointers.length;var isFirst=(eventType&INPUT_START&&(pointersLen-changedPointersLen===0));var isFinal=(eventType&(INPUT_END|INPUT_CANCEL)&&(pointersLen-changedPointersLen===0));input.isFirst=!!isFirst;input.isFinal=!!isFinal;if(isFirst){manager.session={};}
  125. input.eventType=eventType;computeInputData(manager,input);manager.emit('hammer.input',input);manager.recognize(input);manager.session.prevInput=input;}
  126. function computeInputData(manager,input){var session=manager.session;var pointers=input.pointers;var pointersLength=pointers.length;if(!session.firstInput){session.firstInput=simpleCloneInputData(input);}
  127. if(pointersLength>1&&!session.firstMultiple){session.firstMultiple=simpleCloneInputData(input);}else if(pointersLength===1){session.firstMultiple=false;}
  128. var firstInput=session.firstInput;var firstMultiple=session.firstMultiple;var offsetCenter=firstMultiple?firstMultiple.center:firstInput.center;var center=input.center=getCenter(pointers);input.timeStamp=now();input.deltaTime=input.timeStamp-firstInput.timeStamp;input.angle=getAngle(offsetCenter,center);input.distance=getDistance(offsetCenter,center);computeDeltaXY(session,input);input.offsetDirection=getDirection(input.deltaX,input.deltaY);var overallVelocity=getVelocity(input.deltaTime,input.deltaX,input.deltaY);input.overallVelocityX=overallVelocity.x;input.overallVelocityY=overallVelocity.y;input.overallVelocity=(abs(overallVelocity.x)>abs(overallVelocity.y))?overallVelocity.x:overallVelocity.y;input.scale=firstMultiple?getScale(firstMultiple.pointers,pointers):1;input.rotation=firstMultiple?getRotation(firstMultiple.pointers,pointers):0;input.maxPointers=!session.prevInput?input.pointers.length:((input.pointers.length>session.prevInput.maxPointers)?input.pointers.length:session.prevInput.maxPointers);computeIntervalInputData(session,input);var target=manager.element;if(hasParent(input.srcEvent.target,target)){target=input.srcEvent.target;}
  129. input.target=target;}
  130. function computeDeltaXY(session,input){var center=input.center;var offset=session.offsetDelta||{};var prevDelta=session.prevDelta||{};var prevInput=session.prevInput||{};if(input.eventType===INPUT_START||prevInput.eventType===INPUT_END){prevDelta=session.prevDelta={x:prevInput.deltaX||0,y:prevInput.deltaY||0};offset=session.offsetDelta={x:center.x,y:center.y};}
  131. input.deltaX=prevDelta.x+(center.x-offset.x);input.deltaY=prevDelta.y+(center.y-offset.y);}
  132. function computeIntervalInputData(session,input){var last=session.lastInterval||input,deltaTime=input.timeStamp-last.timeStamp,velocity,velocityX,velocityY,direction;if(input.eventType!=INPUT_CANCEL&&(deltaTime>COMPUTE_INTERVAL||last.velocity===undefined)){var deltaX=input.deltaX-last.deltaX;var deltaY=input.deltaY-last.deltaY;var v=getVelocity(deltaTime,deltaX,deltaY);velocityX=v.x;velocityY=v.y;velocity=(abs(v.x)>abs(v.y))?v.x:v.y;direction=getDirection(deltaX,deltaY);session.lastInterval=input;}else{velocity=last.velocity;velocityX=last.velocityX;velocityY=last.velocityY;direction=last.direction;}
  133. input.velocity=velocity;input.velocityX=velocityX;input.velocityY=velocityY;input.direction=direction;}
  134. function simpleCloneInputData(input){var pointers=[];var i=0;while(i<input.pointers.length){pointers[i]={clientX:round(input.pointers[i].clientX),clientY:round(input.pointers[i].clientY)};i++;}
  135. return{timeStamp:now(),pointers:pointers,center:getCenter(pointers),deltaX:input.deltaX,deltaY:input.deltaY};}
  136. function getCenter(pointers){var pointersLength=pointers.length;if(pointersLength===1){return{x:round(pointers[0].clientX),y:round(pointers[0].clientY)};}
  137. var x=0,y=0,i=0;while(i<pointersLength){x+=pointers[i].clientX;y+=pointers[i].clientY;i++;}
  138. return{x:round(x/pointersLength),y:round(y/pointersLength)};}
  139. function getVelocity(deltaTime,x,y){return{x:x/deltaTime||0,y:y/deltaTime||0};}
  140. function getDirection(x,y){if(x===y){return DIRECTION_NONE;}
  141. if(abs(x)>=abs(y)){return x<0?DIRECTION_LEFT:DIRECTION_RIGHT;}
  142. return y<0?DIRECTION_UP:DIRECTION_DOWN;}
  143. function getDistance(p1,p2,props){if(!props){props=PROPS_XY;}
  144. var x=p2[props[0]]-p1[props[0]],y=p2[props[1]]-p1[props[1]];return Math.sqrt((x*x)+(y*y));}
  145. function getAngle(p1,p2,props){if(!props){props=PROPS_XY;}
  146. var x=p2[props[0]]-p1[props[0]],y=p2[props[1]]-p1[props[1]];return Math.atan2(y,x)*180/Math.PI;}
  147. function getRotation(start,end){return getAngle(end[1],end[0],PROPS_CLIENT_XY)+getAngle(start[1],start[0],PROPS_CLIENT_XY);}
  148. function getScale(start,end){return getDistance(end[0],end[1],PROPS_CLIENT_XY)/getDistance(start[0],start[1],PROPS_CLIENT_XY);}
  149. var MOUSE_INPUT_MAP={mousedown:INPUT_START,mousemove:INPUT_MOVE,mouseup:INPUT_END};var MOUSE_ELEMENT_EVENTS='mousedown';var MOUSE_WINDOW_EVENTS='mousemove mouseup';function MouseInput(){this.evEl=MOUSE_ELEMENT_EVENTS;this.evWin=MOUSE_WINDOW_EVENTS;this.pressed=false;Input.apply(this,arguments);}
  150. inherit(MouseInput,Input,{handler:function MEhandler(ev){var eventType=MOUSE_INPUT_MAP[ev.type];if(eventType&INPUT_START&&ev.button===0){this.pressed=true;}
  151. if(eventType&INPUT_MOVE&&ev.which!==1){eventType=INPUT_END;}
  152. if(!this.pressed){return;}
  153. if(eventType&INPUT_END){this.pressed=false;}
  154. this.callback(this.manager,eventType,{pointers:[ev],changedPointers:[ev],pointerType:INPUT_TYPE_MOUSE,srcEvent:ev});}});var POINTER_INPUT_MAP={pointerdown:INPUT_START,pointermove:INPUT_MOVE,pointerup:INPUT_END,pointercancel:INPUT_CANCEL,pointerout:INPUT_CANCEL};var IE10_POINTER_TYPE_ENUM={2:INPUT_TYPE_TOUCH,3:INPUT_TYPE_PEN,4:INPUT_TYPE_MOUSE,5:INPUT_TYPE_KINECT};var POINTER_ELEMENT_EVENTS='pointerdown';var POINTER_WINDOW_EVENTS='pointermove pointerup pointercancel';if(window.MSPointerEvent&&!window.PointerEvent){POINTER_ELEMENT_EVENTS='MSPointerDown';POINTER_WINDOW_EVENTS='MSPointerMove MSPointerUp MSPointerCancel';}
  155. function PointerEventInput(){this.evEl=POINTER_ELEMENT_EVENTS;this.evWin=POINTER_WINDOW_EVENTS;Input.apply(this,arguments);this.store=(this.manager.session.pointerEvents=[]);}
  156. inherit(PointerEventInput,Input,{handler:function PEhandler(ev){var store=this.store;var removePointer=false;var eventTypeNormalized=ev.type.toLowerCase().replace('ms','');var eventType=POINTER_INPUT_MAP[eventTypeNormalized];var pointerType=IE10_POINTER_TYPE_ENUM[ev.pointerType]||ev.pointerType;var isTouch=(pointerType==INPUT_TYPE_TOUCH);var storeIndex=inArray(store,ev.pointerId,'pointerId');if(eventType&INPUT_START&&(ev.button===0||isTouch)){if(storeIndex<0){store.push(ev);storeIndex=store.length-1;}}else if(eventType&(INPUT_END|INPUT_CANCEL)){removePointer=true;}
  157. if(storeIndex<0){return;}
  158. store[storeIndex]=ev;this.callback(this.manager,eventType,{pointers:store,changedPointers:[ev],pointerType:pointerType,srcEvent:ev});if(removePointer){store.splice(storeIndex,1);}}});var SINGLE_TOUCH_INPUT_MAP={touchstart:INPUT_START,touchmove:INPUT_MOVE,touchend:INPUT_END,touchcancel:INPUT_CANCEL};var SINGLE_TOUCH_TARGET_EVENTS='touchstart';var SINGLE_TOUCH_WINDOW_EVENTS='touchstart touchmove touchend touchcancel';function SingleTouchInput(){this.evTarget=SINGLE_TOUCH_TARGET_EVENTS;this.evWin=SINGLE_TOUCH_WINDOW_EVENTS;this.started=false;Input.apply(this,arguments);}
  159. inherit(SingleTouchInput,Input,{handler:function TEhandler(ev){var type=SINGLE_TOUCH_INPUT_MAP[ev.type];if(type===INPUT_START){this.started=true;}
  160. if(!this.started){return;}
  161. var touches=normalizeSingleTouches.call(this,ev,type);if(type&(INPUT_END|INPUT_CANCEL)&&touches[0].length-touches[1].length===0){this.started=false;}
  162. this.callback(this.manager,type,{pointers:touches[0],changedPointers:touches[1],pointerType:INPUT_TYPE_TOUCH,srcEvent:ev});}});function normalizeSingleTouches(ev,type){var all=toArray(ev.touches);var changed=toArray(ev.changedTouches);if(type&(INPUT_END|INPUT_CANCEL)){all=uniqueArray(all.concat(changed),'identifier',true);}
  163. return[all,changed];}
  164. var TOUCH_INPUT_MAP={touchstart:INPUT_START,touchmove:INPUT_MOVE,touchend:INPUT_END,touchcancel:INPUT_CANCEL};var TOUCH_TARGET_EVENTS='touchstart touchmove touchend touchcancel';function TouchInput(){this.evTarget=TOUCH_TARGET_EVENTS;this.targetIds={};Input.apply(this,arguments);}
  165. inherit(TouchInput,Input,{handler:function MTEhandler(ev){var type=TOUCH_INPUT_MAP[ev.type];var touches=getTouches.call(this,ev,type);if(!touches){return;}
  166. this.callback(this.manager,type,{pointers:touches[0],changedPointers:touches[1],pointerType:INPUT_TYPE_TOUCH,srcEvent:ev});}});function getTouches(ev,type){var allTouches=toArray(ev.touches);var targetIds=this.targetIds;if(type&(INPUT_START|INPUT_MOVE)&&allTouches.length===1){targetIds[allTouches[0].identifier]=true;return[allTouches,allTouches];}
  167. var i,targetTouches,changedTouches=toArray(ev.changedTouches),changedTargetTouches=[],target=this.target;targetTouches=allTouches.filter(function(touch){return hasParent(touch.target,target);});if(type===INPUT_START){i=0;while(i<targetTouches.length){targetIds[targetTouches[i].identifier]=true;i++;}}
  168. i=0;while(i<changedTouches.length){if(targetIds[changedTouches[i].identifier]){changedTargetTouches.push(changedTouches[i]);}
  169. if(type&(INPUT_END|INPUT_CANCEL)){delete targetIds[changedTouches[i].identifier];}
  170. i++;}
  171. if(!changedTargetTouches.length){return;}
  172. return[uniqueArray(targetTouches.concat(changedTargetTouches),'identifier',true),changedTargetTouches];}
  173. var DEDUP_TIMEOUT=2500;var DEDUP_DISTANCE=25;function TouchMouseInput(){Input.apply(this,arguments);var handler=bindFn(this.handler,this);this.touch=new TouchInput(this.manager,handler);this.mouse=new MouseInput(this.manager,handler);this.primaryTouch=null;this.lastTouches=[];}
  174. inherit(TouchMouseInput,Input,{handler:function TMEhandler(manager,inputEvent,inputData){var isTouch=(inputData.pointerType==INPUT_TYPE_TOUCH),isMouse=(inputData.pointerType==INPUT_TYPE_MOUSE);if(isMouse&&inputData.sourceCapabilities&&inputData.sourceCapabilities.firesTouchEvents){return;}
  175. if(isTouch){recordTouches.call(this,inputEvent,inputData);}else if(isMouse&&isSyntheticEvent.call(this,inputData)){return;}
  176. this.callback(manager,inputEvent,inputData);},destroy:function destroy(){this.touch.destroy();this.mouse.destroy();}});function recordTouches(eventType,eventData){if(eventType&INPUT_START){this.primaryTouch=eventData.changedPointers[0].identifier;setLastTouch.call(this,eventData);}else if(eventType&(INPUT_END|INPUT_CANCEL)){setLastTouch.call(this,eventData);}}
  177. function setLastTouch(eventData){var touch=eventData.changedPointers[0];if(touch.identifier===this.primaryTouch){var lastTouch={x:touch.clientX,y:touch.clientY};this.lastTouches.push(lastTouch);var lts=this.lastTouches;var removeLastTouch=function(){var i=lts.indexOf(lastTouch);if(i>-1){lts.splice(i,1);}};setTimeout(removeLastTouch,DEDUP_TIMEOUT);}}
  178. function isSyntheticEvent(eventData){var x=eventData.srcEvent.clientX,y=eventData.srcEvent.clientY;for(var i=0;i<this.lastTouches.length;i++){var t=this.lastTouches[i];var dx=Math.abs(x-t.x),dy=Math.abs(y-t.y);if(dx<=DEDUP_DISTANCE&&dy<=DEDUP_DISTANCE){return true;}}
  179. return false;}
  180. var PREFIXED_TOUCH_ACTION=prefixed(TEST_ELEMENT.style,'touchAction');var NATIVE_TOUCH_ACTION=PREFIXED_TOUCH_ACTION!==undefined;var TOUCH_ACTION_COMPUTE='compute';var TOUCH_ACTION_AUTO='auto';var TOUCH_ACTION_MANIPULATION='manipulation';var TOUCH_ACTION_NONE='none';var TOUCH_ACTION_PAN_X='pan-x';var TOUCH_ACTION_PAN_Y='pan-y';var TOUCH_ACTION_MAP=getTouchActionProps();function TouchAction(manager,value){this.manager=manager;this.set(value);}
  181. TouchAction.prototype={set:function(value){if(value==TOUCH_ACTION_COMPUTE){value=this.compute();}
  182. if(NATIVE_TOUCH_ACTION&&this.manager.element.style&&TOUCH_ACTION_MAP[value]){this.manager.element.style[PREFIXED_TOUCH_ACTION]=value;}
  183. this.actions=value.toLowerCase().trim();},update:function(){this.set(this.manager.options.touchAction);},compute:function(){var actions=[];each(this.manager.recognizers,function(recognizer){if(boolOrFn(recognizer.options.enable,[recognizer])){actions=actions.concat(recognizer.getTouchAction());}});return cleanTouchActions(actions.join(' '));},preventDefaults:function(input){var srcEvent=input.srcEvent;var direction=input.offsetDirection;if(this.manager.session.prevented){srcEvent.preventDefault();return;}
  184. var actions=this.actions;var hasNone=inStr(actions,TOUCH_ACTION_NONE)&&!TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];var hasPanY=inStr(actions,TOUCH_ACTION_PAN_Y)&&!TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];var hasPanX=inStr(actions,TOUCH_ACTION_PAN_X)&&!TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];if(hasNone){var isTapPointer=input.pointers.length===1;var isTapMovement=input.distance<2;var isTapTouchTime=input.deltaTime<250;if(isTapPointer&&isTapMovement&&isTapTouchTime){return;}}
  185. if(hasPanX&&hasPanY){return;}
  186. if(hasNone||(hasPanY&&direction&DIRECTION_HORIZONTAL)||(hasPanX&&direction&DIRECTION_VERTICAL)){return this.preventSrc(srcEvent);}},preventSrc:function(srcEvent){this.manager.session.prevented=true;srcEvent.preventDefault();}};function cleanTouchActions(actions){if(inStr(actions,TOUCH_ACTION_NONE)){return TOUCH_ACTION_NONE;}
  187. var hasPanX=inStr(actions,TOUCH_ACTION_PAN_X);var hasPanY=inStr(actions,TOUCH_ACTION_PAN_Y);if(hasPanX&&hasPanY){return TOUCH_ACTION_NONE;}
  188. if(hasPanX||hasPanY){return hasPanX?TOUCH_ACTION_PAN_X:TOUCH_ACTION_PAN_Y;}
  189. if(inStr(actions,TOUCH_ACTION_MANIPULATION)){return TOUCH_ACTION_MANIPULATION;}
  190. return TOUCH_ACTION_AUTO;}
  191. function getTouchActionProps(){if(!NATIVE_TOUCH_ACTION){return false;}
  192. var touchMap={};var cssSupports=window.CSS&&window.CSS.supports;['auto','manipulation','pan-y','pan-x','pan-x pan-y','none'].forEach(function(val){touchMap[val]=cssSupports?window.CSS.supports('touch-action',val):true;});return touchMap;}
  193. var STATE_POSSIBLE=1;var STATE_BEGAN=2;var STATE_CHANGED=4;var STATE_ENDED=8;var STATE_RECOGNIZED=STATE_ENDED;var STATE_CANCELLED=16;var STATE_FAILED=32;function Recognizer(options){this.options=assign({},this.defaults,options||{});this.id=uniqueId();this.manager=null;this.options.enable=ifUndefined(this.options.enable,true);this.state=STATE_POSSIBLE;this.simultaneous={};this.requireFail=[];}
  194. Recognizer.prototype={defaults:{},set:function(options){assign(this.options,options);this.manager&&this.manager.touchAction.update();return this;},recognizeWith:function(otherRecognizer){if(invokeArrayArg(otherRecognizer,'recognizeWith',this)){return this;}
  195. var simultaneous=this.simultaneous;otherRecognizer=getRecognizerByNameIfManager(otherRecognizer,this);if(!simultaneous[otherRecognizer.id]){simultaneous[otherRecognizer.id]=otherRecognizer;otherRecognizer.recognizeWith(this);}
  196. return this;},dropRecognizeWith:function(otherRecognizer){if(invokeArrayArg(otherRecognizer,'dropRecognizeWith',this)){return this;}
  197. otherRecognizer=getRecognizerByNameIfManager(otherRecognizer,this);delete this.simultaneous[otherRecognizer.id];return this;},requireFailure:function(otherRecognizer){if(invokeArrayArg(otherRecognizer,'requireFailure',this)){return this;}
  198. var requireFail=this.requireFail;otherRecognizer=getRecognizerByNameIfManager(otherRecognizer,this);if(inArray(requireFail,otherRecognizer)===-1){requireFail.push(otherRecognizer);otherRecognizer.requireFailure(this);}
  199. return this;},dropRequireFailure:function(otherRecognizer){if(invokeArrayArg(otherRecognizer,'dropRequireFailure',this)){return this;}
  200. otherRecognizer=getRecognizerByNameIfManager(otherRecognizer,this);var index=inArray(this.requireFail,otherRecognizer);if(index>-1){this.requireFail.splice(index,1);}
  201. return this;},hasRequireFailures:function(){return this.requireFail.length>0;},canRecognizeWith:function(otherRecognizer){return!!this.simultaneous[otherRecognizer.id];},emit:function(input){var self=this;var state=this.state;function emit(event){self.manager.emit(event,input);}
  202. if(state<STATE_ENDED){emit(self.options.event+stateStr(state));}
  203. emit(self.options.event);if(input.additionalEvent){emit(input.additionalEvent);}
  204. if(state>=STATE_ENDED){emit(self.options.event+stateStr(state));}},tryEmit:function(input){if(this.canEmit()){return this.emit(input);}
  205. this.state=STATE_FAILED;},canEmit:function(){var i=0;while(i<this.requireFail.length){if(!(this.requireFail[i].state&(STATE_FAILED|STATE_POSSIBLE))){return false;}
  206. i++;}
  207. return true;},recognize:function(inputData){var inputDataClone=assign({},inputData);if(!boolOrFn(this.options.enable,[this,inputDataClone])){this.reset();this.state=STATE_FAILED;return;}
  208. if(this.state&(STATE_RECOGNIZED|STATE_CANCELLED|STATE_FAILED)){this.state=STATE_POSSIBLE;}
  209. this.state=this.process(inputDataClone);if(this.state&(STATE_BEGAN|STATE_CHANGED|STATE_ENDED|STATE_CANCELLED)){this.tryEmit(inputDataClone);}},process:function(inputData){},getTouchAction:function(){},reset:function(){}};function stateStr(state){if(state&STATE_CANCELLED){return'cancel';}else if(state&STATE_ENDED){return'end';}else if(state&STATE_CHANGED){return'move';}else if(state&STATE_BEGAN){return'start';}
  210. return'';}
  211. function directionStr(direction){if(direction==DIRECTION_DOWN){return'down';}else if(direction==DIRECTION_UP){return'up';}else if(direction==DIRECTION_LEFT){return'left';}else if(direction==DIRECTION_RIGHT){return'right';}
  212. return'';}
  213. function getRecognizerByNameIfManager(otherRecognizer,recognizer){var manager=recognizer.manager;if(manager){return manager.get(otherRecognizer);}
  214. return otherRecognizer;}
  215. function AttrRecognizer(){Recognizer.apply(this,arguments);}
  216. inherit(AttrRecognizer,Recognizer,{defaults:{pointers:1},attrTest:function(input){var optionPointers=this.options.pointers;return optionPointers===0||input.pointers.length===optionPointers;},process:function(input){var state=this.state;var eventType=input.eventType;var isRecognized=state&(STATE_BEGAN|STATE_CHANGED);var isValid=this.attrTest(input);if(isRecognized&&(eventType&INPUT_CANCEL||!isValid)){return state|STATE_CANCELLED;}else if(isRecognized||isValid){if(eventType&INPUT_END){return state|STATE_ENDED;}else if(!(state&STATE_BEGAN)){return STATE_BEGAN;}
  217. return state|STATE_CHANGED;}
  218. return STATE_FAILED;}});function PanRecognizer(){AttrRecognizer.apply(this,arguments);this.pX=null;this.pY=null;}
  219. inherit(PanRecognizer,AttrRecognizer,{defaults:{event:'pan',threshold:10,pointers:1,direction:DIRECTION_ALL},getTouchAction:function(){var direction=this.options.direction;var actions=[];if(direction&DIRECTION_HORIZONTAL){actions.push(TOUCH_ACTION_PAN_Y);}
  220. if(direction&DIRECTION_VERTICAL){actions.push(TOUCH_ACTION_PAN_X);}
  221. return actions;},directionTest:function(input){var options=this.options;var hasMoved=true;var distance=input.distance;var direction=input.direction;var x=input.deltaX;var y=input.deltaY;if(!(direction&options.direction)){if(options.direction&DIRECTION_HORIZONTAL){direction=(x===0)?DIRECTION_NONE:(x<0)?DIRECTION_LEFT:DIRECTION_RIGHT;hasMoved=x!=this.pX;distance=Math.abs(input.deltaX);}else{direction=(y===0)?DIRECTION_NONE:(y<0)?DIRECTION_UP:DIRECTION_DOWN;hasMoved=y!=this.pY;distance=Math.abs(input.deltaY);}}
  222. input.direction=direction;return hasMoved&&distance>options.threshold&&direction&options.direction;},attrTest:function(input){return AttrRecognizer.prototype.attrTest.call(this,input)&&(this.state&STATE_BEGAN||(!(this.state&STATE_BEGAN)&&this.directionTest(input)));},emit:function(input){this.pX=input.deltaX;this.pY=input.deltaY;var direction=directionStr(input.direction);if(direction){input.additionalEvent=this.options.event+direction;}
  223. this._super.emit.call(this,input);}});function PinchRecognizer(){AttrRecognizer.apply(this,arguments);}
  224. inherit(PinchRecognizer,AttrRecognizer,{defaults:{event:'pinch',threshold:0,pointers:2},getTouchAction:function(){return[TOUCH_ACTION_NONE];},attrTest:function(input){return this._super.attrTest.call(this,input)&&(Math.abs(input.scale-1)>this.options.threshold||this.state&STATE_BEGAN);},emit:function(input){if(input.scale!==1){var inOut=input.scale<1?'in':'out';input.additionalEvent=this.options.event+inOut;}
  225. this._super.emit.call(this,input);}});function PressRecognizer(){Recognizer.apply(this,arguments);this._timer=null;this._input=null;}
  226. inherit(PressRecognizer,Recognizer,{defaults:{event:'press',pointers:1,time:251,threshold:9},getTouchAction:function(){return[TOUCH_ACTION_AUTO];},process:function(input){var options=this.options;var validPointers=input.pointers.length===options.pointers;var validMovement=input.distance<options.threshold;var validTime=input.deltaTime>options.time;this._input=input;if(!validMovement||!validPointers||(input.eventType&(INPUT_END|INPUT_CANCEL)&&!validTime)){this.reset();}else if(input.eventType&INPUT_START){this.reset();this._timer=setTimeoutContext(function(){this.state=STATE_RECOGNIZED;this.tryEmit();},options.time,this);}else if(input.eventType&INPUT_END){return STATE_RECOGNIZED;}
  227. return STATE_FAILED;},reset:function(){clearTimeout(this._timer);},emit:function(input){if(this.state!==STATE_RECOGNIZED){return;}
  228. if(input&&(input.eventType&INPUT_END)){this.manager.emit(this.options.event+'up',input);}else{this._input.timeStamp=now();this.manager.emit(this.options.event,this._input);}}});function RotateRecognizer(){AttrRecognizer.apply(this,arguments);}
  229. inherit(RotateRecognizer,AttrRecognizer,{defaults:{event:'rotate',threshold:0,pointers:2},getTouchAction:function(){return[TOUCH_ACTION_NONE];},attrTest:function(input){return this._super.attrTest.call(this,input)&&(Math.abs(input.rotation)>this.options.threshold||this.state&STATE_BEGAN);}});function SwipeRecognizer(){AttrRecognizer.apply(this,arguments);}
  230. inherit(SwipeRecognizer,AttrRecognizer,{defaults:{event:'swipe',threshold:10,velocity:0.3,direction:DIRECTION_HORIZONTAL|DIRECTION_VERTICAL,pointers:1},getTouchAction:function(){return PanRecognizer.prototype.getTouchAction.call(this);},attrTest:function(input){var direction=this.options.direction;var velocity;if(direction&(DIRECTION_HORIZONTAL|DIRECTION_VERTICAL)){velocity=input.overallVelocity;}else if(direction&DIRECTION_HORIZONTAL){velocity=input.overallVelocityX;}else if(direction&DIRECTION_VERTICAL){velocity=input.overallVelocityY;}
  231. return this._super.attrTest.call(this,input)&&direction&input.offsetDirection&&input.distance>this.options.threshold&&input.maxPointers==this.options.pointers&&abs(velocity)>this.options.velocity&&input.eventType&INPUT_END;},emit:function(input){var direction=directionStr(input.offsetDirection);if(direction){this.manager.emit(this.options.event+direction,input);}
  232. this.manager.emit(this.options.event,input);}});function TapRecognizer(){Recognizer.apply(this,arguments);this.pTime=false;this.pCenter=false;this._timer=null;this._input=null;this.count=0;}
  233. inherit(TapRecognizer,Recognizer,{defaults:{event:'tap',pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[TOUCH_ACTION_MANIPULATION];},process:function(input){var options=this.options;var validPointers=input.pointers.length===options.pointers;var validMovement=input.distance<options.threshold;var validTouchTime=input.deltaTime<options.time;this.reset();if((input.eventType&INPUT_START)&&(this.count===0)){return this.failTimeout();}
  234. if(validMovement&&validTouchTime&&validPointers){if(input.eventType!=INPUT_END){return this.failTimeout();}
  235. var validInterval=this.pTime?(input.timeStamp-this.pTime<options.interval):true;var validMultiTap=!this.pCenter||getDistance(this.pCenter,input.center)<options.posThreshold;this.pTime=input.timeStamp;this.pCenter=input.center;if(!validMultiTap||!validInterval){this.count=1;}else{this.count+=1;}
  236. this._input=input;var tapCount=this.count%options.taps;if(tapCount===0){if(!this.hasRequireFailures()){return STATE_RECOGNIZED;}else{this._timer=setTimeoutContext(function(){this.state=STATE_RECOGNIZED;this.tryEmit();},options.interval,this);return STATE_BEGAN;}}}
  237. return STATE_FAILED;},failTimeout:function(){this._timer=setTimeoutContext(function(){this.state=STATE_FAILED;},this.options.interval,this);return STATE_FAILED;},reset:function(){clearTimeout(this._timer);},emit:function(){if(this.state==STATE_RECOGNIZED){this._input.tapCount=this.count;this.manager.emit(this.options.event,this._input);}}});function Hammer(element,options){options=options||{};options.recognizers=ifUndefined(options.recognizers,Hammer.defaults.preset);return new Manager(element,options);}
  238. Hammer.VERSION='2.0.8';Hammer.defaults={domEvents:false,touchAction:TOUCH_ACTION_COMPUTE,enable:true,inputTarget:null,inputClass:null,preset:[[RotateRecognizer,{enable:false}],[PinchRecognizer,{enable:false},['rotate']],[SwipeRecognizer,{direction:DIRECTION_HORIZONTAL}],[PanRecognizer,{direction:DIRECTION_HORIZONTAL},['swipe']],[TapRecognizer],[TapRecognizer,{event:'doubletap',taps:2},['tap']],[PressRecognizer]],cssProps:{userSelect:'none',touchSelect:'none',touchCallout:'none',contentZooming:'none',userDrag:'none',tapHighlightColor:'rgba(0,0,0,0)'}};var STOP=1;var FORCED_STOP=2;function Manager(element,options){this.options=assign({},Hammer.defaults,options||{});this.options.inputTarget=this.options.inputTarget||element;this.handlers={};this.session={};this.recognizers=[];this.oldCssProps={};this.element=element;this.input=createInputInstance(this);this.touchAction=new TouchAction(this,this.options.touchAction);toggleCssProps(this,true);each(this.options.recognizers,function(item){var recognizer=this.add(new(item[0])(item[1]));item[2]&&recognizer.recognizeWith(item[2]);item[3]&&recognizer.requireFailure(item[3]);},this);}
  239. Manager.prototype={set:function(options){assign(this.options,options);if(options.touchAction){this.touchAction.update();}
  240. if(options.inputTarget){this.input.destroy();this.input.target=options.inputTarget;this.input.init();}
  241. return this;},stop:function(force){this.session.stopped=force?FORCED_STOP:STOP;},recognize:function(inputData){var session=this.session;if(session.stopped){return;}
  242. this.touchAction.preventDefaults(inputData);var recognizer;var recognizers=this.recognizers;var curRecognizer=session.curRecognizer;if(!curRecognizer||(curRecognizer&&curRecognizer.state&STATE_RECOGNIZED)){curRecognizer=session.curRecognizer=null;}
  243. var i=0;while(i<recognizers.length){recognizer=recognizers[i];if(session.stopped!==FORCED_STOP&&(!curRecognizer||recognizer==curRecognizer||recognizer.canRecognizeWith(curRecognizer))){recognizer.recognize(inputData);}else{recognizer.reset();}
  244. if(!curRecognizer&&recognizer.state&(STATE_BEGAN|STATE_CHANGED|STATE_ENDED)){curRecognizer=session.curRecognizer=recognizer;}
  245. i++;}},get:function(recognizer){if(recognizer instanceof Recognizer){return recognizer;}
  246. var recognizers=this.recognizers;for(var i=0;i<recognizers.length;i++){if(recognizers[i].options.event==recognizer){return recognizers[i];}}
  247. return null;},add:function(recognizer){if(invokeArrayArg(recognizer,'add',this)){return this;}
  248. var existing=this.get(recognizer.options.event);if(existing){this.remove(existing);}
  249. this.recognizers.push(recognizer);recognizer.manager=this;this.touchAction.update();return recognizer;},remove:function(recognizer){if(invokeArrayArg(recognizer,'remove',this)){return this;}
  250. recognizer=this.get(recognizer);if(recognizer){var recognizers=this.recognizers;var index=inArray(recognizers,recognizer);if(index!==-1){recognizers.splice(index,1);this.touchAction.update();}}
  251. return this;},on:function(events,handler){if(events===undefined){return;}
  252. if(handler===undefined){return;}
  253. var handlers=this.handlers;each(splitStr(events),function(event){handlers[event]=handlers[event]||[];handlers[event].push(handler);});return this;},off:function(events,handler){if(events===undefined){return;}
  254. var handlers=this.handlers;each(splitStr(events),function(event){if(!handler){delete handlers[event];}else{handlers[event]&&handlers[event].splice(inArray(handlers[event],handler),1);}});return this;},emit:function(event,data){if(this.options.domEvents){triggerDomEvent(event,data);}
  255. var handlers=this.handlers[event]&&this.handlers[event].slice();if(!handlers||!handlers.length){return;}
  256. data.type=event;data.preventDefault=function(){data.srcEvent.preventDefault();};var i=0;while(i<handlers.length){handlers[i](data);i++;}},destroy:function(){this.element&&toggleCssProps(this,false);this.handlers={};this.session={};this.input.destroy();this.element=null;}};function toggleCssProps(manager,add){var element=manager.element;if(!element.style){return;}
  257. var prop;each(manager.options.cssProps,function(value,name){prop=prefixed(element.style,name);if(add){manager.oldCssProps[prop]=element.style[prop];element.style[prop]=value;}else{element.style[prop]=manager.oldCssProps[prop]||'';}});if(!add){manager.oldCssProps={};}}
  258. function triggerDomEvent(event,data){var gestureEvent=document.createEvent('Event');gestureEvent.initEvent(event,true,true);gestureEvent.gesture=data;data.target.dispatchEvent(gestureEvent);}
  259. assign(Hammer,{INPUT_START:INPUT_START,INPUT_MOVE:INPUT_MOVE,INPUT_END:INPUT_END,INPUT_CANCEL:INPUT_CANCEL,STATE_POSSIBLE:STATE_POSSIBLE,STATE_BEGAN:STATE_BEGAN,STATE_CHANGED:STATE_CHANGED,STATE_ENDED:STATE_ENDED,STATE_RECOGNIZED:STATE_RECOGNIZED,STATE_CANCELLED:STATE_CANCELLED,STATE_FAILED:STATE_FAILED,DIRECTION_NONE:DIRECTION_NONE,DIRECTION_LEFT:DIRECTION_LEFT,DIRECTION_RIGHT:DIRECTION_RIGHT,DIRECTION_UP:DIRECTION_UP,DIRECTION_DOWN:DIRECTION_DOWN,DIRECTION_HORIZONTAL:DIRECTION_HORIZONTAL,DIRECTION_VERTICAL:DIRECTION_VERTICAL,DIRECTION_ALL:DIRECTION_ALL,Manager:Manager,Input:Input,TouchAction:TouchAction,TouchInput:TouchInput,MouseInput:MouseInput,PointerEventInput:PointerEventInput,TouchMouseInput:TouchMouseInput,SingleTouchInput:SingleTouchInput,Recognizer:Recognizer,AttrRecognizer:AttrRecognizer,Tap:TapRecognizer,Pan:PanRecognizer,Swipe:SwipeRecognizer,Pinch:PinchRecognizer,Rotate:RotateRecognizer,Press:PressRecognizer,on:addEventListeners,off:removeEventListeners,each:each,merge:merge,extend:extend,assign:assign,inherit:inherit,bindFn:bindFn,prefixed:prefixed});var freeGlobal=(typeof window!=='undefined'?window:(typeof self!=='undefined'?self:{}));freeGlobal.Hammer=Hammer;if(typeof define==='function'&&define.amd){define(function(){return Hammer;});}else if(typeof module!='undefined'&&module.exports){module.exports=Hammer;}else{window[exportName]=Hammer;}})(window,document,'Hammer');+function($){"use strict";var defaults;$.modal=function(params,onOpen){params=$.extend({},defaults,params);var buttons=params.buttons;var buttonsHtml=buttons.map(function(d,i){return'<a href="javascript:;" class="weui-dialog__btn '+(d.className||"")+'">'+d.text+'</a>';}).join("");var tpl='<div class="weui-dialog">'+'<div class="weui-dialog__hd"><strong class="weui-dialog__title">'+params.title+'</strong></div>'+
  260. (params.text?'<div class="weui-dialog__bd">'+params.text+'</div>':'')+'<div class="weui-dialog__ft">'+buttonsHtml+'</div>'+'</div>';var dialog=$.openModal(tpl,onOpen);dialog.find(".weui-dialog__btn").each(function(i,e){var el=$(e);el.click(function(){if(params.autoClose)$.closeModal();if(buttons[i].onClick){buttons[i].onClick.call(dialog);}});});return dialog;};$.openModal=function(tpl,onOpen){var mask=$("<div class='weui-mask'></div>").appendTo(document.body);mask.show();var dialog=$(tpl).appendTo(document.body);if(onOpen){dialog.transitionEnd(function(){onOpen.call(dialog);});}
  261. dialog.show();mask.addClass("weui-mask--visible");dialog.addClass("weui-dialog--visible");return dialog;}
  262. $.closeModal=function(){$(".weui-mask--visible").removeClass("weui-mask--visible").transitionEnd(function(){$(this).remove();});$(".weui-dialog--visible").removeClass("weui-dialog--visible").transitionEnd(function(){$(this).remove();});};$.alert=function(text,title,onOK){var config;if(typeof text==='object'){config=text;}else{if(typeof title==='function'){onOK=arguments[1];title=undefined;}
  263. config={text:text,title:title,onOK:onOK}}
  264. return $.modal({text:config.text,title:config.title,buttons:[{text:defaults.buttonOK,className:"primary",onClick:config.onOK}]});}
  265. $.confirm=function(text,title,onOK,onCancel){var config;if(typeof text==='object'){config=text}else{if(typeof title==='function'){onCancel=arguments[2];onOK=arguments[1];title=undefined;}
  266. config={text:text,title:title,onOK:onOK,onCancel:onCancel}}
  267. return $.modal({text:config.text,title:config.title,buttons:[{text:defaults.buttonCancel,className:"default",onClick:config.onCancel},{text:defaults.buttonOK,className:"primary",onClick:config.onOK}]});};$.prompt=function(text,title,onOK,onCancel,input){var config;if(typeof text==='object'){config=text;}else{if(typeof title==='function'){input=arguments[3];onCancel=arguments[2];onOK=arguments[1];title=undefined;}
  268. config={text:text,title:title,input:input,onOK:onOK,onCancel:onCancel,empty:false}}
  269. var modal=$.modal({text:'<p class="weui-prompt-text">'+(config.text||'')+'</p><input type="text" class="weui-input weui-prompt-input" id="weui-prompt-input" value="'+(config.input||'')+'" />',title:config.title,autoClose:false,buttons:[{text:defaults.buttonCancel,className:"default",onClick:function(){$.closeModal();config.onCancel&&config.onCancel.call(modal);}},{text:defaults.buttonOK,className:"primary",onClick:function(){var input=$("#weui-prompt-input").val();if(!config.empty&&(input===""||input===null)){modal.find('.weui-prompt-input').focus()[0].select();return false;}
  270. $.closeModal();config.onOK&&config.onOK.call(modal,input);}}]},function(){this.find('.weui-prompt-input').focus()[0].select();});return modal;};$.login=function(text,title,onOK,onCancel,username,password){var config;if(typeof text==='object'){config=text;}else{if(typeof title==='function'){password=arguments[4];username=arguments[3];onCancel=arguments[2];onOK=arguments[1];title=undefined;}
  271. config={text:text,title:title,username:username,password:password,onOK:onOK,onCancel:onCancel}}
  272. var modal=$.modal({text:'<p class="weui-prompt-text">'+(config.text||'')+'</p>'+'<input type="text" class="weui-input weui-prompt-input" id="weui-prompt-username" value="'+(config.username||'')+'" placeholder="输入用户名" />'+'<input type="password" class="weui-input weui-prompt-input" id="weui-prompt-password" value="'+(config.password||'')+'" placeholder="输入密码" />',title:config.title,autoClose:false,buttons:[{text:defaults.buttonCancel,className:"default",onClick:function(){$.closeModal();config.onCancel&&config.onCancel.call(modal);}},{text:defaults.buttonOK,className:"primary",onClick:function(){var username=$("#weui-prompt-username").val();var password=$("#weui-prompt-password").val();if(!config.empty&&(username===""||username===null)){modal.find('#weui-prompt-username').focus()[0].select();return false;}
  273. if(!config.empty&&(password===""||password===null)){modal.find('#weui-prompt-password').focus()[0].select();return false;}
  274. $.closeModal();config.onOK&&config.onOK.call(modal,username,password);}}]},function(){this.find('#weui-prompt-username').focus()[0].select();});return modal;};$.changePassword=function(text,title,onOK,onCancel,password1,password2){var config;if(typeof text==='object'){config=text;}else{if(typeof title==='function'){password1=arguments[4];password2=arguments[3];onCancel=arguments[2];onOK=arguments[1];title=undefined;}
  275. config={text:text,title:title,username:username,password:password,onOK:onOK,onCancel:onCancel}}
  276. var modal=$.modal({text:'<p class="weui-prompt-text">'+(config.text||'')+'</p>'+'<input type="password" class="weui-input weui-prompt-input" id="weui-prompt-password1" value="'+(config.username||'')+'" placeholder="请输入新密码" />'+'<input type="password" class="weui-input weui-prompt-input" id="weui-prompt-password2" value="'+(config.password||'')+'" placeholder="请确认新密码" />',title:config.title,autoClose:false,buttons:[{text:defaults.buttonCancel,className:"default",onClick:function(){$.closeModal();config.onCancel&&config.onCancel.call(modal);}},{text:defaults.buttonOK,className:"primary",onClick:function(){var username=$("#weui-prompt-password1").val();var password=$("#weui-prompt-password2").val();if(!config.empty&&(username===""||username===null)){modal.find('#weui-prompt-password1').focus()[0].select();return false;}
  277. if(!config.empty&&(password===""||password===null)){modal.find('#weui-prompt-password2').focus()[0].select();return false;}
  278. $.closeModal();config.onOK&&config.onOK.call(modal,username,password);}}]},function(){this.find('#weui-prompt-password1').focus()[0].select();});return modal;};defaults=$.modal.prototype.defaults={title:"提示",text:undefined,buttonOK:"确定",buttonCancel:"取消",buttons:[{text:"确定",className:"primary"}],autoClose:true};}($);+function($){"use strict";var defaults;var show=function(html,className){className=className||"";var mask=$("<div class='weui-mask_transparent'></div>").appendTo(document.body);var tpl='<div class="weui-toast '+className+'">'+html+'</div>';var dialog=$(tpl).appendTo(document.body);dialog.show();dialog.addClass("weui-toast--visible");};var hide=function(callback){$(".weui-mask_transparent").remove();$(".weui-toast--visible").removeClass("weui-toast--visible").transitionEnd(function(){var $this=$(this);$this.remove();callback&&callback($this);});}
  279. $.toast=function(text,style,callback){if(typeof style==="function"){callback=style;}
  280. var className,iconClassName='weui-icon-success-no-circle';var duration=toastDefaults.duration;if(style=="cancel"){className="weui-toast_cancel";iconClassName='weui-icon-cancel'}else if(style=="forbidden"){className="weui-toast--forbidden";iconClassName='weui-icon-warn'}else if(style=="text"){className="weui-toast--text";}else if(typeof style===typeof 1){duration=style}
  281. show('<i class="'+iconClassName+' weui-icon_toast"></i><p class="weui-toast_content">'+(text||"已经完成")+'</p>',className);setTimeout(function(){hide(callback);},duration);}
  282. $.showLoading=function(text){var html='<div class="weui_loading">';html+='<i class="weui-loading weui-icon_toast"></i>';html+='</div>';html+='<p class="weui-toast_content">'+(text||"数据加载中")+'</p>';show(html,'weui_loading_toast');}
  283. $.hideLoading=function(){hide();}
  284. var toastDefaults=$.toast.prototype.defaults={duration:2500}}($);+function($){"use strict";var defaults;var show=function(params){var mask=$("<div class='weui-mask weui-actions_mask'></div>").appendTo(document.body);var actions=params.actions||[];var actionsHtml=actions.map(function(d,i){return'<div class="weui-actionsheet__cell '+(d.className||"")+'">'+d.text+'</div>';}).join("");var titleHtml="";if(params.title){titleHtml='<div class="weui-actionsheet__title">'+params.title+'</div>';}
  285. var tpl='<div class="weui-actionsheet " id="weui-actionsheet">'+
  286. titleHtml+'<div class="weui-actionsheet__menu">'+
  287. actionsHtml+'</div>'+'<div class="weui-actionsheet__action">'+'<div class="weui-actionsheet__cell weui-actionsheet_cancel">取消</div>'+'</div>'+'</div>';var dialog=$(tpl).appendTo(document.body);dialog.find(".weui-actionsheet__menu .weui-actionsheet__cell, .weui-actionsheet__action .weui-actionsheet__cell").each(function(i,e){$(e).click(function(){$.closeActions();params.onClose&&params.onClose();if(actions[i]&&actions[i].onClick){actions[i].onClick();}})});mask.show();dialog.show();mask.addClass("weui-mask--visible");dialog.addClass("weui-actionsheet_toggle");};var hide=function(){$(".weui-mask").removeClass("weui-mask--visible").transitionEnd(function(){$(this).remove();});$(".weui-actionsheet").removeClass("weui-actionsheet_toggle").transitionEnd(function(){$(this).remove();});}
  288. $.actions=function(params){params=$.extend({},defaults,params);show(params);}
  289. $.closeActions=function(){hide();}
  290. $(document).on("click",".weui-actions_mask",function(){$.closeActions();});var defaults=$.actions.prototype.defaults={title:undefined,onClose:undefined,}}($);+function($){"use strict";var PTR=function(el){this.container=$(el);this.distance=50;this.attachEvents();}
  291. PTR.prototype.touchStart=function(e){if(this.container.hasClass("refreshing"))return;var p=$.getTouchPosition(e);this.start=p;this.diffX=this.diffY=0;};PTR.prototype.touchMove=function(e){if(this.container.hasClass("refreshing"))return;if(!this.start)return false;if(this.container.scrollTop()>0)return;var p=$.getTouchPosition(e);this.diffX=p.x-this.start.x;this.diffY=p.y-this.start.y;if(this.diffY<0)return;this.container.addClass("touching");e.preventDefault();e.stopPropagation();this.diffY=Math.pow(this.diffY,0.8);this.container.css("transform","translate3d(0, "+this.diffY+"px, 0)");if(this.diffY<this.distance){this.container.removeClass("pull-up").addClass("pull-down");}else{this.container.removeClass("pull-down").addClass("pull-up");}};PTR.prototype.touchEnd=function(){this.start=false;if(this.diffY<=0||this.container.hasClass("refreshing"))return;this.container.removeClass("touching");this.container.removeClass("pull-down pull-up");this.container.css("transform","");if(Math.abs(this.diffY)<=this.distance){}else{this.container.addClass("refreshing");this.container.trigger("pull-to-refresh");}};PTR.prototype.attachEvents=function(){var el=this.container;el.addClass("weui-pull-to-refresh");el.on($.touchEvents.start,$.proxy(this.touchStart,this));el.on($.touchEvents.move,$.proxy(this.touchMove,this));el.on($.touchEvents.end,$.proxy(this.touchEnd,this));};var pullToRefresh=function(el){new PTR(el);};var pullToRefreshDone=function(el){$(el).removeClass("refreshing");}
  292. $.fn.pullToRefresh=function(){return this.each(function(){pullToRefresh(this);});}
  293. $.fn.pullToRefreshDone=function(){return this.each(function(){pullToRefreshDone(this);});}}($);+function($){"use strict";var Infinite=function(el,distance){this.container=$(el);this.container.data("infinite",this);this.distance=distance||50;this.attachEvents();}
  294. Infinite.prototype.scroll=function(){var container=this.container;var offset=container.scrollHeight()-($(window).height()+container.scrollTop());if(offset<=this.distance){container.trigger("infinite");}}
  295. Infinite.prototype.attachEvents=function(off){var el=this.container;var scrollContainer=(el[0].tagName.toUpperCase()==="BODY"?$(document):el);scrollContainer[off?"off":"on"]("scroll",$.proxy(this.scroll,this));};Infinite.prototype.detachEvents=function(off){this.attachEvents(true);}
  296. var infinite=function(el){attachEvents(el);}
  297. $.fn.infinite=function(distance){return this.each(function(){new Infinite(this,distance);});}
  298. $.fn.destroyInfinite=function(){return this.each(function(){var infinite=$(this).data("infinite");if(infinite&&infinite.detachEvents)infinite.detachEvents();});}}($);+function($){"use strict";var ITEM_ON="weui-bar__item--on";var showTab=function(a){var $a=$(a);if($a.hasClass(ITEM_ON))return;var href=$a.attr("href");if(!/^#/.test(href))return;$a.parent().find("."+ITEM_ON).removeClass(ITEM_ON);$a.addClass(ITEM_ON);var bd=$a.parents(".weui-tab").find(".weui-tab__bd");bd.find(".weui-tab__bd-item--active").removeClass("weui-tab__bd-item--active");$(href).addClass("weui-tab__bd-item--active");}
  299. $.showTab=showTab;$(document).on("click",".weui-navbar__item, .weui-tabbar__item",function(e){var $a=$(e.currentTarget);var href=$a.attr("href");if($a.hasClass(ITEM_ON))return;if(!/^#/.test(href))return;e.preventDefault();showTab($a);});}($);+function($){"use strict";$(document).on("click touchstart",".weui-search-bar__label",function(e){$(e.target).parents(".weui-search-bar").addClass("weui-search-bar_focusing").find('input').focus();}).on("click",".weui-search-bar__cancel-btn",function(e){var $input=$(e.target).parents(".weui-search-bar").removeClass("weui-search-bar_focusing").find(".weui-search-bar__input").val("").blur();}).on("click",".weui-icon-clear",function(e){var $input=$(e.target).parents(".weui-search-bar").find(".weui-search-bar__input").val("").focus();});}($);;(function($){"use strict";var device={};var ua=navigator.userAgent;var android=ua.match(/(Android);?[\s\/]+([\d.]+)?/);var ipad=ua.match(/(iPad).*OS\s([\d_]+)/);var ipod=ua.match(/(iPod)(.*OS\s([\d_]+))?/);var iphone=!ipad&&ua.match(/(iPhone\sOS)\s([\d_]+)/);device.ios=device.android=device.iphone=device.ipad=device.androidChrome=false;if(android){device.os='android';device.osVersion=android[2];device.android=true;device.androidChrome=ua.toLowerCase().indexOf('chrome')>=0;}
  300. if(ipad||iphone||ipod){device.os='ios';device.ios=true;}
  301. if(iphone&&!ipod){device.osVersion=iphone[2].replace(/_/g,'.');device.iphone=true;}
  302. if(ipad){device.osVersion=ipad[2].replace(/_/g,'.');device.ipad=true;}
  303. if(ipod){device.osVersion=ipod[3]?ipod[3].replace(/_/g,'.'):null;device.iphone=true;}
  304. if(device.ios&&device.osVersion&&ua.indexOf('Version/')>=0){if(device.osVersion.split('.')[0]==='10'){device.osVersion=ua.toLowerCase().split('version/')[1].split(' ')[0];}}
  305. device.webView=(iphone||ipad||ipod)&&ua.match(/.*AppleWebKit(?!.*Safari)/i);if(device.os&&device.os==='ios'){var osVersionArr=device.osVersion.split('.');device.minimalUi=!device.webView&&(ipod||iphone)&&(osVersionArr[0]*1===7?osVersionArr[1]*1>=1:osVersionArr[0]*1>7)&&$('meta[name="viewport"]').length>0&&$('meta[name="viewport"]').attr('content').indexOf('minimal-ui')>=0;}
  306. var windowWidth=$(window).width();var windowHeight=$(window).height();device.statusBar=false;if(device.webView&&(windowWidth*windowHeight===screen.width*screen.height)){device.statusBar=true;}
  307. else{device.statusBar=false;}
  308. var classNames=[];device.pixelRatio=window.devicePixelRatio||1;classNames.push('pixel-ratio-'+Math.floor(device.pixelRatio));if(device.pixelRatio>=2){classNames.push('retina');}
  309. if(device.os){classNames.push(device.os,device.os+'-'+device.osVersion.split('.')[0],device.os+'-'+device.osVersion.replace(/\./g,'-'));if(device.os==='ios'){var major=parseInt(device.osVersion.split('.')[0],10);for(var i=major-1;i>=6;i--){classNames.push('ios-gt-'+i);}}}
  310. if(device.statusBar){classNames.push('with-statusbar-overlay');}
  311. else{$('html').removeClass('with-statusbar-overlay');}
  312. if(classNames.length>0)$('html').addClass(classNames.join(' '));$.device=device;})($);+function($){"use strict";var Picker=function(params){var p=this;var defaults={updateValuesOnMomentum:false,updateValuesOnTouchmove:true,rotateEffect:false,momentumRatio:7,freeMode:false,scrollToInput:true,inputReadOnly:true,toolbar:true,toolbarCloseText:'完成',title:'请选择',toolbarTemplate:'<div class="toolbar">\
  313. <div class="toolbar-inner">\
  314. <a href="javascript:;" class="picker-button close-picker">{{closeText}}</a>\
  315. <h1 class="title">{{title}}</h1>\
  316. </div>\
  317. </div>',};params=params||{};for(var def in defaults){if(typeof params[def]==='undefined'){params[def]=defaults[def];}}
  318. p.params=params;p.cols=[];p.initialized=false;p.inline=p.params.container?true:false;var originBug=$.device.ios||(navigator.userAgent.toLowerCase().indexOf('safari')>=0&&navigator.userAgent.toLowerCase().indexOf('chrome')<0)&&!$.device.android;function isPopover(){var toPopover=false;if(!p.params.convertToPopover&&!p.params.onlyInPopover)return toPopover;if(!p.inline&&p.params.input){if(p.params.onlyInPopover)toPopover=true;else{if($.device.ios){toPopover=$.device.ipad?true:false;}
  319. else{if($(window).width()>=768)toPopover=true;}}}
  320. return toPopover;}
  321. function inPopover(){if(p.opened&&p.container&&p.container.length>0&&p.container.parents('.popover').length>0)return true;else return false;}
  322. p.setValue=function(arrValues,transition){var valueIndex=0;for(var i=0;i<p.cols.length;i++){if(p.cols[i]&&!p.cols[i].divider){p.cols[i].setValue(arrValues[valueIndex],transition);valueIndex++;}}};p.updateValue=function(){var newValue=[];var newDisplayValue=[];for(var i=0;i<p.cols.length;i++){if(!p.cols[i].divider){newValue.push(p.cols[i].value);newDisplayValue.push(p.cols[i].displayValue);}}
  323. if(newValue.indexOf(undefined)>=0){return;}
  324. p.value=newValue;p.displayValue=newDisplayValue;if(p.params.onChange){p.params.onChange(p,p.value,p.displayValue);}
  325. if(p.input&&p.input.length>0){$(p.input).val(p.params.formatValue?p.params.formatValue(p,p.value,p.displayValue):p.value.join(' '));$(p.input).trigger('change');}};p.initPickerCol=function(colElement,updateItems){var colContainer=$(colElement);var colIndex=colContainer.index();var col=p.cols[colIndex];if(col.divider)return;col.container=colContainer;col.wrapper=col.container.find('.picker-items-col-wrapper');col.items=col.wrapper.find('.picker-item');var i,j;var wrapperHeight,itemHeight,itemsHeight,minTranslate,maxTranslate;col.replaceValues=function(values,displayValues){col.destroyEvents();col.values=values;col.displayValues=displayValues;var newItemsHTML=p.columnHTML(col,true);col.wrapper.html(newItemsHTML);col.items=col.wrapper.find('.picker-item');col.calcSize();col.setValue(col.values[0]||'',0,true);col.initEvents();};col.calcSize=function(){if(!col.values.length)return;if(p.params.rotateEffect){col.container.removeClass('picker-items-col-absolute');if(!col.width)col.container.css({width:''});}
  326. var colWidth,colHeight;colWidth=0;colHeight=col.container[0].offsetHeight;wrapperHeight=col.wrapper[0].offsetHeight;itemHeight=col.items[0].offsetHeight;itemsHeight=itemHeight*col.items.length;minTranslate=colHeight/2-itemsHeight+itemHeight/2;maxTranslate=colHeight/2-itemHeight/2;if(col.width){colWidth=col.width;if(parseInt(colWidth,10)===colWidth)colWidth=colWidth+'px';col.container.css({width:colWidth});}
  327. if(p.params.rotateEffect){if(!col.width){col.items.each(function(){var item=$(this);item.css({width:'auto'});colWidth=Math.max(colWidth,item[0].offsetWidth);item.css({width:''});});col.container.css({width:(colWidth+2)+'px'});}
  328. col.container.addClass('picker-items-col-absolute');}};col.calcSize();col.wrapper.transform('translate3d(0,'+maxTranslate+'px,0)').transition(0);var activeIndex=0;var animationFrameId;col.setValue=function(newValue,transition,valueCallbacks){if(typeof transition==='undefined')transition='';var newActiveIndex=col.wrapper.find('.picker-item[data-picker-value="'+newValue+'"]').index();if(typeof newActiveIndex==='undefined'||newActiveIndex===-1){col.value=col.displayValue=newValue;return;}
  329. var newTranslate=-newActiveIndex*itemHeight+maxTranslate;col.wrapper.transition(transition);col.wrapper.transform('translate3d(0,'+(newTranslate)+'px,0)');if(p.params.updateValuesOnMomentum&&col.activeIndex&&col.activeIndex!==newActiveIndex){$.cancelAnimationFrame(animationFrameId);col.wrapper.transitionEnd(function(){$.cancelAnimationFrame(animationFrameId);});updateDuringScroll();}
  330. col.updateItems(newActiveIndex,newTranslate,transition,valueCallbacks);};col.updateItems=function(activeIndex,translate,transition,valueCallbacks){if(typeof translate==='undefined'){translate=$.getTranslate(col.wrapper[0],'y');}
  331. if(typeof activeIndex==='undefined')activeIndex=-Math.round((translate-maxTranslate)/itemHeight);if(activeIndex<0)activeIndex=0;if(activeIndex>=col.items.length)activeIndex=col.items.length-1;var previousActiveIndex=col.activeIndex;col.activeIndex=activeIndex;col.wrapper.find('.picker-selected').removeClass('picker-selected');if(p.params.rotateEffect){col.items.transition(transition);}
  332. var selectedItem=col.items.eq(activeIndex).addClass('picker-selected').transform('');if(valueCallbacks||typeof valueCallbacks==='undefined'){col.value=selectedItem.attr('data-picker-value');col.displayValue=col.displayValues?col.displayValues[activeIndex]:col.value;if(previousActiveIndex!==activeIndex){if(col.onChange){col.onChange(p,col.value,col.displayValue);}
  333. p.updateValue();}}
  334. if(!p.params.rotateEffect){return;}
  335. var percentage=(translate-(Math.floor((translate-maxTranslate)/itemHeight)*itemHeight+maxTranslate))/itemHeight;col.items.each(function(){var item=$(this);var itemOffsetTop=item.index()*itemHeight;var translateOffset=maxTranslate-translate;var itemOffset=itemOffsetTop-translateOffset;var percentage=itemOffset/itemHeight;var itemsFit=Math.ceil(col.height/itemHeight/2)+1;var angle=(-18*percentage);if(angle>180)angle=180;if(angle<-180)angle=-180;if(Math.abs(percentage)>itemsFit)item.addClass('picker-item-far');else item.removeClass('picker-item-far');item.transform('translate3d(0, '+(-translate+maxTranslate)+'px, '+(originBug?-110:0)+'px) rotateX('+angle+'deg)');});};function updateDuringScroll(){animationFrameId=$.requestAnimationFrame(function(){col.updateItems(undefined,undefined,0);updateDuringScroll();});}
  336. if(updateItems)col.updateItems(0,maxTranslate,0);var allowItemClick=true;var isTouched,isMoved,touchStartY,touchCurrentY,touchStartTime,touchEndTime,startTranslate,returnTo,currentTranslate,prevTranslate,velocityTranslate,velocityTime;function handleTouchStart(e){if(isMoved||isTouched)return;e.preventDefault();isTouched=true;var position=$.getTouchPosition(e);touchStartY=touchCurrentY=position.y;touchStartTime=(new Date()).getTime();allowItemClick=true;startTranslate=currentTranslate=$.getTranslate(col.wrapper[0],'y');}
  337. function handleTouchMove(e){if(!isTouched)return;e.preventDefault();allowItemClick=false;var position=$.getTouchPosition(e);touchCurrentY=position.y;if(!isMoved){$.cancelAnimationFrame(animationFrameId);isMoved=true;startTranslate=currentTranslate=$.getTranslate(col.wrapper[0],'y');col.wrapper.transition(0);}
  338. e.preventDefault();var diff=touchCurrentY-touchStartY;currentTranslate=startTranslate+diff;returnTo=undefined;if(currentTranslate<minTranslate){currentTranslate=minTranslate-Math.pow(minTranslate-currentTranslate,0.8);returnTo='min';}
  339. if(currentTranslate>maxTranslate){currentTranslate=maxTranslate+Math.pow(currentTranslate-maxTranslate,0.8);returnTo='max';}
  340. col.wrapper.transform('translate3d(0,'+currentTranslate+'px,0)');col.updateItems(undefined,currentTranslate,0,p.params.updateValuesOnTouchmove);velocityTranslate=currentTranslate-prevTranslate||currentTranslate;velocityTime=(new Date()).getTime();prevTranslate=currentTranslate;}
  341. function handleTouchEnd(e){if(!isTouched||!isMoved){isTouched=isMoved=false;return;}
  342. isTouched=isMoved=false;col.wrapper.transition('');if(returnTo){if(returnTo==='min'){col.wrapper.transform('translate3d(0,'+minTranslate+'px,0)');}
  343. else col.wrapper.transform('translate3d(0,'+maxTranslate+'px,0)');}
  344. touchEndTime=new Date().getTime();var velocity,newTranslate;if(touchEndTime-touchStartTime>300){newTranslate=currentTranslate;}
  345. else{velocity=Math.abs(velocityTranslate/(touchEndTime-velocityTime));newTranslate=currentTranslate+velocityTranslate*p.params.momentumRatio;}
  346. newTranslate=Math.max(Math.min(newTranslate,maxTranslate),minTranslate);var activeIndex=-Math.floor((newTranslate-maxTranslate)/itemHeight);if(!p.params.freeMode)newTranslate=-activeIndex*itemHeight+maxTranslate;col.wrapper.transform('translate3d(0,'+(parseInt(newTranslate,10))+'px,0)');col.updateItems(activeIndex,newTranslate,'',true);if(p.params.updateValuesOnMomentum){updateDuringScroll();col.wrapper.transitionEnd(function(){$.cancelAnimationFrame(animationFrameId);});}
  347. setTimeout(function(){allowItemClick=true;},100);}
  348. function handleClick(e){if(!allowItemClick)return;$.cancelAnimationFrame(animationFrameId);var value=$(this).attr('data-picker-value');col.setValue(value);}
  349. col.initEvents=function(detach){var method=detach?'off':'on';col.container[method]($.touchEvents.start,handleTouchStart);col.container[method]($.touchEvents.move,handleTouchMove);col.container[method]($.touchEvents.end,handleTouchEnd);col.items[method]('click',handleClick);};col.destroyEvents=function(){col.initEvents(true);};col.container[0].f7DestroyPickerCol=function(){col.destroyEvents();};col.initEvents();};p.destroyPickerCol=function(colContainer){colContainer=$(colContainer);if('f7DestroyPickerCol'in colContainer[0])colContainer[0].f7DestroyPickerCol();};function resizeCols(){if(!p.opened)return;for(var i=0;i<p.cols.length;i++){if(!p.cols[i].divider){p.cols[i].calcSize();p.cols[i].setValue(p.cols[i].value,0,false);}}}
  350. $(window).on('resize',resizeCols);p.columnHTML=function(col,onlyItems){var columnItemsHTML='';var columnHTML='';if(col.divider){columnHTML+='<div class="picker-items-col picker-items-col-divider '+(col.textAlign?'picker-items-col-'+col.textAlign:'')+' '+(col.cssClass||'')+'">'+col.content+'</div>';}
  351. else{for(var j=0;j<col.values.length;j++){columnItemsHTML+='<div class="picker-item" data-picker-value="'+col.values[j]+'">'+(col.displayValues?col.displayValues[j]:col.values[j])+'</div>';}
  352. columnHTML+='<div class="picker-items-col '+(col.textAlign?'picker-items-col-'+col.textAlign:'')+' '+(col.cssClass||'')+'"><div class="picker-items-col-wrapper">'+columnItemsHTML+'</div></div>';}
  353. return onlyItems?columnItemsHTML:columnHTML;};p.layout=function(){var pickerHTML='';var pickerClass='';var i;p.cols=[];var colsHTML='';for(i=0;i<p.params.cols.length;i++){var col=p.params.cols[i];colsHTML+=p.columnHTML(p.params.cols[i]);p.cols.push(col);}
  354. pickerClass='weui-picker-modal picker-columns '+(p.params.cssClass||'')+(p.params.rotateEffect?' picker-3d':'')+(p.params.cols.length===1?' picker-columns-single':'');pickerHTML='<div class="'+(pickerClass)+'">'+
  355. (p.params.toolbar?p.params.toolbarTemplate.replace(/{{closeText}}/g,p.params.toolbarCloseText).replace(/{{title}}/g,p.params.title):'')+'<div class="picker-modal-inner picker-items">'+
  356. colsHTML+'<div class="picker-center-highlight"></div>'+'</div>'+'</div>';p.pickerHTML=pickerHTML;};function openOnInput(e){e.preventDefault();if(p.opened)return;p.open();if(p.params.scrollToInput&&!isPopover()){var pageContent=p.input.parents('.content');if(pageContent.length===0)return;var paddingTop=parseInt(pageContent.css('padding-top'),10),paddingBottom=parseInt(pageContent.css('padding-bottom'),10),pageHeight=pageContent[0].offsetHeight-paddingTop-p.container.height(),pageScrollHeight=pageContent[0].scrollHeight-paddingTop-p.container.height(),newPaddingBottom;var inputTop=p.input.offset().top-paddingTop+p.input[0].offsetHeight;if(inputTop>pageHeight){var scrollTop=pageContent.scrollTop()+inputTop-pageHeight;if(scrollTop+pageHeight>pageScrollHeight){newPaddingBottom=scrollTop+pageHeight-pageScrollHeight+paddingBottom;if(pageHeight===pageScrollHeight){newPaddingBottom=p.container.height();}
  357. pageContent.css({'padding-bottom':(newPaddingBottom)+'px'});}
  358. pageContent.scrollTop(scrollTop,300);}}}
  359. function closeOnHTMLClick(e){if(inPopover())return;if(p.input&&p.input.length>0){if(e.target!==p.input[0]&&$(e.target).parents('.weui-picker-modal').length===0)p.close();}
  360. else{if($(e.target).parents('.weui-picker-modal').length===0)p.close();}}
  361. if(p.params.input){p.input=$(p.params.input);if(p.input.length>0){if(p.params.inputReadOnly)p.input.prop('readOnly',true);if(!p.inline){p.input.on('click',openOnInput);}
  362. if(p.params.inputReadOnly){p.input.on('focus mousedown',function(e){e.preventDefault();});}}}
  363. if(!p.inline)$('html').on('click',closeOnHTMLClick);function onPickerClose(){p.opened=false;if(p.input&&p.input.length>0)p.input.parents('.page-content').css({'padding-bottom':''});if(p.params.onClose)p.params.onClose(p);p.container.find('.picker-items-col').each(function(){p.destroyPickerCol(this);});}
  364. p.opened=false;p.open=function(){var toPopover=isPopover();if(!p.opened){p.layout();if(toPopover){p.pickerHTML='<div class="popover popover-picker-columns"><div class="popover-inner">'+p.pickerHTML+'</div></div>';p.popover=$.popover(p.pickerHTML,p.params.input,true);p.container=$(p.popover).find('.weui-picker-modal');$(p.popover).on('close',function(){onPickerClose();});}
  365. else if(p.inline){p.container=$(p.pickerHTML);p.container.addClass('picker-modal-inline');$(p.params.container).append(p.container);}
  366. else{p.container=$($.openPicker(p.pickerHTML));$(p.container).on('close',function(){onPickerClose();});}
  367. p.container[0].f7Picker=p;p.container.find('.picker-items-col').each(function(){var updateItems=true;if((!p.initialized&&p.params.value)||(p.initialized&&p.value))updateItems=false;p.initPickerCol(this,updateItems);});if(!p.initialized){if(p.params.value){p.setValue(p.params.value,0);}}
  368. else{if(p.value)p.setValue(p.value,0);}}
  369. p.opened=true;p.initialized=true;if(p.params.onOpen)p.params.onOpen(p);};p.close=function(force){if(!p.opened||p.inline)return;if(inPopover()){$.closePicker(p.popover);return;}
  370. else{$.closePicker(p.container);return;}};p.destroy=function(){p.close();if(p.params.input&&p.input.length>0){p.input.off('click focus',openOnInput);$(p.input).data('picker',null);}
  371. $('html').off('click',closeOnHTMLClick);$(window).off('resize',resizeCols);};if(p.inline){p.open();}
  372. return p;};$(document).on("click",".close-picker",function(){var pickerToClose=$('.weui-picker-modal.weui-picker-modal-visible');if(pickerToClose.length>0){$.closePicker(pickerToClose);}});$(document).on($.touchEvents.move,".picker-modal-inner",function(e){e.preventDefault();});$.openPicker=function(tpl,className,callback){if(typeof className==="function"){callback=className;className=undefined;}
  373. $.closePicker();var container=$("<div class='weui-picker-container "+(className||"")+"'></div>").appendTo(document.body);container.show();container.addClass("weui-picker-container-visible");var dialog=$(tpl).appendTo(container);dialog.width();dialog.addClass("weui-picker-modal-visible");callback&&container.on("close",callback);return dialog;}
  374. $.updatePicker=function(tpl){var container=$(".weui-picker-container-visible");if(!container[0])return false;container.html("");var dialog=$(tpl).appendTo(container);dialog.addClass("weui-picker-modal-visible");return dialog;}
  375. $.closePicker=function(container,callback){if(typeof container==="function")callback=container;$(".weui-picker-modal-visible").removeClass("weui-picker-modal-visible").transitionEnd(function(){$(this).parent().remove();callback&&callback();}).trigger("close");};$.fn.picker=function(params){var args=arguments;return this.each(function(){if(!this)return;var $this=$(this);var picker=$this.data("picker");if(!picker){params=params||{};var inputValue=$this.val();if(params.value===undefined&&inputValue!==""){params.value=(params.cols&&params.cols.length>1)?inputValue.split(" "):[inputValue];}
  376. var p=$.extend({input:this},params);picker=new Picker(p);$this.data("picker",picker);}
  377. if(typeof params===typeof"a"){picker[params].apply(picker,Array.prototype.slice.call(args,1));}});};}($);+function($){"use strict";var defaults;var selects=[];var Select=function(input,config){var self=this;this.config=config;this.data={values:'',titles:'',origins:[],length:0};this.$input=$(input);this.$input.prop("readOnly",true);this.initConfig();config=this.config;this.$input.click($.proxy(this.open,this));selects.push(this)}
  378. Select.prototype.initConfig=function(){this.config=$.extend({},defaults,this.config);var config=this.config;if(!config.items||!config.items.length)return;config.items=config.items.map(function(d,i){if(typeof d==typeof"a"){return{title:d,value:d};}
  379. return d;});this.tpl=$.t7.compile("<div class='weui-picker-modal weui-select-modal'>"+config.toolbarTemplate+(config.multi?config.checkboxTemplate:config.radioTemplate)+"</div>");if(config.input!==undefined)this.$input.val(config.input);this.parseInitValue();this._init=true;}
  380. Select.prototype.updateInputValue=function(values,titles){var v,t;if(this.config.multi){v=values.join(this.config.split);t=titles.join(this.config.split);}else{v=values[0];t=titles[0];}
  381. var origins=[];this.config.items.forEach(function(d){values.each(function(i,dd){if(d.value==dd)origins.push(d);});});this.$input.val(t).data("values",v);this.$input.attr("value",t).attr("data-values",v);var data={values:v,titles:t,valuesArray:values,titlesArray:titles,origins:origins,length:origins.length};this.data=data;this.$input.trigger("change",data);this.config.onChange&&this.config.onChange.call(this,data);}
  382. Select.prototype.parseInitValue=function(){var value=this.$input.val();var items=this.config.items;if(!this._init&&(value===undefined||value==null||value===""))return;var titles=this.config.multi?value.split(this.config.split):[value];for(var i=0;i<items.length;i++){items[i].checked=false;for(var j=0;j<titles.length;j++){if(items[i].title===titles[j]){items[i].checked=true;}}}}
  383. Select.prototype._bind=function(dialog){var self=this,config=this.config;dialog.on("change",function(e){var checked=dialog.find("input:checked");var values=checked.map(function(){return $(this).val();});var titles=checked.map(function(){return $(this).data("title");});self.updateInputValue(values,titles);if(config.autoClose&&!config.multi)self.close();}).on("click",".close-select",function(){self.close();});}
  384. Select.prototype.update=function(config){this.config=$.extend({},this.config,config);this.initConfig();if(this._open){this._bind($.updatePicker(this.getHTML()));}}
  385. Select.prototype.open=function(values,titles){if(this._open)return;for(var i=0;i<selects.length;i++){var s=selects[i];if(s===this)continue;if(s._open){if(!s.close())return false;}}
  386. this.parseInitValue();var config=this.config;var dialog=this.dialog=$.openPicker(this.getHTML());this._bind(dialog);this._open=true;if(config.onOpen)config.onOpen(this);}
  387. Select.prototype.close=function(callback,force){if(!this._open)return false;var self=this,beforeClose=this.config.beforeClose;if(typeof callback===typeof true){force===callback;}
  388. if(!force){if(beforeClose&&typeof beforeClose==='function'&&beforeClose.call(this,this.data.values,this.data.titles)===false){return false}
  389. if(this.config.multi){if(this.config.min!==undefined&&this.data.length<this.config.min){$.toast("请至少选择"+this.config.min+"个","text");return false}
  390. if(this.config.max!==undefined&&this.data.length>this.config.max){$.toast("最多只能选择"+this.config.max+"个","text");return false}}}
  391. $.closePicker(function(){self.onClose();callback&&callback();});return true}
  392. Select.prototype.onClose=function(){this._open=false;if(this.config.onClose)this.config.onClose(this);}
  393. Select.prototype.getHTML=function(callback){var config=this.config;return this.tpl({items:config.items,title:config.title,closeText:config.closeText})}
  394. $.fn.select=function(params,args){return this.each(function(){var $this=$(this);if(!$this.data("weui-select"))$this.data("weui-select",new Select(this,params));var select=$this.data("weui-select");if(typeof params===typeof"a")select[params].call(select,args);return select;});}
  395. defaults=$.fn.select.prototype.defaults={items:[],input:undefined,title:"请选择",multi:false,closeText:"确定",autoClose:true,onChange:undefined,beforeClose:undefined,onClose:undefined,onOpen:undefined,split:",",min:undefined,max:undefined,toolbarTemplate:'<div class="toolbar">\
  396. <div class="toolbar-inner">\
  397. <a href="javascript:;" class="picker-button close-select">{{closeText}}</a>\
  398. <h1 class="title">{{title}}</h1>\
  399. </div>\
  400. </div>',radioTemplate:'<div class="weui-cells weui-cells_radio">\
  401. {{#items}}\
  402. <label class="weui-cell weui-check_label" for="weui-select-id-{{this.title}}">\
  403. <div class="weui-cell__bd weui-cell_primary">\
  404. <p>{{this.title}}</p>\
  405. </div>\
  406. <div class="weui-cell__ft">\
  407. <input type="radio" class="weui-check" name="weui-select" id="weui-select-id-{{this.title}}" value="{{this.value}}" {{#if this.checked}}checked="checked"{{/if}} data-title="{{this.title}}">\
  408. <span class="weui-icon-checked"></span>\
  409. </div>\
  410. </label>\
  411. {{/items}}\
  412. </div>',checkboxTemplate:'<div class="weui-cells weui-cells_checkbox">\
  413. {{#items}}\
  414. <label class="weui-cell weui-check_label" for="weui-select-id-{{this.title}}">\
  415. <div class="weui-cell__bd weui-cell_primary">\
  416. <p>{{this.title}}</p>\
  417. </div>\
  418. <div class="weui-cell__ft">\
  419. <input type="checkbox" class="weui-check" name="weui-select" id="weui-select-id-{{this.title}}" value="{{this.value}}" {{#if this.checked}}checked="checked"{{/if}} data-title="{{this.title}}" >\
  420. <span class="weui-icon-checked"></span>\
  421. </div>\
  422. </label>\
  423. {{/items}}\
  424. </div>',}}($);+function($){"use strict";var rtl=false;var defaults;var isSameDate=function(a,b){var a=new Date(a),b=new Date(b);return a.getFullYear()===b.getFullYear()&&a.getMonth()===b.getMonth()&&a.getDate()===b.getDate()}
  425. var Calendar=function(params){var p=this;params=params||{};for(var def in defaults){if(typeof params[def]==='undefined'){params[def]=defaults[def];}}
  426. p.params=params;p.initialized=false;p.inline=p.params.container?true:false;p.isH=p.params.direction==='horizontal';var inverter=p.isH?(rtl?-1:1):1;p.animating=false;function isPopover(){var toPopover=false;if(!p.params.convertToPopover&&!p.params.onlyInPopover)return toPopover;if(!p.inline&&p.params.input){if(p.params.onlyInPopover)toPopover=true;else{if($.device.ios){toPopover=$.device.ipad?true:false;}
  427. else{if($(window).width()>=768)toPopover=true;}}}
  428. return toPopover;}
  429. function inPopover(){if(p.opened&&p.container&&p.container.length>0&&p.container.parents('.popover').length>0)return true;else return false;}
  430. function formatDate(date){date=new Date(date);var year=date.getFullYear();var month=date.getMonth();var month1=month+1;var day=date.getDate();var weekDay=date.getDay();return p.params.dateFormat.replace(/yyyy/g,year).replace(/yy/g,(year+'').substring(2)).replace(/mm/g,month1<10?'0'+month1:month1).replace(/m/g,month1).replace(/MM/g,p.params.monthNames[month]).replace(/M/g,p.params.monthNamesShort[month]).replace(/dd/g,day<10?'0'+day:day).replace(/d/g,day).replace(/DD/g,p.params.dayNames[weekDay]).replace(/D/g,p.params.dayNamesShort[weekDay]);}
  431. p.addValue=function(value){if(p.params.multiple){if(!p.value)p.value=[];var inValuesIndex;for(var i=0;i<p.value.length;i++){if(isSameDate(value,p.value[i])){inValuesIndex=i;}}
  432. if(typeof inValuesIndex==='undefined'){p.value.push(value);}
  433. else{p.value.splice(inValuesIndex,1);}
  434. p.updateValue();}
  435. else{p.value=[value];p.updateValue();}};p.setValue=function(arrValues){var date=new Date(arrValues[0]);p.setYearMonth(date.getFullYear(),date.getMonth());p.addValue(+date);};p.updateValue=function(){p.wrapper.find('.picker-calendar-day-selected').removeClass('picker-calendar-day-selected');var i,inputValue;for(i=0;i<p.value.length;i++){var valueDate=new Date(p.value[i]);p.wrapper.find('.picker-calendar-day[data-date="'+valueDate.getFullYear()+'-'+valueDate.getMonth()+'-'+valueDate.getDate()+'"]').addClass('picker-calendar-day-selected');}
  436. if(p.params.onChange){p.params.onChange(p,p.value.map(formatDate),p.value.map(function(d){return+new Date(typeof d===typeof'a'?d.split(/\D/).filter(function(a){return!!a;}).join("-"):d);}));}
  437. if(p.input&&p.input.length>0){if(p.params.formatValue)inputValue=p.params.formatValue(p,p.value);else{inputValue=[];for(i=0;i<p.value.length;i++){inputValue.push(formatDate(p.value[i]));}
  438. inputValue=inputValue.join(', ');}
  439. $(p.input).val(inputValue);$(p.input).trigger('change');}};p.initCalendarEvents=function(){var col;var allowItemClick=true;var isTouched,isMoved,touchStartX,touchStartY,touchCurrentX,touchCurrentY,touchStartTime,touchEndTime,startTranslate,currentTranslate,wrapperWidth,wrapperHeight,percentage,touchesDiff,isScrolling;function handleTouchStart(e){if(isMoved||isTouched)return;isTouched=true;var position=$.getTouchPosition(e);touchStartX=touchCurrentY=position.x;touchStartY=touchCurrentY=position.y;touchStartTime=(new Date()).getTime();percentage=0;allowItemClick=true;isScrolling=undefined;startTranslate=currentTranslate=p.monthsTranslate;}
  440. function handleTouchMove(e){if(!isTouched)return;var position=$.getTouchPosition(e);touchCurrentX=position.x;touchCurrentY=position.y;if(typeof isScrolling==='undefined'){isScrolling=!!(isScrolling||Math.abs(touchCurrentY-touchStartY)>Math.abs(touchCurrentX-touchStartX));}
  441. if(p.isH&&isScrolling){isTouched=false;return;}
  442. e.preventDefault();if(p.animating){isTouched=false;return;}
  443. allowItemClick=false;if(!isMoved){isMoved=true;wrapperWidth=p.wrapper[0].offsetWidth;wrapperHeight=p.wrapper[0].offsetHeight;p.wrapper.transition(0);}
  444. e.preventDefault();touchesDiff=p.isH?touchCurrentX-touchStartX:touchCurrentY-touchStartY;percentage=touchesDiff/(p.isH?wrapperWidth:wrapperHeight);currentTranslate=(p.monthsTranslate*inverter+percentage)*100;p.wrapper.transform('translate3d('+(p.isH?currentTranslate:0)+'%, '+(p.isH?0:currentTranslate)+'%, 0)');}
  445. function handleTouchEnd(e){if(!isTouched||!isMoved){isTouched=isMoved=false;return;}
  446. isTouched=isMoved=false;touchEndTime=new Date().getTime();if(touchEndTime-touchStartTime<300){if(Math.abs(touchesDiff)<10){p.resetMonth();}
  447. else if(touchesDiff>=10){if(rtl)p.nextMonth();else p.prevMonth();}
  448. else{if(rtl)p.prevMonth();else p.nextMonth();}}
  449. else{if(percentage<=-0.5){if(rtl)p.prevMonth();else p.nextMonth();}
  450. else if(percentage>=0.5){if(rtl)p.nextMonth();else p.prevMonth();}
  451. else{p.resetMonth();}}
  452. setTimeout(function(){allowItemClick=true;},100);}
  453. function handleDayClick(e){if(!allowItemClick)return;var day=$(e.target).parents('.picker-calendar-day');if(day.length===0&&$(e.target).hasClass('picker-calendar-day')){day=$(e.target);}
  454. if(day.length===0)return;if(day.hasClass('picker-calendar-day-disabled'))return;if(day.hasClass('picker-calendar-day-next'))p.nextMonth();if(day.hasClass('picker-calendar-day-prev'))p.prevMonth();var dateYear=day.attr('data-year');var dateMonth=day.attr('data-month');var dateDay=day.attr('data-day');if(p.params.onDayClick){p.params.onDayClick(p,day[0],dateYear,dateMonth,dateDay);}
  455. p.addValue(new Date(dateYear,dateMonth,dateDay).getTime());if(p.params.closeOnSelect&&!p.params.multiple)p.close();}
  456. p.container.find('.picker-calendar-prev-month').on('click',p.prevMonth);p.container.find('.picker-calendar-next-month').on('click',p.nextMonth);p.container.find('.picker-calendar-prev-year').on('click',p.prevYear);p.container.find('.picker-calendar-next-year').on('click',p.nextYear);p.wrapper.on('click',handleDayClick);if(p.params.touchMove){p.wrapper.on($.touchEvents.start,handleTouchStart);p.wrapper.on($.touchEvents.move,handleTouchMove);p.wrapper.on($.touchEvents.end,handleTouchEnd);}
  457. p.container[0].f7DestroyCalendarEvents=function(){p.container.find('.picker-calendar-prev-month').off('click',p.prevMonth);p.container.find('.picker-calendar-next-month').off('click',p.nextMonth);p.container.find('.picker-calendar-prev-year').off('click',p.prevYear);p.container.find('.picker-calendar-next-year').off('click',p.nextYear);p.wrapper.off('click',handleDayClick);if(p.params.touchMove){p.wrapper.off($.touchEvents.start,handleTouchStart);p.wrapper.off($.touchEvents.move,handleTouchMove);p.wrapper.off($.touchEvents.end,handleTouchEnd);}};};p.destroyCalendarEvents=function(colContainer){if('f7DestroyCalendarEvents'in p.container[0])p.container[0].f7DestroyCalendarEvents();};p.daysInMonth=function(date){var d=new Date(date);return new Date(d.getFullYear(),d.getMonth()+1,0).getDate();};p.monthHTML=function(date,offset){date=new Date(date);var year=date.getFullYear(),month=date.getMonth(),day=date.getDate();if(offset==='next'){if(month===11)date=new Date(year+1,0);else date=new Date(year,month+1,1);}
  458. if(offset==='prev'){if(month===0)date=new Date(year-1,11);else date=new Date(year,month-1,1);}
  459. if(offset==='next'||offset==='prev'){month=date.getMonth();year=date.getFullYear();}
  460. var daysInPrevMonth=p.daysInMonth(new Date(date.getFullYear(),date.getMonth()).getTime()-10*24*60*60*1000),daysInMonth=p.daysInMonth(date),firstDayOfMonthIndex=new Date(date.getFullYear(),date.getMonth()).getDay();if(firstDayOfMonthIndex===0)firstDayOfMonthIndex=7;var dayDate,currentValues=[],i,j,rows=6,cols=7,monthHTML='',dayIndex=0+(p.params.firstDay-1),today=new Date().setHours(0,0,0,0),minDate=p.params.minDate?new Date(p.params.minDate).getTime():null,maxDate=p.params.maxDate?new Date(p.params.maxDate).getTime():null;if(p.value&&p.value.length){for(i=0;i<p.value.length;i++){currentValues.push(new Date(p.value[i]).setHours(0,0,0,0));}}
  461. for(i=1;i<=rows;i++){var rowHTML='';var row=i;for(j=1;j<=cols;j++){var col=j;dayIndex++;var dayNumber=dayIndex-firstDayOfMonthIndex;var addClass='';if(dayNumber<0){dayNumber=daysInPrevMonth+dayNumber+1;addClass+=' picker-calendar-day-prev';dayDate=new Date(month-1<0?year-1:year,month-1<0?11:month-1,dayNumber).getTime();}
  462. else{dayNumber=dayNumber+1;if(dayNumber>daysInMonth){dayNumber=dayNumber-daysInMonth;addClass+=' picker-calendar-day-next';dayDate=new Date(month+1>11?year+1:year,month+1>11?0:month+1,dayNumber).getTime();}
  463. else{dayDate=new Date(year,month,dayNumber).getTime();}}
  464. if(dayDate===today)addClass+=' picker-calendar-day-today';if(currentValues.indexOf(dayDate)>=0)addClass+=' picker-calendar-day-selected';if(p.params.weekendDays.indexOf(col-1)>=0){addClass+=' picker-calendar-day-weekend';}
  465. if((minDate&&dayDate<minDate)||(maxDate&&dayDate>maxDate)){addClass+=' picker-calendar-day-disabled';}
  466. dayDate=new Date(dayDate);var dayYear=dayDate.getFullYear();var dayMonth=dayDate.getMonth();rowHTML+='<div data-year="'+dayYear+'" data-month="'+dayMonth+'" data-day="'+dayNumber+'" class="picker-calendar-day'+(addClass)+'" data-date="'+(dayYear+'-'+dayMonth+'-'+dayNumber)+'"><span>'+dayNumber+'</span></div>';}
  467. monthHTML+='<div class="picker-calendar-row">'+rowHTML+'</div>';}
  468. monthHTML='<div class="picker-calendar-month" data-year="'+year+'" data-month="'+month+'">'+monthHTML+'</div>';return monthHTML;};p.animating=false;p.updateCurrentMonthYear=function(dir){if(typeof dir==='undefined'){p.currentMonth=parseInt(p.months.eq(1).attr('data-month'),10);p.currentYear=parseInt(p.months.eq(1).attr('data-year'),10);}
  469. else{p.currentMonth=parseInt(p.months.eq(dir==='next'?(p.months.length-1):0).attr('data-month'),10);p.currentYear=parseInt(p.months.eq(dir==='next'?(p.months.length-1):0).attr('data-year'),10);}
  470. p.container.find('.current-month-value').text(p.params.monthNames[p.currentMonth]);p.container.find('.current-year-value').text(p.currentYear);};p.onMonthChangeStart=function(dir){p.updateCurrentMonthYear(dir);p.months.removeClass('picker-calendar-month-current picker-calendar-month-prev picker-calendar-month-next');var currentIndex=dir==='next'?p.months.length-1:0;p.months.eq(currentIndex).addClass('picker-calendar-month-current');p.months.eq(dir==='next'?currentIndex-1:currentIndex+1).addClass(dir==='next'?'picker-calendar-month-prev':'picker-calendar-month-next');if(p.params.onMonthYearChangeStart){p.params.onMonthYearChangeStart(p,p.currentYear,p.currentMonth);}};p.onMonthChangeEnd=function(dir,rebuildBoth){p.animating=false;var nextMonthHTML,prevMonthHTML,newMonthHTML;p.wrapper.find('.picker-calendar-month:not(.picker-calendar-month-prev):not(.picker-calendar-month-current):not(.picker-calendar-month-next)').remove();if(typeof dir==='undefined'){dir='next';rebuildBoth=true;}
  471. if(!rebuildBoth){newMonthHTML=p.monthHTML(new Date(p.currentYear,p.currentMonth),dir);}
  472. else{p.wrapper.find('.picker-calendar-month-next, .picker-calendar-month-prev').remove();prevMonthHTML=p.monthHTML(new Date(p.currentYear,p.currentMonth),'prev');nextMonthHTML=p.monthHTML(new Date(p.currentYear,p.currentMonth),'next');}
  473. if(dir==='next'||rebuildBoth){p.wrapper.append(newMonthHTML||nextMonthHTML);}
  474. if(dir==='prev'||rebuildBoth){p.wrapper.prepend(newMonthHTML||prevMonthHTML);}
  475. p.months=p.wrapper.find('.picker-calendar-month');p.setMonthsTranslate(p.monthsTranslate);if(p.params.onMonthAdd){p.params.onMonthAdd(p,dir==='next'?p.months.eq(p.months.length-1)[0]:p.months.eq(0)[0]);}
  476. if(p.params.onMonthYearChangeEnd){p.params.onMonthYearChangeEnd(p,p.currentYear,p.currentMonth);}};p.setMonthsTranslate=function(translate){translate=translate||p.monthsTranslate||0;if(typeof p.monthsTranslate==='undefined')p.monthsTranslate=translate;p.months.removeClass('picker-calendar-month-current picker-calendar-month-prev picker-calendar-month-next');var prevMonthTranslate=-(translate+1)*100*inverter;var currentMonthTranslate=-translate*100*inverter;var nextMonthTranslate=-(translate-1)*100*inverter;p.months.eq(0).transform('translate3d('+(p.isH?prevMonthTranslate:0)+'%, '+(p.isH?0:prevMonthTranslate)+'%, 0)').addClass('picker-calendar-month-prev');p.months.eq(1).transform('translate3d('+(p.isH?currentMonthTranslate:0)+'%, '+(p.isH?0:currentMonthTranslate)+'%, 0)').addClass('picker-calendar-month-current');p.months.eq(2).transform('translate3d('+(p.isH?nextMonthTranslate:0)+'%, '+(p.isH?0:nextMonthTranslate)+'%, 0)').addClass('picker-calendar-month-next');};p.nextMonth=function(transition){if(typeof transition==='undefined'||typeof transition==='object'){transition='';if(!p.params.animate)transition=0;}
  477. var nextMonth=parseInt(p.months.eq(p.months.length-1).attr('data-month'),10);var nextYear=parseInt(p.months.eq(p.months.length-1).attr('data-year'),10);var nextDate=new Date(nextYear,nextMonth);var nextDateTime=nextDate.getTime();var transitionEndCallback=p.animating?false:true;if(p.params.maxDate){if(nextDateTime>new Date(p.params.maxDate).getTime()){return p.resetMonth();}}
  478. p.monthsTranslate--;if(nextMonth===p.currentMonth){var nextMonthTranslate=-(p.monthsTranslate)*100*inverter;var nextMonthHTML=$(p.monthHTML(nextDateTime,'next')).transform('translate3d('+(p.isH?nextMonthTranslate:0)+'%, '+(p.isH?0:nextMonthTranslate)+'%, 0)').addClass('picker-calendar-month-next');p.wrapper.append(nextMonthHTML[0]);p.months=p.wrapper.find('.picker-calendar-month');if(p.params.onMonthAdd){p.params.onMonthAdd(p,p.months.eq(p.months.length-1)[0]);}}
  479. p.animating=true;p.onMonthChangeStart('next');var translate=(p.monthsTranslate*100)*inverter;p.wrapper.transition(transition).transform('translate3d('+(p.isH?translate:0)+'%, '+(p.isH?0:translate)+'%, 0)');if(transitionEndCallback){p.wrapper.transitionEnd(function(){p.onMonthChangeEnd('next');});}
  480. if(!p.params.animate){p.onMonthChangeEnd('next');}};p.prevMonth=function(transition){if(typeof transition==='undefined'||typeof transition==='object'){transition='';if(!p.params.animate)transition=0;}
  481. var prevMonth=parseInt(p.months.eq(0).attr('data-month'),10);var prevYear=parseInt(p.months.eq(0).attr('data-year'),10);var prevDate=new Date(prevYear,prevMonth+1,-1);var prevDateTime=prevDate.getTime();var transitionEndCallback=p.animating?false:true;if(p.params.minDate){if(prevDateTime<new Date(p.params.minDate).getTime()){return p.resetMonth();}}
  482. p.monthsTranslate++;if(prevMonth===p.currentMonth){var prevMonthTranslate=-(p.monthsTranslate)*100*inverter;var prevMonthHTML=$(p.monthHTML(prevDateTime,'prev')).transform('translate3d('+(p.isH?prevMonthTranslate:0)+'%, '+(p.isH?0:prevMonthTranslate)+'%, 0)').addClass('picker-calendar-month-prev');p.wrapper.prepend(prevMonthHTML[0]);p.months=p.wrapper.find('.picker-calendar-month');if(p.params.onMonthAdd){p.params.onMonthAdd(p,p.months.eq(0)[0]);}}
  483. p.animating=true;p.onMonthChangeStart('prev');var translate=(p.monthsTranslate*100)*inverter;p.wrapper.transition(transition).transform('translate3d('+(p.isH?translate:0)+'%, '+(p.isH?0:translate)+'%, 0)');if(transitionEndCallback){p.wrapper.transitionEnd(function(){p.onMonthChangeEnd('prev');});}
  484. if(!p.params.animate){p.onMonthChangeEnd('prev');}};p.resetMonth=function(transition){if(typeof transition==='undefined')transition='';var translate=(p.monthsTranslate*100)*inverter;p.wrapper.transition(transition).transform('translate3d('+(p.isH?translate:0)+'%, '+(p.isH?0:translate)+'%, 0)');};p.setYearMonth=function(year,month,transition){if(typeof year==='undefined')year=p.currentYear;if(typeof month==='undefined')month=p.currentMonth;if(typeof transition==='undefined'||typeof transition==='object'){transition='';if(!p.params.animate)transition=0;}
  485. var targetDate;if(year<p.currentYear){targetDate=new Date(year,month+1,-1).getTime();}
  486. else{targetDate=new Date(year,month).getTime();}
  487. if(p.params.maxDate&&targetDate>new Date(p.params.maxDate).getTime()){return false;}
  488. if(p.params.minDate&&targetDate<new Date(p.params.minDate).getTime()){return false;}
  489. var currentDate=new Date(p.currentYear,p.currentMonth).getTime();var dir=targetDate>currentDate?'next':'prev';var newMonthHTML=p.monthHTML(new Date(year,month));p.monthsTranslate=p.monthsTranslate||0;var prevTranslate=p.monthsTranslate;var monthTranslate,wrapperTranslate;var transitionEndCallback=p.animating?false:true;if(targetDate>currentDate){p.monthsTranslate--;if(!p.animating)p.months.eq(p.months.length-1).remove();p.wrapper.append(newMonthHTML);p.months=p.wrapper.find('.picker-calendar-month');monthTranslate=-(prevTranslate-1)*100*inverter;p.months.eq(p.months.length-1).transform('translate3d('+(p.isH?monthTranslate:0)+'%, '+(p.isH?0:monthTranslate)+'%, 0)').addClass('picker-calendar-month-next');}
  490. else{p.monthsTranslate++;if(!p.animating)p.months.eq(0).remove();p.wrapper.prepend(newMonthHTML);p.months=p.wrapper.find('.picker-calendar-month');monthTranslate=-(prevTranslate+1)*100*inverter;p.months.eq(0).transform('translate3d('+(p.isH?monthTranslate:0)+'%, '+(p.isH?0:monthTranslate)+'%, 0)').addClass('picker-calendar-month-prev');}
  491. if(p.params.onMonthAdd){p.params.onMonthAdd(p,dir==='next'?p.months.eq(p.months.length-1)[0]:p.months.eq(0)[0]);}
  492. p.animating=true;p.onMonthChangeStart(dir);wrapperTranslate=(p.monthsTranslate*100)*inverter;p.wrapper.transition(transition).transform('translate3d('+(p.isH?wrapperTranslate:0)+'%, '+(p.isH?0:wrapperTranslate)+'%, 0)');if(transitionEndCallback){p.wrapper.transitionEnd(function(){p.onMonthChangeEnd(dir,true);});}
  493. if(!p.params.animate){p.onMonthChangeEnd(dir);}};p.nextYear=function(){p.setYearMonth(p.currentYear+1);};p.prevYear=function(){p.setYearMonth(p.currentYear-1);};p.layout=function(){var pickerHTML='';var pickerClass='';var i;var layoutDate=p.value&&p.value.length?p.value[0]:new Date().setHours(0,0,0,0);var prevMonthHTML=p.monthHTML(layoutDate,'prev');var currentMonthHTML=p.monthHTML(layoutDate);var nextMonthHTML=p.monthHTML(layoutDate,'next');var monthsHTML='<div class="picker-calendar-months"><div class="picker-calendar-months-wrapper">'+(prevMonthHTML+currentMonthHTML+nextMonthHTML)+'</div></div>';var weekHeaderHTML='';if(p.params.weekHeader){for(i=0;i<7;i++){var weekDayIndex=(i+p.params.firstDay>6)?(i-7+p.params.firstDay):(i+p.params.firstDay);var dayName=p.params.dayNamesShort[weekDayIndex];weekHeaderHTML+='<div class="picker-calendar-week-day '+((p.params.weekendDays.indexOf(weekDayIndex)>=0)?'picker-calendar-week-day-weekend':'')+'"> '+dayName+'</div>';}
  494. weekHeaderHTML='<div class="picker-calendar-week-days">'+weekHeaderHTML+'</div>';}
  495. pickerClass='weui-picker-calendar '+(p.params.cssClass||'');if(!p.inline)pickerClass='weui-picker-modal '+pickerClass;var toolbarHTML=p.params.toolbar?p.params.toolbarTemplate.replace(/{{closeText}}/g,p.params.toolbarCloseText):'';if(p.params.toolbar){toolbarHTML=p.params.toolbarTemplate.replace(/{{closeText}}/g,p.params.toolbarCloseText).replace(/{{monthPicker}}/g,(p.params.monthPicker?p.params.monthPickerTemplate:'')).replace(/{{yearPicker}}/g,(p.params.yearPicker?p.params.yearPickerTemplate:''));}
  496. pickerHTML='<div class="'+(pickerClass)+'">'+
  497. toolbarHTML+'<div class="picker-modal-inner">'+
  498. weekHeaderHTML+
  499. monthsHTML+'</div>'+'</div>';p.pickerHTML=pickerHTML;};function openOnInput(e){e.preventDefault();if(p.opened)return;p.open();if(p.params.scrollToInput&&!isPopover()){var pageContent=p.input.parents('.page-content');if(pageContent.length===0)return;var paddingTop=parseInt(pageContent.css('padding-top'),10),paddingBottom=parseInt(pageContent.css('padding-bottom'),10),pageHeight=pageContent[0].offsetHeight-paddingTop-p.container.height(),pageScrollHeight=pageContent[0].scrollHeight-paddingTop-p.container.height(),newPaddingBottom;var inputTop=p.input.offset().top-paddingTop+p.input[0].offsetHeight;if(inputTop>pageHeight){var scrollTop=pageContent.scrollTop()+inputTop-pageHeight;if(scrollTop+pageHeight>pageScrollHeight){newPaddingBottom=scrollTop+pageHeight-pageScrollHeight+paddingBottom;if(pageHeight===pageScrollHeight){newPaddingBottom=p.container.height();}
  500. pageContent.css({'padding-bottom':(newPaddingBottom)+'px'});}
  501. pageContent.scrollTop(scrollTop,300);}}}
  502. function closeOnHTMLClick(e){if(inPopover())return;if(p.input&&p.input.length>0){if(e.target!==p.input[0]&&$(e.target).parents('.weui-picker-modal').length===0)p.close();}
  503. else{if($(e.target).parents('.weui-picker-modal').length===0)p.close();}}
  504. if(p.params.input){p.input=$(p.params.input);if(p.input.length>0){if(p.params.inputReadOnly)p.input.prop('readOnly',true);if(!p.inline){p.input.on('click',openOnInput);}
  505. if(p.params.inputReadOnly){p.input.on('focus mousedown',function(e){e.preventDefault();});}}}
  506. if(!p.inline)$(document).on('click touchend',closeOnHTMLClick);function onPickerClose(){p.opened=false;if(p.input&&p.input.length>0)p.input.parents('.page-content').css({'padding-bottom':''});if(p.params.onClose)p.params.onClose(p);p.destroyCalendarEvents();}
  507. p.opened=false;p.open=function(){var toPopover=isPopover()&&false;var updateValue=false;if(!p.opened){if(!p.value){if(p.params.value){p.value=p.params.value;updateValue=true;}}
  508. p.layout();if(toPopover){p.pickerHTML='<div class="popover popover-picker-calendar"><div class="popover-inner">'+p.pickerHTML+'</div></div>';p.popover=$.popover(p.pickerHTML,p.params.input,true);p.container=$(p.popover).find('.weui-picker-modal');$(p.popover).on('close',function(){onPickerClose();});}
  509. else if(p.inline){p.container=$(p.pickerHTML);p.container.addClass('picker-modal-inline');$(p.params.container).append(p.container);}
  510. else{p.container=$($.openPicker(p.pickerHTML));$(p.container).on('close',function(){onPickerClose();});}
  511. p.container[0].f7Calendar=p;p.wrapper=p.container.find('.picker-calendar-months-wrapper');p.months=p.wrapper.find('.picker-calendar-month');p.updateCurrentMonthYear();p.monthsTranslate=0;p.setMonthsTranslate();p.initCalendarEvents();if(updateValue)p.updateValue();}
  512. p.opened=true;p.initialized=true;if(p.params.onMonthAdd){p.months.each(function(){p.params.onMonthAdd(p,this);});}
  513. if(p.params.onOpen)p.params.onOpen(p);};p.close=function(){if(!p.opened||p.inline)return;p.animating=false;if(inPopover()){$.closePicker(p.popover);return;}
  514. else{$.closePicker(p.container);return;}};p.destroy=function(){p.close();if(p.params.input&&p.input.length>0){p.input.off('click focus',openOnInput);p.input.data("calendar",null);}
  515. $('html').off('click',closeOnHTMLClick);};if(p.inline){p.open();}
  516. return p;};var format=function(d){return d<10?"0"+d:d;}
  517. $.fn.calendar=function(params,args){params=params||{};return this.each(function(){var $this=$(this);if(!$this[0])return;var p={};if($this[0].tagName.toUpperCase()==="INPUT"){p.input=$this;}else{p.container=$this;}
  518. var calendar=$this.data("calendar");if(!calendar){if(typeof params===typeof"a"){}else{if(!params.value&&$this.val())params.value=[$this.val()];if(!params.value){var today=new Date();params.value=[today.getFullYear()+"-"+format(today.getMonth()+1)+"-"+format(today.getDate())];}
  519. calendar=$this.data("calendar",new Calendar($.extend(p,params)));}}
  520. if(typeof params===typeof"a"){calendar[params].call(calendar,args);}});};defaults=$.fn.calendar.prototype.defaults={value:undefined,monthNames:['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'],monthNamesShort:['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'],dayNames:['周日','周一','周二','周三','周四','周五','周六'],dayNamesShort:['周日','周一','周二','周三','周四','周五','周六'],firstDay:1,weekendDays:[0,6],multiple:false,dateFormat:'yyyy-mm-dd',direction:'horizontal',minDate:null,maxDate:null,touchMove:true,animate:true,closeOnSelect:true,monthPicker:true,monthPickerTemplate:'<div class="picker-calendar-month-picker">'+'<a href="javascript:;" class="link icon-only picker-calendar-prev-month"><i class="icon icon-prev"></i></a>'+'<div class="current-month-value"></div>'+'<a href="javascript:;" class="link icon-only picker-calendar-next-month"><i class="icon icon-next"></i></a>'+'</div>',yearPicker:true,yearPickerTemplate:'<div class="picker-calendar-year-picker">'+'<a href="javascript:;" class="link icon-only picker-calendar-prev-year"><i class="icon icon-prev"></i></a>'+'<span class="current-year-value"></span>'+'<a href="javascript:;" class="link icon-only picker-calendar-next-year"><i class="icon icon-next"></i></a>'+'</div>',weekHeader:true,scrollToInput:true,inputReadOnly:true,convertToPopover:true,onlyInPopover:false,toolbar:true,toolbarCloseText:'Done',toolbarTemplate:'<div class="toolbar">'+'<div class="toolbar-inner">'+'{{yearPicker}}'+'{{monthPicker}}'+'</div>'+'</div>',};}($);+function($){"use strict";var defaults;var formatNumber=function(n){return n<10?"0"+n:n;}
  521. var Datetime=function(input,params){this.input=$(input);this.params=params;this.initMonthes=('01 02 03 04 05 06 07 08 09 10 11 12').split(' ');this.initYears=(function(){var arr=[];for(var i=1950;i<=2030;i++){arr.push(i);}
  522. return arr;})();var p=$.extend({},params,this.getConfig());$(this.input).picker(p);}
  523. Datetime.prototype={getDays:function(max){var days=[];for(var i=1;i<=(max||31);i++){days.push(i<10?"0"+i:i);}
  524. return days;},getDaysByMonthAndYear:function(month,year){var int_d=new Date(year,parseInt(month)+1-1,1);var d=new Date(int_d-1);return this.getDays(d.getDate());},getConfig:function(){var today=new Date(),params=this.params,self=this,lastValidValues;var config={rotateEffect:false,cssClass:'datetime-picker',value:[today.getFullYear(),formatNumber(today.getMonth()+1),formatNumber(today.getDate()),formatNumber(today.getHours()),(formatNumber(today.getMinutes()))],onChange:function(picker,values,displayValues){var cols=picker.cols;var days=self.getDaysByMonthAndYear(values[1],values[0]);var currentValue=values[2];if(currentValue>days.length)currentValue=days.length;picker.cols[4].setValue(currentValue);var current=new Date(values[0]+'-'+values[1]+'-'+values[2]);var valid=true;if(params.min){var min=new Date(typeof params.min==="function"?params.min():params.min);if(current<+min){picker.setValue(lastValidValues);valid=false;}}
  525. if(params.max){var max=new Date(typeof params.max==="function"?params.max():params.max);if(current>+max){picker.setValue(lastValidValues);valid=false;}}
  526. valid&&(lastValidValues=values);if(self.params.onChange){self.params.onChange.apply(this,arguments);}},formatValue:function(p,values,displayValues){return self.params.format(p,values,displayValues);},cols:[{values:(function(){var years=[];for(var i=1950;i<=2050;i++)years.push(i);return years;})()},{divider:true,content:params.yearSplit},{values:['01','02','03','04','05','06','07','08','09','10','11','12']},{divider:true,content:params.monthSplit},{values:(function(){var dates=[];for(var i=1;i<=31;i++)dates.push(formatNumber(i));return dates;})()},]}
  527. if(params.dateSplit){config.cols.push({divider:true,content:params.dateSplit})}
  528. config.cols.push({divider:true,content:params.datetimeSplit})
  529. var times=self.params.times();if(times&&times.length){config.cols=config.cols.concat(times);}
  530. var inputValue=this.input.val();if(inputValue)config.value=params.parse(inputValue);if(this.params.value){this.input.val(this.params.value);config.value=params.parse(this.params.value);}
  531. return config;}}
  532. $.fn.datetimePicker=function(params){params=$.extend({},defaults,params);return this.each(function(){if(!this)return;var $this=$(this);var datetime=$this.data("datetime");if(!datetime)$this.data("datetime",new Datetime(this,params));return datetime;});};defaults=$.fn.datetimePicker.prototype.defaults={input:undefined,min:undefined,max:undefined,yearSplit:'-',monthSplit:'-',dateSplit:'',datetimeSplit:' ',times:function(){return[{values:(function(){var hours=[];for(var i=0;i<24;i++)hours.push(formatNumber(i));return hours;})()},{divider:true,content:':'},{values:(function(){var minutes=[];for(var i=0;i<60;i++)minutes.push(formatNumber(i));return minutes;})()}];},format:function(p,values){return p.cols.map(function(col){return col.value||col.content;}).join('');},parse:function(str){var t=str.split(this.datetimeSplit);return t[0].split(/\D/).concat(t[1].split(/:|时|分|秒/)).filter(function(d){return!!d;})}}}($);+function($){"use strict";$.openPopup=function(popup,className){$.closePopup();popup=$(popup);popup.show();popup.width();popup.addClass("weui-popup__container--visible");var modal=popup.find(".weui-popup__modal");modal.width();modal.transitionEnd(function(){modal.trigger("open");});}
  533. $.closePopup=function(container,remove){container=$(container||".weui-popup__container--visible");container.find('.weui-popup__modal').transitionEnd(function(){var $this=$(this);$this.trigger("close");container.hide();remove&&container.remove();})
  534. container.removeClass("weui-popup__container--visible")};$(document).on("click",".close-popup, .weui-popup__overlay",function(){$.closePopup();}).on("click",".open-popup",function(){$($(this).data("target")).popup();}).on("click",".weui-popup__container",function(e){if($(e.target).hasClass("weui-popup__container"))$.closePopup();})
  535. $.fn.popup=function(){return this.each(function(){$.openPopup(this);});};}($);+function($){"use strict";var noti,defaults,timeout,start,diffX,diffY;var touchStart=function(e){var p=$.getTouchPosition(e);start=p;diffX=diffY=0;noti.addClass("touching");};var touchMove=function(e){if(!start)return false;e.preventDefault();e.stopPropagation();var p=$.getTouchPosition(e);diffX=p.x-start.x;diffY=p.y-start.y;if(diffY>0){diffY=Math.sqrt(diffY);}
  536. noti.css("transform","translate3d(0, "+diffY+"px, 0)");};var touchEnd=function(){noti.removeClass("touching");noti.attr("style","");if(diffY<0&&(Math.abs(diffY)>noti.height()*0.38)){$.closeNotification();}
  537. if(Math.abs(diffX)<=1&&Math.abs(diffY)<=1){noti.trigger("noti-click");}
  538. start=false;};var attachEvents=function(el){el.on($.touchEvents.start,touchStart);el.on($.touchEvents.move,touchMove);el.on($.touchEvents.end,touchEnd);};$.notification=$.noti=function(params){params=$.extend({},defaults,params);noti=$(".weui-notification");if(!noti[0]){noti=$('<div class="weui-notification"></div>').appendTo(document.body);attachEvents(noti);}
  539. noti.off("noti-click");if(params.onClick)noti.on("noti-click",function(){params.onClick(params.data);});noti.html($.t7.compile(params.tpl)(params));noti.show();noti.addClass("weui-notification--in");noti.data("params",params);var startTimeout=function(){if(timeout){clearTimeout(timeout);timeout=null;}
  540. timeout=setTimeout(function(){if(noti.hasClass("weui-notification--touching")){startTimeout();}else{$.closeNotification();}},params.time);};startTimeout();};$.closeNotification=function(){timeout&&clearTimeout(timeout);timeout=null;var noti=$(".weui-notification").removeClass("weui-notification--in").transitionEnd(function(){$(this).remove();});if(noti[0]){var params=$(".weui-notification").data("params");if(params&&params.onClose){params.onClose(params.data);}}};defaults=$.noti.prototype.defaults={title:undefined,text:undefined,media:undefined,time:4000,onClick:undefined,onClose:undefined,data:undefined,tpl:'<div class="weui-notification__inner">'+'{{#if media}}<div class="weui-notification__media">{{media}}</div>{{/if}}'+'<div class="weui-notification__content">'+'{{#if title}}<div class="weui-notification__title">{{title}}</div>{{/if}}'+'{{#if text}}<div class="weui-notification__text">{{text}}</div>{{/if}}'+'</div>'+'<div class="weui-notification__handle-bar"></div>'+'</div>'};}($);+function($){"use strict";var timeout;$.toptip=function(text,duration,type){if(!text)return;if(typeof duration===typeof"a"){type=duration;duration=undefined;}
  541. duration=duration||3000;var className=type?'bg-'+type:'bg-danger';var $t=$('.weui-toptips').remove();$t=$('<div class="weui-toptips"></div>').appendTo(document.body);$t.html(text);$t[0].className='weui-toptips '+className
  542. clearTimeout(timeout);if(!$t.hasClass('weui-toptips_visible')){$t.show().width();$t.addClass('weui-toptips_visible');}
  543. timeout=setTimeout(function(){$t.removeClass('weui-toptips_visible').transitionEnd(function(){$t.remove();});},duration);}}($);+function($){"use strict";var Slider=function(container,arg){this.container=$(container);this.handler=this.container.find('.weui-slider__handler')
  544. this.track=this.container.find('.weui-slider__track')
  545. this.value=this.container.find('.weui-slider-box__value')
  546. this.bind()
  547. if(typeof arg==='function'){this.callback=arg}}
  548. Slider.prototype.bind=function(){this.container.on($.touchEvents.start,$.proxy(this.touchStart,this)).on($.touchEvents.end,$.proxy(this.touchEnd,this));$(document.body).on($.touchEvents.move,$.proxy(this.touchMove,this))}
  549. Slider.prototype.touchStart=function(e){e.preventDefault()
  550. this.start=$.getTouchPosition(e)
  551. this.width=this.container.find('.weui-slider__inner').width()
  552. this.left=parseInt(this.container.find('.weui-slider__handler').css('left'))
  553. this.touching=true}
  554. Slider.prototype.touchMove=function(e){if(!this.touching)return true
  555. var p=$.getTouchPosition(e)
  556. var distance=p.x-this.start.x
  557. var left=distance+this.left
  558. var per=parseInt(left/this.width*100)
  559. if(per<0)per=0
  560. if(per>100)per=100
  561. this.handler.css('left',per+'%')
  562. this.track.css('width',per+'%')
  563. this.value.text(per)
  564. this.callback&&this.callback.call(this,per)
  565. this.container.trigger('change',per)}
  566. Slider.prototype.touchEnd=function(e){this.touching=false}
  567. $.fn.slider=function(arg){this.each(function(){var $this=$(this)
  568. var slider=$this.data('slider')
  569. if(slider)return slider;else $this.data('slider',new Slider(this,arg))})}}($);