| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | var __defProp = Object.defineProperty;var __getOwnPropDesc = Object.getOwnPropertyDescriptor;var __getOwnPropNames = Object.getOwnPropertyNames;var __hasOwnProp = Object.prototype.hasOwnProperty;var __export = (target, all) => {  for (var name in all)    __defProp(target, name, { get: all[name], enumerable: true });};var __copyProps = (to, from, except, desc) => {  if (from && typeof from === "object" || typeof from === "function") {    for (let key of __getOwnPropNames(from))      if (!__hasOwnProp.call(to, key) && key !== except)        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });  }  return to;};var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);var stdin_exports = {};__export(stdin_exports, {  useLockScroll: () => useLockScroll});module.exports = __toCommonJS(stdin_exports);var import_vue = require("vue");var import_use = require("@vant/use");var import_use_touch = require("./use-touch");var import_utils = require("../utils");let totalLockCount = 0;const BODY_LOCK_CLASS = "van-overflow-hidden";function useLockScroll(rootRef, shouldLock) {  const touch = (0, import_use_touch.useTouch)();  const DIRECTION_UP = "01";  const DIRECTION_DOWN = "10";  const onTouchMove = (event) => {    touch.move(event);    const direction = touch.deltaY.value > 0 ? DIRECTION_DOWN : DIRECTION_UP;    const el = (0, import_use.getScrollParent)(      event.target,      rootRef.value    );    const { scrollHeight, offsetHeight, scrollTop } = el;    let status = "11";    if (scrollTop === 0) {      status = offsetHeight >= scrollHeight ? "00" : "01";    } else if (scrollTop + offsetHeight >= scrollHeight) {      status = "10";    }    if (status !== "11" && touch.isVertical() && !(parseInt(status, 2) & parseInt(direction, 2))) {      (0, import_utils.preventDefault)(event, true);    }  };  const lock = () => {    document.addEventListener("touchstart", touch.start);    document.addEventListener("touchmove", onTouchMove, { passive: false });    if (!totalLockCount) {      document.body.classList.add(BODY_LOCK_CLASS);    }    totalLockCount++;  };  const unlock = () => {    if (totalLockCount) {      document.removeEventListener("touchstart", touch.start);      document.removeEventListener("touchmove", onTouchMove);      totalLockCount--;      if (!totalLockCount) {        document.body.classList.remove(BODY_LOCK_CLASS);      }    }  };  const init = () => shouldLock() && lock();  const destroy = () => shouldLock() && unlock();  (0, import_use.onMountedOrActivated)(init);  (0, import_vue.onDeactivated)(destroy);  (0, import_vue.onBeforeUnmount)(destroy);  (0, import_vue.watch)(shouldLock, (value) => {    value ? lock() : unlock();  });}
 |