@tarojs/components
Version:
Taro 组件库
1 lines • 12 kB
JavaScript
var __awaiter=this&&this.__awaiter||function(e,t,n,a){function i(e){return e instanceof n?e:new n((function(t){t(e)}))}return new(n||(n=Promise))((function(n,r){function o(e){try{c(a.next(e))}catch(e){r(e)}}function s(e){try{c(a["throw"](e))}catch(e){r(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((a=a.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var n={label:0,sent:function(){if(r[0]&1)throw r[1];return r[1]},trys:[],ops:[]},a,i,r,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 c([e,t])}}function c(s){if(a)throw new TypeError("Generator is already executing.");while(o&&(o=0,s[0]&&(n=0)),n)try{if(a=1,i&&(r=s[0]&2?i["return"]:s[0]?i["throw"]||((r=i["return"])&&r.call(i),0):i.next)&&!(r=r.call(i,s[1])).done)return r;if(i=0,r)s=[s[0]&2,r.value];switch(s[0]){case 0:case 1:r=s;break;case 4:n.label++;return{value:s[1],done:false};case 5:n.label++;i=s[1];s=[0];continue;case 7:s=n.ops.pop();n.trys.pop();continue;default:if(!(r=n.trys,r=r.length>0&&r[r.length-1])&&(s[0]===6||s[0]===2)){n=0;continue}if(s[0]===3&&(!r||s[1]>r[0]&&s[1]<r[3])){n.label=s[1];break}if(s[0]===6&&n.label<r[1]){n.label=r[1];r=s;break}if(r&&n.label<r[2]){n.label=r[2];n.ops.push(s);break}if(r[2])n.ops.pop();n.trys.pop();continue}s=t.call(e,n)}catch(e){s=[6,e];i=0}finally{a=r=0}if(s[0]&5)throw s[1];return{value:s[0]?s[1]:void 0,done:true}}};System.register(["./p-88de70df.system.js","./p-010faa87.system.js"],(function(e){"use strict";var t,n,a,i,r,o;return{setters:[function(e){t=e.r;n=e.h;a=e.g;i=e.H;r=e.c},function(e){o=e.i}],execute:function(){var s="taro-movable-area-core{width:10px;height:10px;display:block;position:relative}";var c=e("taro_movable_area_core",function(){function e(e){var n=this;t(this,e);this.views=[];this.scaleLength=0;this.viewsChanged=function(){n.views=[];var e=n.element.querySelectorAll("taro-movable-view-core");Array.from(e).forEach((function(e){n.views.push(e)}));n.updateArea()};this.handleTouchStart=function(e){var t=e.touches;if(!t||t.length<=1){return}var a={width:t[1].pageX-t[0].pageX,height:t[1].pageY-t[0].pageY};n.scaleLength=Math.sqrt(a.width*a.width+a.height*a.height);if(n.scaleArea){return}var i=function(e,t){var n=function(e,t){if(!(e=e.parentNode)){return false}return(!o(e)||e!==document.body)&&(e===t||e===t.element||e.element===t||n(e,t))};for(var a=0;a<t.length;a++){var i=t[a];if(e===i["element"]||n(e,i)){return i}}};var r=i(t[0].target,n.views);var s=i(t[1].target,n.views);n.scaleTarget=r&&r===s?r:undefined};this.handleTouchMove=function(e){var t=e.touches;if(!t||t.length<=1){return}e.preventDefault();var a={width:t[1].pageX-t[0].pageX,height:t[1].pageY-t[0].pageY};if(n.scaleLength>0){n.updateScale(Math.sqrt(a.width*a.width+a.height*a.height)/n.scaleLength)}};this.handleTouchEnd=function(e){var t,a;if(e.touches&&e.touches.length||!e.changedTouches){return}n.scaleLength=0;if(n.scaleArea){n.views.forEach((function(e){var t;(t=e["endScale"])===null||t===void 0?void 0:t.call(e)}))}else{(a=(t=n.scaleTarget)===null||t===void 0?void 0:t["endScale"])===null||a===void 0?void 0:a.call(t)}n.scaleTarget=undefined};this.updateScale=function(e){var t,a;if(!e||e===1){return}if(n.scaleArea){n.views.forEach((function(t){var n;(n=t["setScale"])===null||n===void 0?void 0:n.call(t,e)}))}else{(a=(t=n.scaleTarget)===null||t===void 0?void 0:t["setScale"])===null||a===void 0?void 0:a.call(t,e)}};this.updateArea=function(){var e=window.getComputedStyle(n.element);var t=n.element.getBoundingClientRect();var a=["Left","Right"].map((function(t){return parseFloat(e["border"+t+"Width"])+parseFloat(e["padding"+t])}));var i=["Top","Bottom"].map((function(t){return parseFloat(e["border"+t+"Width"])+parseFloat(e["padding"+t])}));n.views.forEach((function(e){var r;(r=e["setParent"])===null||r===void 0?void 0:r.call(e,{element:n.element,area:{height:t.height-i[0]-i[1],width:t.width-a[0]-a[1]}})}))};this.scaleArea=undefined}e.prototype.connectedCallback=function(){var e=this;this.observer=new MutationObserver((function(t){t.forEach((function(t){var n,a;if(t.attributeName==="class"||t.attributeName==="style"){var i=e.element.offsetWidth;var r=e.element.offsetHeight;if(i!==((n=e.offset)===null||n===void 0?void 0:n.width)||r!==((a=e.offset)===null||a===void 0?void 0:a.height)){e.updateArea()}e.offset={width:i,height:r}}}))}));this.observer.observe(this.element,{attributes:true})};e.prototype.disconnectedCallback=function(){var e;(e=this.observer)===null||e===void 0?void 0:e.disconnect()};e.prototype.componentDidLoad=function(){this.viewsChanged()};e.prototype.render=function(){return n(i,{onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEnd})};Object.defineProperty(e.prototype,"element",{get:function(){return a(this)},enumerable:false,configurable:true});return e}());c.style=s;var l="taro-movable-view-core{width:10px;height:10px;display:inline-block;position:absolute;top:0;left:0}";var u=e("taro_movable_view_core",function(){function e(e){var n=this;t(this,e);this.onChange=r(this,"change",7);this.onScale=r(this,"scale",7);this.onHTouchMove=r(this,"htouchmove",7);this.onVTouchMove=r(this,"vtouchmove",7);this.translateX=0;this.translateY=0;this.origin={x:0,y:0};this.area={width:0,height:0};this.originScale=1;this.currentScale=1;this.width=0;this.height=0;this.minX=0;this.minY=0;this.maxX=0;this.maxY=0;this.baseX=0;this.baseY=0;this.offset={x:0,y:0};this.scaleOffset={x:0,y:0};this.getLimitXY=function(e,t){var a=false;e>n.maxX?(e=n.maxX,a=true):e<n.minX&&(e=n.minX,a=true);t>n.maxY?(t=n.maxY,a=true):t<n.minY&&(t=n.minY,a=true);return{x:e,y:t,outOfBounds:a}};this.animationTo=function(e,t,a,i,r,o,s){if(n.animation){n.setTransform(e,t,a,i,r,o);s===null||s===void 0?void 0:s()}else{n.setTransform(e,t,a,i,r,o)}};this.setTransform=function(e,t,a,i,r,o){e=Number(e.toFixed(1));t=Number(t.toFixed(1));a=Number((a!==null&&a!==void 0?a:n.currentScale).toFixed(3));if(!n.outOfBounds){var s=n.getLimitXY(e,t);e=s.x;t=s.y}var c=function(e,t){return+((1e3*e-1e3*t)/1e3).toFixed(1)};var l=c(e,n.scaleOffset.x);var u=c(t,n.scaleOffset.y);if(n.translateX!==e||n.translateY!==t){!r&&n.onChange.emit({x:l,y:u,source:i})}if(a!==n.currentScale){o&&n.onScale.emit({scale:a,x:l,y:u})}var h="translateX(".concat(e,"px) translateY(").concat(t,"px) translateZ(0px) scale(").concat(a,")");n.element.style.transform=h;n.element.style.webkitTransform=h;n.translateX=e;n.translateY=t;n.currentScale=a};this.updateOffset=function(){var e=function(t,n){if(t===n||!t.offsetParent){return{left:0,top:0}}var a=e(t.offsetParent,n);return{left:t.offsetLeft+a.left,top:t.offsetTop+a.top}};if(!n.parent){return}var t=e(n.element,n.parent);n.offset.x=t.left;n.offset.y=t.top};this.updateScaleOffset=function(e){if(e===void 0){e=n.currentScale}var t=n.element.getBoundingClientRect();n.height=t.height/n.currentScale;n.width=t.width/n.currentScale;n.scaleOffset.x=(n.width*e-n.width)/2;n.scaleOffset.y=(n.height*e-n.height)/2};this.updateBoundary=function(){var e=0-n.offset.x+n.scaleOffset.x;var t=n.area.width-n.width-n.offset.x-n.scaleOffset.x;n.minX=Math.min(e,t);n.maxX=Math.max(e,t);var a=0-n.offset.y+n.scaleOffset.y;var i=n.area.height-n.height-n.offset.y-n.scaleOffset.y;n.minY=Math.min(a,i);n.maxY=Math.max(a,i)};this.updateScale=function(e,t,a){if(!n.scale){return}var i=n.adjustScale(e);n.updateScaleOffset(i);n.updateBoundary();var r=n.getLimitXY(n.translateX,n.translateY),o=r.x,s=r.y;if(t){n.animationTo(o,s,i,"",true,true,a)}else if(!n.updating){n.updating=true;requestAnimationFrame((function(){n.setTransform(o,s,i,"",true,true);n.updating=false}))}};this.setOriginScale=function(e){n.originScale=e};this.adjustScale=function(e){return Math.min(10,n.scaleMax,Math.max(.5,n.scaleMin,e))};this.handleTouchStart=function(e){var t=e.touches;if(n.disabled||t.length>1||!n.element){return}var a=t[0];n.touching=true;n.firstMoveFireEvent=false;n.origin.x=a.screenX;n.origin.y=a.screenY;n.baseX=n.translateX;n.baseY=n.translateY;n.element.style.willChange="transform"};this.handleTouchMove=function(e){var t=e.touches;if(n.disabled||!n.element||n.scaling||!n.touching||t.length>1){return}if(n.direction!=="horizontal"){e.preventDefault()}var a=t[0];var i=a.screenX-n.origin.x;var r=a.screenY-n.origin.y;n.setTransform(n.xMove?i+n.baseX:0,n.yMove?r+n.baseY:0);if(!n.firstMoveFireEvent){n.firstMoveFireEvent=true;var o=Math.abs(i)>Math.abs(r)?n.onHTouchMove:n.onVTouchMove;o.emit({originalEvent:e,bubbles:false,capturePhase:false,composed:true,extraFields:{touches:e.touches||{},changedTouches:e.changedTouches||{}}})}};this.handleTouchEnd=function(e){var t=e.changedTouches[0];if(n.disabled||!n.touching||!t){return}n.touching=false;var a=t.screenX-n.origin.x;var i=t.screenY-n.origin.y;n.setTransform(n.xMove?a+n.baseX:0,n.yMove?i+n.baseY:0)};this.x=0;this.y=0;this.direction="none";this.outOfBounds=false;this.inertia=false;this.friction=2;this.damping=20;this.disabled=false;this.scale=false;this.scaleMin=.5;this.scaleMax=10;this.scaleValue=1;this.animation=true}e.prototype.watchX=function(e){this.setTransform(parseFloat("".concat(e||0)),this.translateY)};e.prototype.watchY=function(e){this.setTransform(this.translateX,parseFloat("".concat(e||0)))};e.prototype.watchScaleMinOrMax=function(){if(!this.scale)return false;this.updateScale(this.currentScale,true);this.setOriginScale(this.currentScale)};e.prototype.watchScaleValue=function(e){if(!this.scale){return false}this.updateScale(e,true);this.setOriginScale(e);return e};e.prototype.setParent=function(e){var t=e.element,n=e.area;return __awaiter(this,void 0,void 0,(function(){var e;return __generator(this,(function(a){e=this.scale?this.scaleValue:1;this.area=n;this.parent=t;this.updateOffset();this.updateScaleOffset(e);this.updateBoundary();this.setTransform(Number(this.x)+this.scaleOffset.x,Number(this.y)+this.scaleOffset.y,e,"",true);this.setOriginScale(e);return[2]}))}))};e.prototype.endScale=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){this.scaling=false;this.setOriginScale(this.currentScale);return[2]}))}))};e.prototype.setScale=function(e){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){if(!this.scale){return[2]}this.scaling=true;this.updateScale(e*this.originScale);return[2]}))}))};e.prototype.connectedCallback=function(){var e=this;this.observer=new MutationObserver((function(t){t.forEach((function(t){var n=t.attributeName;if(n&&["class","style"].includes(n)){var a=t.oldValue;var i=t.target.getAttribute(n);if(a===i){return}var r=function(e){return e===null||e===void 0?void 0:e.split(";").filter((function(e){return!["transform","will-change"].find((function(t){return e.trim().startsWith(t)}))})).join(";")};if(n==="style"&&r(i)===r(a)){return}e.updateOffset();e.updateScaleOffset();e.updateBoundary();e.setTransform(e.translateX,e.translateY)}}))}));this.observer.observe(this.element,{attributes:true,attributeOldValue:true})};e.prototype.disconnectedCallback=function(){var e;(e=this.observer)===null||e===void 0?void 0:e.disconnect()};e.prototype.componentDidLoad=function(){this.element.style.transformOrigin="center";this.xMove=["horizontal","all"].includes(this.direction);this.yMove=["vertical","all"].includes(this.direction);if(this.friction<=0){this.friction=2}if(this.x||this.y){var e=parseFloat("".concat(this.x||0));var t=parseFloat("".concat(this.y||0));this.setTransform(e,t)}};e.prototype.render=function(){return n(i,{onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEnd})};Object.defineProperty(e.prototype,"element",{get:function(){return a(this)},enumerable:false,configurable:true});Object.defineProperty(e,"watchers",{get:function(){return{x:["watchX"],y:["watchY"],scaleMin:["watchScaleMinOrMax"],scaleMax:["watchScaleMinOrMax"],scaleValue:["watchScaleValue"]}},enumerable:false,configurable:true});return e}());u.style=l}}}));