utils.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. exports.requestAnimationFrame = exports.addUnit = exports.getSystemInfoSync = exports.nextTick = exports.range = exports.isNumber = exports.isObj = exports.isDef = void 0;
  4. function isDef(value) {
  5. return value !== undefined && value !== null;
  6. }
  7. exports.isDef = isDef;
  8. function isObj(x) {
  9. var type = typeof x;
  10. return x !== null && (type === 'object' || type === 'function');
  11. }
  12. exports.isObj = isObj;
  13. function isNumber(value) {
  14. return /^\d+(\.\d+)?$/.test(value);
  15. }
  16. exports.isNumber = isNumber;
  17. function range(num, min, max) {
  18. return Math.min(Math.max(num, min), max);
  19. }
  20. exports.range = range;
  21. function nextTick(fn) {
  22. setTimeout(function () {
  23. fn();
  24. }, 1000 / 30);
  25. }
  26. exports.nextTick = nextTick;
  27. var systemInfo = null;
  28. function getSystemInfoSync() {
  29. if (systemInfo == null) {
  30. systemInfo = wx.getSystemInfoSync();
  31. }
  32. return systemInfo;
  33. }
  34. exports.getSystemInfoSync = getSystemInfoSync;
  35. function addUnit(value) {
  36. if (!isDef(value)) {
  37. return undefined;
  38. }
  39. value = String(value);
  40. return isNumber(value) ? value + 'px' : value;
  41. }
  42. exports.addUnit = addUnit;
  43. function requestAnimationFrame(cb) {
  44. var systemInfo = getSystemInfoSync();
  45. if (systemInfo.platform === 'devtools') {
  46. return nextTick(cb);
  47. }
  48. return wx
  49. .createSelectorQuery()
  50. .selectViewport()
  51. .boundingClientRect()
  52. .exec(function () {
  53. cb();
  54. });
  55. }
  56. exports.requestAnimationFrame = requestAnimationFrame;