@owp/core 2.5.18 → 2.5.20

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 (53) hide show
  1. package/dist/components/OwpPageContent/OwpPageContent.js +14 -12
  2. package/dist/components/OwpPageContent/OwpPageContent.js.map +1 -1
  3. package/dist/components/OwpPageTitle/OwpPageTitle.js +37 -35
  4. package/dist/components/OwpPageTitle/OwpPageTitle.js.map +1 -1
  5. package/dist/components/OwpPicker/OwpDatePicker.js +339 -102
  6. package/dist/components/OwpPicker/OwpDatePicker.js.map +1 -1
  7. package/dist/components/OwpPicker/OwpDateRangePicker.js +89 -85
  8. package/dist/components/OwpPicker/OwpDateRangePicker.js.map +1 -1
  9. package/dist/components/OwpPicker/OwpTimePicker.js +494 -236
  10. package/dist/components/OwpPicker/OwpTimePicker.js.map +1 -1
  11. package/dist/components/OwpPicker/constants/index.js +6 -5
  12. package/dist/components/OwpPicker/constants/index.js.map +1 -1
  13. package/dist/components/OwpPicker/internal/DatePickerInput.js +71 -47
  14. package/dist/components/OwpPicker/internal/DatePickerInput.js.map +1 -1
  15. package/dist/components/OwpSection/OwpSection.js +84 -62
  16. package/dist/components/OwpSection/OwpSection.js.map +1 -1
  17. package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js +42 -40
  18. package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js.map +1 -1
  19. package/dist/components/OwpTreeGrid/internal/hooks/useOwpTreeGridDatePickerEditor.js +307 -270
  20. package/dist/components/OwpTreeGrid/internal/hooks/useOwpTreeGridDatePickerEditor.js.map +1 -1
  21. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +267 -276
  22. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js.map +1 -1
  23. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js +262 -182
  24. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js.map +1 -1
  25. package/dist/constants/gridTheme.js +7 -6
  26. package/dist/constants/gridTheme.js.map +1 -1
  27. package/dist/constants/treeGrid.js +32 -31
  28. package/dist/constants/treeGrid.js.map +1 -1
  29. package/dist/constants.js +28 -27
  30. package/dist/features/themePreview/configs/grid.js +3 -1
  31. package/dist/features/themePreview/configs/grid.js.map +1 -1
  32. package/dist/features/themePreview/utils/themePreviewDefinitions.js +10 -0
  33. package/dist/features/themePreview/utils/themePreviewDefinitions.js.map +1 -1
  34. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
  35. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/constants.js +1 -1
  36. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
  37. package/dist/owp-app.css +1 -1
  38. package/dist/types/components/OwpPageContent/OwpPageContent.d.ts +3 -1
  39. package/dist/types/components/OwpPageTitle/OwpPageTitle.d.ts +3 -1
  40. package/dist/types/components/OwpPicker/constants/index.d.ts +1 -0
  41. package/dist/types/components/OwpPicker/internal/DatePickerInput.d.ts +7 -0
  42. package/dist/types/components/OwpSection/OwpSection.d.ts +3 -1
  43. package/dist/types/components/OwpTreeGrid/internal/treeGridTheme.d.ts +1 -1
  44. package/dist/types/constants/gridTheme.d.ts +2 -0
  45. package/dist/types/constants/treeGrid.d.ts +2 -1
  46. package/dist/types/features/themePreview/configs/grid.d.ts +2 -0
  47. package/dist/types/features/themePreview/configs/settings.d.ts +2 -0
  48. package/dist/types/types/OwpGridThemeTypes.d.ts +1 -0
  49. package/dist/types/utils/treeGridUtil.d.ts +15 -3
  50. package/dist/utils/treeGridUtil.js +193 -147
  51. package/dist/utils/treeGridUtil.js.map +1 -1
  52. package/dist/utils.js +69 -67
  53. package/package.json +1 -1
@@ -1,104 +1,108 @@
1
- var H = Object.defineProperty;
2
- var r = (a, n) => H(a, "name", { value: n, configurable: !0 });
3
- import { jsx as u } from "../../node_modules/.pnpm/@emotion_react@11.14.0_@types_react@19.2.14_react@19.2.4/node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js";
4
- import { useOwpTranslation as g } from "../../hooks/useOwpTranslation.js";
5
- import { clsx as s } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
6
- import { enUS as k } from "../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US.js";
7
- import { ko as q } from "../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/ko.js";
8
- import E from "dayjs";
9
- import { useMemo as N } from "react";
10
- import { DatePicker as z, registerLocale as w, setDefaultLocale as B } from "../../node_modules/.pnpm/react-datepicker@8.7.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-datepicker/dist/index.es.js";
11
- import { AnimatedCalendarContainer as G } from "./internal/AnimatedCalendarContainer.js";
12
- import { CalendarContainer as J } from "./internal/CalendarContainer.js";
13
- import { DatePickerInput as K } from "./internal/DatePickerInput.js";
14
- import { VALUE_YEAR_FORMATTER as Q, VALUE_MONTH_FORMATTER as X, VALUE_DATE_FORMATTER as Z } from "./constants/index.js";
15
- import { isNull as $ } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isNull.js";
16
- import { isNil as c } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isNil.js";
17
- import { isEmpty as v } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isEmpty.js";
18
- w("ko", q);
19
- w("en", k);
20
- B("ko");
21
- const T = /* @__PURE__ */ r((a) => $(a) && c(a), "isNill"), Nt = /* @__PURE__ */ r(({
22
- className: a,
23
- label: n,
24
- variant: x = "standard",
25
- sx: L,
26
- value: i,
27
- fullWidth: d,
28
- disabledClearButton: O,
29
- disabledFutureDates: _,
30
- onChange: e,
31
- minDate: j,
32
- maxDate: F,
33
- minTime: I,
34
- maxTime: U,
35
- showYearPicker: p,
36
- showMonthPicker: o,
37
- textFieldProps: M,
38
- popperClassName: S,
39
- popperContainer: V,
40
- ...l
1
+ var B = Object.defineProperty;
2
+ var a = (e, u) => B(e, "name", { value: u, configurable: !0 });
3
+ import { jsx as w } from "../../node_modules/.pnpm/@emotion_react@11.14.0_@types_react@19.2.14_react@19.2.4/node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js";
4
+ import { useOwpTranslation as G } from "../../hooks/useOwpTranslation.js";
5
+ import { clsx as i } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
6
+ import { enUS as J } from "../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US.js";
7
+ import { ko as Q } from "../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/ko.js";
8
+ import A from "dayjs";
9
+ import { useRef as X, useMemo as O } from "react";
10
+ import { DatePicker as Z, registerLocale as L, setDefaultLocale as $ } from "../../node_modules/.pnpm/react-datepicker@8.7.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-datepicker/dist/index.es.js";
11
+ import { CalendarContainer as x } from "./internal/CalendarContainer.js";
12
+ import { DatePickerInput as W } from "./internal/DatePickerInput.js";
13
+ import { VALUE_YEAR_FORMATTER as Y, VALUE_MONTH_FORMATTER as C, VALUE_DATE_FORMATTER as F } from "./constants/index.js";
14
+ import { isNull as v } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isNull.js";
15
+ import { isNil as D } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isNil.js";
16
+ import { isEmpty as P } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isEmpty.js";
17
+ L("ko", Q);
18
+ L("en", J);
19
+ $("ko");
20
+ const K = /* @__PURE__ */ a((e) => v(e) && D(e), "isNill"), h = /* @__PURE__ */ a((e) => !(e.ctrlKey || e.altKey || e.metaKey || e.key === "Escape" || e.key === "Enter" || e.key === "Tab"), "isDateRangePickerOpenKey"), Ae = /* @__PURE__ */ a(({
21
+ className: e,
22
+ label: u,
23
+ variant: d = "standard",
24
+ sx: I,
25
+ value: f,
26
+ fullWidth: R,
27
+ disabledClearButton: _,
28
+ disabledFutureDates: j,
29
+ onChange: t,
30
+ minDate: k,
31
+ maxDate: U,
32
+ minTime: M,
33
+ maxTime: S,
34
+ showYearPicker: l,
35
+ showMonthPicker: s,
36
+ textFieldProps: m,
37
+ popperClassName: V,
38
+ popperContainer: b,
39
+ ...n
41
40
  }) => {
42
41
  const {
43
- selectsMultiple: W,
44
- selectsRange: Y,
45
- selected: P,
46
- startDate: h,
47
- endDate: tt,
48
- ...y
49
- } = l, { i18n: D } = g(), b = (D.resolvedLanguage ?? D.language ?? "kr") === "kr" ? "ko" : "en", f = N(() => p ? Q : o ? X : Z, [p, o]), [m, R] = N(() => i ? i.split(",").map((t) => !t || T(t) ? null : new Date(t)) : [null, null], [i]), C = /* @__PURE__ */ r((t) => {
50
- e == null || e(
51
- v(t) ? void 0 : [...t].map((A) => T(A) ? "" : E(A).format(f)).join(",")
42
+ selectsMultiple: ee,
43
+ selectsRange: re,
44
+ selected: te,
45
+ startDate: ae,
46
+ endDate: me,
47
+ ...g
48
+ } = n, { i18n: E } = G(), y = X(null), H = (E.resolvedLanguage ?? E.language ?? "kr") === "kr" ? "ko" : "en", c = O(() => l ? Y : s ? C : F, [l, s]), [o, N] = O(() => f ? f.split(",").map((r) => !r || K(r) ? null : new Date(r)) : [null, null], [f]), q = /* @__PURE__ */ a((r) => {
49
+ t == null || t(
50
+ P(r) ? void 0 : [...r].map((p) => K(p) ? "" : A(p).format(c)).join(",")
52
51
  );
53
- }, "handleSelect");
54
- return /* @__PURE__ */ u(
55
- z,
52
+ }, "handleSelect"), z = /* @__PURE__ */ a((r) => {
53
+ var p, T;
54
+ (p = m == null ? void 0 : m.onKeyDown) == null || p.call(m, r), !(r.defaultPrevented || !h(r)) && ((T = y.current) == null || T.setOpen(!0));
55
+ }, "handleExternalInputKeyDown");
56
+ return /* @__PURE__ */ w(
57
+ Z,
56
58
  {
57
- ...y,
58
- locale: b,
59
- popperContainer: /* @__PURE__ */ r(({ children: t }) => /* @__PURE__ */ u(G, { container: V ?? J, children: t }), "PopperContainer"),
60
- popperClassName: s("owp-animated-datepicker-popper", S),
61
- className: s(d && "w-full"),
62
- wrapperClassName: s(d && "w-full", l == null ? void 0 : l.wrapperClassName),
59
+ ref: y,
60
+ ...g,
61
+ locale: H,
62
+ popperContainer: b ?? x,
63
+ popperClassName: V,
64
+ className: i(R && "w-full"),
65
+ wrapperClassName: i(R && "w-full", n == null ? void 0 : n.wrapperClassName),
63
66
  selectsRange: !0,
64
- minDate: j,
65
- maxDate: _ ? /* @__PURE__ */ new Date() : F,
66
- minTime: I,
67
- maxTime: U,
68
- showYearPicker: p,
69
- showMonthYearPicker: o,
67
+ minDate: k,
68
+ maxDate: j ? /* @__PURE__ */ new Date() : U,
69
+ minTime: M,
70
+ maxTime: S,
71
+ showYearPicker: l,
72
+ showMonthYearPicker: s,
70
73
  showPopperArrow: !1,
71
74
  popperPlacement: "bottom-start",
72
- selected: m,
73
- onChange: C,
74
- onCalendarClose: /* @__PURE__ */ r(() => {
75
- !c(m) && c(R) && (e == null || e([m, m].map((t) => E(t).format(f)).join(",")));
75
+ selected: o,
76
+ onChange: q,
77
+ onCalendarClose: /* @__PURE__ */ a(() => {
78
+ !D(o) && D(N) && (t == null || t([o, o].map((r) => A(r).format(c)).join(",")));
76
79
  }, "onCalendarClose"),
77
- startDate: m,
78
- endDate: R,
79
- customInput: /* @__PURE__ */ u(
80
- K,
80
+ startDate: o,
81
+ endDate: N,
82
+ customInput: /* @__PURE__ */ w(
83
+ W,
81
84
  {
82
- className: s(
83
- p && "w-[180px]",
84
- o && "w-[220px]",
85
- !p && !o && "w-[260px]",
86
- a
85
+ className: i(
86
+ l && "w-[180px]",
87
+ s && "w-[220px]",
88
+ !l && !s && "w-[260px]",
89
+ e
87
90
  ),
88
- label: n,
89
- variant: x,
90
- sx: L,
91
- ...M,
92
- reset: /* @__PURE__ */ r(() => e == null ? void 0 : e(""), "reset"),
91
+ label: u,
92
+ variant: d,
93
+ sx: I,
94
+ ...m,
95
+ onInputKeyDown: z,
96
+ reset: /* @__PURE__ */ a(() => t == null ? void 0 : t(""), "reset"),
93
97
  useRange: !0,
94
- disabledClearButton: O,
95
- valueFormatter: f
98
+ disabledClearButton: _,
99
+ valueFormatter: c
96
100
  }
97
101
  )
98
102
  }
99
103
  );
100
104
  }, "OwpDateRangePicker");
101
105
  export {
102
- Nt as OwpDateRangePicker
106
+ Ae as OwpDateRangePicker
103
107
  };
104
108
  //# sourceMappingURL=OwpDateRangePicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OwpDateRangePicker.js","sources":["../../../src/components/OwpPicker/OwpDateRangePicker.tsx"],"sourcesContent":["import { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport { TextFieldProps } 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 { isEmpty, isNil, isNull } from 'es-toolkit/compat';\nimport { type ReactNode, useMemo } from 'react';\nimport ReactDatePicker, {\n DatePickerProps,\n registerLocale,\n setDefaultLocale,\n} from 'react-datepicker';\nimport { AnimatedCalendarContainer } from './internal/AnimatedCalendarContainer';\nimport { CalendarContainer } from './internal/CalendarContainer';\nimport { DatePickerInput } from './internal/DatePickerInput';\nimport { VALUE_DATE_FORMATTER, VALUE_MONTH_FORMATTER, VALUE_YEAR_FORMATTER } from './constants';\n\nregisterLocale('ko', ko);\nregisterLocale('en', enUS);\nsetDefaultLocale('ko');\n\nconst isNill = (v: Date | string | number | undefined | null) => isNull(v) && isNil(v);\n\ntype DatePickerValue = string | Date;\ninterface OwnProps {\n className?: string;\n label?: string;\n variant?: TextFieldProps['variant'];\n sx?: TextFieldProps['sx'];\n value?: DatePickerValue;\n fullWidth?: boolean;\n disabledClearButton?: boolean;\n disabledFutureDates?: boolean;\n onChange?: (value?: DatePickerValue) => void;\n showYearPicker?: boolean;\n showMonthPicker?: boolean;\n textFieldProps?: Omit<TextFieldProps, 'value' | 'defaultValue' | 'onChange'>;\n}\n\ntype OwpDatePickerProps = OwnProps & DatePickerProps;\n\n/**\n * OwpDateRangePicker 컴포넌트\n * @param className CSS 클래스명\n * @param label 입력 라벨\n * @param variant variant 값\n * @param sx sx 값\n * @param value 현재 값\n * @param fullWidth 전체 너비 사용 여부\n */\nconst OwpDateRangePicker = ({\n className,\n label,\n variant = 'standard',\n sx,\n value,\n fullWidth,\n disabledClearButton,\n disabledFutureDates,\n onChange,\n minDate,\n maxDate,\n minTime,\n maxTime,\n showYearPicker,\n showMonthPicker,\n textFieldProps,\n popperClassName: popperClassNameProp,\n popperContainer: popperContainerProp,\n ...datePickerProps\n}: OwpDatePickerProps) => {\n const {\n selectsMultiple,\n selectsRange,\n selected,\n startDate: passedStartDate,\n endDate: passedEndDate,\n ...resolvedDatePickerProps\n } = datePickerProps;\n void [selectsMultiple, selectsRange, selected, passedStartDate, passedEndDate];\n const { i18n } = useOwpTranslation();\n const languageId = i18n.resolvedLanguage ?? i18n.language ?? 'kr';\n const datePickerLocale = languageId === 'kr' ? 'ko' : 'en';\n const valueFormatter = useMemo(() => {\n if (showYearPicker) {\n return VALUE_YEAR_FORMATTER;\n }\n\n if (showMonthPicker) {\n return VALUE_MONTH_FORMATTER;\n }\n return VALUE_DATE_FORMATTER;\n }, [showYearPicker, showMonthPicker]);\n\n const [startDate, endDate] = useMemo(() => {\n if (!value) return [null, null];\n return value.split(',').map((v: string) => (!v || isNill(v) ? null : new Date(v)));\n }, [value]);\n\n const handleSelect = (dates?: [Date, Date]) => {\n onChange?.(\n !isEmpty(dates)\n ? [...dates].map((d: Date) => (isNill(d) ? '' : dayjs(d).format(valueFormatter))).join(',')\n : undefined,\n );\n };\n\n const PopperContainer = ({ children }: { children?: ReactNode }) => (\n <AnimatedCalendarContainer container={popperContainerProp ?? CalendarContainer}>\n {children}\n </AnimatedCalendarContainer>\n );\n\n return (\n <ReactDatePicker\n {...resolvedDatePickerProps}\n locale={datePickerLocale}\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 selectsRange\n minDate={minDate}\n maxDate={disabledFutureDates ? new Date() : maxDate}\n minTime={minTime}\n maxTime={maxTime}\n showYearPicker={showYearPicker}\n showMonthYearPicker={showMonthPicker}\n showPopperArrow={false}\n popperPlacement=\"bottom-start\"\n selected={startDate}\n onChange={handleSelect}\n onCalendarClose={() => {\n if (!isNil(startDate) && isNil(endDate)) {\n onChange?.([startDate, startDate].map((d) => dayjs(d).format(valueFormatter)).join(','));\n }\n }}\n startDate={startDate}\n endDate={endDate}\n customInput={\n <DatePickerInput\n className={clsx(\n showYearPicker && 'w-[180px]',\n showMonthPicker && 'w-[220px]',\n !showYearPicker && !showMonthPicker && 'w-[260px]',\n className,\n )}\n label={label}\n variant={variant}\n sx={sx}\n {...textFieldProps}\n reset={() => onChange?.('')}\n useRange\n disabledClearButton={disabledClearButton}\n valueFormatter={valueFormatter}\n />\n }\n />\n );\n};\n\nexport { OwpDateRangePicker };\n"],"names":["registerLocale","ko","enUS","setDefaultLocale","isNill","__name","v","isNull","isNil","OwpDateRangePicker","className","label","variant","sx","value","fullWidth","disabledClearButton","disabledFutureDates","onChange","minDate","maxDate","minTime","maxTime","showYearPicker","showMonthPicker","textFieldProps","popperClassNameProp","popperContainerProp","datePickerProps","selectsMultiple","selectsRange","selected","passedStartDate","passedEndDate","resolvedDatePickerProps","i18n","useOwpTranslation","datePickerLocale","valueFormatter","useMemo","VALUE_YEAR_FORMATTER","VALUE_MONTH_FORMATTER","VALUE_DATE_FORMATTER","startDate","endDate","handleSelect","dates","isEmpty","d","dayjs","jsx","ReactDatePicker","children","AnimatedCalendarContainer","CalendarContainer","clsx","DatePickerInput"],"mappings":"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"}
1
+ {"version":3,"file":"OwpDateRangePicker.js","sources":["../../../src/components/OwpPicker/OwpDateRangePicker.tsx"],"sourcesContent":["import { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport { TextFieldProps } 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 { isEmpty, isNil, isNull } from 'es-toolkit/compat';\nimport { useMemo, useRef } from 'react';\nimport ReactDatePicker, {\n DatePickerProps,\n registerLocale,\n setDefaultLocale,\n} from 'react-datepicker';\nimport { CalendarContainer } from './internal/CalendarContainer';\nimport { DatePickerInput } from './internal/DatePickerInput';\nimport { VALUE_DATE_FORMATTER, VALUE_MONTH_FORMATTER, VALUE_YEAR_FORMATTER } from './constants';\n\nregisterLocale('ko', ko);\nregisterLocale('en', enUS);\nsetDefaultLocale('ko');\n\nconst isNill = (v: Date | string | number | undefined | null) => isNull(v) && isNil(v);\n\ntype DatePickerValue = string | Date;\ntype OwpDateRangePickerTextFieldKeyDownEvent = Parameters<\n NonNullable<TextFieldProps['onKeyDown']>\n>[0];\n\n/** DateRangePicker 외부 입력에서 피커 open 처리할 키 여부 */\nconst isDateRangePickerOpenKey = (event: OwpDateRangePickerTextFieldKeyDownEvent) => {\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\ninterface OwnProps {\n className?: string;\n label?: string;\n variant?: TextFieldProps['variant'];\n sx?: TextFieldProps['sx'];\n value?: DatePickerValue;\n fullWidth?: boolean;\n disabledClearButton?: boolean;\n disabledFutureDates?: boolean;\n onChange?: (value?: DatePickerValue) => void;\n showYearPicker?: boolean;\n showMonthPicker?: boolean;\n textFieldProps?: Omit<TextFieldProps, 'value' | 'defaultValue' | 'onChange'>;\n}\n\ntype OwpDatePickerProps = OwnProps & DatePickerProps;\n\n/**\n * OwpDateRangePicker 컴포넌트\n * @param className CSS 클래스명\n * @param label 입력 라벨\n * @param variant variant 값\n * @param sx sx 값\n * @param value 현재 값\n * @param fullWidth 전체 너비 사용 여부\n */\nconst OwpDateRangePicker = ({\n className,\n label,\n variant = 'standard',\n sx,\n value,\n fullWidth,\n disabledClearButton,\n disabledFutureDates,\n onChange,\n minDate,\n maxDate,\n minTime,\n maxTime,\n showYearPicker,\n showMonthPicker,\n textFieldProps,\n popperClassName: popperClassNameProp,\n popperContainer: popperContainerProp,\n ...datePickerProps\n}: OwpDatePickerProps) => {\n const {\n selectsMultiple,\n selectsRange,\n selected,\n startDate: passedStartDate,\n endDate: passedEndDate,\n ...resolvedDatePickerProps\n } = datePickerProps;\n void [selectsMultiple, selectsRange, selected, passedStartDate, passedEndDate];\n const { i18n } = useOwpTranslation();\n const datePickerRef = useRef<ReactDatePicker | null>(null);\n const languageId = i18n.resolvedLanguage ?? i18n.language ?? 'kr';\n const datePickerLocale = languageId === 'kr' ? 'ko' : 'en';\n const valueFormatter = useMemo(() => {\n if (showYearPicker) {\n return VALUE_YEAR_FORMATTER;\n }\n\n if (showMonthPicker) {\n return VALUE_MONTH_FORMATTER;\n }\n return VALUE_DATE_FORMATTER;\n }, [showYearPicker, showMonthPicker]);\n\n const [startDate, endDate] = useMemo(() => {\n if (!value) return [null, null];\n return value.split(',').map((v: string) => (!v || isNill(v) ? null : new Date(v)));\n }, [value]);\n\n const handleSelect = (dates?: [Date, Date]) => {\n onChange?.(\n !isEmpty(dates)\n ? [...dates].map((d: Date) => (isNill(d) ? '' : dayjs(d).format(valueFormatter))).join(',')\n : undefined,\n );\n };\n\n const handleExternalInputKeyDown = (event: OwpDateRangePickerTextFieldKeyDownEvent) => {\n textFieldProps?.onKeyDown?.(event);\n\n if (event.defaultPrevented || !isDateRangePickerOpenKey(event)) {\n return;\n }\n\n datePickerRef.current?.setOpen(true);\n };\n\n return (\n <ReactDatePicker\n ref={datePickerRef}\n {...resolvedDatePickerProps}\n locale={datePickerLocale}\n popperContainer={popperContainerProp ?? CalendarContainer}\n popperClassName={popperClassNameProp}\n className={clsx(fullWidth && 'w-full')}\n wrapperClassName={clsx(fullWidth && 'w-full', datePickerProps?.wrapperClassName)}\n selectsRange\n minDate={minDate}\n maxDate={disabledFutureDates ? new Date() : maxDate}\n minTime={minTime}\n maxTime={maxTime}\n showYearPicker={showYearPicker}\n showMonthYearPicker={showMonthPicker}\n showPopperArrow={false}\n popperPlacement=\"bottom-start\"\n selected={startDate}\n onChange={handleSelect}\n onCalendarClose={() => {\n if (!isNil(startDate) && isNil(endDate)) {\n onChange?.([startDate, startDate].map((d) => dayjs(d).format(valueFormatter)).join(','));\n }\n }}\n startDate={startDate}\n endDate={endDate}\n customInput={\n <DatePickerInput\n className={clsx(\n showYearPicker && 'w-[180px]',\n showMonthPicker && 'w-[220px]',\n !showYearPicker && !showMonthPicker && 'w-[260px]',\n className,\n )}\n label={label}\n variant={variant}\n sx={sx}\n {...textFieldProps}\n onInputKeyDown={handleExternalInputKeyDown}\n reset={() => onChange?.('')}\n useRange\n disabledClearButton={disabledClearButton}\n valueFormatter={valueFormatter}\n />\n }\n />\n );\n};\n\nexport { OwpDateRangePicker };\n"],"names":["registerLocale","ko","enUS","setDefaultLocale","isNill","__name","v","isNull","isNil","isDateRangePickerOpenKey","event","OwpDateRangePicker","className","label","variant","sx","value","fullWidth","disabledClearButton","disabledFutureDates","onChange","minDate","maxDate","minTime","maxTime","showYearPicker","showMonthPicker","textFieldProps","popperClassNameProp","popperContainerProp","datePickerProps","selectsMultiple","selectsRange","selected","passedStartDate","passedEndDate","resolvedDatePickerProps","i18n","useOwpTranslation","datePickerRef","useRef","datePickerLocale","valueFormatter","useMemo","VALUE_YEAR_FORMATTER","VALUE_MONTH_FORMATTER","VALUE_DATE_FORMATTER","startDate","endDate","handleSelect","dates","isEmpty","d","dayjs","handleExternalInputKeyDown","_a","_b","jsx","ReactDatePicker","CalendarContainer","clsx","DatePickerInput"],"mappings":"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"}