UNPKG

@nutui/nutui-react

Version:

京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序

77 lines (76 loc) 2.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getRectInMultiPlatform: function() { return getRectInMultiPlatform; }, makeRect: function() { return makeRect; } }); var _async_to_generator = require("@swc/helpers/_/_async_to_generator"); var _sliced_to_array = require("@swc/helpers/_/_sliced_to_array"); var _ts_generator = require("@swc/helpers/_/_ts_generator"); var _taro = require("@tarojs/taro"); var _lru = require("../lru"); var _getrect = require("../get-rect"); var lru = new _lru.MiniLru(10); function makeRect(width, height) { return { top: 0, left: 0, right: width, bottom: height, width: width, height: height }; } var getRectInMultiPlatform = /*#__PURE__*/ function() { var _ref = (0, _async_to_generator._)(function(element) { var harmonyId; var _arguments = arguments; return (0, _ts_generator._)(this, function(_state) { harmonyId = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : ''; if (element) { if (_getrect.inBrowser) { return [ 2, Promise.resolve((0, _getrect.getRect)(element)) ]; } // 小程序下的逻辑 return [ 2, new Promise(function(resolve, reject) { if (lru.has(element)) { resolve(lru.get(element)); return; } (0, _taro.createSelectorQuery)().select("#".concat(harmonyId || element.uid)).boundingClientRect().exec(function(param) { var _param = (0, _sliced_to_array._)(param, 1), rects = _param[0]; if (rects) { lru.set(element, rects); } resolve(rects); }); }) ]; } return [ 2, Promise.resolve(makeRect(0, 0)) ]; }); }); return function getRectInMultiPlatform(element) { return _ref.apply(this, arguments); }; }();