{"version":3,"file":"index.mjs","sources":["../../../../../../../../packages/vue-components/vc-picker/src/panels/TimePanel/index.tsx"],"sourcesContent":["import type { DisabledTimes, PanelSharedProps } from '../../interface';\nimport type { BodyOperationRef } from './TimeBody';\nimport { classNames } from '@antdv/utils';\nimport { ref } from 'vue';\nimport useMergeProps from '../../hooks/useMergeProps';\nimport { createKeydownHandler } from '../../utils/uiUtil';\nimport TimeBody from './TimeBody';\nimport TimeHeader from './TimeHeader';\n\n// import type { RangeType } from '../../RangePicker';\n\nexport interface SharedTimeProps<DateType> {\n  format?: string;\n  showNow?: boolean;\n  showHour?: boolean;\n  showMinute?: boolean;\n  showSecond?: boolean;\n  use12Hours?: boolean;\n  hourStep?: number;\n  minuteStep?: number;\n  secondStep?: number;\n  hideDisabledOptions?: boolean;\n  defaultValue?: DateType;\n\n  /** @deprecated Please use `disabledTime` instead. */\n  disabledHours?: DisabledTimes['disabledHours'];\n  /** @deprecated Please use `disabledTime` instead. */\n  disabledMinutes?: DisabledTimes['disabledMinutes'];\n  /** @deprecated Please use `disabledTime` instead. */\n  disabledSeconds?: DisabledTimes['disabledSeconds'];\n\n  disabledTime?: (date: DateType) => DisabledTimes;\n}\n\nexport type TimePanelProps<DateType> = {\n  format?: string;\n  active?: boolean;\n} & PanelSharedProps<DateType> &\n  SharedTimeProps<DateType>;\n\nfunction countBoolean(boolList: Array<boolean | undefined>) {\n  return boolList.filter(bool => bool !== false).length;\n}\n\nfunction TimePanel<DateType>(_props: TimePanelProps<DateType>) {\n  const props = useMergeProps(_props);\n  const {\n    generateConfig,\n    format = 'HH:mm:ss',\n    prefixCls,\n    active,\n    operationRef,\n    showHour,\n    showMinute,\n    showSecond,\n    use12Hours = false,\n    onSelect,\n    value,\n  } = props;\n  const panelPrefixCls = `${prefixCls}-time-panel`;\n  const bodyOperationRef = ref<BodyOperationRef>();\n\n  // ======================= Keyboard =======================\n  const activeColumnIndex = ref(-1);\n  const columnsCount = countBoolean([showHour, showMinute, showSecond, use12Hours]);\n\n  operationRef.value = {\n    onKeydown: (event: KeyboardEvent) =>\n      createKeydownHandler(event, {\n        onLeftRight: (diff) => {\n          activeColumnIndex.value = (activeColumnIndex.value + diff + columnsCount) % columnsCount;\n        },\n        onUpDown: (diff) => {\n          if (activeColumnIndex.value === -1)\n            activeColumnIndex.value = 0;\n          else if (bodyOperationRef.value)\n            bodyOperationRef.value.onUpDown(diff);\n        },\n        onEnter: () => {\n          onSelect(value || generateConfig.getNow(), 'key');\n          activeColumnIndex.value = -1;\n        },\n      }),\n\n    onBlur: () => {\n      activeColumnIndex.value = -1;\n    },\n  };\n\n  return (\n    <div\n      class={classNames(panelPrefixCls, {\n        [`${panelPrefixCls}-active`]: active,\n      })}\n    >\n      <TimeHeader {...props} format={format} prefixCls={prefixCls} />\n      <TimeBody\n        {...props}\n        prefixCls={prefixCls}\n        activeColumnIndex={activeColumnIndex.value}\n        operationRef={bodyOperationRef}\n      />\n    </div>\n  );\n}\n\nTimePanel.displayName = 'TimePanel';\nTimePanel.inheritAttrs = false;\n\nexport default TimePanel;\n"],"names":["countBoolean","boolList","filter","bool","length","TimePanel","_props","props","useMergeProps","generateConfig","format","prefixCls","active","operationRef","showHour","showMinute","showSecond","use12Hours","onSelect","value","panelPrefixCls","bodyOperationRef","ref","activeColumnIndex","columnsCount","onKeydown","event","createKeydownHandler","onLeftRight","diff","onUpDown","onEnter","getNow","onBlur","_createVNode","classNames","TimeHeader","TimeBody","displayName","inheritAttrs"],"mappings":";;;;;;;;AAwCA,SAASA,aAAaC,QAAsC,EAAA;AAC1D,EAAA,OAAOA,QAASC,CAAAA,MAAAA,CAAOC,CAAQA,IAAAA,KAAAA,IAAAA,KAAS,KAAK,CAAEC,CAAAA,MAAAA,CAAAA;AACjD,CAAA;AAEA,SAASC,UAAoBC,MAAkC,EAAA;AAC7D,EAAMC,MAAAA,KAAAA,GAAQC,cAAcF,MAAM,CAAA,CAAA;AAClC,EAAM,MAAA;AAAA,IACJG,cAAAA;AAAAA,IACAC,MAAS,GAAA,UAAA;AAAA,IACTC,SAAAA;AAAAA,IACAC,MAAAA;AAAAA,IACAC,YAAAA;AAAAA,IACAC,QAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAC,UAAa,GAAA,KAAA;AAAA,IACbC,QAAAA;AAAAA,IACAC,KAAAA;AAAAA,GACEZ,GAAAA,KAAAA,CAAAA;AACJ,EAAMa,MAAAA,cAAAA,GAAkB,GAAET,SAAU,CAAA,WAAA,CAAA,CAAA;AACpC,EAAA,MAAMU,mBAAmBC,GAAsB,EAAA,CAAA;AAG/C,EAAMC,MAAAA,iBAAAA,GAAoBD,IAAI,CAAE,CAAA,CAAA,CAAA;AAChC,EAAA,MAAME,eAAexB,YAAa,CAAA,CAACc,UAAUC,UAAYC,EAAAA,UAAAA,EAAYC,UAAU,CAAC,CAAA,CAAA;AAEhFJ,EAAAA,YAAAA,CAAaM,KAAQ,GAAA;AAAA,IACnBM,SAAAA,EAAYC,CACVC,KAAAA,KAAAA,oBAAAA,CAAqBD,KAAO,EAAA;AAAA,MAC1BE,aAAcC,CAAS,IAAA,KAAA;AACrBN,QAAAA,iBAAAA,CAAkBJ,KAASI,GAAAA,CAAAA,iBAAAA,CAAkBJ,KAAQU,GAAAA,IAAAA,GAAOL,YAAgBA,IAAAA,YAAAA,CAAAA;AAAAA,OAC9E;AAAA,MACAM,UAAWD,CAAS,IAAA,KAAA;AAClB,QAAA,IAAIN,kBAAkBJ,KAAU,KAAA,CAAA,CAAA;AAC9BI,UAAAA,iBAAAA,CAAkBJ,KAAQ,GAAA,CAAA,CAAA;AAAA,aAAA,IACnBE,gBAAiBF,CAAAA,KAAAA;AACxBE,UAAiBF,gBAAAA,CAAAA,KAAAA,CAAMW,SAASD,IAAI,CAAA,CAAA;AAAA,OACxC;AAAA,MACAE,SAASA,MAAM;AACbb,QAAAA,QAAAA,CAASC,KAASV,IAAAA,cAAAA,CAAeuB,MAAO,EAAA,EAAG,KAAK,CAAA,CAAA;AAChDT,QAAAA,iBAAAA,CAAkBJ,KAAQ,GAAA,CAAA,CAAA,CAAA;AAAA,OAC5B;AAAA,KACD,CAAA;AAAA,IAEHc,QAAQA,MAAM;AACZV,MAAAA,iBAAAA,CAAkBJ,KAAQ,GAAA,CAAA,CAAA,CAAA;AAAA,KAC5B;AAAA,GACF,CAAA;AAEA,EAAA,OAAAe,YAAA,KAAA,EAAA;AAAA,IAAA,OAAA,EAEWC,WAAWf,cAAgB,EAAA;AAAA,MAChC,CAAE,CAAA,EAAEA,cAAe,CAAA,OAAA,CAAQ,GAAGR,MAAAA;AAAAA,KAC/B,CAAA;AAAA,GAAC,EAAAsB,CAAAA,WAAAA,CAAAE,UAAA,EAAA;AAAA,IAAA,GAEc7B,KAAAA;AAAAA,IAAK,QAAUG,EAAAA,MAAAA;AAAAA,IAAM,WAAaC,EAAAA,SAAAA;AAAAA,GAASuB,EAAAA,IAAAA,CAAAA,EAAAA,WAAAA,CAAAG,QAAA,EAAA;AAAA,IAAA,GAErD9B,KAAAA;AAAAA,IAAK,WACEI,EAAAA,SAAAA;AAAAA,IAAS,qBACDY,iBAAkBJ,CAAAA,KAAAA;AAAAA,IAAK,cAC5BE,EAAAA,gBAAAA;AAAAA,GAAgB,EAAA,IAAA,CAAA,CAAA,CAAA,CAAA;AAItC,CAAA;AAEAhB,SAAAA,CAAUiC,WAAc,GAAA,WAAA,CAAA;AACxBjC,SAAAA,CAAUkC,YAAe,GAAA,KAAA;;;;"}