{"version":3,"file":"time-picker-panel.mjs","sources":["../../../../components/time-picker/panel/time-picker-panel.tsx"],"sourcesContent":["import { defineComponent, toRefs, computed, ref, onMounted, nextTick, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { isUndefined } from 'lodash-es';\n\nimport { DEFAULT_STEPS, DEFAULT_FORMAT } from '@tdesign/common-js/time-picker/const';\nimport { panelProps } from './props';\nimport SinglePanel from './single-panel';\nimport TButton from '../../button/button';\nimport { useConfig, usePrefixClass } from '@tdesign/hooks';\nimport { TimePickerValue, TimeRangeValue } from '../type';\nimport log from '@tdesign/common-js/log/index';\n\ndayjs.extend(customParseFormat);\n\nexport default defineComponent({\n  name: 'TTimePickerPanel',\n  props: {\n    ...panelProps(),\n    isFooterDisplay: Boolean,\n    handleConfirmClick: Function,\n    onChange: Function,\n  },\n  setup(props) {\n    const { globalConfig } = useConfig('timePicker');\n    const COMPONENT_NAME = usePrefixClass('time-picker__panel');\n    const { steps, isFooterDisplay, isShowPanel } = toRefs(props);\n    const triggerScroll = ref(false);\n    const panelRef = ref();\n    const showNowTimeBtn = computed(() => !!steps.value.filter((step) => Number(step) > 1).length);\n\n    const defaultValue = computed(() => {\n      const isStepsSet = showNowTimeBtn.value;\n      const formattedValue = dayjs(props.value, props.format);\n      if (props.value && formattedValue.isValid()) {\n        return formattedValue.format(props.format);\n      }\n\n      if (isStepsSet) {\n        return dayjs().hour(0).minute(0).second(0).format(props.format);\n      }\n      return dayjs().hour(0).minute(0).second(0).format(props.format);\n    });\n\n    const panelColUpdate = () => {\n      nextTick(() => {\n        triggerScroll.value = true;\n      });\n    };\n\n    const resetTriggerScroll = () => {\n      triggerScroll.value = false;\n    };\n    const handlePresetClick = (\n      presetValue: TimePickerValue | (() => TimePickerValue) | TimeRangeValue | (() => TimeRangeValue),\n    ) => {\n      const presetVal = typeof presetValue === 'function' ? presetValue() : presetValue;\n      if (typeof props.activeIndex === 'number') {\n        if (Array.isArray(presetVal)) {\n          props.onChange?.(presetVal[props.activeIndex]);\n        } else {\n          log.error('TimePicker', `preset: ${props.presets} 预设值必须是数组!`);\n        }\n      } else {\n        props.onChange?.(presetVal);\n      }\n    };\n\n    const renderFooter = () => {\n      if (!isUndefined(props.presets))\n        return Object.keys(props.presets || []).map((key: string) => (\n          <TButton\n            key={key}\n            theme=\"primary\"\n            size=\"small\"\n            variant=\"text\"\n            onClick={() => handlePresetClick(props.presets[key])}\n          >\n            {key}\n          </TButton>\n        ));\n      return !showNowTimeBtn.value ? (\n        <TButton\n          theme=\"primary\"\n          variant=\"text\"\n          size=\"small\"\n          onClick={() => props.onChange?.(dayjs().format(props.format))}\n        >\n          {globalConfig.value.now}\n        </TButton>\n      ) : null;\n    };\n\n    // 渲染后执行update 使面板滚动至当前时间位置\n    onMounted(() => {\n      panelColUpdate();\n    });\n\n    watch(\n      () => isShowPanel.value,\n      () => {\n        panelColUpdate();\n      },\n    );\n\n    return () => (\n      <div class={COMPONENT_NAME.value}>\n        <div class={`${COMPONENT_NAME.value}-section-body`}>\n          <SinglePanel\n            {...props}\n            ref={panelRef}\n            format={props.format || DEFAULT_FORMAT}\n            steps={props.steps || DEFAULT_STEPS}\n            value={dayjs(props.value, props.format).isValid() ? props.value : defaultValue.value}\n            triggerScroll={triggerScroll.value}\n            onChange={props.onChange}\n            resetTriggerScroll={resetTriggerScroll}\n            isShowPanel={props.isShowPanel}\n          />\n        </div>\n        {isFooterDisplay.value ? (\n          <div class={`${COMPONENT_NAME.value}-section-footer`}>\n            <TButton\n              theme=\"primary\"\n              variant=\"base\"\n              disabled={!props.value}\n              onClick={(e) => props.handleConfirmClick?.(e, defaultValue.value)}\n              size=\"small\"\n            >\n              {globalConfig.value.confirm}\n            </TButton>\n            {renderFooter()}\n          </div>\n        ) : null}\n      </div>\n    );\n  },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","dayjs","extend","customParseFormat","defineComponent","name","props","_objectSpread","panelProps","isFooterDisplay","Boolean","handleConfirmClick","Function","onChange","setup","_useConfig","useConfig","globalConfig","COMPONENT_NAME","usePrefixClass","_toRefs","toRefs","steps","isShowPanel","triggerScroll","ref","panelRef","showNowTimeBtn","computed","value","filter","step","Number","length","defaultValue","isStepsSet","formattedValue","format","isValid","hour","minute","second","panelColUpdate","nextTick","resetTriggerScroll","handlePresetClick","presetValue","presetVal","activeIndex","Array","isArray","_props$onChange","log","error","concat","presets","_props$onChange2","renderFooter","isUndefined","keys","map","key","_createVNode","TButton","onClick","_default","_props$onChange3","now","onMounted","watch","SinglePanel","_mergeProps","DEFAULT_FORMAT","DEFAULT_STEPS","e","_props$handleConfirmC","confirm"],"mappings":"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"}