@owp/core 2.5.26 → 2.5.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/_virtual/index10.js +2 -2
  2. package/dist/_virtual/index12.js +2 -2
  3. package/dist/_virtual/index13.js +2 -2
  4. package/dist/_virtual/index14.js +2 -2
  5. package/dist/components/OwpExportExcelButton/OwpExportExcelButton.js +19 -19
  6. package/dist/components/OwpExportExcelButton/OwpExportExcelButton.js.map +1 -1
  7. package/dist/components/OwpPicker/OwpDatePicker.js +251 -243
  8. package/dist/components/OwpPicker/OwpDatePicker.js.map +1 -1
  9. package/dist/components/OwpPicker/internal/useOwpPickerPopperTransition.js +13 -12
  10. package/dist/components/OwpPicker/internal/useOwpPickerPopperTransition.js.map +1 -1
  11. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +420 -267
  12. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js.map +1 -1
  13. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js +289 -176
  14. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js.map +1 -1
  15. package/dist/components/OwpTreeGridExportExcelButton/OwpTreeGridExportExcelButton.js +10 -10
  16. package/dist/components/OwpTreeGridExportExcelButton/OwpTreeGridExportExcelButton.js.map +1 -1
  17. package/dist/layout/components/logo/Logo.js +40 -53
  18. package/dist/layout/components/logo/Logo.js.map +1 -1
  19. package/dist/layout/components/navbar/style/NavbarStyle.js +27 -37
  20. package/dist/layout/components/navbar/style/NavbarStyle.js.map +1 -1
  21. package/dist/layout/components/navbar/style/NavbarStyleContent.js +67 -42
  22. package/dist/layout/components/navbar/style/NavbarStyleContent.js.map +1 -1
  23. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
  24. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/index.js +1 -1
  25. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE39/index.js +1 -1
  26. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/index.js +1 -1
  27. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js +1 -1
  28. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js +1 -1
  29. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js +1 -1
  30. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
  31. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/index.js +1 -1
  32. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/MSI/index.js +1 -1
  33. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/codabar/index.js +1 -1
  34. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js +1 -1
  35. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/renderers/index.js +1 -1
  36. package/dist/owp-app.css +1 -1
  37. package/dist/types/components/OwpPicker/internal/useOwpPickerPopperTransition.d.ts +1 -0
  38. package/dist/types/components/OwpTreeGrid/internal/treeGridTheme.d.ts +4 -0
  39. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"OwpDatePicker.js","sources":["../../../src/components/OwpPicker/OwpDatePicker.tsx"],"sourcesContent":["import { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport ClearIcon from '@mui/icons-material/Clear';\nimport {\n IconButton,\n InputAdornment,\n Paper,\n type TextFieldProps,\n} from '@mui/material';\nimport clsx from 'clsx';\nimport { enUS } from 'date-fns/locale/en-US';\nimport { ko } from 'date-fns/locale/ko';\nimport dayjs from '@/dayjs';\nimport {\n type HTMLAttributes,\n type KeyboardEvent as ReactKeyboardEvent,\n type ReactNode,\n useMemo,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport ReactDatePicker, {\n CalendarContainer as ReactDatePickerCalendarContainer,\n registerLocale,\n setDefaultLocale,\n type DatePickerProps,\n type ReactDatePickerCustomHeaderProps,\n} from 'react-datepicker';\nimport { AnimatedCalendarContainer } from './internal/AnimatedCalendarContainer';\nimport { CalendarContainer } from './internal/CalendarContainer';\nimport { DatePickerInput } from './internal/DatePickerInput';\nimport {\n getOwpDatePickerCalendarClassName,\n useOwpDatePickerCalendarHeaderState,\n} from './internal/useOwpDatePickerCalendarHeaderState';\nimport { OwpDatePickerCalendarHeader } from './internal/OwpDatePickerCalendarHeader';\nimport {\n getOwpDatePickerEditorPaperSx,\n getOwpPickerEditorInputSx,\n} from './internal/pickerEditorStyles';\nimport { PICKER_TRANSITION_DURATION } from './internal/useOwpPickerPopperTransition';\nimport { OwpTextMaskField, type OwpTextMaskFieldChangeEvent } from '../OwpTextField';\nimport {\n PICKER_INVALID_INPUT_MESSAGE_KEY,\n VALUE_DATE_FORMATTER,\n VALUE_MONTH_FORMATTER,\n VALUE_TIME_FORMATTER,\n VALUE_YEAR_FORMATTER,\n} from './constants';\nimport { getAdjacentFocusableElement, getPickerInputMask } from './utils';\n\nregisterLocale('ko', ko);\nregisterLocale('en', enUS);\nsetDefaultLocale('ko');\n\nexport type DatePickerValue = string | Date;\ntype DatePickerCalendarContainerProps = HTMLAttributes<HTMLDivElement> & {\n showTime?: boolean;\n showTimeSelectOnly?: boolean;\n};\ntype OwpDatePickerTextFieldFocusEvent = Parameters<NonNullable<TextFieldProps['onFocus']>>[0];\ntype OwpDatePickerTextFieldKeyDownEvent = Parameters<NonNullable<TextFieldProps['onKeyDown']>>[0];\n\n/** DatePicker 외부 입력에서 피커 open 처리할 키 여부 */\nconst isDatePickerOpenKey = (event: OwpDatePickerTextFieldKeyDownEvent) => {\n if (\n event.ctrlKey ||\n event.altKey ||\n event.metaKey ||\n event.key === 'Escape' ||\n event.key === 'Enter' ||\n event.key === 'Tab'\n ) {\n return false;\n }\n\n return true;\n};\n\n/** DatePicker 상단 입력 값 파싱 */\nconst parseDatePickerInput = (value: string, valueFormatter: string) => {\n const normalizedValue = value.trim();\n\n if (valueFormatter === VALUE_YEAR_FORMATTER) {\n const normalizedDateValue = `${normalizedValue}-01-01`;\n const parsedValue = dayjs(normalizedDateValue, VALUE_DATE_FORMATTER, true);\n return parsedValue.isValid() && parsedValue.format(VALUE_DATE_FORMATTER) === normalizedDateValue\n ? parsedValue\n : null;\n }\n\n if (valueFormatter === VALUE_MONTH_FORMATTER) {\n const normalizedDateValue = `${normalizedValue}-01`;\n const parsedValue = dayjs(normalizedDateValue, VALUE_DATE_FORMATTER, true);\n return parsedValue.isValid() && parsedValue.format(VALUE_DATE_FORMATTER) === normalizedDateValue\n ? parsedValue\n : null;\n }\n\n const parsedValue = dayjs(normalizedValue, VALUE_DATE_FORMATTER, true);\n return parsedValue.isValid() && parsedValue.format(VALUE_DATE_FORMATTER) === normalizedValue\n ? parsedValue\n : null;\n};\n\ninterface OwnProps {\n className?: string;\n label?: string;\n variant?: TextFieldProps['variant'];\n sx?: TextFieldProps['sx'];\n value?: DatePickerValue;\n useAmPm?: boolean;\n disabledClearButton?: boolean;\n disabledFutureDates?: boolean;\n showMonthPicker?: boolean;\n fullWidth?: boolean;\n onChange?: (value?: DatePickerValue) => void;\n textFieldProps?: Omit<TextFieldProps, 'value' | 'defaultValue' | 'onChange'>;\n}\n\ntype OwpDatePickerProps = OwnProps & DatePickerProps;\n\n/**\n * OwpDatePicker 컴포넌트\n * @param className CSS 클래스명\n * @param label 입력 라벨\n * @param variant variant 값\n * @param sx sx 값\n * @param value 현재 값\n * @param useAmPm 오전/오후 포맷 사용 여부\n * @param onChange onChange 핸들러\n */\nconst OwpDatePicker = ({\n className,\n label,\n variant = 'standard',\n sx,\n value,\n useAmPm,\n onChange,\n fullWidth,\n showYearPicker,\n showMonthPicker,\n showTimeSelect,\n showTimeSelectOnly,\n showTimeInput,\n textFieldProps,\n disabledClearButton,\n disabledFutureDates,\n popperClassName: popperClassNameProp,\n popperContainer: popperContainerProp,\n ...datePickerProps\n}: OwpDatePickerProps) => {\n const {\n selectsMultiple,\n selectsRange,\n selected,\n startDate,\n endDate,\n calendarClassName: calendarClassNameProp,\n calendarContainer: calendarContainerProp,\n open: openProp,\n openToDate: openToDateProp,\n onCalendarOpen,\n onCalendarClose,\n onClickOutside,\n onInputClick,\n preventOpenOnFocus,\n renderCustomHeader: renderCustomHeaderProp,\n ...resolvedDatePickerProps\n } = datePickerProps;\n void [selectsMultiple, selectsRange, selected, startDate, endDate];\n const { t, i18n } = useOwpTranslation();\n const [popperPlacement, setPopperPlacement] =\n useState<NonNullable<DatePickerProps['popperPlacement']>>('bottom-start');\n const [isCalendarOpen, setIsCalendarOpen] = useState(false);\n const [inputDraftValue, setInputDraftValue] = useState('');\n const [hasPickerInputCommitError, setHasPickerInputCommitError] = useState(false);\n const rootRef = useRef<HTMLDivElement | null>(null);\n const externalInputRef = useRef<HTMLInputElement | null>(null);\n const pickerInputRef = useRef<HTMLInputElement | null>(null);\n const datePickerRef = useRef<ReactDatePicker | null>(null);\n const suppressOpenUntilRef = useRef(0);\n const languageId = i18n.resolvedLanguage ?? i18n.language ?? 'kr';\n const datePickerLocale = languageId === 'kr' ? 'ko' : 'en';\n\n const valueFormatter = useMemo(() => {\n if (showYearPicker) {\n return VALUE_YEAR_FORMATTER;\n }\n\n if (showMonthPicker) {\n return VALUE_MONTH_FORMATTER;\n }\n\n if (showTimeSelectOnly) {\n return VALUE_TIME_FORMATTER;\n }\n\n if (showTimeInput || showTimeSelect) {\n return `${VALUE_DATE_FORMATTER} ${VALUE_TIME_FORMATTER}`;\n }\n return VALUE_DATE_FORMATTER;\n }, [showYearPicker, showMonthPicker, showTimeInput, showTimeSelect, showTimeSelectOnly]);\n\n const selectedValue = useMemo(() => {\n if (!value) return null;\n\n if (showTimeSelectOnly && typeof value === 'string') {\n const [hoursText = '', minutesText = ''] = value.split(':');\n const hours = Number(hoursText);\n const minutes = Number(minutesText);\n\n if (Number.isNaN(hours) || Number.isNaN(minutes)) {\n return null;\n }\n\n const selectedDate = new Date();\n selectedDate.setHours(hours, minutes, 0, 0);\n\n return selectedDate;\n }\n\n return new Date(value);\n }, [showTimeSelectOnly, value]);\n\n const selectedInputValue = useMemo(() => {\n if (!value || typeof value !== 'string') {\n return value ? dayjs(value).format(valueFormatter) : '';\n }\n\n const parsedValue = parseDatePickerInput(value, valueFormatter);\n\n return parsedValue?.isValid() ? parsedValue.format(valueFormatter) : value;\n }, [value, valueFormatter]);\n const allowPickerInput = !showTimeSelectOnly && !showTimeInput && !showTimeSelect;\n const {\n calendarDisplayDate,\n calendarHeaderPickerView,\n calendarHeaderView,\n closeCalendarHeaderPicker,\n isCalendarHeaderViewOpen,\n resetCalendarDisplayDate,\n selectCalendarDisplayDate,\n toggleCalendarHeaderPicker,\n } = useOwpDatePickerCalendarHeaderState({\n showMonthPicker,\n showYearPicker,\n });\n const selectedPickerValue = useMemo(() => {\n if (!allowPickerInput || !inputDraftValue) {\n return selectedValue;\n }\n\n const parsedInputDraftValue = parseDatePickerInput(inputDraftValue, valueFormatter);\n\n return parsedInputDraftValue?.isValid() ? parsedInputDraftValue.toDate() : selectedValue;\n }, [allowPickerInput, inputDraftValue, selectedValue, valueFormatter]);\n\n /** MUI-like DatePicker calendar header */\n const renderOwpCalendarHeader = (headerProps: ReactDatePickerCustomHeaderProps) => {\n return (\n <OwpDatePickerCalendarHeader\n {...headerProps}\n pickerView={calendarHeaderPickerView}\n selectedDate={selectedPickerValue}\n showMonthPicker={showMonthPicker}\n showYearPicker={showYearPicker}\n view={calendarHeaderView}\n onCloseView={closeCalendarHeaderPicker}\n onSelectViewDate={selectCalendarDisplayDate}\n onToggleView={toggleCalendarHeaderPicker}\n />\n );\n };\n\n const handleSelect = (dateValue?: Date | null) => {\n const nextValue = dateValue ? dayjs(dateValue).format(valueFormatter) : undefined;\n\n setInputDraftValue(nextValue ?? '');\n setHasPickerInputCommitError(false);\n onChange?.(nextValue);\n\n if (allowPickerInput) {\n suppressOpenUntilRef.current = Date.now() + 200;\n focusExternalInput();\n }\n };\n\n const openPicker = () => {\n if (Date.now() < suppressOpenUntilRef.current) {\n return;\n }\n\n if (allowPickerInput) {\n setIsCalendarOpen(true);\n setInputDraftValue(selectedInputValue);\n setHasPickerInputCommitError(false);\n }\n };\n\n const closePicker = (skipSetBlur?: boolean) => {\n if (allowPickerInput) {\n setIsCalendarOpen(false);\n }\n\n closeCalendarHeaderPicker();\n datePickerRef.current?.setOpen(false, skipSetBlur);\n };\n\n const focusAdjacentElement = (isBackward?: boolean) => {\n const rootElement = rootRef.current;\n\n if (!rootElement) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n getAdjacentFocusableElement(rootElement, isBackward)?.focus();\n });\n };\n\n const focusExternalInput = () => {\n window.requestAnimationFrame(() => {\n externalInputRef.current?.focus();\n });\n };\n\n const commitInputDraftValue = (showError?: boolean) => {\n if (!inputDraftValue) {\n setHasPickerInputCommitError(false);\n onChange?.('');\n\n return true;\n }\n\n const parsedInput = parseDatePickerInput(inputDraftValue, valueFormatter);\n\n if (!parsedInput?.isValid()) {\n if (showError && inputDraftValue) {\n setHasPickerInputCommitError(true);\n }\n\n return false;\n }\n\n const nextValue = parsedInput.format(valueFormatter);\n setInputDraftValue(nextValue);\n setHasPickerInputCommitError(false);\n onChange?.(nextValue);\n\n return true;\n };\n\n const handleCalendarOpen = () => {\n setIsCalendarOpen(true);\n resetCalendarDisplayDate(selectedPickerValue ?? openToDateProp ?? null);\n setInputDraftValue(selectedInputValue);\n setHasPickerInputCommitError(false);\n onCalendarOpen?.();\n };\n\n const handleCalendarClose = () => {\n setIsCalendarOpen(false);\n resetCalendarDisplayDate();\n setHasPickerInputCommitError(false);\n closeCalendarHeaderPicker();\n onCalendarClose?.();\n };\n\n const handleInputClick = () => {\n openPicker();\n onInputClick?.();\n };\n\n const handleExternalInputFocus = (event: OwpDatePickerTextFieldFocusEvent) => {\n textFieldProps?.onFocus?.(event);\n\n if (event.defaultPrevented || !allowPickerInput) {\n return;\n }\n\n openPicker();\n };\n\n const handleExternalInputKeyDown = (event: OwpDatePickerTextFieldKeyDownEvent) => {\n textFieldProps?.onKeyDown?.(event);\n\n if (event.defaultPrevented || !isDatePickerOpenKey(event)) {\n return;\n }\n\n openPicker();\n };\n\n const handleClickOutside: NonNullable<DatePickerProps['onClickOutside']> = (event) => {\n commitInputDraftValue();\n closePicker();\n onClickOutside?.(event);\n };\n\n const handlePickerInputChange = (event: OwpTextMaskFieldChangeEvent) => {\n const nextInputValue = event.target.value;\n const parsedInput = parseDatePickerInput(nextInputValue, valueFormatter);\n\n setInputDraftValue(nextInputValue);\n setHasPickerInputCommitError(false);\n\n if (!parsedInput?.isValid()) {\n return;\n }\n\n const nextDate = parsedInput.toDate();\n resetCalendarDisplayDate(nextDate);\n datePickerRef.current?.setPreSelection(nextDate);\n };\n\n const handlePickerInputKeyDown = (event: ReactKeyboardEvent<HTMLInputElement>) => {\n event.stopPropagation();\n event.nativeEvent.stopImmediatePropagation();\n\n if (event.key === 'Escape') {\n event.preventDefault();\n setInputDraftValue(selectedInputValue);\n setHasPickerInputCommitError(false);\n suppressOpenUntilRef.current = Date.now() + 200;\n closePicker(true);\n focusExternalInput();\n return;\n }\n\n if (event.key !== 'Enter' && event.key !== 'Tab') {\n return;\n }\n\n event.preventDefault();\n\n if (!commitInputDraftValue(true)) {\n return;\n }\n\n if (event.key === 'Tab') {\n suppressOpenUntilRef.current = Date.now() + 200;\n closePicker(true);\n focusAdjacentElement(event.shiftKey);\n return;\n }\n\n suppressOpenUntilRef.current = Date.now() + 200;\n closePicker(true);\n focusExternalInput();\n };\n\n const handlePickerInputClear = () => {\n setInputDraftValue('');\n setHasPickerInputCommitError(false);\n onChange?.('');\n };\n\n const handleInputAreaClick = () => {\n if (!showTimeSelectOnly) {\n return;\n }\n\n setPopperPlacement('bottom-start');\n };\n\n const handleIconClick = () => {\n if (!showTimeSelectOnly) {\n return;\n }\n\n setPopperPlacement('bottom-end');\n };\n\n useEffect(() => {\n if (!allowPickerInput || !isCalendarOpen) {\n return undefined;\n }\n\n const focusPickerInput = () => {\n pickerInputRef.current?.focus();\n };\n const animationFrameId = window.requestAnimationFrame(() => {\n focusPickerInput();\n });\n const focusTimerId = window.setTimeout(() => {\n focusPickerInput();\n });\n const transitionFocusTimerId = window.setTimeout(() => {\n focusPickerInput();\n }, PICKER_TRANSITION_DURATION);\n\n return () => {\n window.cancelAnimationFrame(animationFrameId);\n window.clearTimeout(focusTimerId);\n window.clearTimeout(transitionFocusTimerId);\n };\n }, [allowPickerInput, isCalendarOpen]);\n\n const PopperContainer = useMemo(() => {\n const ContainerComponent = popperContainerProp ?? CalendarContainer;\n\n /** DatePicker animated popper container */\n return ({ children }: { children?: ReactNode }) => (\n <AnimatedCalendarContainer container={ContainerComponent}>{children}</AnimatedCalendarContainer>\n );\n }, [popperContainerProp]);\n\n const DatePickerCalendarContainer = ({\n children,\n className: calendarContainerClassName,\n ...calendarContainerProps\n }: DatePickerCalendarContainerProps) => {\n if (!allowPickerInput) {\n const ContainerComponent = calendarContainerProp ?? ReactDatePickerCalendarContainer;\n\n return (\n <ContainerComponent className={calendarContainerClassName} {...calendarContainerProps}>\n {children}\n </ContainerComponent>\n );\n }\n\n return (\n <Paper elevation={8} sx={getOwpDatePickerEditorPaperSx()}>\n <OwpTextMaskField\n autoFocus\n inputRef={pickerInputRef}\n fullWidth\n size=\"small\"\n variant=\"outlined\"\n value={inputDraftValue}\n error={hasPickerInputCommitError}\n helperText={hasPickerInputCommitError ? t(PICKER_INVALID_INPUT_MESSAGE_KEY) : undefined}\n mask={getPickerInputMask(valueFormatter)}\n placeholder={valueFormatter}\n onChange={handlePickerInputChange}\n onKeyDown={handlePickerInputKeyDown}\n inputProps={{\n inputMode: 'numeric',\n 'aria-label': valueFormatter,\n }}\n endAdornment={\n <InputAdornment\n position=\"end\"\n sx={{\n marginLeft: 0,\n }}\n >\n <IconButton\n size=\"small\"\n tabIndex={-1}\n aria-label={t('Button.초기화')}\n disabled={!inputDraftValue}\n onClick={handlePickerInputClear}\n onMouseDown={(event) => {\n event.preventDefault();\n event.stopPropagation();\n }}\n sx={{\n margin: 0,\n padding: 0.25,\n }}\n >\n <ClearIcon fontSize=\"small\" />\n </IconButton>\n </InputAdornment>\n }\n sx={getOwpPickerEditorInputSx('100%')}\n />\n <div\n className={calendarContainerClassName}\n {...calendarContainerProps}\n style={{\n ...calendarContainerProps.style,\n border: 0,\n display: 'block',\n lineHeight: 'normal',\n position: 'relative',\n }}\n >\n {children}\n </div>\n </Paper>\n );\n };\n\n return (\n <div ref={rootRef} className={clsx(fullWidth && 'w-full')}>\n <ReactDatePicker\n ref={datePickerRef}\n locale={datePickerLocale}\n calendarContainer={DatePickerCalendarContainer}\n calendarClassName={getOwpDatePickerCalendarClassName({\n className: calendarClassNameProp,\n isHeaderViewOpen: isCalendarHeaderViewOpen,\n showMonthPicker,\n showYearPicker,\n })}\n popperPlacement={showTimeSelectOnly ? popperPlacement : 'bottom-start'}\n popperContainer={PopperContainer}\n popperClassName={clsx('owp-animated-datepicker-popper', popperClassNameProp)}\n className={clsx(fullWidth && 'w-full')}\n wrapperClassName={clsx(fullWidth && 'w-full', datePickerProps?.wrapperClassName)}\n maxDate={disabledFutureDates ? new Date() : undefined}\n showYearPicker={showYearPicker}\n showMonthYearPicker={showMonthPicker}\n showTimeSelect={showTimeSelect}\n showTimeSelectOnly={showTimeSelectOnly}\n showTimeInput={showTimeInput}\n showPopperArrow={false}\n open={allowPickerInput ? isCalendarOpen : openProp}\n preventOpenOnFocus={allowPickerInput ? true : preventOpenOnFocus}\n openToDate={calendarDisplayDate ?? openToDateProp}\n selected={selectedPickerValue}\n onChange={handleSelect}\n onCalendarOpen={handleCalendarOpen}\n onCalendarClose={handleCalendarClose}\n onClickOutside={handleClickOutside}\n onInputClick={handleInputClick}\n renderCustomHeader={renderCustomHeaderProp ?? renderOwpCalendarHeader}\n dateFormat={showTimeSelectOnly ? (useAmPm ? 'aa hh:mm' : VALUE_TIME_FORMATTER) : 'Pp'}\n timeFormat={showTimeSelectOnly ? (useAmPm ? 'aa hh:mm' : VALUE_TIME_FORMATTER) : undefined}\n customInput={\n <DatePickerInput\n className={clsx(\n showYearPicker && 'w-[140px]',\n showMonthPicker && 'w-[160px]',\n !showYearPicker && !showMonthPicker && 'w-[172px]',\n (showTimeInput || showTimeSelect) && 'w-[200px]',\n showTimeSelectOnly && !useAmPm && 'w-[140px]',\n showTimeSelectOnly && useAmPm && 'w-[170px]',\n className,\n )}\n label={label}\n variant={variant}\n sx={sx}\n {...textFieldProps}\n inputElementRef={externalInputRef}\n onInputFocus={handleExternalInputFocus}\n onInputKeyDown={handleExternalInputKeyDown}\n reset={() => onChange?.('')}\n fullWidth={fullWidth}\n disabledClearButton={disabledClearButton}\n valueFormatter={valueFormatter}\n showTimeSelect={showTimeSelect}\n showTimeSelectOnly={showTimeSelectOnly}\n onInputAreaClick={handleInputAreaClick}\n onIconClick={handleIconClick}\n />\n }\n timeCaption={showTimeSelectOnly ? `${t('Common.시간')}: ` : undefined}\n timeInputLabel={`${t('Common.시간')}: `}\n {...resolvedDatePickerProps}\n />\n </div>\n );\n};\n\nexport { OwpDatePicker };\n"],"names":["registerLocale","ko","enUS","setDefaultLocale","isDatePickerOpenKey","__name","event","parseDatePickerInput","value","valueFormatter","normalizedValue","VALUE_YEAR_FORMATTER","normalizedDateValue","parsedValue","dayjs","VALUE_DATE_FORMATTER","VALUE_MONTH_FORMATTER","OwpDatePicker","className","label","variant","sx","useAmPm","onChange","fullWidth","showYearPicker","showMonthPicker","showTimeSelect","showTimeSelectOnly","showTimeInput","textFieldProps","disabledClearButton","disabledFutureDates","popperClassNameProp","popperContainerProp","datePickerProps","selectsMultiple","selectsRange","selected","startDate","endDate","calendarClassNameProp","calendarContainerProp","openProp","openToDateProp","onCalendarOpen","onCalendarClose","onClickOutside","onInputClick","preventOpenOnFocus","renderCustomHeaderProp","resolvedDatePickerProps","t","i18n","useOwpTranslation","popperPlacement","setPopperPlacement","useState","isCalendarOpen","setIsCalendarOpen","inputDraftValue","setInputDraftValue","hasPickerInputCommitError","setHasPickerInputCommitError","rootRef","useRef","externalInputRef","pickerInputRef","datePickerRef","suppressOpenUntilRef","datePickerLocale","useMemo","VALUE_TIME_FORMATTER","selectedValue","hoursText","minutesText","hours","minutes","selectedDate","selectedInputValue","allowPickerInput","calendarDisplayDate","calendarHeaderPickerView","calendarHeaderView","closeCalendarHeaderPicker","isCalendarHeaderViewOpen","resetCalendarDisplayDate","selectCalendarDisplayDate","toggleCalendarHeaderPicker","useOwpDatePickerCalendarHeaderState","selectedPickerValue","parsedInputDraftValue","renderOwpCalendarHeader","headerProps","jsx","OwpDatePickerCalendarHeader","handleSelect","dateValue","nextValue","focusExternalInput","openPicker","closePicker","skipSetBlur","_a","focusAdjacentElement","isBackward","rootElement","getAdjacentFocusableElement","commitInputDraftValue","showError","parsedInput","handleCalendarOpen","handleCalendarClose","handleInputClick","handleExternalInputFocus","handleExternalInputKeyDown","handleClickOutside","handlePickerInputChange","nextInputValue","nextDate","handlePickerInputKeyDown","handlePickerInputClear","handleInputAreaClick","handleIconClick","useEffect","focusPickerInput","animationFrameId","focusTimerId","transitionFocusTimerId","PICKER_TRANSITION_DURATION","PopperContainer","ContainerComponent","CalendarContainer","children","AnimatedCalendarContainer","DatePickerCalendarContainer","calendarContainerClassName","calendarContainerProps","Paper","getOwpDatePickerEditorPaperSx","OwpTextMaskField","PICKER_INVALID_INPUT_MESSAGE_KEY","getPickerInputMask","InputAdornment","IconButton","ClearIcon","getOwpPickerEditorInputSx","ReactDatePickerCalendarContainer","clsx","ReactDatePicker","getOwpDatePickerCalendarClassName","DatePickerInput"],"mappings":"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"}
1
+ {"version":3,"file":"OwpDatePicker.js","sources":["../../../src/components/OwpPicker/OwpDatePicker.tsx"],"sourcesContent":["import { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport ClearIcon from '@mui/icons-material/Clear';\nimport {\n IconButton,\n InputAdornment,\n Paper,\n type TextFieldProps,\n} from '@mui/material';\nimport clsx from 'clsx';\nimport { enUS } from 'date-fns/locale/en-US';\nimport { ko } from 'date-fns/locale/ko';\nimport dayjs from '@/dayjs';\nimport {\n type HTMLAttributes,\n type KeyboardEvent as ReactKeyboardEvent,\n type ReactNode,\n useMemo,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport ReactDatePicker, {\n CalendarContainer as ReactDatePickerCalendarContainer,\n registerLocale,\n setDefaultLocale,\n type DatePickerProps,\n type ReactDatePickerCustomHeaderProps,\n} from 'react-datepicker';\nimport { AnimatedCalendarContainer } from './internal/AnimatedCalendarContainer';\nimport { CalendarContainer } from './internal/CalendarContainer';\nimport { DatePickerInput } from './internal/DatePickerInput';\nimport {\n getOwpDatePickerCalendarClassName,\n useOwpDatePickerCalendarHeaderState,\n} from './internal/useOwpDatePickerCalendarHeaderState';\nimport { OwpDatePickerCalendarHeader } from './internal/OwpDatePickerCalendarHeader';\nimport {\n getOwpDatePickerEditorPaperSx,\n getOwpPickerEditorInputSx,\n} from './internal/pickerEditorStyles';\nimport {\n PICKER_REOPEN_SUPPRESSION_DURATION,\n PICKER_TRANSITION_DURATION,\n} from './internal/useOwpPickerPopperTransition';\nimport { OwpTextMaskField, type OwpTextMaskFieldChangeEvent } from '../OwpTextField';\nimport {\n PICKER_INVALID_INPUT_MESSAGE_KEY,\n VALUE_DATE_FORMATTER,\n VALUE_MONTH_FORMATTER,\n VALUE_TIME_FORMATTER,\n VALUE_YEAR_FORMATTER,\n} from './constants';\nimport { getAdjacentFocusableElement, getPickerInputMask } from './utils';\n\nregisterLocale('ko', ko);\nregisterLocale('en', enUS);\nsetDefaultLocale('ko');\n\nexport type DatePickerValue = string | Date;\ntype DatePickerCalendarContainerProps = HTMLAttributes<HTMLDivElement> & {\n showTime?: boolean;\n showTimeSelectOnly?: boolean;\n};\ntype OwpDatePickerTextFieldFocusEvent = Parameters<NonNullable<TextFieldProps['onFocus']>>[0];\ntype OwpDatePickerTextFieldKeyDownEvent = Parameters<NonNullable<TextFieldProps['onKeyDown']>>[0];\n\n/** DatePicker 외부 입력에서 피커 open 처리할 키 여부 */\nconst isDatePickerOpenKey = (event: OwpDatePickerTextFieldKeyDownEvent) => {\n if (\n event.ctrlKey ||\n event.altKey ||\n event.metaKey ||\n event.key === 'Escape' ||\n event.key === 'Enter' ||\n event.key === 'Tab'\n ) {\n return false;\n }\n\n return true;\n};\n\n/** DatePicker 상단 입력 값 파싱 */\nconst parseDatePickerInput = (value: string, valueFormatter: string) => {\n const normalizedValue = value.trim();\n\n if (valueFormatter === VALUE_YEAR_FORMATTER) {\n const normalizedDateValue = `${normalizedValue}-01-01`;\n const parsedValue = dayjs(normalizedDateValue, VALUE_DATE_FORMATTER, true);\n return parsedValue.isValid() && parsedValue.format(VALUE_DATE_FORMATTER) === normalizedDateValue\n ? parsedValue\n : null;\n }\n\n if (valueFormatter === VALUE_MONTH_FORMATTER) {\n const normalizedDateValue = `${normalizedValue}-01`;\n const parsedValue = dayjs(normalizedDateValue, VALUE_DATE_FORMATTER, true);\n return parsedValue.isValid() && parsedValue.format(VALUE_DATE_FORMATTER) === normalizedDateValue\n ? parsedValue\n : null;\n }\n\n const parsedValue = dayjs(normalizedValue, VALUE_DATE_FORMATTER, true);\n return parsedValue.isValid() && parsedValue.format(VALUE_DATE_FORMATTER) === normalizedValue\n ? parsedValue\n : null;\n};\n\ninterface OwnProps {\n className?: string;\n label?: string;\n variant?: TextFieldProps['variant'];\n sx?: TextFieldProps['sx'];\n value?: DatePickerValue;\n useAmPm?: boolean;\n disabledClearButton?: boolean;\n disabledFutureDates?: boolean;\n showMonthPicker?: boolean;\n fullWidth?: boolean;\n onChange?: (value?: DatePickerValue) => void;\n textFieldProps?: Omit<TextFieldProps, 'value' | 'defaultValue' | 'onChange'>;\n}\n\ntype OwpDatePickerProps = OwnProps & DatePickerProps;\n\n/**\n * OwpDatePicker 컴포넌트\n * @param className CSS 클래스명\n * @param label 입력 라벨\n * @param variant variant 값\n * @param sx sx 값\n * @param value 현재 값\n * @param useAmPm 오전/오후 포맷 사용 여부\n * @param onChange onChange 핸들러\n */\nconst OwpDatePicker = ({\n className,\n label,\n variant = 'standard',\n sx,\n value,\n useAmPm,\n onChange,\n fullWidth,\n showYearPicker,\n showMonthPicker,\n showTimeSelect,\n showTimeSelectOnly,\n showTimeInput,\n textFieldProps,\n disabledClearButton,\n disabledFutureDates,\n popperClassName: popperClassNameProp,\n popperContainer: popperContainerProp,\n ...datePickerProps\n}: OwpDatePickerProps) => {\n const {\n selectsMultiple,\n selectsRange,\n selected,\n startDate,\n endDate,\n calendarClassName: calendarClassNameProp,\n calendarContainer: calendarContainerProp,\n open: openProp,\n openToDate: openToDateProp,\n onCalendarOpen,\n onCalendarClose,\n onClickOutside,\n onInputClick,\n preventOpenOnFocus,\n renderCustomHeader: renderCustomHeaderProp,\n shouldCloseOnSelect: shouldCloseOnSelectProp,\n ...resolvedDatePickerProps\n } = datePickerProps;\n void [selectsMultiple, selectsRange, selected, startDate, endDate];\n const { t, i18n } = useOwpTranslation();\n const [popperPlacement, setPopperPlacement] =\n useState<NonNullable<DatePickerProps['popperPlacement']>>('bottom-start');\n const [isCalendarOpen, setIsCalendarOpen] = useState(false);\n const [inputDraftValue, setInputDraftValue] = useState('');\n const [hasPickerInputCommitError, setHasPickerInputCommitError] = useState(false);\n const rootRef = useRef<HTMLDivElement | null>(null);\n const externalInputRef = useRef<HTMLInputElement | null>(null);\n const pickerInputRef = useRef<HTMLInputElement | null>(null);\n const datePickerRef = useRef<ReactDatePicker | null>(null);\n const suppressOpenUntilRef = useRef(0);\n const languageId = i18n.resolvedLanguage ?? i18n.language ?? 'kr';\n const datePickerLocale = languageId === 'kr' ? 'ko' : 'en';\n\n const valueFormatter = useMemo(() => {\n if (showYearPicker) {\n return VALUE_YEAR_FORMATTER;\n }\n\n if (showMonthPicker) {\n return VALUE_MONTH_FORMATTER;\n }\n\n if (showTimeSelectOnly) {\n return VALUE_TIME_FORMATTER;\n }\n\n if (showTimeInput || showTimeSelect) {\n return `${VALUE_DATE_FORMATTER} ${VALUE_TIME_FORMATTER}`;\n }\n return VALUE_DATE_FORMATTER;\n }, [showYearPicker, showMonthPicker, showTimeInput, showTimeSelect, showTimeSelectOnly]);\n\n const selectedValue = useMemo(() => {\n if (!value) return null;\n\n if (showTimeSelectOnly && typeof value === 'string') {\n const [hoursText = '', minutesText = ''] = value.split(':');\n const hours = Number(hoursText);\n const minutes = Number(minutesText);\n\n if (Number.isNaN(hours) || Number.isNaN(minutes)) {\n return null;\n }\n\n const selectedDate = new Date();\n selectedDate.setHours(hours, minutes, 0, 0);\n\n return selectedDate;\n }\n\n return new Date(value);\n }, [showTimeSelectOnly, value]);\n\n const selectedInputValue = useMemo(() => {\n if (!value || typeof value !== 'string') {\n return value ? dayjs(value).format(valueFormatter) : '';\n }\n\n const parsedValue = parseDatePickerInput(value, valueFormatter);\n\n return parsedValue?.isValid() ? parsedValue.format(valueFormatter) : value;\n }, [value, valueFormatter]);\n const allowPickerInput = !showTimeSelectOnly && !showTimeInput && !showTimeSelect;\n const shouldClosePickerOnSelect = shouldCloseOnSelectProp !== false;\n const reactDatePickerShouldCloseOnSelect =\n allowPickerInput && showYearPicker ? false : shouldCloseOnSelectProp;\n const {\n calendarDisplayDate,\n calendarHeaderPickerView,\n calendarHeaderView,\n closeCalendarHeaderPicker,\n isCalendarHeaderViewOpen,\n resetCalendarDisplayDate,\n selectCalendarDisplayDate,\n toggleCalendarHeaderPicker,\n } = useOwpDatePickerCalendarHeaderState({\n showMonthPicker,\n showYearPicker,\n });\n const isCalendarHeaderDropdownDisabled = Boolean(showYearPicker);\n const selectedPickerValue = useMemo(() => {\n if (!allowPickerInput || !inputDraftValue) {\n return selectedValue;\n }\n\n const parsedInputDraftValue = parseDatePickerInput(inputDraftValue, valueFormatter);\n\n return parsedInputDraftValue?.isValid() ? parsedInputDraftValue.toDate() : selectedValue;\n }, [allowPickerInput, inputDraftValue, selectedValue, valueFormatter]);\n\n /** MUI-like DatePicker calendar header */\n const renderOwpCalendarHeader = (headerProps: ReactDatePickerCustomHeaderProps) => {\n return (\n <OwpDatePickerCalendarHeader\n {...headerProps}\n disableDropdown={isCalendarHeaderDropdownDisabled}\n pickerView={calendarHeaderPickerView}\n selectedDate={selectedPickerValue}\n showMonthPicker={showMonthPicker}\n showYearPicker={showYearPicker}\n view={isCalendarHeaderDropdownDisabled ? null : calendarHeaderView}\n onCloseView={closeCalendarHeaderPicker}\n onSelectViewDate={selectCalendarDisplayDate}\n onToggleView={toggleCalendarHeaderPicker}\n />\n );\n };\n\n const isOpenSuppressed = () => Date.now() < suppressOpenUntilRef.current;\n\n const openPicker = () => {\n if (isOpenSuppressed()) {\n return;\n }\n\n if (allowPickerInput) {\n setIsCalendarOpen(true);\n setInputDraftValue(selectedInputValue);\n setHasPickerInputCommitError(false);\n }\n };\n\n const closePicker = (skipSetBlur?: boolean) => {\n if (allowPickerInput) {\n setIsCalendarOpen(false);\n }\n\n closeCalendarHeaderPicker();\n datePickerRef.current?.setOpen(false, skipSetBlur);\n };\n\n const focusAdjacentElement = (isBackward?: boolean) => {\n const rootElement = rootRef.current;\n\n if (!rootElement) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n getAdjacentFocusableElement(rootElement, isBackward)?.focus();\n });\n };\n\n const focusExternalInput = () => {\n window.requestAnimationFrame(() => {\n externalInputRef.current?.focus();\n });\n };\n\n const handleSelect = (dateValue?: Date | null) => {\n const nextValue = dateValue ? dayjs(dateValue).format(valueFormatter) : undefined;\n\n setInputDraftValue(nextValue ?? '');\n setHasPickerInputCommitError(false);\n onChange?.(nextValue);\n\n if (allowPickerInput) {\n suppressOpenUntilRef.current = Date.now() + PICKER_REOPEN_SUPPRESSION_DURATION;\n\n if (showYearPicker && shouldClosePickerOnSelect) {\n closePicker(true);\n }\n\n focusExternalInput();\n }\n };\n\n const commitInputDraftValue = (showError?: boolean) => {\n if (!inputDraftValue) {\n setHasPickerInputCommitError(false);\n onChange?.('');\n\n return true;\n }\n\n const parsedInput = parseDatePickerInput(inputDraftValue, valueFormatter);\n\n if (!parsedInput?.isValid()) {\n if (showError && inputDraftValue) {\n setHasPickerInputCommitError(true);\n }\n\n return false;\n }\n\n const nextValue = parsedInput.format(valueFormatter);\n setInputDraftValue(nextValue);\n setHasPickerInputCommitError(false);\n onChange?.(nextValue);\n\n return true;\n };\n\n const handleCalendarOpen = () => {\n if (isOpenSuppressed()) {\n datePickerRef.current?.setOpen(false, true);\n return;\n }\n\n setIsCalendarOpen(true);\n resetCalendarDisplayDate(selectedPickerValue ?? openToDateProp ?? null);\n setInputDraftValue(selectedInputValue);\n setHasPickerInputCommitError(false);\n onCalendarOpen?.();\n };\n\n const handleCalendarClose = () => {\n setIsCalendarOpen(false);\n resetCalendarDisplayDate();\n setHasPickerInputCommitError(false);\n closeCalendarHeaderPicker();\n onCalendarClose?.();\n };\n\n const handleInputClick = () => {\n openPicker();\n onInputClick?.();\n };\n\n const handleExternalInputFocus = (event: OwpDatePickerTextFieldFocusEvent) => {\n textFieldProps?.onFocus?.(event);\n\n if (event.defaultPrevented || !allowPickerInput) {\n return;\n }\n\n openPicker();\n };\n\n const handleExternalInputKeyDown = (event: OwpDatePickerTextFieldKeyDownEvent) => {\n textFieldProps?.onKeyDown?.(event);\n\n if (event.defaultPrevented || !isDatePickerOpenKey(event)) {\n return;\n }\n\n openPicker();\n };\n\n const handleClickOutside: NonNullable<DatePickerProps['onClickOutside']> = (event) => {\n commitInputDraftValue();\n closePicker();\n onClickOutside?.(event);\n };\n\n const handlePickerInputChange = (event: OwpTextMaskFieldChangeEvent) => {\n const nextInputValue = event.target.value;\n const parsedInput = parseDatePickerInput(nextInputValue, valueFormatter);\n\n setInputDraftValue(nextInputValue);\n setHasPickerInputCommitError(false);\n\n if (!parsedInput?.isValid()) {\n return;\n }\n\n const nextDate = parsedInput.toDate();\n resetCalendarDisplayDate(nextDate);\n datePickerRef.current?.setPreSelection(nextDate);\n };\n\n const handlePickerInputKeyDown = (event: ReactKeyboardEvent<HTMLInputElement>) => {\n event.stopPropagation();\n event.nativeEvent.stopImmediatePropagation();\n\n if (event.key === 'Escape') {\n event.preventDefault();\n setInputDraftValue(selectedInputValue);\n setHasPickerInputCommitError(false);\n suppressOpenUntilRef.current = Date.now() + PICKER_REOPEN_SUPPRESSION_DURATION;\n closePicker(true);\n focusExternalInput();\n return;\n }\n\n if (event.key !== 'Enter' && event.key !== 'Tab') {\n return;\n }\n\n event.preventDefault();\n\n if (!commitInputDraftValue(true)) {\n return;\n }\n\n if (event.key === 'Tab') {\n suppressOpenUntilRef.current = Date.now() + PICKER_REOPEN_SUPPRESSION_DURATION;\n closePicker(true);\n focusAdjacentElement(event.shiftKey);\n return;\n }\n\n suppressOpenUntilRef.current = Date.now() + PICKER_REOPEN_SUPPRESSION_DURATION;\n closePicker(true);\n focusExternalInput();\n };\n\n const handlePickerInputClear = () => {\n setInputDraftValue('');\n setHasPickerInputCommitError(false);\n onChange?.('');\n };\n\n const handleInputAreaClick = () => {\n if (!showTimeSelectOnly) {\n return;\n }\n\n setPopperPlacement('bottom-start');\n };\n\n const handleIconClick = () => {\n if (!showTimeSelectOnly) {\n return;\n }\n\n setPopperPlacement('bottom-end');\n };\n\n useEffect(() => {\n if (!allowPickerInput || !isCalendarOpen) {\n return undefined;\n }\n\n const focusPickerInput = () => {\n pickerInputRef.current?.focus();\n };\n const animationFrameId = window.requestAnimationFrame(() => {\n focusPickerInput();\n });\n const focusTimerId = window.setTimeout(() => {\n focusPickerInput();\n });\n const transitionFocusTimerId = window.setTimeout(() => {\n focusPickerInput();\n }, PICKER_TRANSITION_DURATION);\n\n return () => {\n window.cancelAnimationFrame(animationFrameId);\n window.clearTimeout(focusTimerId);\n window.clearTimeout(transitionFocusTimerId);\n };\n }, [allowPickerInput, isCalendarOpen]);\n\n const PopperContainer = useMemo(() => {\n const ContainerComponent = popperContainerProp ?? CalendarContainer;\n\n /** DatePicker animated popper container */\n return ({ children }: { children?: ReactNode }) => (\n <AnimatedCalendarContainer container={ContainerComponent}>{children}</AnimatedCalendarContainer>\n );\n }, [popperContainerProp]);\n\n const DatePickerCalendarContainer = ({\n children,\n className: calendarContainerClassName,\n ...calendarContainerProps\n }: DatePickerCalendarContainerProps) => {\n if (!allowPickerInput) {\n const ContainerComponent = calendarContainerProp ?? ReactDatePickerCalendarContainer;\n\n return (\n <ContainerComponent className={calendarContainerClassName} {...calendarContainerProps}>\n {children}\n </ContainerComponent>\n );\n }\n\n return (\n <Paper elevation={8} sx={getOwpDatePickerEditorPaperSx()}>\n <OwpTextMaskField\n autoFocus\n inputRef={pickerInputRef}\n fullWidth\n size=\"small\"\n variant=\"outlined\"\n value={inputDraftValue}\n error={hasPickerInputCommitError}\n helperText={hasPickerInputCommitError ? t(PICKER_INVALID_INPUT_MESSAGE_KEY) : undefined}\n mask={getPickerInputMask(valueFormatter)}\n placeholder={valueFormatter}\n onChange={handlePickerInputChange}\n onKeyDown={handlePickerInputKeyDown}\n inputProps={{\n inputMode: 'numeric',\n 'aria-label': valueFormatter,\n }}\n endAdornment={\n <InputAdornment\n position=\"end\"\n sx={{\n marginLeft: 0,\n }}\n >\n <IconButton\n size=\"small\"\n tabIndex={-1}\n aria-label={t('Button.초기화')}\n disabled={!inputDraftValue}\n onClick={handlePickerInputClear}\n onMouseDown={(event) => {\n event.preventDefault();\n event.stopPropagation();\n }}\n sx={{\n margin: 0,\n padding: 0.25,\n }}\n >\n <ClearIcon fontSize=\"small\" />\n </IconButton>\n </InputAdornment>\n }\n sx={getOwpPickerEditorInputSx('100%')}\n />\n <div\n className={calendarContainerClassName}\n {...calendarContainerProps}\n style={{\n ...calendarContainerProps.style,\n border: 0,\n display: 'block',\n lineHeight: 'normal',\n position: 'relative',\n }}\n >\n {children}\n </div>\n </Paper>\n );\n };\n\n return (\n <div ref={rootRef} className={clsx(fullWidth && 'w-full')}>\n <ReactDatePicker\n ref={datePickerRef}\n locale={datePickerLocale}\n calendarContainer={DatePickerCalendarContainer}\n calendarClassName={getOwpDatePickerCalendarClassName({\n className: calendarClassNameProp,\n isHeaderViewOpen: !isCalendarHeaderDropdownDisabled && isCalendarHeaderViewOpen,\n showMonthPicker,\n showYearPicker,\n })}\n popperPlacement={showTimeSelectOnly ? popperPlacement : 'bottom-start'}\n popperContainer={PopperContainer}\n popperClassName={clsx('owp-animated-datepicker-popper', popperClassNameProp)}\n className={clsx(fullWidth && 'w-full')}\n wrapperClassName={clsx(fullWidth && 'w-full', datePickerProps?.wrapperClassName)}\n maxDate={disabledFutureDates ? new Date() : undefined}\n showYearPicker={showYearPicker}\n showMonthYearPicker={showMonthPicker}\n showTimeSelect={showTimeSelect}\n showTimeSelectOnly={showTimeSelectOnly}\n showTimeInput={showTimeInput}\n showPopperArrow={false}\n shouldCloseOnSelect={reactDatePickerShouldCloseOnSelect}\n open={allowPickerInput ? isCalendarOpen : openProp}\n preventOpenOnFocus={allowPickerInput ? true : preventOpenOnFocus}\n openToDate={calendarDisplayDate ?? openToDateProp}\n selected={selectedPickerValue}\n onChange={handleSelect}\n onCalendarOpen={handleCalendarOpen}\n onCalendarClose={handleCalendarClose}\n onClickOutside={handleClickOutside}\n onInputClick={handleInputClick}\n renderCustomHeader={renderCustomHeaderProp ?? renderOwpCalendarHeader}\n dateFormat={showTimeSelectOnly ? (useAmPm ? 'aa hh:mm' : VALUE_TIME_FORMATTER) : 'Pp'}\n timeFormat={showTimeSelectOnly ? (useAmPm ? 'aa hh:mm' : VALUE_TIME_FORMATTER) : undefined}\n customInput={\n <DatePickerInput\n className={clsx(\n showYearPicker && 'w-[140px]',\n showMonthPicker && 'w-[160px]',\n !showYearPicker && !showMonthPicker && 'w-[172px]',\n (showTimeInput || showTimeSelect) && 'w-[200px]',\n showTimeSelectOnly && !useAmPm && 'w-[140px]',\n showTimeSelectOnly && useAmPm && 'w-[170px]',\n className,\n )}\n label={label}\n variant={variant}\n sx={sx}\n {...textFieldProps}\n inputElementRef={externalInputRef}\n onInputFocus={handleExternalInputFocus}\n onInputKeyDown={handleExternalInputKeyDown}\n reset={() => onChange?.('')}\n fullWidth={fullWidth}\n disabledClearButton={disabledClearButton}\n valueFormatter={valueFormatter}\n showTimeSelect={showTimeSelect}\n showTimeSelectOnly={showTimeSelectOnly}\n onInputAreaClick={handleInputAreaClick}\n onIconClick={handleIconClick}\n />\n }\n timeCaption={showTimeSelectOnly ? `${t('Common.시간')}: ` : undefined}\n timeInputLabel={`${t('Common.시간')}: `}\n {...resolvedDatePickerProps}\n />\n </div>\n );\n};\n\nexport { OwpDatePicker };\n"],"names":["registerLocale","ko","enUS","setDefaultLocale","isDatePickerOpenKey","__name","event","parseDatePickerInput","value","valueFormatter","normalizedValue","VALUE_YEAR_FORMATTER","normalizedDateValue","parsedValue","dayjs","VALUE_DATE_FORMATTER","VALUE_MONTH_FORMATTER","OwpDatePicker","className","label","variant","sx","useAmPm","onChange","fullWidth","showYearPicker","showMonthPicker","showTimeSelect","showTimeSelectOnly","showTimeInput","textFieldProps","disabledClearButton","disabledFutureDates","popperClassNameProp","popperContainerProp","datePickerProps","selectsMultiple","selectsRange","selected","startDate","endDate","calendarClassNameProp","calendarContainerProp","openProp","openToDateProp","onCalendarOpen","onCalendarClose","onClickOutside","onInputClick","preventOpenOnFocus","renderCustomHeaderProp","shouldCloseOnSelectProp","resolvedDatePickerProps","t","i18n","useOwpTranslation","popperPlacement","setPopperPlacement","useState","isCalendarOpen","setIsCalendarOpen","inputDraftValue","setInputDraftValue","hasPickerInputCommitError","setHasPickerInputCommitError","rootRef","useRef","externalInputRef","pickerInputRef","datePickerRef","suppressOpenUntilRef","datePickerLocale","useMemo","VALUE_TIME_FORMATTER","selectedValue","hoursText","minutesText","hours","minutes","selectedDate","selectedInputValue","allowPickerInput","shouldClosePickerOnSelect","reactDatePickerShouldCloseOnSelect","calendarDisplayDate","calendarHeaderPickerView","calendarHeaderView","closeCalendarHeaderPicker","isCalendarHeaderViewOpen","resetCalendarDisplayDate","selectCalendarDisplayDate","toggleCalendarHeaderPicker","useOwpDatePickerCalendarHeaderState","isCalendarHeaderDropdownDisabled","selectedPickerValue","parsedInputDraftValue","renderOwpCalendarHeader","headerProps","jsx","OwpDatePickerCalendarHeader","isOpenSuppressed","openPicker","closePicker","skipSetBlur","_a","focusAdjacentElement","isBackward","rootElement","getAdjacentFocusableElement","focusExternalInput","handleSelect","dateValue","nextValue","PICKER_REOPEN_SUPPRESSION_DURATION","commitInputDraftValue","showError","parsedInput","handleCalendarOpen","handleCalendarClose","handleInputClick","handleExternalInputFocus","handleExternalInputKeyDown","handleClickOutside","handlePickerInputChange","nextInputValue","nextDate","handlePickerInputKeyDown","handlePickerInputClear","handleInputAreaClick","handleIconClick","useEffect","focusPickerInput","animationFrameId","focusTimerId","transitionFocusTimerId","PICKER_TRANSITION_DURATION","PopperContainer","ContainerComponent","CalendarContainer","children","AnimatedCalendarContainer","DatePickerCalendarContainer","calendarContainerClassName","calendarContainerProps","Paper","getOwpDatePickerEditorPaperSx","OwpTextMaskField","PICKER_INVALID_INPUT_MESSAGE_KEY","getPickerInputMask","InputAdornment","IconButton","ClearIcon","getOwpPickerEditorInputSx","ReactDatePickerCalendarContainer","clsx","ReactDatePicker","getOwpDatePickerCalendarClassName","DatePickerInput"],"mappings":"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"}
@@ -1,35 +1,36 @@
1
1
  var w = Object.defineProperty;
2
2
  var s = (t, c) => w(t, "name", { value: c, configurable: !0 });
3
- import { useRef as o, useState as a, useEffect as d } from "react";
4
- const l = 225, A = 150, v = 75, F = /* @__PURE__ */ s((t) => {
5
- const c = o(!1), e = o(void 0), r = o(void 0), n = o(void 0), [f, u] = a(t), [m, i] = a(t ? "opening" : "closed");
3
+ import { useRef as i, useState as a, useEffect as d } from "react";
4
+ const R = 225, A = 150, I = 75, v = R + 100, N = /* @__PURE__ */ s((t) => {
5
+ const c = i(!1), e = i(void 0), r = i(void 0), n = i(void 0), [f, u] = a(t), [m, o] = a(t ? "opening" : "closed");
6
6
  return d(() => () => {
7
7
  e.current && (window.cancelAnimationFrame(e.current), e.current = void 0), r.current && (window.cancelAnimationFrame(r.current), r.current = void 0), n.current && (window.clearTimeout(n.current), n.current = void 0);
8
8
  }, []), d(() => {
9
9
  if (t) {
10
- n.current && window.clearTimeout(n.current), u(!0), c.current || (e.current && (window.cancelAnimationFrame(e.current), e.current = void 0), r.current && (window.cancelAnimationFrame(r.current), r.current = void 0), i("opening"), e.current = window.requestAnimationFrame(() => {
10
+ n.current && window.clearTimeout(n.current), u(!0), c.current || (e.current && (window.cancelAnimationFrame(e.current), e.current = void 0), r.current && (window.cancelAnimationFrame(r.current), r.current = void 0), o("opening"), e.current = window.requestAnimationFrame(() => {
11
11
  e.current = void 0, r.current = window.requestAnimationFrame(() => {
12
- r.current = void 0, i("open");
12
+ r.current = void 0, o("open");
13
13
  });
14
14
  })), c.current = !0;
15
15
  return;
16
16
  }
17
17
  if (!c.current) {
18
- u(!1), i("closed");
18
+ u(!1), o("closed");
19
19
  return;
20
20
  }
21
- c.current = !1, i("closing"), n.current = window.setTimeout(() => {
22
- n.current = void 0, u(!1), i("closed");
23
- }, l);
21
+ c.current = !1, o("closing"), n.current = window.setTimeout(() => {
22
+ n.current = void 0, u(!1), o("closed");
23
+ }, R);
24
24
  }, [t]), {
25
25
  shouldRender: f,
26
26
  state: m
27
27
  };
28
28
  }, "useOwpPickerPopperTransition");
29
29
  export {
30
- v as PICKER_EXIT_TRANSFORM_DELAY,
30
+ I as PICKER_EXIT_TRANSFORM_DELAY,
31
+ v as PICKER_REOPEN_SUPPRESSION_DURATION,
31
32
  A as PICKER_TRANSFORM_TRANSITION_DURATION,
32
- l as PICKER_TRANSITION_DURATION,
33
- F as useOwpPickerPopperTransition
33
+ R as PICKER_TRANSITION_DURATION,
34
+ N as useOwpPickerPopperTransition
34
35
  };
35
36
  //# sourceMappingURL=useOwpPickerPopperTransition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOwpPickerPopperTransition.js","sources":["../../../../src/components/OwpPicker/internal/useOwpPickerPopperTransition.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nexport const PICKER_TRANSITION_DURATION = 225;\nexport const PICKER_TRANSFORM_TRANSITION_DURATION = 150;\nexport const PICKER_EXIT_TRANSFORM_DELAY = 75;\nexport type OwpPickerTransitionState = 'opening' | 'open' | 'closing' | 'closed';\n\n/** Picker popper visibility transition state */\nexport const useOwpPickerPopperTransition = (open: boolean) => {\n const wasOpenRef = useRef(false);\n const openFrameRef = useRef<number | undefined>(undefined);\n const settleFrameRef = useRef<number | undefined>(undefined);\n const closeTimerRef = useRef<number | undefined>(undefined);\n const [shouldRender, setShouldRender] = useState(open);\n const [state, setState] = useState<OwpPickerTransitionState>(open ? 'opening' : 'closed');\n\n useEffect(() => {\n return () => {\n if (openFrameRef.current) {\n window.cancelAnimationFrame(openFrameRef.current);\n openFrameRef.current = undefined;\n }\n\n if (settleFrameRef.current) {\n window.cancelAnimationFrame(settleFrameRef.current);\n settleFrameRef.current = undefined;\n }\n\n if (closeTimerRef.current) {\n window.clearTimeout(closeTimerRef.current);\n closeTimerRef.current = undefined;\n }\n };\n }, []);\n\n useEffect(() => {\n if (open) {\n if (closeTimerRef.current) {\n window.clearTimeout(closeTimerRef.current);\n }\n\n setShouldRender(true);\n\n if (!wasOpenRef.current) {\n if (openFrameRef.current) {\n window.cancelAnimationFrame(openFrameRef.current);\n openFrameRef.current = undefined;\n }\n\n if (settleFrameRef.current) {\n window.cancelAnimationFrame(settleFrameRef.current);\n settleFrameRef.current = undefined;\n }\n\n setState('opening');\n openFrameRef.current = window.requestAnimationFrame(() => {\n openFrameRef.current = undefined;\n settleFrameRef.current = window.requestAnimationFrame(() => {\n settleFrameRef.current = undefined;\n setState('open');\n });\n });\n }\n\n wasOpenRef.current = true;\n return;\n }\n\n if (!wasOpenRef.current) {\n setShouldRender(false);\n setState('closed');\n return;\n }\n\n wasOpenRef.current = false;\n setState('closing');\n closeTimerRef.current = window.setTimeout(() => {\n closeTimerRef.current = undefined;\n setShouldRender(false);\n setState('closed');\n }, PICKER_TRANSITION_DURATION);\n }, [open]);\n\n return {\n shouldRender,\n state,\n };\n};\n"],"names":["PICKER_TRANSITION_DURATION","PICKER_TRANSFORM_TRANSITION_DURATION","PICKER_EXIT_TRANSFORM_DELAY","useOwpPickerPopperTransition","__name","open","wasOpenRef","useRef","openFrameRef","settleFrameRef","closeTimerRef","shouldRender","setShouldRender","useState","state","setState","useEffect"],"mappings":";;;AAEO,MAAMA,IAA6B,KAC7BC,IAAuC,KACvCC,IAA8B,IAI9BC,IAA+B,gBAAAC,EAAA,CAACC,MAAkB;AAC7D,QAAMC,IAAaC,EAAO,EAAK,GACzBC,IAAeD,EAA2B,MAAS,GACnDE,IAAiBF,EAA2B,MAAS,GACrDG,IAAgBH,EAA2B,MAAS,GACpD,CAACI,GAAcC,CAAe,IAAIC,EAASR,CAAI,GAC/C,CAACS,GAAOC,CAAQ,IAAIF,EAAmCR,IAAO,YAAY,QAAQ;AAExF,SAAAW,EAAU,MACD,MAAM;AACX,IAAIR,EAAa,YACf,OAAO,qBAAqBA,EAAa,OAAO,GAChDA,EAAa,UAAU,SAGrBC,EAAe,YACjB,OAAO,qBAAqBA,EAAe,OAAO,GAClDA,EAAe,UAAU,SAGvBC,EAAc,YAChB,OAAO,aAAaA,EAAc,OAAO,GACzCA,EAAc,UAAU;AAAA,EAE5B,GACC,CAAA,CAAE,GAELM,EAAU,MAAM;AACd,QAAIX,GAAM;AACR,MAAIK,EAAc,WAChB,OAAO,aAAaA,EAAc,OAAO,GAG3CE,EAAgB,EAAI,GAEfN,EAAW,YACVE,EAAa,YACf,OAAO,qBAAqBA,EAAa,OAAO,GAChDA,EAAa,UAAU,SAGrBC,EAAe,YACjB,OAAO,qBAAqBA,EAAe,OAAO,GAClDA,EAAe,UAAU,SAG3BM,EAAS,SAAS,GAClBP,EAAa,UAAU,OAAO,sBAAsB,MAAM;AACxD,QAAAA,EAAa,UAAU,QACvBC,EAAe,UAAU,OAAO,sBAAsB,MAAM;AAC1D,UAAAA,EAAe,UAAU,QACzBM,EAAS,MAAM;AAAA,QACjB,CAAC;AAAA,MACH,CAAC,IAGHT,EAAW,UAAU;AACrB;AAAA,IACF;AAEA,QAAI,CAACA,EAAW,SAAS;AACvB,MAAAM,EAAgB,EAAK,GACrBG,EAAS,QAAQ;AACjB;AAAA,IACF;AAEA,IAAAT,EAAW,UAAU,IACrBS,EAAS,SAAS,GAClBL,EAAc,UAAU,OAAO,WAAW,MAAM;AAC9C,MAAAA,EAAc,UAAU,QACxBE,EAAgB,EAAK,GACrBG,EAAS,QAAQ;AAAA,IACnB,GAAGf,CAA0B;AAAA,EAC/B,GAAG,CAACK,CAAI,CAAC,GAEF;AAAA,IACL,cAAAM;AAAA,IACA,OAAAG;AAAA,EAAA;AAEJ,GA/E4C;"}
1
+ {"version":3,"file":"useOwpPickerPopperTransition.js","sources":["../../../../src/components/OwpPicker/internal/useOwpPickerPopperTransition.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nexport const PICKER_TRANSITION_DURATION = 225;\nexport const PICKER_TRANSFORM_TRANSITION_DURATION = 150;\nexport const PICKER_EXIT_TRANSFORM_DELAY = 75;\nexport const PICKER_REOPEN_SUPPRESSION_DURATION = PICKER_TRANSITION_DURATION + 100;\nexport type OwpPickerTransitionState = 'opening' | 'open' | 'closing' | 'closed';\n\n/** Picker popper visibility transition state */\nexport const useOwpPickerPopperTransition = (open: boolean) => {\n const wasOpenRef = useRef(false);\n const openFrameRef = useRef<number | undefined>(undefined);\n const settleFrameRef = useRef<number | undefined>(undefined);\n const closeTimerRef = useRef<number | undefined>(undefined);\n const [shouldRender, setShouldRender] = useState(open);\n const [state, setState] = useState<OwpPickerTransitionState>(open ? 'opening' : 'closed');\n\n useEffect(() => {\n return () => {\n if (openFrameRef.current) {\n window.cancelAnimationFrame(openFrameRef.current);\n openFrameRef.current = undefined;\n }\n\n if (settleFrameRef.current) {\n window.cancelAnimationFrame(settleFrameRef.current);\n settleFrameRef.current = undefined;\n }\n\n if (closeTimerRef.current) {\n window.clearTimeout(closeTimerRef.current);\n closeTimerRef.current = undefined;\n }\n };\n }, []);\n\n useEffect(() => {\n if (open) {\n if (closeTimerRef.current) {\n window.clearTimeout(closeTimerRef.current);\n }\n\n setShouldRender(true);\n\n if (!wasOpenRef.current) {\n if (openFrameRef.current) {\n window.cancelAnimationFrame(openFrameRef.current);\n openFrameRef.current = undefined;\n }\n\n if (settleFrameRef.current) {\n window.cancelAnimationFrame(settleFrameRef.current);\n settleFrameRef.current = undefined;\n }\n\n setState('opening');\n openFrameRef.current = window.requestAnimationFrame(() => {\n openFrameRef.current = undefined;\n settleFrameRef.current = window.requestAnimationFrame(() => {\n settleFrameRef.current = undefined;\n setState('open');\n });\n });\n }\n\n wasOpenRef.current = true;\n return;\n }\n\n if (!wasOpenRef.current) {\n setShouldRender(false);\n setState('closed');\n return;\n }\n\n wasOpenRef.current = false;\n setState('closing');\n closeTimerRef.current = window.setTimeout(() => {\n closeTimerRef.current = undefined;\n setShouldRender(false);\n setState('closed');\n }, PICKER_TRANSITION_DURATION);\n }, [open]);\n\n return {\n shouldRender,\n state,\n };\n};\n"],"names":["PICKER_TRANSITION_DURATION","PICKER_TRANSFORM_TRANSITION_DURATION","PICKER_EXIT_TRANSFORM_DELAY","PICKER_REOPEN_SUPPRESSION_DURATION","useOwpPickerPopperTransition","__name","open","wasOpenRef","useRef","openFrameRef","settleFrameRef","closeTimerRef","shouldRender","setShouldRender","useState","state","setState","useEffect"],"mappings":";;;AAEO,MAAMA,IAA6B,KAC7BC,IAAuC,KACvCC,IAA8B,IAC9BC,IAAqCH,IAA6B,KAIlEI,IAA+B,gBAAAC,EAAA,CAACC,MAAkB;AAC7D,QAAMC,IAAaC,EAAO,EAAK,GACzBC,IAAeD,EAA2B,MAAS,GACnDE,IAAiBF,EAA2B,MAAS,GACrDG,IAAgBH,EAA2B,MAAS,GACpD,CAACI,GAAcC,CAAe,IAAIC,EAASR,CAAI,GAC/C,CAACS,GAAOC,CAAQ,IAAIF,EAAmCR,IAAO,YAAY,QAAQ;AAExF,SAAAW,EAAU,MACD,MAAM;AACX,IAAIR,EAAa,YACf,OAAO,qBAAqBA,EAAa,OAAO,GAChDA,EAAa,UAAU,SAGrBC,EAAe,YACjB,OAAO,qBAAqBA,EAAe,OAAO,GAClDA,EAAe,UAAU,SAGvBC,EAAc,YAChB,OAAO,aAAaA,EAAc,OAAO,GACzCA,EAAc,UAAU;AAAA,EAE5B,GACC,CAAA,CAAE,GAELM,EAAU,MAAM;AACd,QAAIX,GAAM;AACR,MAAIK,EAAc,WAChB,OAAO,aAAaA,EAAc,OAAO,GAG3CE,EAAgB,EAAI,GAEfN,EAAW,YACVE,EAAa,YACf,OAAO,qBAAqBA,EAAa,OAAO,GAChDA,EAAa,UAAU,SAGrBC,EAAe,YACjB,OAAO,qBAAqBA,EAAe,OAAO,GAClDA,EAAe,UAAU,SAG3BM,EAAS,SAAS,GAClBP,EAAa,UAAU,OAAO,sBAAsB,MAAM;AACxD,QAAAA,EAAa,UAAU,QACvBC,EAAe,UAAU,OAAO,sBAAsB,MAAM;AAC1D,UAAAA,EAAe,UAAU,QACzBM,EAAS,MAAM;AAAA,QACjB,CAAC;AAAA,MACH,CAAC,IAGHT,EAAW,UAAU;AACrB;AAAA,IACF;AAEA,QAAI,CAACA,EAAW,SAAS;AACvB,MAAAM,EAAgB,EAAK,GACrBG,EAAS,QAAQ;AACjB;AAAA,IACF;AAEA,IAAAT,EAAW,UAAU,IACrBS,EAAS,SAAS,GAClBL,EAAc,UAAU,OAAO,WAAW,MAAM;AAC9C,MAAAA,EAAc,UAAU,QACxBE,EAAgB,EAAK,GACrBG,EAAS,QAAQ;AAAA,IACnB,GAAGhB,CAA0B;AAAA,EAC/B,GAAG,CAACM,CAAI,CAAC,GAEF;AAAA,IACL,cAAAM;AAAA,IACA,OAAAG;AAAA,EAAA;AAEJ,GA/E4C;"}