{"version":3,"file":"StepHandler.mjs","sources":["../../../../../../packages/components/input-number/src/StepHandler.tsx"],"sourcesContent":["import type { CustomSlotsType } from '@antdv/types';\nimport { classNames, functionType, isMobile } from '@antdv/utils';\nimport { defineComponent, onBeforeUnmount, ref } from 'vue';\n\n/**\n * When click and hold on a button - the speed of auto changing the value.\n */\nconst STEP_INTERVAL = 200;\n\n/**\n * When click and hold on a button - the delay before auto changing the value.\n */\nconst STEP_DELAY = 600;\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'StepHandler',\n  inheritAttrs: false,\n  props: {\n    prefixCls: String,\n    upDisabled: Boolean,\n    downDisabled: Boolean,\n    onStep: functionType<(up: boolean) => void>(),\n  },\n  slots: Object as CustomSlotsType<{\n    upNode?: any\n    downNode?: any\n    default?: any\n  }>,\n  setup(props, { slots, emit }) {\n    const stepTimeoutRef = ref();\n\n    // We will interval update step when hold mouse down\n    const onStepMouseDown = (e: MouseEvent, up: boolean) => {\n      e.preventDefault();\n\n      emit('step', up);\n\n      // Loop step for interval\n      function loopStep() {\n        emit('step', up);\n\n        stepTimeoutRef.value = setTimeout(loopStep, STEP_INTERVAL);\n      }\n\n      // First time press will wait some time to trigger loop step update\n      stepTimeoutRef.value = setTimeout(loopStep, STEP_DELAY);\n    };\n\n    const onStopStep = () => {\n      clearTimeout(stepTimeoutRef.value);\n    };\n\n    onBeforeUnmount(() => {\n      onStopStep();\n    });\n\n    return () => {\n      if (isMobile())\n        return null;\n\n      const { prefixCls, upDisabled, downDisabled } = props;\n      const handlerClassName = `${prefixCls}-handler`;\n\n      const upClassName = classNames(handlerClassName, `${handlerClassName}-up`, {\n        [`${handlerClassName}-up-disabled`]: upDisabled,\n      });\n      const downClassName = classNames(handlerClassName, `${handlerClassName}-down`, {\n        [`${handlerClassName}-down-disabled`]: downDisabled,\n      });\n\n      const sharedHandlerProps = {\n        unselectable: 'on' as const,\n        role: 'button',\n        onMouseup: onStopStep,\n        onMouseleave: onStopStep,\n      };\n      const { upNode, downNode } = slots;\n      return (\n        <div class={`${handlerClassName}-wrap`}>\n          <span\n            {...sharedHandlerProps}\n            onMousedown={(e) => {\n              onStepMouseDown(e, true);\n            }}\n            aria-label=\"Increase Value\"\n            aria-disabled={upDisabled}\n            class={upClassName}\n          >\n            {upNode?.() || <span unselectable=\"on\" class={`${prefixCls}-handler-up-inner`} />}\n          </span>\n          <span\n            {...sharedHandlerProps}\n            onMousedown={(e) => {\n              onStepMouseDown(e, false);\n            }}\n            aria-label=\"Decrease Value\"\n            aria-disabled={downDisabled}\n            class={downClassName}\n          >\n            {downNode?.() || <span unselectable=\"on\" class={`${prefixCls}-handler-down-inner`} />}\n          </span>\n        </div>\n      );\n    };\n  },\n});\n"],"names":["STEP_INTERVAL","STEP_DELAY","compatConfig","MODE","name","inheritAttrs","props","prefixCls","String","upDisabled","Boolean","downDisabled","onStep","functionType","slots","Object","setup","emit","stepTimeoutRef","ref","onStepMouseDown","e","up","preventDefault","loopStep","value","setTimeout","onStopStep","clearTimeout","onBeforeUnmount","isMobile","handlerClassName","upClassName","classNames","downClassName","sharedHandlerProps","unselectable","role","onMouseup","onMouseleave","upNode","downNode","_createVNode"],"mappings":"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"}