const require_rolldown_runtime = require('../rolldown-runtime.cjs'); const vue = require_rolldown_runtime.__toESM(require("vue")); const __vueuse_core = require_rolldown_runtime.__toESM(require("@vueuse/core")); const __vueuse_shared = require_rolldown_runtime.__toESM(require("@vueuse/shared")); const __internationalized_number = require_rolldown_runtime.__toESM(require("@internationalized/number")); //#region src/NumberField/utils.ts const HOLD_DELAY = 400; const REPEAT_INTERVAL = 60; const TOUCH_MOVE_TOLERANCE = 10; function usePressedHold(options) { const { disabled } = options; const timeout = (0, vue.ref)(); const triggerHook = (0, __vueuse_shared.createEventHook)(); const isPressed = (0, vue.ref)(false); const target = (0, vue.computed)(() => (0, __vueuse_core.unrefElement)(options.target)); let activePointerId; let activePointerType = ""; let startX = 0; let startY = 0; let holdTriggered = false; const resetTimeout = () => { if (timeout.value === void 0) return; window.clearTimeout(timeout.value); timeout.value = void 0; }; const resetPress = () => { resetTimeout(); activePointerId = void 0; activePointerType = ""; holdTriggered = false; isPressed.value = false; }; const trigger = () => { if (disabled.value) { resetPress(); return false; } triggerHook.trigger(); return true; }; const scheduleRepeat = (delay) => { resetTimeout(); timeout.value = window.setTimeout(() => { holdTriggered = true; if (trigger()) scheduleRepeat(REPEAT_INTERVAL); }, delay); }; const onPressStart = (event) => { if (event.button !== 0 || isPressed.value || disabled.value) return; event.preventDefault(); activePointerId = event.pointerId; activePointerType = event.pointerType; startX = event.clientX; startY = event.clientY; holdTriggered = false; isPressed.value = true; if (event.pointerType === "mouse") { holdTriggered = true; if (trigger()) scheduleRepeat(HOLD_DELAY); return; } scheduleRepeat(HOLD_DELAY); }; const onPressMove = (event) => { if (event.pointerId !== activePointerId || activePointerType === "mouse") return; const distanceX = event.clientX - startX; const distanceY = event.clientY - startY; const movedBeyondTolerance = distanceX * distanceX + distanceY * distanceY > TOUCH_MOVE_TOLERANCE ** 2; if (movedBeyondTolerance) resetPress(); }; const onPressRelease = (event) => { if (event.pointerId !== activePointerId) return; const shouldTriggerTap = activePointerType !== "mouse" && !holdTriggered; resetPress(); if (shouldTriggerTap) trigger(); }; const onPressCancel = (event) => { if (event.pointerId === activePointerId) resetPress(); }; if (__vueuse_shared.isClient) { (0, __vueuse_core.useEventListener)(target || window, "pointerdown", onPressStart); (0, __vueuse_core.useEventListener)(window, "pointermove", onPressMove); (0, __vueuse_core.useEventListener)(window, "pointerup", onPressRelease); (0, __vueuse_core.useEventListener)(window, "pointercancel", onPressCancel); } (0, vue.onScopeDispose)(resetPress); return { isPressed, onTrigger: triggerHook.on }; } function useNumberFormatter(locale, options = (0, vue.ref)({})) { return (0, __vueuse_shared.reactiveComputed)(() => new __internationalized_number.NumberFormatter(locale.value, options.value)); } function useNumberParser(locale, options = (0, vue.ref)({})) { return (0, __vueuse_shared.reactiveComputed)(() => new __internationalized_number.NumberParser(locale.value, options.value)); } function handleDecimalOperation(operator, value1, value2) { let result = operator === "+" ? value1 + value2 : value1 - value2; if (value1 % 1 !== 0 || value2 % 1 !== 0) { const value1Decimal = value1.toString().split("."); const value2Decimal = value2.toString().split("."); const value1DecimalLength = value1Decimal[1] && value1Decimal[1].length || 0; const value2DecimalLength = value2Decimal[1] && value2Decimal[1].length || 0; const multiplier = 10 ** Math.max(value1DecimalLength, value2DecimalLength); value1 = Math.round(value1 * multiplier); value2 = Math.round(value2 * multiplier); result = operator === "+" ? value1 + value2 : value1 - value2; result /= multiplier; } return result; } //#endregion Object.defineProperty(exports, 'handleDecimalOperation', { enumerable: true, get: function () { return handleDecimalOperation; } }); Object.defineProperty(exports, 'useNumberFormatter', { enumerable: true, get: function () { return useNumberFormatter; } }); Object.defineProperty(exports, 'useNumberParser', { enumerable: true, get: function () { return useNumberParser; } }); Object.defineProperty(exports, 'usePressedHold', { enumerable: true, get: function () { return usePressedHold; } }); //# sourceMappingURL=utils.cjs.map