UNPKG

vantui-edit

Version:

一套适用于Taro3及React的vantui组件库

87 lines (74 loc) 2.3 kB
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray"; import { createSelectorQuery } from '@tarojs/taro'; function selectorQuery(nodesRef) { if (!nodesRef || nodesRef.nodeName === 'root') { return createSelectorQuery().selectViewport(); } else { return createSelectorQuery().select('#' + nodesRef.uid); } } export function scrollOffset(nodesRef) { return new Promise(function (resolve) { // 没有固定高度-- 就去拿page的高度 if (process.env.TARO_ENV === 'h5') { var _nodesRef = nodesRef || document.documentElement || document.body; return resolve({ scrollLeft: _nodesRef.scrollLeft, scrollTop: _nodesRef.scrollTop }); } return selectorQuery(nodesRef).scrollOffset().exec(function (res) { resolve(res[0]); }); }); } export function boundingClientRect(nodesRef) { return new Promise(function (resolve) { if (process.env.TARO_ENV === 'h5') { var _nodesRef = nodesRef || document.documentElement || document.body; return resolve(_nodesRef.getBoundingClientRect()); } return selectorQuery(nodesRef).boundingClientRect().exec(function (res) { resolve(res[0]); }); }); } export var stopPropagation = function stopPropagation(event) { return event.stopPropagation(); }; export function preventDefault(event, isStopPropagation) { /* istanbul ignore else */ // if (typeof event?.cancelable !== 'boolean' || event?.cancelable) { // } event.preventDefault(); if (isStopPropagation) { stopPropagation(event); } } export var debounce = function debounce(fn, timeout) { var handle = 0; var lastArgs = null; var ret = function ret() { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } lastArgs = args; clearTimeout(handle); handle = setTimeout(function () { lastArgs = null; fn.apply(void 0, args); }, timeout); }; ret.flush = function () { clearTimeout(handle); if (lastArgs) { var _lastArgs = lastArgs; lastArgs = null; return fn.apply(void 0, _toConsumableArray(_lastArgs)); } }; // ret.cancel = () => { // lastArgs = null // clearTimeout(handle) // } return ret; };