{"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/shared-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    position: String,\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","position","String","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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"}