@owp/core 2.5.18 → 2.5.19

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 (64) hide show
  1. package/dist/_virtual/index15.js +2 -2
  2. package/dist/_virtual/index16.js +4 -4
  3. package/dist/_virtual/index17.js +4 -4
  4. package/dist/_virtual/index18.js +4 -4
  5. package/dist/_virtual/index19.js +4 -4
  6. package/dist/_virtual/index5.js +2 -2
  7. package/dist/components/OwpPageContent/OwpPageContent.js +14 -12
  8. package/dist/components/OwpPageContent/OwpPageContent.js.map +1 -1
  9. package/dist/components/OwpPageTitle/OwpPageTitle.js +37 -35
  10. package/dist/components/OwpPageTitle/OwpPageTitle.js.map +1 -1
  11. package/dist/components/OwpPicker/OwpDatePicker.js +339 -102
  12. package/dist/components/OwpPicker/OwpDatePicker.js.map +1 -1
  13. package/dist/components/OwpPicker/OwpDateRangePicker.js +87 -82
  14. package/dist/components/OwpPicker/OwpDateRangePicker.js.map +1 -1
  15. package/dist/components/OwpPicker/OwpTimePicker.js +494 -236
  16. package/dist/components/OwpPicker/OwpTimePicker.js.map +1 -1
  17. package/dist/components/OwpPicker/constants/index.js +6 -5
  18. package/dist/components/OwpPicker/constants/index.js.map +1 -1
  19. package/dist/components/OwpPicker/internal/DatePickerInput.js +71 -47
  20. package/dist/components/OwpPicker/internal/DatePickerInput.js.map +1 -1
  21. package/dist/components/OwpSection/OwpSection.js +84 -62
  22. package/dist/components/OwpSection/OwpSection.js.map +1 -1
  23. package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js +42 -40
  24. package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js.map +1 -1
  25. package/dist/components/OwpTreeGrid/internal/hooks/useOwpTreeGridDatePickerEditor.js +307 -270
  26. package/dist/components/OwpTreeGrid/internal/hooks/useOwpTreeGridDatePickerEditor.js.map +1 -1
  27. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +267 -276
  28. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js.map +1 -1
  29. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js +262 -182
  30. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js.map +1 -1
  31. package/dist/constants/gridTheme.js +7 -6
  32. package/dist/constants/gridTheme.js.map +1 -1
  33. package/dist/constants/treeGrid.js +32 -31
  34. package/dist/constants/treeGrid.js.map +1 -1
  35. package/dist/constants.js +28 -27
  36. package/dist/features/themePreview/configs/grid.js +3 -1
  37. package/dist/features/themePreview/configs/grid.js.map +1 -1
  38. package/dist/features/themePreview/utils/themePreviewDefinitions.js +10 -0
  39. package/dist/features/themePreview/utils/themePreviewDefinitions.js.map +1 -1
  40. package/dist/layout/components/toggles/NavigationSearchToggle.js +3 -3
  41. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
  42. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
  43. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/renderers/index.js +1 -1
  44. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
  45. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
  46. package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js +1 -1
  47. package/dist/node_modules/.pnpm/react-overlays@5.2.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-overlays/esm/Portal.js +1 -1
  48. package/dist/owp-app.css +1 -1
  49. package/dist/types/components/OwpPageContent/OwpPageContent.d.ts +3 -1
  50. package/dist/types/components/OwpPageTitle/OwpPageTitle.d.ts +3 -1
  51. package/dist/types/components/OwpPicker/constants/index.d.ts +1 -0
  52. package/dist/types/components/OwpPicker/internal/DatePickerInput.d.ts +7 -0
  53. package/dist/types/components/OwpSection/OwpSection.d.ts +3 -1
  54. package/dist/types/components/OwpTreeGrid/internal/treeGridTheme.d.ts +1 -1
  55. package/dist/types/constants/gridTheme.d.ts +2 -0
  56. package/dist/types/constants/treeGrid.d.ts +2 -1
  57. package/dist/types/features/themePreview/configs/grid.d.ts +2 -0
  58. package/dist/types/features/themePreview/configs/settings.d.ts +2 -0
  59. package/dist/types/types/OwpGridThemeTypes.d.ts +1 -0
  60. package/dist/types/utils/treeGridUtil.d.ts +15 -3
  61. package/dist/utils/treeGridUtil.js +193 -147
  62. package/dist/utils/treeGridUtil.js.map +1 -1
  63. package/dist/utils.js +69 -67
  64. package/package.json +1 -1
@@ -1,104 +1,109 @@
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,
1
+ var C = Object.defineProperty;
2
+ var a = (r, f) => C(r, "name", { value: f, configurable: !0 });
3
+ import { jsx as D } 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 u } 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 N from "dayjs";
9
+ import { useRef as X, useMemo as T } from "react";
10
+ import { DatePicker as Z, registerLocale as K, 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 { AnimatedCalendarContainer as x } from "./internal/AnimatedCalendarContainer.js";
12
+ import { CalendarContainer as W } from "./internal/CalendarContainer.js";
13
+ import { DatePickerInput as Y } from "./internal/DatePickerInput.js";
14
+ import { VALUE_YEAR_FORMATTER as F, VALUE_MONTH_FORMATTER as v, VALUE_DATE_FORMATTER as P } from "./constants/index.js";
15
+ import { isNull as h } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isNull.js";
16
+ import { isNil as R } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isNil.js";
17
+ import { isEmpty as ee } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isEmpty.js";
18
+ K("ko", Q);
19
+ K("en", J);
20
+ $("ko");
21
+ const O = /* @__PURE__ */ a((r) => h(r) && R(r), "isNill"), re = /* @__PURE__ */ a((r) => !(r.ctrlKey || r.altKey || r.metaKey || r.key === "Escape" || r.key === "Enter" || r.key === "Tab"), "isDateRangePickerOpenKey"), Ke = /* @__PURE__ */ a(({
22
+ className: r,
23
+ label: f,
24
+ variant: L = "standard",
25
+ sx: I,
26
26
  value: i,
27
- fullWidth: d,
28
- disabledClearButton: O,
29
- disabledFutureDates: _,
30
- onChange: e,
27
+ fullWidth: E,
28
+ disabledClearButton: _,
29
+ disabledFutureDates: k,
30
+ onChange: t,
31
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
32
+ maxDate: U,
33
+ minTime: M,
34
+ maxTime: S,
35
+ showYearPicker: m,
36
+ showMonthPicker: p,
37
+ textFieldProps: o,
38
+ popperClassName: V,
39
+ popperContainer: b,
40
+ ...s
41
41
  }) => {
42
42
  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(",")
43
+ selectsMultiple: te,
44
+ selectsRange: ae,
45
+ selected: oe,
46
+ startDate: me,
47
+ endDate: pe,
48
+ ...g
49
+ } = s, { i18n: y } = G(), d = X(null), H = (y.resolvedLanguage ?? y.language ?? "kr") === "kr" ? "ko" : "en", c = T(() => m ? F : p ? v : P, [m, p]), [n, w] = T(() => i ? i.split(",").map((e) => !e || O(e) ? null : new Date(e)) : [null, null], [i]), q = /* @__PURE__ */ a((e) => {
50
+ t == null || t(
51
+ ee(e) ? void 0 : [...e].map((l) => O(l) ? "" : N(l).format(c)).join(",")
52
52
  );
53
- }, "handleSelect");
54
- return /* @__PURE__ */ u(
55
- z,
53
+ }, "handleSelect"), z = /* @__PURE__ */ a(({ children: e }) => /* @__PURE__ */ D(x, { container: b ?? W, children: e }), "PopperContainer"), B = /* @__PURE__ */ a((e) => {
54
+ var l, A;
55
+ (l = o == null ? void 0 : o.onKeyDown) == null || l.call(o, e), !(e.defaultPrevented || !re(e)) && ((A = d.current) == null || A.setOpen(!0));
56
+ }, "handleExternalInputKeyDown");
57
+ return /* @__PURE__ */ D(
58
+ Z,
56
59
  {
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),
60
+ ref: d,
61
+ ...g,
62
+ locale: H,
63
+ popperContainer: z,
64
+ popperClassName: u("owp-animated-datepicker-popper", V),
65
+ className: u(E && "w-full"),
66
+ wrapperClassName: u(E && "w-full", s == null ? void 0 : s.wrapperClassName),
63
67
  selectsRange: !0,
64
68
  minDate: j,
65
- maxDate: _ ? /* @__PURE__ */ new Date() : F,
66
- minTime: I,
67
- maxTime: U,
68
- showYearPicker: p,
69
- showMonthYearPicker: o,
69
+ maxDate: k ? /* @__PURE__ */ new Date() : U,
70
+ minTime: M,
71
+ maxTime: S,
72
+ showYearPicker: m,
73
+ showMonthYearPicker: p,
70
74
  showPopperArrow: !1,
71
75
  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(",")));
76
+ selected: n,
77
+ onChange: q,
78
+ onCalendarClose: /* @__PURE__ */ a(() => {
79
+ !R(n) && R(w) && (t == null || t([n, n].map((e) => N(e).format(c)).join(",")));
76
80
  }, "onCalendarClose"),
77
- startDate: m,
78
- endDate: R,
79
- customInput: /* @__PURE__ */ u(
80
- K,
81
+ startDate: n,
82
+ endDate: w,
83
+ customInput: /* @__PURE__ */ D(
84
+ Y,
81
85
  {
82
- className: s(
83
- p && "w-[180px]",
84
- o && "w-[220px]",
85
- !p && !o && "w-[260px]",
86
- a
86
+ className: u(
87
+ m && "w-[180px]",
88
+ p && "w-[220px]",
89
+ !m && !p && "w-[260px]",
90
+ r
87
91
  ),
88
- label: n,
89
- variant: x,
90
- sx: L,
91
- ...M,
92
- reset: /* @__PURE__ */ r(() => e == null ? void 0 : e(""), "reset"),
92
+ label: f,
93
+ variant: L,
94
+ sx: I,
95
+ ...o,
96
+ onInputKeyDown: B,
97
+ reset: /* @__PURE__ */ a(() => t == null ? void 0 : t(""), "reset"),
93
98
  useRange: !0,
94
- disabledClearButton: O,
95
- valueFormatter: f
99
+ disabledClearButton: _,
100
+ valueFormatter: c
96
101
  }
97
102
  )
98
103
  }
99
104
  );
100
105
  }, "OwpDateRangePicker");
101
106
  export {
102
- Nt as OwpDateRangePicker
107
+ Ke as OwpDateRangePicker
103
108
  };
104
109
  //# 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 { type ReactNode, useMemo, useRef } 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;\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 PopperContainer = ({ children }: { children?: ReactNode }) => (\n <AnimatedCalendarContainer container={popperContainerProp ?? CalendarContainer}>\n {children}\n </AnimatedCalendarContainer>\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={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 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","PopperContainer","children","AnimatedCalendarContainer","CalendarContainer","handleExternalInputKeyDown","_a","_b","jsx","ReactDatePicker","clsx","DatePickerInput"],"mappings":";;;;;;;;;;;;;;;;;AAkBAA,EAAe,MAAMC,CAAE;AACvBD,EAAe,MAAME,CAAI;AACzBC,EAAiB,IAAI;AAErB,MAAMC,IAAS,gBAAAC,EAAA,CAACC,MAAiDC,EAAOD,CAAC,KAAKE,EAAMF,CAAC,GAAtE,WAQTG,KAA2B,gBAAAJ,EAAA,CAACK,MAE9B,EAAAA,EAAM,WACNA,EAAM,UACNA,EAAM,WACNA,EAAM,QAAQ,YACdA,EAAM,QAAQ,WACdA,EAAM,QAAQ,QAPe,6BAyC3BC,KAAqB,gBAAAN,EAAA,CAAC;AAAA,EAC1B,WAAAO;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,IAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,iBAAiBC;AAAA,EACjB,iBAAiBC;AAAA,EACjB,GAAGC;AACL,MAA0B;AACxB,QAAM;AAAA,IACJ,iBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAWC;AAAA,IACX,SAASC;AAAA,IACT,GAAGC;AAAA,EAAA,IACDN,GAEE,EAAE,MAAAO,EAAA,IAASC,EAAA,GACXC,IAAgBC,EAA+B,IAAI,GAEnDC,KADaJ,EAAK,oBAAoBA,EAAK,YAAY,UACrB,OAAO,OAAO,MAChDK,IAAiBC,EAAQ,MACzBlB,IACKmB,IAGLlB,IACKmB,IAEFC,GACN,CAACrB,GAAgBC,CAAe,CAAC,GAE9B,CAACqB,GAAWC,CAAO,IAAIL,EAAQ,MAC9B3B,IACEA,EAAM,MAAM,GAAG,EAAE,IAAI,CAACV,MAAe,CAACA,KAAKF,EAAOE,CAAC,IAAI,OAAO,IAAI,KAAKA,CAAC,CAAE,IAD9D,CAAC,MAAM,IAAI,GAE7B,CAACU,CAAK,CAAC,GAEJiC,IAAe,gBAAA5C,EAAA,CAAC6C,MAAyB;AAC7C,IAAA9B,KAAA,QAAAA;AAAA,MACG+B,GAAQD,CAAK,IAEV,SADA,CAAC,GAAGA,CAAK,EAAE,IAAI,CAACE,MAAahD,EAAOgD,CAAC,IAAI,KAAKC,EAAMD,CAAC,EAAE,OAAOV,CAAc,CAAE,EAAE,KAAK,GAAG;AAAA;AAAA,EAGhG,GANqB,iBAQfY,IAAkB,gBAAAjD,EAAA,CAAC,EAAE,UAAAkD,EAAA,wBACxBC,GAAA,EAA0B,WAAW3B,KAAuB4B,GAC1D,UAAAF,EAAA,CACH,GAHsB,oBAMlBG,IAA6B,gBAAArD,EAAA,CAACK,MAAmD;;AAGrF,KAFAiD,IAAAhC,KAAA,gBAAAA,EAAgB,cAAhB,QAAAgC,EAAA,KAAAhC,GAA4BjB,IAExB,EAAAA,EAAM,oBAAoB,CAACD,GAAyBC,CAAK,QAI7DkD,IAAArB,EAAc,YAAd,QAAAqB,EAAuB,QAAQ;AAAA,EACjC,GARmC;AAUnC,SACE,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,KAAKvB;AAAA,MACJ,GAAGH;AAAA,MACJ,QAAQK;AAAA,MACR,iBAAiBa;AAAA,MACjB,iBAAiBS,EAAK,kCAAkCnC,CAAmB;AAAA,MAC3E,WAAWmC,EAAK9C,KAAa,QAAQ;AAAA,MACrC,kBAAkB8C,EAAK9C,KAAa,UAAUa,KAAA,gBAAAA,EAAiB,gBAAgB;AAAA,MAC/E,cAAY;AAAA,MACZ,SAAAT;AAAA,MACA,SAASF,IAAsB,oBAAI,KAAA,IAASG;AAAA,MAC5C,SAAAC;AAAA,MACA,SAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,qBAAqBC;AAAA,MACrB,iBAAiB;AAAA,MACjB,iBAAgB;AAAA,MAChB,UAAUqB;AAAA,MACV,UAAUE;AAAA,MACV,iBAAiB,gBAAA5C,EAAA,MAAM;AACrB,QAAI,CAACG,EAAMuC,CAAS,KAAKvC,EAAMwC,CAAO,MACpC5B,KAAA,QAAAA,EAAW,CAAC2B,GAAWA,CAAS,EAAE,IAAI,CAACK,MAAMC,EAAMD,CAAC,EAAE,OAAOV,CAAc,CAAC,EAAE,KAAK,GAAG;AAAA,MAE1F,GAJiB;AAAA,MAKjB,WAAAK;AAAA,MACA,SAAAC;AAAA,MACA,aACE,gBAAAa;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,WAAWD;AAAA,YACTtC,KAAkB;AAAA,YAClBC,KAAmB;AAAA,YACnB,CAACD,KAAkB,CAACC,KAAmB;AAAA,YACvCd;AAAA,UAAA;AAAA,UAEF,OAAAC;AAAA,UACA,SAAAC;AAAA,UACA,IAAAC;AAAA,UACC,GAAGY;AAAA,UACJ,gBAAgB+B;AAAA,UAChB,OAAO,gBAAArD,EAAA,MAAMe,KAAA,gBAAAA,EAAW,KAAjB;AAAA,UACP,UAAQ;AAAA,UACR,qBAAAF;AAAA,UACA,gBAAAwB;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAIR,GA1H2B;"}