@tarojs/components
Version:
Taro 组件库。
1 lines • 12.1 kB
JavaScript
var __spreadArray=this&&this.__spreadArray||function(e,t){for(var i=0,r=t.length,n=e.length;i<r;i++,n++)e[n]=t[i];return e};System.register(["./p-b2d01686.system.js","./p-5f4d0d5b.system.js"],(function(e){"use strict";var t,i,r,n,a,o;return{setters:[function(e){t=e.r;i=e.c;r=e.h;n=e.H;a=e.g},function(e){o=e.c}],execute:function(){function u(e,t){var i=[];for(var r=e;r<=t;r++){i.push(""+(r<10?"0":"")+r)}return i}var s=__spreadArray(__spreadArray(["20","21","22","23"],u(0,23)),["00","01","02","03"]);var h=__spreadArray(__spreadArray(["56","57","58","59"],u(0,59)),["00","01","02","03"]);function l(e,t){if(!isNaN(+e)&&e>=0&&e<t.length)return true;return false}function d(e){if(!/^\d{1,2}:\d{1,2}$/.test(e))return false;var t=e.split(":").map((function(e){return+e}));if(t[0]<0||t[0]>23)return false;if(t[1]<0||t[1]>59)return false;return true}function c(e,t){var i=e.split(":").map((function(e){return+e}));var r=t.split(":").map((function(e){return+e}));if(i[0]<r[0])return true;if(i[0]===r[0]&&i[1]<=r[1])return true;return false}function f(e){if(!e)return false;var t=new Date(e.replace(/-/g,"/"));return isNaN(t.getMonth())?false:t}function p(e,t){if(t===4||t===6||t===9||t===11)return 30;if(t===2){if(e%4===0&&e%100!==0||e%400===0)return 29;else return 28}return 31}function v(e){var t;if(Array.isArray(e)){t=e.map((function(e){return String(e)}))}else{t=e}return t}function g(e,t){var i=[];for(var r=e;r<=t;r++){i.push(r)}return i}function m(e,t){return g(e,t)}function y(e,t,i){var r=1;var n=12;if(e.getFullYear()===i){r=e.getMonth()+1}if(t.getFullYear()===i){n=t.getMonth()+1}return g(r,n)}function k(e,t,i,r){var n=1;var a=p(i,r);if(e.getFullYear()===i&&e.getMonth()+1===r){n=e.getDate()}if(t.getFullYear()===i&&t.getMonth()+1===r){a=t.getDate()}return g(n,a)}var _=102;var w=34;var C=w*7;var D=".weui-picker,.weui-picker__hd{font-size:12px}";var M=e("taro_picker_core",function(){function e(e){var n=this;t(this,e);this.onChange=i(this,"change",7);this.onColumnChange=i(this,"columnchange",7);this.onCancel=i(this,"cancel",7);this.index=[];this.mode="selector";this.disabled=false;this.range=[];this.start="";this.end="";this.fields="day";this.name="";this.pickerValue=[];this.height=[];this.hidden=true;this.fadeOut=false;this.isWillLoadCalled=false;this.showPicker=function(){if(n.disabled)return;n.height=n.getHeightByIndex();n.hidden=false};this.getHeightByIndex=function(){var e=n.index.map((function(e){var t=0;if(n.mode==="time"){t=w*4}return _-w*e-t}));return e};this.hidePicker=function(){n.fadeOut=true;setTimeout((function(){n.hidden=true;n.fadeOut=false}),350)};this.handleChange=function(){n.hidePicker();n.index=n.height.map((function(e){return(_-e)/w}));var e=n.index.length&&n.mode!=="selector"?n.index:n.index[0];if(n.mode==="time"){var t=[s.slice(),h.slice()];var i=n.index.map((function(e,i){return t[i][e]}));n.index=i.map((function(e){return parseInt(e)}));e=i.join(":")}if(n.mode==="date"){var r=n.pickerDate,a=r._start,o=r._end,u=r._updateValue;var l=u[0];var d=u[1];var c=m(a.getFullYear(),o.getFullYear());var f=y(a,o,l);var p=k(a,o,l,d);var v=c[n.index[0]];var g=f[n.index[1]];var C=p[n.index[2]];if(n.fields==="year"){e=[v]}else if(n.fields==="month"){e=[v,g]}else{e=[v,g,C]}e=e.map((function(e){return e<10?"0"+e:e})).join("-")}n.pickerValue=e;n.onChange.emit({value:e})};this.handleCancel=function(){n.hidePicker();n.onCancel.emit()};this.updateHeight=function(e,t,i){if(i===void 0){i=false}var r=__spreadArray([],n.height);r[t]=e;n.height=r;if(i){var a=n,o=a.start,u=a.end;if(!d(o))o="00:00";if(!d(u))u="23:59";if(!c(o,u))return;var l=[s.slice(),h.slice()];var f=n.height.map((function(e){return(_-e)/w}));var p=f.map((function(e,t){return l[t][e]})).join(":");if(!c(o,p)){var v=o.split(":").map((function(e){return _-w*(+e+4)}));requestAnimationFrame((function(){return n.height=v}))}else if(!c(p,u)){var g=u.split(":").map((function(e){return _-w*(+e+4)}));requestAnimationFrame((function(){return n.height=g}))}}};this.handleColumnChange=function(e,t){n.onColumnChange.emit({column:Number(t),value:(_-e)/w})};this.updateDay=function(e,t){var i=n.pickerDate,r=i._start,a=i._end,o=i._updateValue;o[t]=e;var u=o[0];var s=o[1];var h=o[2];if(t===0){var l=y(r,a,u);var d=l[l.length-1];var c=l[0];if(s>d)o[1]=d;if(s<c)o[1]=c;var f=l.indexOf(o[1]);var p=_-w*f;n.updateDay(o[1],1);n.updateHeight(p,"1")}else if(t===1){var v=k(r,a,u,s);var d=v[v.length-1];var c=v[0];if(h>d)o[2]=d;if(h<c)o[2]=c;var f=v.indexOf(o[2]);var p=_-w*f;n.updateDay(o[2],2);n.updateHeight(p,"2")}};this.getSelector=function(){return r("taro-picker-group",{range:n.range,rangeKey:n.rangeKey,height:n.height[0],updateHeight:n.updateHeight,columnId:"0"})};this.getMultiSelector=function(){return n.range.map((function(e,t){return r("taro-picker-group",{range:e,rangeKey:n.rangeKey,height:n.height[t],updateHeight:n.updateHeight,onColumnChange:n.handleColumnChange,columnId:String(t)})}))};this.getTimeSelector=function(){var e=s.slice();var t=h.slice();return[r("taro-picker-group",{mode:"time",range:e,height:n.height[0],updateHeight:n.updateHeight,columnId:"0"}),r("taro-picker-group",{mode:"time",range:t,height:n.height[1],updateHeight:n.updateHeight,columnId:"1"})]};this.getDateSelector=function(){var e=n,t=e.fields,i=e.height;var a=n.pickerDate,o=a._start,u=a._end,s=a._updateValue;var h=s[0];var l=s[1];var d=m(o.getFullYear(),u.getFullYear()).map((function(e){return e+"年"}));var c=y(o,u,h).map((function(e){return(e<10?"0"+e:e)+"月"}));var f=k(o,u,h,l).map((function(e){return(e<10?"0"+e:e)+"日"}));var p=[r("taro-picker-group",{mode:"date",range:d,height:i[0],updateDay:n.updateDay,updateHeight:n.updateHeight,columnId:"0"})];if(t==="month"||t==="day"){p.push(r("taro-picker-group",{mode:"date",range:c,height:i[1],updateDay:n.updateDay,updateHeight:n.updateHeight,columnId:"1"}))}if(t==="day"){p.push(r("taro-picker-group",{mode:"date",range:f,height:i[2],updateDay:n.updateDay,updateHeight:n.updateHeight,columnId:"2"}))}return p}}e.prototype.componentWillLoad=function(){this.isWillLoadCalled=true;this.handleProps()};e.prototype.componentDidLoad=function(){var e=this;Object.defineProperty(this.el,"value",{get:function(){return e.pickerValue},set:function(t){return e.value=t},configurable:true});if(this.overlay){document.body.appendChild(this.overlay)}};e.prototype.disconnectedCallback=function(){var e;if(this.overlay){(e=this.overlay.parentNode)===null||e===void 0?void 0:e.removeChild(this.overlay)}};e.prototype.onPropsChange=function(){if(!this.isWillLoadCalled)return;this.handleProps()};e.prototype.handleProps=function(){var e=this;var t=this,i=t.mode,r=t.start,n=t.end;if(i==="selector"){var a=this.value;this.index=[l(a,this.range)?Math.floor(a):0]}else if(i==="multiSelector"){var o=this.value;this.index=[];this.range.forEach((function(t,i){var r=o===null||o===void 0?void 0:o[i];var n=l(r,t)?Math.floor(r):0;e.index.push(n)}))}else if(i==="time"){var a=this.value;if(!d(a)){console.warn("time picker value illegal");a="0:0"}var u=a.split(":").map((function(e){return+e}));this.index=u}else if(i==="date"){var a=this.value;var s=f(a)||new Date((new Date).setHours(0,0,0,0));var h=f(r)||new Date("1970/01/01");var c=f(n)||new Date("2999/01/01");if(s>=h&&s<=c){var p=s.getFullYear();var v=s.getMonth()+1;var g=s.getDate();var _=m(h.getFullYear(),c.getFullYear());var w=y(h,c,p);var C=k(h,c,p,v);this.index=[_.indexOf(p),w.indexOf(v),C.indexOf(g)];if(!this.pickerDate||this.pickerDate._value.getTime()!==s.getTime()||this.pickerDate._start.getTime()!==h.getTime()||this.pickerDate._end.getTime()!==c.getTime()){this.pickerDate={_value:s,_start:h,_end:c,_updateValue:[p,v,g]}}}else{throw new Error("Date Interval Error")}}this.height=this.getHeightByIndex();this.pickerValue=this.value;if(i==="date"){var D=this.pickerValue;if(this.fields==="month"){this.pickerValue=D.split("-").slice(0,2).join("-")}else if(this.fields==="year"){this.pickerValue=D.split("-")[0]}}};e.prototype.render=function(){var e=this;var t=this,i=t.name,a=t.mode,u=t.fadeOut,s=t.hidden;var h;switch(a){case"multiSelector":h=this.getMultiSelector();break;case"time":h=this.getTimeSelector();break;case"date":h=this.getDateSelector();break;default:h=this.getSelector()}var l=o("weui-mask","weui-animate-fade-in",{"weui-animate-fade-out":u});var d=o("weui-picker","weui-animate-slide-up",{"weui-animate-slide-down":u});var c=s?{display:"none"}:{};return r(n,null,r("div",{onClick:this.showPicker},r("slot",null),r("input",{type:"hidden",name:i,value:v(this.pickerValue)})),r("div",{class:"weui-picker__overlay",style:c,ref:function(t){e.overlay=t}},r("div",{class:l,onClick:this.handleCancel}),r("div",{class:d},r("div",{class:"weui-picker__hd"},r("div",{class:"weui-picker__action",onClick:this.handleCancel},"取消"),r("div",{class:"weui-picker__action",onClick:this.handleChange},"确定")),r("div",{class:"weui-picker__bd"},h),r("input",{type:"hidden",name:i,value:v(this.pickerValue)}))))};Object.defineProperty(e.prototype,"el",{get:function(){return a(this)},enumerable:false,configurable:true});Object.defineProperty(e,"watchers",{get:function(){return{mode:["onPropsChange"],value:["onPropsChange"],range:["onPropsChange"],start:["onPropsChange"],end:["onPropsChange"]}},enumerable:false,configurable:true});return e}());M.style=D;var x=e("taro_picker_group",function(){function e(e){t(this,e);this.range=[]}e.prototype.getPosition=function(){var e=this.touchEnd?.3:0;var t="translate3d(0, "+this.height+"px, 0)";var i="transform "+e+"s";return{transform:t,"-webkit-transform":t,transition:i,"-webkit-transition":i}};e.prototype.formulaUnlimitedScroll=function(e,t,i){var r=this;var n=this,a=n.height,o=n.updateHeight,u=n.columnId;var s=i==="up"?1:-1;this.touchEnd=false;o(-e*s*w+a,u);requestAnimationFrame((function(){r.touchEnd=true;var i=Math.round(t/-w)+e*s;var n=_-w*i;o(n,u,true)}))};e.prototype.handleMoveStart=function(e){this.startY=e;this.preY=e;this.hadMove=false};e.prototype.handleMoving=function(e){var t=e;var i=t-this.preY;this.preY=t;this.touchEnd=false;if(Math.abs(t-this.startY)>10)this.hadMove=true;var r=this.height+i;if(this.mode==="time"){if(this.columnId==="0"){if(r>_-w*3){r=_-w*27+i}if(r<_-w*28){r=_-w*4+i}}else if(this.columnId==="1"){if(r>_-w*3){r=_-w*63+i}if(r<_-w*64){r=_-w*4+i}}}this.updateHeight(r,this.columnId)};e.prototype.handleMoveEnd=function(e){var t=this,i=t.mode,r=t.range,n=t.height,a=t.updateHeight,o=t.onColumnChange,u=t.columnId;var s=0;var h=-w*(r.length-1);var l=e;this.touchEnd=true;var d;if(!this.hadMove){var c=window.innerHeight;var f=c-C/2;d=n-_-(l-f);if(i==="time"){if(u==="0"){if(d>-w*2.5){return this.formulaUnlimitedScroll(24,d,"up")}if(d<-w*28.5){return this.formulaUnlimitedScroll(24,d,"down")}}else if(u==="1"){if(d>-w*2.5){return this.formulaUnlimitedScroll(60,d,"up")}if(d<-w*64.5){return this.formulaUnlimitedScroll(60,d,"down")}}}}else{d=n-_}if(d>s)d=0;if(d<h)d=h;var p=Math.round(d/-w);var v=_-w*p;if(this.mode==="date"){if(this.columnId==="0"){this.updateDay(+this.range[p].replace(/[^0-9]/gi,""),0)}if(this.columnId==="1"){this.updateDay(+this.range[p].replace(/[^0-9]/gi,""),1)}if(this.columnId==="2"){this.updateDay(+this.range[p].replace(/[^0-9]/gi,""),2)}}a(v,u,i==="time");o&&o(v,u)};e.prototype.onMouseDown=function(e){this.isMove=true;this.handleMoveStart(e.clientY)};e.prototype.onMouseMove=function(e){e.preventDefault();if(!this.isMove)return;this.handleMoving(e.clientY)};e.prototype.onMouseMoveEnd=function(e){if(!this.isMove)return;this.isMove=false;this.handleMoveEnd(e.clientY)};e.prototype.onTouchStart=function(e){this.handleMoveStart(e.changedTouches[0].clientY)};e.prototype.onTouchMove=function(e){e.preventDefault();this.handleMoving(e.changedTouches[0].clientY)};e.prototype.onTouchEnd=function(e){this.handleMoveEnd(e.changedTouches[0].clientY)};e.prototype.render=function(){var e=this,t=e.range,i=e.rangeKey;var a=t.map((function(e){var t=i?e[i]:e;return r("div",{class:"weui-picker__item"},t)}));return r(n,{class:"weui-picker__group"},r("div",{class:"weui-picker__mask"}),r("div",{class:"weui-picker__indicator"}),r("div",{class:"weui-picker__content",style:this.getPosition()},a))};return e}())}}}));