UNPKG

@tarojs/components

Version:
1 lines 18.9 kB
var __awaiter=this&&this.__awaiter||function(e,t,i,r){function n(e){return e instanceof i?e:new i((function(t){t(e)}))}return new(i||(i=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r["throw"](e))}catch(e){a(e)}}function u(e){e.done?i(e.value):n(e.value).then(o,s)}u((r=r.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var i={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,n,a,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(e){return function(t){return u([e,t])}}function u(s){if(r)throw new TypeError("Generator is already executing.");while(o&&(o=0,s[0]&&(i=0)),i)try{if(r=1,n&&(a=s[0]&2?n["return"]:s[0]?n["throw"]||((a=n["return"])&&a.call(n),0):n.next)&&!(a=a.call(n,s[1])).done)return a;if(n=0,a)s=[s[0]&2,a.value];switch(s[0]){case 0:case 1:a=s;break;case 4:i.label++;return{value:s[1],done:false};case 5:i.label++;n=s[1];s=[0];continue;case 7:s=i.ops.pop();i.trys.pop();continue;default:if(!(a=i.trys,a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){i=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]<a[3])){i.label=s[1];break}if(s[0]===6&&i.label<a[1]){i.label=a[1];a=s;break}if(a&&i.label<a[2]){i.label=a[2];i.ops.push(s);break}if(a[2])i.ops.pop();i.trys.pop();continue}s=t.call(e,i)}catch(e){s=[6,e];n=0}finally{r=a=0}if(s[0]&5)throw s[1];return{value:s[0]?s[1]:void 0,done:true}}};var __spreadArray=this&&this.__spreadArray||function(e,t,i){if(i||arguments.length===2)for(var r=0,n=t.length,a;r<n;r++){if(a||!(r in t)){if(!a)a=Array.prototype.slice.call(t,0,r);a[r]=t[r]}}return e.concat(a||Array.prototype.slice.call(t))};System.register(["./p-88de70df.system.js","./p-443b9a72.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 s(e,t){var i=[];for(var r=e;r<=t;r++){i.push("".concat(r<10?"0":"").concat(r))}return i}var u=__spreadArray(__spreadArray(["20","21","22","23"],s(0,23),true),["00","01","02","03"],false);var l=__spreadArray(__spreadArray(["56","57","58","59"],s(0,59),true),["00","01","02","03"],false);function d(e,t){if(!isNaN(+e)&&e>=0&&e<t.length)return true;return false}function h(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 g(e){var t;if(Array.isArray(e)){t=e.map((function(e){return String(e)}))}else{t=e}return t}function m(e,t){var i=[];for(var r=e;r<=t;r++){i.push(r)}return i}function v(e,t){return m(e,t)}function w(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 m(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 m(n,a)}var b=102;var y=34;var _=y*7;var x='.weui-mask{z-index:1000;background:rgba(0,0,0,.6);position:fixed;inset:0}.weui-mask_transparent{z-index:1000;position:fixed;inset:0}@-webkit-keyframes weuiSlideUp{0%{-webkit-transform:translateY(100%);transform:translateY(100%)}to{-webkit-transform:translate(0,0);transform:translate(0,0)}}@keyframes weuiSlideUp{0%{-webkit-transform:translateY(100%);transform:translateY(100%)}to{-webkit-transform:translate(0,0);transform:translate(0,0)}}.weui-animate-slide-up{-webkit-animation:.3s forwards weuiSlideUp;animation:.3s forwards weuiSlideUp}@-webkit-keyframes weuiSlideDown{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes weuiSlideDown{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}.weui-animate-slide-down{-webkit-animation:.3s forwards weuiSlideDown;animation:.3s forwards weuiSlideDown}@-webkit-keyframes weuiFadeIn{0%{opacity:0}to{opacity:1}}@keyframes weuiFadeIn{0%{opacity:0}to{opacity:1}}.weui-animate-fade-in{-webkit-animation:.3s forwards weuiFadeIn;animation:.3s forwards weuiFadeIn}@-webkit-keyframes weuiFadeOut{0%{opacity:1}to{opacity:0}}@keyframes weuiFadeOut{0%{opacity:1}to{opacity:0}}.weui-animate-fade-out{-webkit-animation:.3s forwards weuiFadeOut;animation:.3s forwards weuiFadeOut}.weui-picker{-webkit-box-sizing:border-box;box-sizing:border-box;z-index:5000;background-color:var(--weui-BG-2);padding-left:0;padding-left:constant(safe-area-inset-left);padding-left:env(safe-area-inset-left);padding-right:0;padding-right:constant(safe-area-inset-right);padding-right:env(safe-area-inset-right);-webkit-backface-visibility:hidden;backface-visibility:hidden;width:100%;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s, -webkit-transform .3s;position:fixed;bottom:0;left:0;-webkit-transform:translateY(100%);transform:translateY(100%)}.weui-picker__hd{text-align:center;background-color:#fff;padding:9px 15px;font-size:17px;display:-ms-flexbox;display:flex;position:relative}.weui-picker__hd:after{content:" ";color:#e5e5e5;-webkit-transform-origin:0 100%;transform-origin:0 100%;border-bottom:1px solid #e5e5e5;height:1px;position:absolute;bottom:0;left:0;right:0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-picker__action{color:#1aad19;-ms-flex:1;flex:1;display:block}.weui-picker__action:first-child{text-align:left;color:#888}.weui-picker__action:last-child{text-align:right}.weui-picker__bd{background-color:#fff;height:238px;display:-ms-flexbox;display:flex;position:relative;overflow:hidden}.weui-picker__group{-ms-flex:1;flex:1;height:100%;position:relative}.weui-picker__mask{z-index:3;background-color:transparent;background-image:-webkit-gradient(linear,left top, left bottom,from(rgba(255,255,255,.95)),to(rgba(255,255,255,.6))),-webkit-gradient(linear,left top, left bottom,from(rgba(255,255,255,.6)),to(rgba(255,255,255,.95)));background-image:linear-gradient(rgba(255,255,255,.95),rgba(255,255,255,.6)),linear-gradient(rgba(255,255,255,.6),rgba(255,255,255,.95));background-position:top,bottom;background-repeat:no-repeat;background-size:100% 102px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;width:100%;height:100%;margin:0 auto;position:absolute;top:0;left:0;-webkit-transform:translateZ(0);transform:translateZ(0)}.weui-picker__indicator{z-index:3;width:100%;height:34px;position:absolute;top:102px;left:0}.weui-picker__indicator:before{content:" ";color:#e5e5e5;-webkit-transform-origin:0 0;transform-origin:0 0;border-top:1px solid #e5e5e5;height:1px;position:absolute;top:0;left:0;right:0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-picker__indicator:after{content:" ";color:#e5e5e5;-webkit-transform-origin:0 100%;transform-origin:0 100%;border-bottom:1px solid #e5e5e5;height:1px;position:absolute;bottom:0;left:0;right:0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-picker__content{width:100%;position:absolute;top:0;left:0}.weui-picker__item{text-align:center;color:#000;text-overflow:ellipsis;white-space:nowrap;height:34px;padding:0;line-height:34px;overflow:hidden}.weui-picker__item_disabled{color:#999}.weui-picker,.weui-picker__hd{font-size:12px}';var C=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.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=y*4}return b-y*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(b-e)/y}));var e=n.index.length&&n.mode!=="selector"?n.index:n.index[0];if(n.mode==="time"){var t=[u.slice(),l.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,s=r._updateValue;var d=s[0];var h=s[1];var c=v(a.getFullYear(),o.getFullYear());var f=w(a,o,d);var p=k(a,o,d,h);var g=c[n.index[0]];var m=f[n.index[1]];var _=p[n.index[2]];if(n.fields==="year"){e=[g]}else if(n.fields==="month"){e=[g,m]}else{e=[g,m,_]}e=e.map((function(e){return e<10?"0".concat(e):e})).join("-")}n.value=e;n.pickerValue=n.value;n.onChange.emit({value:e})};this.handleColumnChange=function(e){var t=e.detail,i=t.columnId,r=t.height;n.onColumnChange.emit({column:Number(i),value:(b-r)/y})};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,true);r[t]=e;n.height=r;if(i){var a=n,o=a.start,s=a.end;if(!h(o))o="00:00";if(!h(s))s="23:59";if(!c(o,s))return;var d=[u.slice(),l.slice()];var f=n.height.map((function(e){return(b-e)/y}));var p=f.map((function(e,t){return d[t][e]})).join(":");if(!c(o,p)){var g=o.split(":").map((function(e){return b-y*(+e+4)}));requestAnimationFrame((function(){return n.height=g}))}else if(!c(p,s)){var m=s.split(":").map((function(e){return b-y*(+e+4)}));requestAnimationFrame((function(){return n.height=m}))}}};this.updateDay=function(e,t){var i=n.pickerDate,r=i._start,a=i._end,o=i._updateValue;o[t]=e;var s=o[0];var u=o[1];var l=o[2];if(t===0){var d=w(r,a,s);var h=d[d.length-1];var c=d[0];if(u>h)o[1]=h;if(u<c)o[1]=c;var f=d.indexOf(o[1]);var p=b-y*f;n.updateDay(o[1],1);n.updateHeight(p,"1")}else if(t===1){var g=k(r,a,s,u);var h=g[g.length-1];var c=g[0];if(l>h)o[2]=h;if(l<c)o[2]=c;var f=g.indexOf(o[2]);var p=b-y*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=u.slice();var t=l.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,s=a._end,u=a._updateValue;var l=u[0];var d=u[1];var h=v(o.getFullYear(),s.getFullYear()).map((function(e){return"".concat(e,"年")}));var c=w(o,s,l).map((function(e){return"".concat(e<10?"0".concat(e):e,"月")}));var f=k(o,s,l,d).map((function(e){return"".concat(e<10?"0".concat(e):e,"日")}));var p=[r("taro-picker-group",{mode:"date",range:h,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};this.mode="selector";this.disabled=false;this.range=[];this.rangeKey=undefined;this.value=undefined;this.start="";this.end="";this.fields="day";this.name="";this.textProps={};this.pickerValue=[];this.height=[];this.hidden=true;this.fadeOut=false;this.isWillLoadCalled=false}e.prototype.componentWillLoad=function(){this.isWillLoadCalled=true;this.handleProps()};e.prototype.componentDidLoad=function(){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=[d(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=d(r,t)?Math.floor(r):0;e.index.push(n)}))}else if(i==="time"){var a=this.value;if(!h(a)){console.warn("time picker value illegal");a="0:0"}var s=a.split(":").map((function(e){return+e}));this.index=s}else if(i==="date"){var a=this.value;var u=f(a)||new Date((new Date).setHours(0,0,0,0));var l=f(r)||new Date("1970/01/01");var c=f(n)||new Date("2999/01/01");if(!(l<=c)){throw new Error("Picker start time must be less than end time.")}if(!(u>=l&&u<=c)){u=l}var p=u.getFullYear();var g=u.getMonth()+1;var m=u.getDate();var b=v(l.getFullYear(),c.getFullYear());var y=w(l,c,p);var _=k(l,c,p,g);this.index=[b.indexOf(p),y.indexOf(g),_.indexOf(m)];if(!this.pickerDate||this.pickerDate._value.getTime()!==u.getTime()||this.pickerDate._start.getTime()!==l.getTime()||this.pickerDate._end.getTime()!==c.getTime()){this.pickerDate={_value:u,_start:l,_end:c,_updateValue:[p,g,m]}}}else{throw new Error('Picker not support "'.concat(i,'" mode.'))}this.height=this.getHeightByIndex();this.pickerValue=this.value;if(i==="date"){var x=this.pickerValue;if(this.fields==="month"){this.pickerValue=x.split("-").slice(0,2).join("-")}else if(this.fields==="year"){this.pickerValue=x.split("-")[0]}}};e.prototype.render=function(){var e=this;var t,i;var a=this,s=a.name,u=a.mode,l=a.fadeOut,d=a.hidden;var h;switch(u){case"multiSelector":h=this.getMultiSelector();break;case"time":h=this.getTimeSelector();break;case"date":h=this.getDateSelector();break;default:h=this.getSelector()}var c=o("weui-mask","weui-animate-fade-in",{"weui-animate-fade-out":l});var f=o("weui-picker","weui-animate-slide-up",{"weui-animate-slide-down":l});var p=d?{display:"none"}:{};return r(n,null,r("div",{onClick:this.showPicker},r("slot",null),r("input",{type:"hidden",name:s,value:g(this.pickerValue)})),r("div",{class:"weui-picker__overlay",style:p,ref:function(t){e.overlay=t}},r("div",{class:c,onClick:this.handleCancel}),r("div",{class:f},r("div",{class:"weui-picker__hd"},r("div",{class:"weui-picker__action",onClick:this.handleCancel},(t=this.textProps.cancelText)!==null&&t!==void 0?t:"取消"),r("div",{class:"weui-picker__action",onClick:this.handleChange},(i=this.textProps.okText)!==null&&i!==void 0?i:"确定")),r("div",{class:"weui-picker__bd"},h),r("input",{type:"hidden",name:s,value:g(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}());C.style=x;var Y=e("taro_picker_group",function(){function e(e){t(this,e);this.onColumnChange=i(this,"columnChange",7);this.mode=undefined;this.range=[];this.rangeKey=undefined;this.height=undefined;this.columnId=undefined;this.updateHeight=undefined;this.updateDay=undefined;this.startY=undefined;this.preY=undefined;this.hadMove=undefined;this.touchEnd=undefined;this.isMove=undefined}e.prototype.getPosition=function(){var e=this.touchEnd?.3:0;var t="translate3d(0, ".concat(this.height,"px, 0)");var i="transform ".concat(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,s=n.columnId;var u=i==="up"?1:-1;this.touchEnd=false;o(-e*u*y+a,s);requestAnimationFrame((function(){r.touchEnd=true;var i=Math.round(t/-y)+e*u;var n=b-y*i;o(n,s,true)}))};e.prototype.handleMoveStart=function(e){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){this.startY=e;this.preY=e;this.hadMove=false;return[2]}))}))};e.prototype.handleMoving=function(e){return __awaiter(this,void 0,void 0,(function(){var t,i,r;return __generator(this,(function(n){t=e;i=t-this.preY;this.preY=t;this.touchEnd=false;if(Math.abs(t-this.startY)>10)this.hadMove=true;r=this.height+i;if(this.mode==="time"){if(this.columnId==="0"){if(r>b-y*3){r=b-y*27+i}if(r<b-y*28){r=b-y*4+i}}else if(this.columnId==="1"){if(r>b-y*3){r=b-y*63+i}if(r<b-y*64){r=b-y*4+i}}}this.updateHeight(r,this.columnId);return[2]}))}))};e.prototype.handleMoveEnd=function(e){return __awaiter(this,void 0,void 0,(function(){var t,i,r,n,a,o,s,u,l,d,h,c,f,p;return __generator(this,(function(g){t=this,i=t.mode,r=t.range,n=t.height,a=t.updateHeight,o=t.columnId;s=0;u=-y*(r.length-1);l=e;this.touchEnd=true;if(!this.hadMove){h=window.innerHeight;c=h-_/2;d=n-b-(l-c);if(i==="time"){if(o==="0"){if(d>-y*2.5){return[2,this.formulaUnlimitedScroll(24,d,"up")]}if(d<-y*28.5){return[2,this.formulaUnlimitedScroll(24,d,"down")]}}else if(o==="1"){if(d>-y*2.5){return[2,this.formulaUnlimitedScroll(60,d,"up")]}if(d<-y*64.5){return[2,this.formulaUnlimitedScroll(60,d,"down")]}}}}else{d=n-b}if(d>s)d=0;if(d<u)d=u;f=Math.round(d/-y);p=b-y*f;if(this.mode==="date"&&typeof this.updateDay==="function"){if(this.columnId==="0"){this.updateDay(+this.range[f].replace(/[^0-9]/gi,""),0)}if(this.columnId==="1"){this.updateDay(+this.range[f].replace(/[^0-9]/gi,""),1)}if(this.columnId==="2"){this.updateDay(+this.range[f].replace(/[^0-9]/gi,""),2)}}a(p,o,i==="time");this.onColumnChange.emit({columnId:o,height:p});return[2]}))}))};e.prototype.onMouseDown=function(e){this.isMove=true;this.handleMoveStart(e.clientY)};e.prototype.onMouseMove=function(e){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){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}())}}}));