UNPKG

vantui-edit

Version:

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

109 lines (86 loc) 2.75 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.boundingClientRect = boundingClientRect; exports.debounce = void 0; exports.preventDefault = preventDefault; exports.scrollOffset = scrollOffset; exports.stopPropagation = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _taro = require("@tarojs/taro"); function selectorQuery(nodesRef) { if (!nodesRef || nodesRef.nodeName === 'root') { return (0, _taro.createSelectorQuery)().selectViewport(); } else { return (0, _taro.createSelectorQuery)().select('#' + nodesRef.uid); } } 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]); }); }); } 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]); }); }); } var stopPropagation = function stopPropagation(event) { return event.stopPropagation(); }; exports.stopPropagation = stopPropagation; function preventDefault(event, isStopPropagation) { /* istanbul ignore else */ // if (typeof event?.cancelable !== 'boolean' || event?.cancelable) { // } event.preventDefault(); if (isStopPropagation) { stopPropagation(event); } } 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, (0, _toConsumableArray2.default)(_lastArgs)); } }; // ret.cancel = () => { // lastArgs = null // clearTimeout(handle) // } return ret; }; exports.debounce = debounce;