{"version":3,"file":"dep-94dcd758.mjs","sources":["../../../common/js/time-picker/utils.ts","../../../components/time-picker/panel/single-panel.tsx"],"sourcesContent":["import dayjs from 'dayjs';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { EPickerCols, TIME_FORMAT } from './const';\n\ndayjs.extend(advancedFormat);\ndayjs.extend(customParseFormat);\n\n// 判断是否输入的值是合法的timepicker的值\nexport function validateInputValue(value: string, format: string) {\n  return dayjs(value, format).format(format) === value;\n}\n\n// 转换输入值为标准格式的timepicker的值\nexport function formatInputValue(value: string, format: string) {\n  return dayjs(value, format).format(format);\n}\n\n// 计算最接近的时间点\nexport function closestLookup(availableArr: Array<any>, calcVal: number, step: number) {\n  if (step <= 1) return calcVal;\n  return availableArr.sort((a, b) => Math.abs(calcVal + 1 - a) - Math.abs(calcVal + 1 - b))[0];\n}\n\nexport function getPickerCols(format: string) {\n  const renderCol: EPickerCols[] = [];\n  const { meridiem, hour, minute, second, milliSecond } = EPickerCols;\n  const match = format.match(TIME_FORMAT);\n  match.forEach((m) => {\n    switch (m) {\n      case 'H':\n      case 'HH':\n      case 'h':\n      case 'hh':\n        renderCol.push(hour);\n        break;\n      case 'a':\n      case 'A':\n        renderCol.push(meridiem);\n        break;\n      case 'm':\n      case 'mm':\n        renderCol.push(minute);\n        break;\n      case 's':\n      case 'ss':\n        renderCol.push(second);\n        break;\n      case 'SSS':\n        renderCol.push(milliSecond);\n        break;\n      default:\n        break;\n    }\n  });\n  return renderCol;\n}\n","import { computed, defineComponent, ref, watch, toRefs, onMounted, reactive, nextTick } from 'vue';\nimport { range, debounce, padStart } from 'lodash-es';\n\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\nimport { panelColProps } from './props';\nimport { EPickerCols, TWELVE_HOUR_FORMAT, AM, PM, MERIDIEM_LIST } from '@tdesign/common-js/time-picker/const';\nimport { closestLookup, getPickerCols } from '@tdesign/common-js/time-picker/utils';\nimport { useCommonClassName, useConfig, usePrefixClass } from '@tdesign/shared-hooks';\n\ndayjs.extend(customParseFormat);\n\nconst timeArr = [EPickerCols.hour, EPickerCols.minute, EPickerCols.second, EPickerCols.milliSecond];\n\nconst panelOffset = {\n  top: 15,\n  bottom: 21,\n};\n\nexport default defineComponent({\n  name: 'TTimePickerPanelCol',\n  props: {\n    ...panelColProps(),\n    position: String,\n    triggerScroll: Boolean,\n    onChange: Function,\n    resetTriggerScroll: Function,\n    isShowPanel: Boolean,\n  },\n  setup(props) {\n    const { globalConfig } = useConfig('timePicker');\n    const COMPONENT_NAME = usePrefixClass('time-picker__panel');\n    const { STATUS } = useCommonClassName();\n\n    const { steps, value, format, position, triggerScroll } = toRefs(props);\n\n    const cols = ref<Array<EPickerCols>>([]);\n    const bodyRef = ref();\n    const maskRef = ref(null);\n    // 每个滚动列的ref 顺序不定 所以只要有5列标识即可\n    const colsRef = reactive<Record<number, null | HTMLElement>>({\n      0: null,\n      1: null,\n      2: null,\n      3: null,\n      4: null,\n      5: null,\n    });\n\n    const dayjsValue = computed(() => {\n      const isStepsSet = !!steps.value.filter((step) => Number(step) > 1).length;\n\n      if (value.value) return dayjs(value.value, format.value);\n\n      if (isStepsSet) return dayjs().hour(0).minute(0).second(0);\n\n      return dayjs();\n    });\n\n    // 面板打开时 触发滚动 初始化面板\n    watch(\n      () => dayjsValue.value,\n      () => {\n        if (dayjsValue.value && value.value) updateTimeScrollPos(true);\n      },\n    );\n\n    // 时间通过外部触发时 同样触发滚动\n    watch(\n      () => triggerScroll.value,\n      () => {\n        if (triggerScroll.value) {\n          updateTimeScrollPos(true);\n        }\n      },\n    );\n\n    onMounted(() => {\n      cols.value = getPickerCols(format.value);\n    });\n\n    // 获取每个时间的高度\n    const getItemHeight = () => {\n      const maskDom = maskRef.value?.querySelector('div');\n      if (!maskDom) {\n        return {\n          offsetHeight: 0,\n          margin: 0,\n        };\n      }\n      return {\n        offsetHeight: parseFloat(getComputedStyle(maskDom).height),\n        margin: parseFloat(getComputedStyle(maskDom).marginTop),\n      };\n    };\n\n    const timeItemCanUsed = (col: EPickerCols, el: string | number) => {\n      const colIdx = timeArr.indexOf(col);\n      if (colIdx !== -1) {\n        const params: [number, number, number, number] = [\n          dayjsValue.value.hour(),\n          dayjsValue.value.minute(),\n          dayjsValue.value.second(),\n          dayjsValue.value.millisecond(),\n        ];\n        params[colIdx] = Number(el);\n        return !props.disableTime?.(...params, { partial: position.value || 'start' })?.[col]?.includes(Number(el));\n      }\n      return true;\n    };\n\n    // 获取需要渲染的column\n    const getColList = (col: EPickerCols) => {\n      let count = 0;\n\n      if (timeArr.includes(col)) {\n        // hour、minute and second columns\n        const colIdx = timeArr.indexOf(col);\n        const colStep = steps.value[colIdx] || 1;\n\n        if (col === EPickerCols.hour)\n          count = TWELVE_HOUR_FORMAT.test(format.value) ? 11 : 23; // 小时最大为23 12小时制最大为11\n        else if (col === EPickerCols.milliSecond) count = 999; // 毫秒最大为999\n        else count = 59;\n\n        const colList = range(0, count + 1, Number(colStep)).map((v) => padStart(String(v), 2, '0')) || [];\n        return props.hideDisabledTime && !!props.disableTime\n          ? colList.filter((t) => {\n              const params: [number, number, number, number] = [\n                dayjsValue.value.hour(),\n                dayjsValue.value.minute(),\n                dayjsValue.value.second(),\n                dayjsValue.value.millisecond(),\n              ];\n              params[colIdx] = Number(t);\n              return !props\n                .disableTime?.(...params, { partial: position.value || 'start' })\n                ?.[col]?.includes(Number(t));\n            })\n          : colList;\n      }\n      // meridiem column\n      return MERIDIEM_LIST;\n    };\n\n    const getScrollDistance = (col: EPickerCols, time: number | string) => {\n      if (col === EPickerCols.hour && /[h]{1}/.test(format.value))\n        // eslint-disable-next-line no-param-reassign\n        (time as number) %= 12; // 一定是数字，直接cast\n\n      const itemIdx = getColList(col).indexOf(padStart(String(time), 2, '0'));\n      const { offsetHeight, margin } = getItemHeight();\n      const timeItemTotalHeight = offsetHeight + margin;\n      const distance = Math.abs(Math.max(0, itemIdx) * timeItemTotalHeight);\n      return distance;\n    };\n\n    const handleScroll = (col: EPickerCols, idx: number, e: MouseEvent) => {\n      let val: number | string;\n      let formattedVal: string;\n      if (!props.isShowPanel) return;\n\n      const scrollTop = (colsRef[idx]?.scrollTop || 0) + panelOffset.top;\n      const { offsetHeight, margin } = getItemHeight();\n      const timeItemTotalHeight = offsetHeight + margin;\n      let colStep = Math.abs(Math.round(scrollTop / timeItemTotalHeight + 0.5));\n\n      const meridiem = MERIDIEM_LIST[Math.min(colStep - 1, 1)].toLowerCase(); // 处理PM、AM与am、pm\n\n      if (Number.isNaN(colStep)) colStep = 1;\n      if (timeArr.includes(col)) {\n        // hour、minute、 second and milliSecond\n        let max = 59;\n        if (col === EPickerCols.hour) max = /[h]{1}/.test(format.value) ? 11 : 23; // 小时最大为23 12小时制最大为11\n        else if (col === EPickerCols.milliSecond) max = 999; // 毫秒最大为999\n\n        const colIdx = timeArr.indexOf(col);\n        const availableArr = range(0, max + 1, Number(steps.value[colIdx]) || 1);\n        val = closestLookup(\n          availableArr,\n          Number(getColList(col)[Math.min(colStep - 1, max + 1, availableArr.length - 1)]),\n          Number(steps.value[colIdx]) || 1,\n        );\n        if (Number.isNaN(val)) val = availableArr[availableArr.length - 1];\n        if (col === EPickerCols.hour && cols.value.includes(EPickerCols.meridiem) && dayjsValue.value.hour() >= 12) {\n          // 如果是十二小时制需要再判断\n          val = Number(val) + 12;\n        }\n      }\n      // meridiem columns\n      else val = meridiem;\n\n      const distance = getScrollDistance(col, val);\n      if (!dayjs(dayjsValue.value).isValid() || (value.value && !dayjs(value.value, format.value, true).isValid()))\n        return;\n\n      if (timeArr.includes(col)) {\n        // @ts-ignore\n        // TODO: 这里不好改，要改的话需要分类型处理\n        if (timeItemCanUsed(col, val)) formattedVal = dayjsValue.value[col]?.(val).format(format.value);\n        else formattedVal = dayjsValue.value.format(format.value);\n      } else {\n        const currentHour = dayjsValue.value.hour();\n        if (meridiem === AM && currentHour >= 12) {\n          formattedVal = dayjsValue.value.hour(currentHour - 12).format(format.value);\n        } else if (meridiem === PM && currentHour < 12) {\n          formattedVal = dayjsValue.value.hour(currentHour + 12).format(format.value);\n        } else {\n          formattedVal = dayjsValue.value.format(format.value);\n        }\n      }\n      if (formattedVal !== value.value) props.onChange?.(formattedVal, e);\n\n      if (distance !== scrollTop) {\n        const scrollCtrl = colsRef[cols.value.indexOf(col)];\n\n        if (!scrollCtrl || scrollCtrl.scrollTop === distance) return;\n\n        scrollCtrl.scrollTo?.({\n          top: distance,\n          behavior: 'smooth',\n        });\n      }\n    };\n\n    const scrollToTime = (\n      col: EPickerCols,\n      time: number | string,\n      idx: number,\n      behavior: 'auto' | 'smooth' = 'auto',\n    ) => {\n      const distance = getScrollDistance(col, time);\n      const scrollCtrl = colsRef[idx];\n      if (!scrollCtrl || scrollCtrl.scrollTop === distance || !timeItemCanUsed(col, time)) return;\n\n      scrollCtrl.scrollTo?.({\n        top: distance,\n        behavior,\n      });\n    };\n\n    const handleTimeItemClick = (col: EPickerCols, el: string | number, idx: number, e: MouseEvent) => {\n      if (!timeItemCanUsed(col, el)) return;\n      if (timeArr.includes(col)) {\n        if (\n          col === EPickerCols.hour &&\n          dayjsValue.value.format('a') === PM &&\n          cols.value.includes(EPickerCols.meridiem)\n        ) {\n          // eslint-disable-next-line no-param-reassign\n          el = Number(el) + 12;\n        }\n        scrollToTime(col, el, idx, 'smooth');\n      } else {\n        const currentHour = dayjsValue.value.hour();\n        if (el === AM && currentHour >= 12) {\n          props.onChange?.(dayjsValue.value.hour(currentHour - 12).format(format.value), e);\n        } else if (el === PM && currentHour < 12) {\n          props.onChange?.(dayjsValue.value.hour(currentHour + 12).format(format.value), e);\n        }\n      }\n    };\n\n    // update each columns scroll distance\n    const updateTimeScrollPos = (isAutoScroll = false) => {\n      const behavior = value.value && !isAutoScroll ? 'smooth' : 'auto';\n      const isStepsSet = !!steps.value.filter((step) => Number(step) > 1).length;\n      nextTick(() => {\n        cols.value.forEach((col: EPickerCols, idx: number) => {\n          if (!isStepsSet || (isStepsSet && value.value)) {\n            // 如果没有设置大于1的steps或设置了大于1的step 正常处理滚动\n            scrollToTime(\n              col,\n              // @ts-ignore\n              // TODO: 这里不好改，要改的话需要分类型处理\n              timeArr.includes(col) ? dayjsValue.value[col]?.() : dayjsValue.value.format('a'),\n              idx,\n              behavior,\n            );\n          } else {\n            // 否则初始化到每列第一个选项\n            scrollToTime(col, getColList(col)?.[0], idx, behavior);\n          }\n        });\n      });\n\n      props.resetTriggerScroll();\n    };\n\n    const isCurrent = (col: EPickerCols, colItem: string | number) => {\n      let colVal: number;\n      if (col === EPickerCols.meridiem) {\n        const currentMeridiem = dayjsValue.value.format('a');\n        return currentMeridiem === colItem;\n      }\n      colVal = dayjsValue.value[col]?.();\n      if (col === EPickerCols.hour && /[h]{1}/.test(format.value)) {\n        colVal %= 12;\n      }\n      return colVal === Number(colItem);\n    };\n\n    return () => (\n      <div class={`${COMPONENT_NAME.value}-body`} ref={bodyRef}>\n        <div class={`${COMPONENT_NAME.value}-body-active-mask`} ref={maskRef}>\n          {/* 渲染遮罩层 */}\n          {cols.value.map?.((col, idx) => (\n            <div key={`${col}_${idx}`} />\n          ))}\n        </div>\n        {/* 渲染实际滚动列 */}\n        {cols.value.map?.((col, idx) => (\n          <ul\n            key={`${col}_${idx}`}\n            ref={(el) => (colsRef[idx] = el as HTMLElement)}\n            class={`${COMPONENT_NAME.value}-body-scroll`}\n            onScroll={debounce((e) => handleScroll(col, idx, e), 50)}\n          >\n            {getColList(col).map((el) => (\n              <li\n                key={el}\n                class={[\n                  `${COMPONENT_NAME.value}-body-scroll-item`,\n                  {\n                    [STATUS.value.disabled]: !timeItemCanUsed(col, el),\n                    [STATUS.value.current]: isCurrent(col, el),\n                  },\n                ]}\n                onClick={(e) => handleTimeItemClick(col, el, idx, e)}\n              >\n                {/* eslint-disable-next-line no-nested-ternary */}\n                {timeArr.includes(col)\n                  ? TWELVE_HOUR_FORMAT.test(format.value) && col === EPickerCols.hour && el === '00'\n                    ? '12'\n                    : el\n                  : globalConfig.value[el === AM ? 'anteMeridiem' : 'postMeridiem']}\n              </li>\n            ))}\n          </ul>\n        ))}\n      </div>\n    );\n  },\n});\n"],"names":["dayjs","extend","advancedFormat","customParseFormat","validateInputValue","value","format","formatInputValue","closestLookup","availableArr","calcVal","step","sort","a","b","Math","abs","getPickerCols","renderCol","meridiem","EPickerCols","hour","minute","second","milliSecond","match","TIME_FORMAT","forEach","m","push","timeArr","panelOffset","top","bottom","defineComponent","name","props","_objectSpread","panelColProps","position","String","triggerScroll","Boolean","onChange","Function","resetTriggerScroll","isShowPanel","setup","_useConfig","useConfig","globalConfig","COMPONENT_NAME","usePrefixClass","_useCommonClassName","useCommonClassName","STATUS","_toRefs","toRefs","steps","cols","ref","bodyRef","maskRef","colsRef","reactive","dayjsValue","computed","isStepsSet","filter","Number","length","watch","updateTimeScrollPos","onMounted","getItemHeight","_maskRef$value","maskDom","querySelector","offsetHeight","margin","parseFloat","getComputedStyle","height","marginTop","timeItemCanUsed","col","el","colIdx","indexOf","_props$disableTime","params","millisecond","disableTime","call","apply","concat","partial","includes","getColList","count","colStep","TWELVE_HOUR_FORMAT","test","colList","range","map","v","padStart","hideDisabledTime","t","_props$disableTime2","MERIDIEM_LIST","getScrollDistance","time","itemIdx","_getItemHeight","timeItemTotalHeight","distance","max","handleScroll","idx","e","_colsRef$idx","_props$onChange","val","formattedVal","scrollTop","_getItemHeight2","round","min","toLowerCase","isNaN","isValid","_dayjsValue$value$col","_dayjsValue$value","currentHour","AM","PM","_scrollCtrl$scrollTo","scrollCtrl","scrollTo","behavior","scrollToTime","_scrollCtrl$scrollTo2","handleTimeItemClick","_props$onChange2","_props$onChange3","isAutoScroll","arguments","undefined","nextTick","_dayjsValue$value$col2","_dayjsValue$value2","_getColList","isCurrent","colItem","_dayjsValue$value$col3","_dayjsValue$value3","colVal","currentMeridiem","_cols$value$map","_cols$value","_cols$value$map2","_cols$value2","_createVNode","debounce","_defineProperty","disabled","current","onClick"],"mappings":"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"}