@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 +1 @@
1
- {"version":3,"file":"OwpSection.js","sources":["../../../src/components/OwpSection/OwpSection.tsx"],"sourcesContent":["import FitbitIcon from '@mui/icons-material/Fitbit';\nimport { Divider, type IconProps } from '@mui/material';\nimport { useHeaderWrapState } from '@/hooks/useHeaderWrapState';\nimport clsx from 'clsx';\nimport type { HTMLAttributes, ReactNode } from 'react';\nimport { OwpPageTitle } from '../OwpPageTitle';\n\ninterface OwpSectionProps {\n className?: string;\n headerProps?: HTMLAttributes<HTMLDivElement>;\n disableTitleIcon?: boolean;\n usePageTitle?: boolean;\n title?: ReactNode;\n actions?: ReactNode;\n leftSlot?: ReactNode;\n centerSlot?: ReactNode;\n children?: ReactNode;\n iconSize?: IconProps['fontSize'];\n}\n\n/**\n * OwpSection 컴포넌트\n * @param className CSS 클래스명\n * @param title 제목\n * @param disableTitleIcon disableTitleIcon 값\n * @param headerProps headerProps props\n * @param usePageTitle usePageTitle 값\n * @param leftSlot leftSlot 값\n * @param centerSlot centerSlot 값\n * @param actions 액션 영역\n */\nconst OwpSection = ({\n className,\n title,\n disableTitleIcon,\n headerProps,\n usePageTitle,\n actions,\n leftSlot,\n centerSlot,\n children,\n iconSize,\n}: OwpSectionProps) => {\n const hasTitle = title !== undefined && title !== null && title !== '';\n const hasSlots = Boolean(leftSlot || centerSlot);\n const { containerRef, titleRef, slotsRef, actionsRef, isWrapped } = useHeaderWrapState([\n title,\n leftSlot,\n centerSlot,\n actions,\n disableTitleIcon,\n iconSize,\n ]);\n const shouldRenderHeader = usePageTitle\n ? Boolean(hasTitle || actions || leftSlot || centerSlot)\n : Boolean(hasTitle || actions || leftSlot || centerSlot);\n\n return (\n <div className={clsx('OwpSection-root flex h-full w-full flex-col', className)}>\n {shouldRenderHeader &&\n (usePageTitle ? (\n <div className=\"OwpSection-header\">\n <div {...headerProps} className={clsx('w-full', headerProps?.className)}>\n <OwpPageTitle\n title={title}\n leftSlot={leftSlot}\n centerSlot={centerSlot}\n actions={actions}\n />\n </div>\n <Divider className=\"my-12\" />\n </div>\n ) : (\n <div className=\"OwpSection-header mb-12 min-h-36 w-full\">\n <div\n ref={containerRef}\n {...headerProps}\n className={clsx(\n 'min-h-36 w-full',\n isWrapped\n ? 'flex flex-col gap-8'\n : 'grid grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-x-8 gap-y-8',\n headerProps?.className,\n )}\n >\n {title && (\n <div\n ref={titleRef}\n className={clsx(\n 'flex shrink-0 items-center gap-8 whitespace-nowrap',\n isWrapped ? 'order-1 self-start' : 'col-start-1',\n )}\n >\n {!disableTitleIcon && (\n <FitbitIcon\n className=\"shrink-0\"\n fontSize={iconSize}\n sx={{ fontSize: iconSize ? undefined : 24, color: 'secondary.main' }}\n />\n )}\n <h6 className=\"shrink-0 whitespace-nowrap text-2xl font-medium\">{title}</h6>\n </div>\n )}\n {hasSlots && (\n <div\n ref={slotsRef}\n className={clsx(\n 'flex max-w-full',\n isWrapped ? 'order-2 self-end justify-end' : 'col-start-2 justify-self-center',\n )}\n >\n <div\n className={clsx(\n 'flex max-w-full items-center gap-8',\n isWrapped ? 'flex-wrap justify-end' : 'flex-nowrap justify-center',\n )}\n >\n {leftSlot && <div className=\"max-w-full\">{leftSlot}</div>}\n {centerSlot && <div className=\"max-w-full\">{centerSlot}</div>}\n </div>\n </div>\n )}\n {actions && (\n <div\n ref={actionsRef}\n className={clsx(\n 'flex max-w-full justify-end',\n isWrapped ? 'order-3 self-end' : 'col-start-3 justify-self-end',\n )}\n >\n <div className=\"flex max-w-full flex-wrap items-center gap-8\">{actions}</div>\n </div>\n )}\n </div>\n </div>\n ))}\n <div className=\"OwpSection-body flex min-h-0 flex-1 flex-col\">{children}</div>\n </div>\n );\n};\n\nexport { OwpSection };\n"],"names":["OwpSection","__name","className","title","disableTitleIcon","headerProps","usePageTitle","actions","leftSlot","centerSlot","children","iconSize","hasTitle","hasSlots","containerRef","titleRef","slotsRef","actionsRef","isWrapped","useHeaderWrapState","shouldRenderHeader","clsx","jsxs","jsx","OwpPageTitle","Divider","FitbitIcon"],"mappings":"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"}
1
+ {"version":3,"file":"OwpSection.js","sources":["../../../src/components/OwpSection/OwpSection.tsx"],"sourcesContent":["import FitbitIcon from '@mui/icons-material/Fitbit';\nimport { CircularProgress, Divider, type IconProps } from '@mui/material';\nimport { useHeaderWrapState } from '@/hooks/useHeaderWrapState';\nimport clsx from 'clsx';\nimport type { HTMLAttributes, ReactNode } from 'react';\nimport { OwpPageTitle } from '../OwpPageTitle';\n\n/**\n * 제목 아이콘 크기\n * @param iconSize MUI 아이콘 크기\n */\nconst getTitleIconSize = (iconSize?: IconProps['fontSize']) => {\n switch (iconSize) {\n case 'inherit':\n return '1em';\n case 'small':\n return '1.25rem';\n case 'large':\n return '2.1875rem';\n case 'medium':\n return '1.5rem';\n default:\n return 24;\n }\n};\n\ninterface OwpSectionProps {\n className?: string;\n headerProps?: HTMLAttributes<HTMLDivElement>;\n disableTitleIcon?: boolean;\n usePageTitle?: boolean;\n title?: ReactNode;\n actions?: ReactNode;\n leftSlot?: ReactNode;\n centerSlot?: ReactNode;\n children?: ReactNode;\n iconSize?: IconProps['fontSize'];\n loading?: boolean;\n}\n\n/**\n * OwpSection 컴포넌트\n * @param className CSS 클래스명\n * @param title 제목\n * @param disableTitleIcon disableTitleIcon 값\n * @param headerProps headerProps props\n * @param usePageTitle usePageTitle 값\n * @param leftSlot leftSlot 값\n * @param centerSlot centerSlot 값\n * @param actions 액션 영역\n * @param loading 로딩 상태\n */\nconst OwpSection = ({\n className,\n title,\n disableTitleIcon,\n headerProps,\n usePageTitle,\n actions,\n leftSlot,\n centerSlot,\n children,\n iconSize,\n loading,\n}: OwpSectionProps) => {\n const hasTitle = title !== undefined && title !== null && title !== '';\n const hasSlots = Boolean(leftSlot || centerSlot);\n const { containerRef, titleRef, slotsRef, actionsRef, isWrapped } = useHeaderWrapState([\n title,\n leftSlot,\n centerSlot,\n actions,\n disableTitleIcon,\n iconSize,\n loading,\n ]);\n const shouldRenderHeader = usePageTitle\n ? Boolean(hasTitle || actions || leftSlot || centerSlot)\n : Boolean(hasTitle || actions || leftSlot || centerSlot);\n\n return (\n <div className={clsx('OwpSection-root flex h-full w-full flex-col', className)}>\n {shouldRenderHeader &&\n (usePageTitle ? (\n <div className=\"OwpSection-header\">\n <div {...headerProps} className={clsx('w-full', headerProps?.className)}>\n <OwpPageTitle\n title={title}\n leftSlot={leftSlot}\n centerSlot={centerSlot}\n actions={actions}\n loading={loading}\n />\n </div>\n <Divider className=\"my-12\" />\n </div>\n ) : (\n <div className=\"OwpSection-header mb-12 min-h-36 w-full\">\n <div\n ref={containerRef}\n {...headerProps}\n className={clsx(\n 'min-h-36 w-full',\n isWrapped\n ? 'flex flex-col gap-8'\n : 'grid grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-x-8 gap-y-8',\n headerProps?.className,\n )}\n >\n {title && (\n <div\n ref={titleRef}\n className={clsx(\n 'flex shrink-0 items-center gap-8 whitespace-nowrap',\n isWrapped ? 'order-1 self-start' : 'col-start-1',\n )}\n >\n {!disableTitleIcon && (\n loading ? (\n <CircularProgress\n className=\"shrink-0\"\n size={getTitleIconSize(iconSize)}\n sx={{ color: 'secondary.main' }}\n />\n ) : (\n <FitbitIcon\n className=\"shrink-0\"\n sx={{ fontSize: getTitleIconSize(iconSize), color: 'secondary.main' }}\n />\n )\n )}\n <h6 className=\"shrink-0 whitespace-nowrap text-2xl font-medium\">{title}</h6>\n </div>\n )}\n {hasSlots && (\n <div\n ref={slotsRef}\n className={clsx(\n 'flex max-w-full',\n isWrapped ? 'order-2 self-end justify-end' : 'col-start-2 justify-self-center',\n )}\n >\n <div\n className={clsx(\n 'flex max-w-full items-center gap-8',\n isWrapped ? 'flex-wrap justify-end' : 'flex-nowrap justify-center',\n )}\n >\n {leftSlot && <div className=\"max-w-full\">{leftSlot}</div>}\n {centerSlot && <div className=\"max-w-full\">{centerSlot}</div>}\n </div>\n </div>\n )}\n {actions && (\n <div\n ref={actionsRef}\n className={clsx(\n 'flex max-w-full justify-end',\n isWrapped ? 'order-3 self-end' : 'col-start-3 justify-self-end',\n )}\n >\n <div className=\"flex max-w-full flex-wrap items-center gap-8\">{actions}</div>\n </div>\n )}\n </div>\n </div>\n ))}\n <div className=\"OwpSection-body flex min-h-0 flex-1 flex-col\">{children}</div>\n </div>\n );\n};\n\nexport { OwpSection };\n"],"names":["getTitleIconSize","__name","iconSize","OwpSection","className","title","disableTitleIcon","headerProps","usePageTitle","actions","leftSlot","centerSlot","children","loading","hasTitle","hasSlots","containerRef","titleRef","slotsRef","actionsRef","isWrapped","useHeaderWrapState","shouldRenderHeader","clsx","jsxs","jsx","OwpPageTitle","Divider","CircularProgress","FitbitIcon"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  var Ee = Object.defineProperty;
2
2
  var o = (a, s) => Ee(a, "name", { value: s, configurable: !0 });
3
- import { jsxs as x, jsx as i, Fragment as S } 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";
3
+ import { jsxs as g, jsx as i, Fragment as S } 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
4
  import { createElement as be } from "@emotion/react";
5
5
  import { useOwpTranslation as ve } from "../../hooks/useOwpTranslation.js";
6
6
  import F from "../../node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/ArrowDropDown.js";
@@ -9,7 +9,7 @@ import { Box as ye, Chip as M, Checkbox as Le, TextField as te, CircularProgress
9
9
  import { alpha as E } from "@mui/material/styles";
10
10
  import { clsx as le } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
11
11
  import { useMemo as re, useState as _e, useRef as ie, useEffect as ae } from "react";
12
- import { isSelectorAllOption as h } from "./utils/querySelectorUtils.js";
12
+ import { isSelectorAllOption as O } from "./utils/querySelectorUtils.js";
13
13
  const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !important", ke = "5px !important", ce = /* @__PURE__ */ o((a, s) => {
14
14
  const p = a.target;
15
15
  return p instanceof HTMLInputElement ? p.value : s ?? "";
@@ -19,12 +19,12 @@ const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !
19
19
  className: D,
20
20
  disableAllValueItem: f,
21
21
  disableClientFilter: _,
22
- disabled: I,
22
+ disabled: h,
23
23
  error: P,
24
24
  fullWidth: A,
25
25
  helperText: N,
26
26
  label: w,
27
- loading: C,
27
+ loading: x,
28
28
  loadingText: k,
29
29
  multiple: V,
30
30
  noOptionsText: de,
@@ -44,7 +44,7 @@ const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !
44
44
  selectMultipleValues: K,
45
45
  selectSingleValue: $
46
46
  } = a, q = f ? H : [b, ...H], y = re(
47
- () => v.filter((e) => !h(e)),
47
+ () => v.filter((e) => !O(e)),
48
48
  [v]
49
49
  ), G = re(
50
50
  () => m ? [] : y.slice(se),
@@ -54,7 +54,8 @@ const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !
54
54
  ), X = {
55
55
  clearIndicator: {
56
56
  className: "m-0 p-0",
57
- size: "small"
57
+ size: "small",
58
+ tabIndex: -1
58
59
  },
59
60
  paper: {
60
61
  sx: {
@@ -68,13 +69,14 @@ const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !
68
69
  },
69
70
  popupIndicator: {
70
71
  className: "m-0 p-0",
71
- size: "small"
72
+ size: "small",
73
+ tabIndex: -1
72
74
  }
73
- }, g = (n == null ? void 0 : n.variant) ?? "standard", Te = g === "standard" ? {
75
+ }, C = (n == null ? void 0 : n.variant) ?? "standard", Te = C === "standard" ? {
74
76
  "& .MuiAutocomplete-input": {
75
77
  paddingLeft: Ne
76
78
  }
77
- } : g === "outlined" ? {
79
+ } : C === "outlined" ? {
78
80
  "& .MuiAutocomplete-input": {
79
81
  paddingLeft: (n == null ? void 0 : n.size) === "small" ? ke : we
80
82
  }
@@ -95,7 +97,7 @@ const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !
95
97
  gap: 0,
96
98
  right: 0
97
99
  }
98
- }, Oe = {
100
+ }, Ie = {
99
101
  ...Y,
100
102
  "& .MuiAutocomplete-inputRoot .MuiAutocomplete-input": {
101
103
  flexBasis: pe,
@@ -120,19 +122,19 @@ const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !
120
122
  e.removeEventListener("reset", t);
121
123
  };
122
124
  }, [W]);
123
- const he = /* @__PURE__ */ o(() => {
125
+ const Oe = /* @__PURE__ */ o(() => {
124
126
  L(null);
125
- }, "handleHiddenChipPopperClose"), Ie = /* @__PURE__ */ o((e) => {
127
+ }, "handleHiddenChipPopperClose"), he = /* @__PURE__ */ o((e) => {
126
128
  e.preventDefault();
127
129
  }, "handleHiddenChipSummaryMouseDown"), Ae = /* @__PURE__ */ o((e) => {
128
130
  e.preventDefault(), e.stopPropagation(), L(
129
131
  (t) => t === e.currentTarget ? null : e.currentTarget
130
132
  );
131
- }, "handleHiddenChipSummaryClick"), Ce = /* @__PURE__ */ o((e) => {
133
+ }, "handleHiddenChipSummaryClick"), xe = /* @__PURE__ */ o((e) => {
132
134
  K(
133
135
  y.filter((t) => t.value !== e).map((t) => t.value)
134
136
  );
135
- }, "handleHiddenChipDelete"), ge = /* @__PURE__ */ o((e) => {
137
+ }, "handleHiddenChipDelete"), Ce = /* @__PURE__ */ o((e) => {
136
138
  var l;
137
139
  const t = ce(e, d);
138
140
  (m || u > 0) && t === "" && (e.key === "Backspace" || e.key === "Delete") && (e.defaultMuiPrevented = !0, e.preventDefault(), e.stopPropagation()), (l = n == null ? void 0 : n.onKeyDown) == null || l.call(
@@ -140,18 +142,18 @@ const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !
140
142
  e
141
143
  );
142
144
  }, "handleMultipleRootKeyDown");
143
- return V ? /* @__PURE__ */ x(S, { children: [
145
+ return V ? /* @__PURE__ */ g(S, { children: [
144
146
  /* @__PURE__ */ i(
145
147
  ne,
146
148
  {
147
149
  ref: Z,
148
150
  className: le("min-w-128", D),
149
151
  disableCloseOnSelect: !0,
150
- disabled: I,
152
+ disabled: h,
151
153
  filterOptions: _ ? (e) => e : void 0,
152
154
  fullWidth: A,
153
155
  inputValue: d,
154
- loading: C,
156
+ loading: x,
155
157
  multiple: !0,
156
158
  options: q,
157
159
  clearText: "",
@@ -159,7 +161,7 @@ const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !
159
161
  clearIcon: /* @__PURE__ */ i(ee, { sx: { fontSize: ue } }),
160
162
  openText: "",
161
163
  popupIcon: /* @__PURE__ */ i(F, {}),
162
- sx: Oe,
164
+ sx: Ie,
163
165
  value: v,
164
166
  getOptionLabel: /* @__PURE__ */ o((e) => me(e.label), "getOptionLabel"),
165
167
  getOptionKey: /* @__PURE__ */ o((e) => e.value, "getOptionKey"),
@@ -183,7 +185,7 @@ const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !
183
185
  U();
184
186
  return;
185
187
  }
186
- if (!f && (r != null && r.option) && h(r.option)) {
188
+ if (!f && (r != null && r.option) && O(r.option)) {
187
189
  if (m) {
188
190
  U();
189
191
  return;
@@ -192,13 +194,13 @@ const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !
192
194
  return;
193
195
  }
194
196
  K(
195
- t.filter((O) => !h(O)).map((O) => O.value)
197
+ t.filter((I) => !O(I)).map((I) => I.value)
196
198
  );
197
199
  }, "onChange"),
198
200
  onInputChange: /* @__PURE__ */ o((e, t, l) => {
199
201
  c == null || c(t, l);
200
202
  }, "onInputChange"),
201
- onKeyDown: ge,
203
+ onKeyDown: Ce,
202
204
  slotProps: X,
203
205
  renderInput: /* @__PURE__ */ o((e) => {
204
206
  var t;
@@ -207,7 +209,7 @@ const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !
207
209
  {
208
210
  ...e,
209
211
  ...n,
210
- disabled: I,
212
+ disabled: h,
211
213
  error: P,
212
214
  fullWidth: A,
213
215
  helperText: N,
@@ -219,19 +221,19 @@ const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !
219
221
  input: {
220
222
  ...e.InputProps,
221
223
  ...(t = n == null ? void 0 : n.slotProps) == null ? void 0 : t.input,
222
- endAdornment: /* @__PURE__ */ x(S, { children: [
223
- C ? /* @__PURE__ */ i(oe, { color: "inherit", size: 16, sx: { mr: 0.5 } }) : null,
224
+ endAdornment: /* @__PURE__ */ g(S, { children: [
225
+ x ? /* @__PURE__ */ i(oe, { color: "inherit", size: 16, sx: { mr: 0.5 } }) : null,
224
226
  e.InputProps.endAdornment
225
227
  ] })
226
228
  }
227
229
  },
228
- variant: g
230
+ variant: C
229
231
  }
230
232
  );
231
233
  }, "renderInput"),
232
234
  renderOption: /* @__PURE__ */ o((e, t, l) => {
233
235
  const { key: r, ...T } = e;
234
- return /* @__PURE__ */ x("li", { ...T, children: [
236
+ return /* @__PURE__ */ g("li", { ...T, children: [
235
237
  /* @__PURE__ */ i(Le, { checked: l.selected, className: "!mr-8 !p-0", size: "small" }),
236
238
  t.label
237
239
  ] }, r);
@@ -247,13 +249,13 @@ const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !
247
249
  b.value
248
250
  )
249
251
  ] : [
250
- ...e.filter((r) => !h(r)).slice(0, se).map((r, T) => {
251
- const { key: O, ...xe } = t({ index: T });
252
+ ...e.filter((r) => !O(r)).slice(0, se).map((r, T) => {
253
+ const { key: I, ...ge } = t({ index: T });
252
254
  return /* @__PURE__ */ be(
253
255
  M,
254
256
  {
255
- ...xe,
256
- key: O,
257
+ ...ge,
258
+ key: I,
257
259
  label: r.label,
258
260
  size: "small",
259
261
  sx: { borderRadius: 1, mr: 0.5 }
@@ -267,7 +269,7 @@ const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !
267
269
  clickable: !0,
268
270
  label: `+${u}`,
269
271
  onClick: Ae,
270
- onMouseDown: Ie,
272
+ onMouseDown: he,
271
273
  size: "small",
272
274
  sx: /* @__PURE__ */ o((r) => ({
273
275
  backgroundColor: E(r.palette.primary.main, 0.14),
@@ -294,7 +296,7 @@ const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !
294
296
  open: !!j && u > 0,
295
297
  placement: "bottom-start",
296
298
  sx: { zIndex: /* @__PURE__ */ o((e) => e.zIndex.modal, "zIndex") },
297
- children: /* @__PURE__ */ i(Se, { onClickAway: he, children: /* @__PURE__ */ i(
299
+ children: /* @__PURE__ */ i(Se, { onClickAway: Oe, children: /* @__PURE__ */ i(
298
300
  Me,
299
301
  {
300
302
  className: "mt-4",
@@ -310,7 +312,7 @@ const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !
310
312
  M,
311
313
  {
312
314
  label: e.label,
313
- onDelete: /* @__PURE__ */ o(() => Ce(e.value), "onDelete"),
315
+ onDelete: /* @__PURE__ */ o(() => xe(e.value), "onDelete"),
314
316
  size: "small",
315
317
  sx: { borderRadius: 1 }
316
318
  },
@@ -324,11 +326,11 @@ const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !
324
326
  ne,
325
327
  {
326
328
  className: le("min-w-128", D),
327
- disabled: I,
329
+ disabled: h,
328
330
  filterOptions: _ ? (e) => e : void 0,
329
331
  fullWidth: A,
330
332
  inputValue: d,
331
- loading: C,
333
+ loading: x,
332
334
  options: q,
333
335
  clearText: "",
334
336
  closeText: "",
@@ -343,7 +345,7 @@ const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !
343
345
  loadingText: k ?? p("Common.로딩 중..."),
344
346
  noOptionsText: J,
345
347
  onChange: /* @__PURE__ */ o((e, t) => {
346
- if (!t || !f && h(t)) {
348
+ if (!t || !f && O(t)) {
347
349
  $("");
348
350
  return;
349
351
  }
@@ -360,7 +362,7 @@ const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !
360
362
  {
361
363
  ...e,
362
364
  ...n,
363
- disabled: I,
365
+ disabled: h,
364
366
  error: P,
365
367
  fullWidth: A,
366
368
  helperText: N,
@@ -377,13 +379,13 @@ const se = 2, Pe = 152, pe = 72, ue = 18.57, Ne = "11px !important", we = "2px !
377
379
  ...e.InputProps.sx ?? {},
378
380
  ...((r = (l = n == null ? void 0 : n.slotProps) == null ? void 0 : l.input) == null ? void 0 : r.sx) ?? {}
379
381
  },
380
- endAdornment: /* @__PURE__ */ x(S, { children: [
381
- C ? /* @__PURE__ */ i(oe, { color: "inherit", size: 16, sx: { mr: 0.5 } }) : null,
382
+ endAdornment: /* @__PURE__ */ g(S, { children: [
383
+ x ? /* @__PURE__ */ i(oe, { color: "inherit", size: 16, sx: { mr: 0.5 } }) : null,
382
384
  e.InputProps.endAdornment
383
385
  ] })
384
386
  }
385
387
  },
386
- variant: g
388
+ variant: C
387
389
  }
388
390
  );
389
391
  }, "renderInput"),
@@ -1 +1 @@
1
- {"version":3,"file":"OwpSelectorAutocomplete.js","sources":["../../../src/components/OwpSelectorBase/OwpSelectorAutocomplete.tsx"],"sourcesContent":["import { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';\nimport ClearIcon from '@mui/icons-material/Clear';\nimport {\n Autocomplete,\n Box,\n Checkbox,\n Chip,\n CircularProgress,\n ClickAwayListener,\n Paper,\n Popper,\n TextField,\n} from '@mui/material';\nimport { alpha } from '@mui/material/styles';\nimport clsx from 'clsx';\nimport {\n type KeyboardEvent as ReactKeyboardEvent,\n type MouseEvent as ReactMouseEvent,\n type MutableRefObject,\n type SyntheticEvent,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type {\n OwpSelectorBaseHookResult,\n OwpSelectorBaseOption,\n OwpSelectorBaseProps,\n} from './types';\nimport { isSelectorAllOption } from './utils';\n\ninterface OwpSelectorAutocompleteProps {\n hookResult: OwpSelectorBaseHookResult;\n props: OwpSelectorBaseProps;\n}\n\nconst MULTIPLE_VISIBLE_CHIP_COUNT = 2;\nconst AUTOCOMPLETE_MIN_WIDTH = 152;\nconst MULTIPLE_AUTOCOMPLETE_INPUT_MIN_WIDTH = 72;\nconst SELECTOR_CLEAR_ICON_FONT_SIZE = 18.57;\nconst STANDARD_AUTOCOMPLETE_INPUT_PADDING_LEFT = '11px !important';\nconst OUTLINED_AUTOCOMPLETE_INPUT_PADDING_LEFT = '2px !important';\nconst OUTLINED_SMALL_AUTOCOMPLETE_INPUT_PADDING_LEFT = '5px !important';\n\ntype SelectorAutocompleteKeyDownEvent = ReactKeyboardEvent<HTMLDivElement> & {\n defaultMuiPrevented?: boolean;\n};\n\n/**\n * 현재 키 이벤트 기준 입력값 반환\n * @param event 키보드 이벤트\n * @param fallbackValue 제어 입력 fallback 값\n */\nconst getCurrentAutocompleteInputValue = (\n event: SelectorAutocompleteKeyDownEvent,\n fallbackValue?: string,\n) => {\n const eventTarget = event.target;\n\n if (eventTarget instanceof HTMLInputElement) {\n return eventTarget.value;\n }\n\n return fallbackValue ?? '';\n};\n\n/**\n * Autocomplete 옵션 라벨 문자열 변환\n * @param label 옵션 라벨\n */\nconst getAutocompleteOptionLabel = (label: OwpSelectorBaseOption['label']) => {\n return typeof label === 'string' || typeof label === 'number' ? `${label}` : '';\n};\n\n/**\n * Autocomplete 기반 공통 선택기\n * @param props Autocomplete 렌더링 props\n */\nexport const OwpSelectorAutocomplete = ({ hookResult, props }: OwpSelectorAutocompleteProps) => {\n const { t } = useOwpTranslation();\n const {\n autocompleteInputValue,\n className,\n disableAllValueItem,\n disableClientFilter,\n disabled,\n error,\n fullWidth,\n helperText,\n label,\n loading,\n loadingText,\n multiple,\n noOptionsText,\n onAutocompleteInputChange,\n placeholder,\n required,\n textFieldProps,\n } = props;\n const {\n allOption,\n clearSelection,\n isAllSelected,\n resolvedOptions,\n restoreAllSelection,\n selectAll,\n selectedOption,\n selectedOptions,\n selectMultipleValues,\n selectSingleValue,\n } = hookResult;\n const options = disableAllValueItem ? resolvedOptions : [allOption, ...resolvedOptions];\n const filteredSelectedOptions = useMemo(\n () => selectedOptions.filter((option) => !isSelectorAllOption(option)),\n [selectedOptions],\n );\n const hiddenSelectedOptions = useMemo(\n () => (isAllSelected ? [] : filteredSelectedOptions.slice(MULTIPLE_VISIBLE_CHIP_COUNT)),\n [filteredSelectedOptions, isAllSelected],\n );\n const hiddenSelectedOptionCount = hiddenSelectedOptions.length;\n const [hiddenChipAnchorEl, setHiddenChipAnchorEl] = useState<HTMLElement | null>(null);\n const autocompleteRootRef = useRef<HTMLDivElement | null>(null);\n const resolvedNoOptionsText = noOptionsText ?? t('Message.검색 결과 없음');\n const shouldRestoreAllOnClearRef = useRef(\n multiple &&\n !disableAllValueItem &&\n ((props.value ?? props.defaultValue) == null || (props.value ?? props.defaultValue) === ''),\n );\n const autocompleteSlotProps = {\n clearIndicator: {\n className: 'm-0 p-0',\n size: 'small',\n },\n paper: {\n sx: {\n '& .MuiAutocomplete-noOptions': {\n fontSize: 14,\n px: 1,\n py: 1.5,\n whiteSpace: 'nowrap',\n },\n },\n },\n popupIndicator: {\n className: 'm-0 p-0',\n size: 'small',\n },\n } as const;\n const resolvedTextFieldVariant = textFieldProps?.variant ?? 'standard';\n const singleAutocompleteInputSx =\n resolvedTextFieldVariant === 'standard'\n ? {\n '& .MuiAutocomplete-input': {\n paddingLeft: STANDARD_AUTOCOMPLETE_INPUT_PADDING_LEFT,\n },\n }\n : resolvedTextFieldVariant === 'outlined'\n ? {\n '& .MuiAutocomplete-input': {\n paddingLeft:\n textFieldProps?.size === 'small'\n ? OUTLINED_SMALL_AUTOCOMPLETE_INPUT_PADDING_LEFT\n : OUTLINED_AUTOCOMPLETE_INPUT_PADDING_LEFT,\n },\n }\n : undefined;\n const autocompleteSx = {\n minWidth: AUTOCOMPLETE_MIN_WIDTH,\n '& .MuiAutocomplete-endAdornment': {\n '& .MuiAutocomplete-clearIndicator + .MuiAutocomplete-popupIndicator': {\n ml: 0,\n },\n '& .MuiIconButton-root': {\n m: 0,\n p: 0,\n },\n '& > :not(style) + :not(style)': {\n ml: 0,\n },\n alignItems: 'center',\n gap: 0,\n right: 0,\n },\n } as const;\n const multipleAutocompleteSx = {\n ...autocompleteSx,\n '& .MuiAutocomplete-inputRoot .MuiAutocomplete-input': {\n flexBasis: MULTIPLE_AUTOCOMPLETE_INPUT_MIN_WIDTH,\n minWidth: MULTIPLE_AUTOCOMPLETE_INPUT_MIN_WIDTH,\n },\n } as const;\n\n useEffect(() => {\n if (!hiddenSelectedOptionCount) {\n setHiddenChipAnchorEl(null);\n }\n }, [hiddenSelectedOptionCount]);\n\n useEffect(() => {\n if (!shouldRestoreAllOnClearRef.current) {\n return;\n }\n\n const formElement = autocompleteRootRef.current?.closest('form');\n\n if (!formElement) {\n return;\n }\n\n const handleFormReset = () => {\n window.setTimeout(() => {\n restoreAllSelection();\n }, 0);\n };\n\n formElement.addEventListener('reset', handleFormReset);\n\n return () => {\n formElement.removeEventListener('reset', handleFormReset);\n };\n }, [restoreAllSelection]);\n\n const handleHiddenChipPopperClose = () => {\n setHiddenChipAnchorEl(null);\n };\n\n const handleHiddenChipSummaryMouseDown = (event: ReactMouseEvent<HTMLElement>) => {\n event.preventDefault();\n };\n\n const handleHiddenChipSummaryClick = (event: ReactMouseEvent<HTMLElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n setHiddenChipAnchorEl((previousAnchorElement) =>\n previousAnchorElement === event.currentTarget ? null : event.currentTarget,\n );\n };\n\n const handleHiddenChipDelete = (optionValue: string) => {\n selectMultipleValues(\n filteredSelectedOptions\n .filter((option) => option.value !== optionValue)\n .map((option) => option.value),\n );\n };\n\n const handleMultipleRootKeyDown = (event: SelectorAutocompleteKeyDownEvent) => {\n const currentInputValue = getCurrentAutocompleteInputValue(event, autocompleteInputValue);\n\n if (\n (isAllSelected || hiddenSelectedOptionCount > 0) &&\n currentInputValue === '' &&\n (event.key === 'Backspace' || event.key === 'Delete')\n ) {\n event.defaultMuiPrevented = true;\n event.preventDefault();\n event.stopPropagation();\n }\n\n textFieldProps?.onKeyDown?.(\n event as Parameters<NonNullable<typeof textFieldProps.onKeyDown>>[0],\n );\n };\n\n if (multiple) {\n return (\n <>\n <Autocomplete\n ref={autocompleteRootRef as MutableRefObject<HTMLDivElement | null>}\n className={clsx('min-w-128', className)}\n disableCloseOnSelect\n disabled={disabled}\n filterOptions={disableClientFilter ? (nextOptions) => nextOptions : undefined}\n fullWidth={fullWidth}\n inputValue={autocompleteInputValue}\n loading={loading}\n multiple\n options={options}\n clearText=\"\"\n closeText=\"\"\n clearIcon={<ClearIcon sx={{ fontSize: SELECTOR_CLEAR_ICON_FONT_SIZE }} />}\n openText=\"\"\n popupIcon={<ArrowDropDownIcon />}\n sx={multipleAutocompleteSx}\n value={selectedOptions}\n getOptionLabel={(option) => getAutocompleteOptionLabel(option.label)}\n getOptionKey={(option) => option.value}\n isOptionEqualToValue={(option, selected) => option.value === selected.value}\n loadingText={loadingText ?? t('Common.로딩 중...')}\n noOptionsText={resolvedNoOptionsText}\n onChange={(\n _event: SyntheticEvent,\n nextOptions: OwpSelectorBaseOption[],\n reason: string,\n details,\n ) => {\n const currentInputValue =\n _event.type === 'keydown'\n ? getCurrentAutocompleteInputValue(\n _event as SelectorAutocompleteKeyDownEvent,\n autocompleteInputValue,\n )\n : (autocompleteInputValue ?? '');\n\n if (\n reason === 'removeOption' &&\n _event.type === 'keydown' &&\n currentInputValue === '' &&\n (isAllSelected || hiddenSelectedOptionCount > 0)\n ) {\n _event.preventDefault();\n _event.stopPropagation();\n return;\n }\n\n if (reason === 'clear') {\n if (shouldRestoreAllOnClearRef.current) {\n selectAll();\n return;\n }\n\n clearSelection();\n return;\n }\n\n if (!disableAllValueItem && details?.option && isSelectorAllOption(details.option)) {\n if (isAllSelected) {\n clearSelection();\n return;\n }\n\n selectAll();\n return;\n }\n\n selectMultipleValues(\n nextOptions\n .filter((option) => !isSelectorAllOption(option))\n .map((option) => option.value),\n );\n }}\n onInputChange={(_event, nextInputValue, reason) => {\n onAutocompleteInputChange?.(nextInputValue, reason);\n }}\n onKeyDown={handleMultipleRootKeyDown}\n slotProps={autocompleteSlotProps}\n renderInput={(params) => (\n <TextField\n {...params}\n {...textFieldProps}\n disabled={disabled}\n error={error}\n fullWidth={fullWidth}\n helperText={helperText}\n label={label}\n placeholder={placeholder ?? t('Common.검색')}\n required={required}\n slotProps={{\n ...textFieldProps?.slotProps,\n input: {\n ...params.InputProps,\n ...textFieldProps?.slotProps?.input,\n endAdornment: (\n <>\n {loading ? (\n <CircularProgress color=\"inherit\" size={16} sx={{ mr: 0.5 }} />\n ) : null}\n {params.InputProps.endAdornment}\n </>\n ),\n },\n }}\n variant={resolvedTextFieldVariant}\n />\n )}\n renderOption={(optionProps, option, state) => {\n const { key, ...restOptionProps } = optionProps;\n\n return (\n <li key={key} {...restOptionProps}>\n <Checkbox checked={state.selected} className=\"!mr-8 !p-0\" size=\"small\" />\n {option.label}\n </li>\n );\n }}\n renderValue={(nextSelectedOptions, getItemProps) => {\n if (!disableAllValueItem && isAllSelected) {\n return [\n <Box\n component=\"span\"\n key={allOption.value}\n sx={{ color: 'text.primary', fontWeight: 500, mr: 0.5 }}\n >\n {allOption.label}\n </Box>,\n ];\n }\n\n const visibleSelectedOptions = nextSelectedOptions\n .filter((option) => !isSelectorAllOption(option))\n .slice(0, MULTIPLE_VISIBLE_CHIP_COUNT);\n\n return [\n ...visibleSelectedOptions.map((option, index) => {\n const { key, ...itemProps } = getItemProps({ index });\n\n return (\n <Chip\n {...itemProps}\n key={key}\n label={option.label}\n size=\"small\"\n sx={{ borderRadius: 1, mr: 0.5 }}\n />\n );\n }),\n ...(hiddenSelectedOptionCount > 0\n ? [\n <Chip\n key=\"owp-selector-hidden-chip-summary\"\n clickable\n label={`+${hiddenSelectedOptionCount}`}\n onClick={handleHiddenChipSummaryClick}\n onMouseDown={handleHiddenChipSummaryMouseDown}\n size=\"small\"\n sx={(theme) => ({\n backgroundColor: alpha(theme.palette.primary.main, 0.14),\n border: `1px solid ${alpha(theme.palette.primary.main, 0.22)}`,\n borderRadius: 1,\n color: theme.palette.primary.dark,\n fontWeight: 600,\n mr: 0.5,\n '&:hover': {\n backgroundColor: alpha(theme.palette.primary.main, 0.2),\n },\n })}\n />,\n ]\n : []),\n ];\n }}\n />\n <Popper\n anchorEl={hiddenChipAnchorEl}\n open={Boolean(hiddenChipAnchorEl) && hiddenSelectedOptionCount > 0}\n placement=\"bottom-start\"\n sx={{ zIndex: (theme) => theme.zIndex.modal }}\n >\n <ClickAwayListener onClickAway={handleHiddenChipPopperClose}>\n <Paper\n className=\"mt-4\"\n sx={{\n border: (theme) => `1px solid ${alpha(theme.palette.common.black, 0.12)}`,\n display: 'flex',\n flexWrap: 'wrap',\n gap: 0.75,\n maxWidth: 280,\n p: 1,\n }}\n >\n {hiddenSelectedOptions.map((option) => (\n <Chip\n key={option.value}\n label={option.label}\n onDelete={() => handleHiddenChipDelete(option.value)}\n size=\"small\"\n sx={{ borderRadius: 1 }}\n />\n ))}\n </Paper>\n </ClickAwayListener>\n </Popper>\n </>\n );\n }\n\n return (\n <Autocomplete\n className={clsx('min-w-128', className)}\n disabled={disabled}\n filterOptions={disableClientFilter ? (nextOptions) => nextOptions : undefined}\n fullWidth={fullWidth}\n inputValue={autocompleteInputValue}\n loading={loading}\n options={options}\n clearText=\"\"\n closeText=\"\"\n clearIcon={<ClearIcon sx={{ fontSize: SELECTOR_CLEAR_ICON_FONT_SIZE }} />}\n openText=\"\"\n popupIcon={<ArrowDropDownIcon />}\n sx={autocompleteSx}\n value={selectedOption}\n getOptionLabel={(option) => getAutocompleteOptionLabel(option.label)}\n getOptionKey={(option) => option.value}\n isOptionEqualToValue={(option, selected) => option.value === selected.value}\n loadingText={loadingText ?? t('Common.로딩 중...')}\n noOptionsText={resolvedNoOptionsText}\n onChange={(_event: SyntheticEvent, nextOption) => {\n if (!nextOption || (!disableAllValueItem && isSelectorAllOption(nextOption))) {\n selectSingleValue('');\n return;\n }\n\n selectSingleValue(nextOption.value);\n }}\n onInputChange={(_event, nextInputValue, reason) => {\n onAutocompleteInputChange?.(nextInputValue, reason);\n }}\n slotProps={autocompleteSlotProps}\n renderInput={(params) => (\n <TextField\n {...params}\n {...textFieldProps}\n disabled={disabled}\n error={error}\n fullWidth={fullWidth}\n helperText={helperText}\n label={label}\n placeholder={placeholder}\n required={required}\n slotProps={{\n ...textFieldProps?.slotProps,\n input: {\n ...params.InputProps,\n ...textFieldProps?.slotProps?.input,\n sx: {\n ...(singleAutocompleteInputSx ?? {}),\n ...((params.InputProps as { sx?: object }).sx ?? {}),\n ...((textFieldProps?.slotProps?.input as { sx?: object } | undefined)?.sx ?? {}),\n },\n endAdornment: (\n <>\n {loading ? <CircularProgress color=\"inherit\" size={16} sx={{ mr: 0.5 }} /> : null}\n {params.InputProps.endAdornment}\n </>\n ),\n },\n }}\n variant={resolvedTextFieldVariant}\n />\n )}\n selectOnFocus\n renderOption={(optionProps, option) => {\n const { key, ...restOptionProps } = optionProps;\n\n return (\n <li key={key} {...restOptionProps}>\n {option.label}\n </li>\n );\n }}\n />\n );\n};\n"],"names":["MULTIPLE_VISIBLE_CHIP_COUNT","AUTOCOMPLETE_MIN_WIDTH","MULTIPLE_AUTOCOMPLETE_INPUT_MIN_WIDTH","SELECTOR_CLEAR_ICON_FONT_SIZE","STANDARD_AUTOCOMPLETE_INPUT_PADDING_LEFT","OUTLINED_AUTOCOMPLETE_INPUT_PADDING_LEFT","OUTLINED_SMALL_AUTOCOMPLETE_INPUT_PADDING_LEFT","getCurrentAutocompleteInputValue","__name","event","fallbackValue","eventTarget","getAutocompleteOptionLabel","label","OwpSelectorAutocomplete","hookResult","props","t","useOwpTranslation","autocompleteInputValue","className","disableAllValueItem","disableClientFilter","disabled","error","fullWidth","helperText","loading","loadingText","multiple","noOptionsText","onAutocompleteInputChange","placeholder","required","textFieldProps","allOption","clearSelection","isAllSelected","resolvedOptions","restoreAllSelection","selectAll","selectedOption","selectedOptions","selectMultipleValues","selectSingleValue","options","filteredSelectedOptions","useMemo","option","isSelectorAllOption","hiddenSelectedOptions","hiddenSelectedOptionCount","hiddenChipAnchorEl","setHiddenChipAnchorEl","useState","autocompleteRootRef","useRef","resolvedNoOptionsText","shouldRestoreAllOnClearRef","autocompleteSlotProps","resolvedTextFieldVariant","singleAutocompleteInputSx","autocompleteSx","multipleAutocompleteSx","useEffect","formElement","_a","handleFormReset","handleHiddenChipPopperClose","handleHiddenChipSummaryMouseDown","handleHiddenChipSummaryClick","previousAnchorElement","handleHiddenChipDelete","optionValue","handleMultipleRootKeyDown","currentInputValue","jsxs","Fragment","jsx","Autocomplete","clsx","nextOptions","ClearIcon","ArrowDropDownIcon","selected","_event","reason","details","nextInputValue","params","TextField","CircularProgress","optionProps","state","key","restOptionProps","Checkbox","nextSelectedOptions","getItemProps","Box","index","itemProps","createElement","Chip","theme","alpha","Popper","ClickAwayListener","Paper","nextOption","_c","_b"],"mappings":"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"}
1
+ {"version":3,"file":"OwpSelectorAutocomplete.js","sources":["../../../src/components/OwpSelectorBase/OwpSelectorAutocomplete.tsx"],"sourcesContent":["import { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';\nimport ClearIcon from '@mui/icons-material/Clear';\nimport {\n Autocomplete,\n Box,\n Checkbox,\n Chip,\n CircularProgress,\n ClickAwayListener,\n Paper,\n Popper,\n TextField,\n} from '@mui/material';\nimport { alpha } from '@mui/material/styles';\nimport clsx from 'clsx';\nimport {\n type KeyboardEvent as ReactKeyboardEvent,\n type MouseEvent as ReactMouseEvent,\n type MutableRefObject,\n type SyntheticEvent,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type {\n OwpSelectorBaseHookResult,\n OwpSelectorBaseOption,\n OwpSelectorBaseProps,\n} from './types';\nimport { isSelectorAllOption } from './utils';\n\ninterface OwpSelectorAutocompleteProps {\n hookResult: OwpSelectorBaseHookResult;\n props: OwpSelectorBaseProps;\n}\n\nconst MULTIPLE_VISIBLE_CHIP_COUNT = 2;\nconst AUTOCOMPLETE_MIN_WIDTH = 152;\nconst MULTIPLE_AUTOCOMPLETE_INPUT_MIN_WIDTH = 72;\nconst SELECTOR_CLEAR_ICON_FONT_SIZE = 18.57;\nconst STANDARD_AUTOCOMPLETE_INPUT_PADDING_LEFT = '11px !important';\nconst OUTLINED_AUTOCOMPLETE_INPUT_PADDING_LEFT = '2px !important';\nconst OUTLINED_SMALL_AUTOCOMPLETE_INPUT_PADDING_LEFT = '5px !important';\n\ntype SelectorAutocompleteKeyDownEvent = ReactKeyboardEvent<HTMLDivElement> & {\n defaultMuiPrevented?: boolean;\n};\n\n/**\n * 현재 키 이벤트 기준 입력값 반환\n * @param event 키보드 이벤트\n * @param fallbackValue 제어 입력 fallback 값\n */\nconst getCurrentAutocompleteInputValue = (\n event: SelectorAutocompleteKeyDownEvent,\n fallbackValue?: string,\n) => {\n const eventTarget = event.target;\n\n if (eventTarget instanceof HTMLInputElement) {\n return eventTarget.value;\n }\n\n return fallbackValue ?? '';\n};\n\n/**\n * Autocomplete 옵션 라벨 문자열 변환\n * @param label 옵션 라벨\n */\nconst getAutocompleteOptionLabel = (label: OwpSelectorBaseOption['label']) => {\n return typeof label === 'string' || typeof label === 'number' ? `${label}` : '';\n};\n\n/**\n * Autocomplete 기반 공통 선택기\n * @param props Autocomplete 렌더링 props\n */\nexport const OwpSelectorAutocomplete = ({ hookResult, props }: OwpSelectorAutocompleteProps) => {\n const { t } = useOwpTranslation();\n const {\n autocompleteInputValue,\n className,\n disableAllValueItem,\n disableClientFilter,\n disabled,\n error,\n fullWidth,\n helperText,\n label,\n loading,\n loadingText,\n multiple,\n noOptionsText,\n onAutocompleteInputChange,\n placeholder,\n required,\n textFieldProps,\n } = props;\n const {\n allOption,\n clearSelection,\n isAllSelected,\n resolvedOptions,\n restoreAllSelection,\n selectAll,\n selectedOption,\n selectedOptions,\n selectMultipleValues,\n selectSingleValue,\n } = hookResult;\n const options = disableAllValueItem ? resolvedOptions : [allOption, ...resolvedOptions];\n const filteredSelectedOptions = useMemo(\n () => selectedOptions.filter((option) => !isSelectorAllOption(option)),\n [selectedOptions],\n );\n const hiddenSelectedOptions = useMemo(\n () => (isAllSelected ? [] : filteredSelectedOptions.slice(MULTIPLE_VISIBLE_CHIP_COUNT)),\n [filteredSelectedOptions, isAllSelected],\n );\n const hiddenSelectedOptionCount = hiddenSelectedOptions.length;\n const [hiddenChipAnchorEl, setHiddenChipAnchorEl] = useState<HTMLElement | null>(null);\n const autocompleteRootRef = useRef<HTMLDivElement | null>(null);\n const resolvedNoOptionsText = noOptionsText ?? t('Message.검색 결과 없음');\n const shouldRestoreAllOnClearRef = useRef(\n multiple &&\n !disableAllValueItem &&\n ((props.value ?? props.defaultValue) == null || (props.value ?? props.defaultValue) === ''),\n );\n const autocompleteSlotProps = {\n clearIndicator: {\n className: 'm-0 p-0',\n size: 'small',\n tabIndex: -1,\n },\n paper: {\n sx: {\n '& .MuiAutocomplete-noOptions': {\n fontSize: 14,\n px: 1,\n py: 1.5,\n whiteSpace: 'nowrap',\n },\n },\n },\n popupIndicator: {\n className: 'm-0 p-0',\n size: 'small',\n tabIndex: -1,\n },\n } as const;\n const resolvedTextFieldVariant = textFieldProps?.variant ?? 'standard';\n const singleAutocompleteInputSx =\n resolvedTextFieldVariant === 'standard'\n ? {\n '& .MuiAutocomplete-input': {\n paddingLeft: STANDARD_AUTOCOMPLETE_INPUT_PADDING_LEFT,\n },\n }\n : resolvedTextFieldVariant === 'outlined'\n ? {\n '& .MuiAutocomplete-input': {\n paddingLeft:\n textFieldProps?.size === 'small'\n ? OUTLINED_SMALL_AUTOCOMPLETE_INPUT_PADDING_LEFT\n : OUTLINED_AUTOCOMPLETE_INPUT_PADDING_LEFT,\n },\n }\n : undefined;\n const autocompleteSx = {\n minWidth: AUTOCOMPLETE_MIN_WIDTH,\n '& .MuiAutocomplete-endAdornment': {\n '& .MuiAutocomplete-clearIndicator + .MuiAutocomplete-popupIndicator': {\n ml: 0,\n },\n '& .MuiIconButton-root': {\n m: 0,\n p: 0,\n },\n '& > :not(style) + :not(style)': {\n ml: 0,\n },\n alignItems: 'center',\n gap: 0,\n right: 0,\n },\n } as const;\n const multipleAutocompleteSx = {\n ...autocompleteSx,\n '& .MuiAutocomplete-inputRoot .MuiAutocomplete-input': {\n flexBasis: MULTIPLE_AUTOCOMPLETE_INPUT_MIN_WIDTH,\n minWidth: MULTIPLE_AUTOCOMPLETE_INPUT_MIN_WIDTH,\n },\n } as const;\n\n useEffect(() => {\n if (!hiddenSelectedOptionCount) {\n setHiddenChipAnchorEl(null);\n }\n }, [hiddenSelectedOptionCount]);\n\n useEffect(() => {\n if (!shouldRestoreAllOnClearRef.current) {\n return;\n }\n\n const formElement = autocompleteRootRef.current?.closest('form');\n\n if (!formElement) {\n return;\n }\n\n const handleFormReset = () => {\n window.setTimeout(() => {\n restoreAllSelection();\n }, 0);\n };\n\n formElement.addEventListener('reset', handleFormReset);\n\n return () => {\n formElement.removeEventListener('reset', handleFormReset);\n };\n }, [restoreAllSelection]);\n\n const handleHiddenChipPopperClose = () => {\n setHiddenChipAnchorEl(null);\n };\n\n const handleHiddenChipSummaryMouseDown = (event: ReactMouseEvent<HTMLElement>) => {\n event.preventDefault();\n };\n\n const handleHiddenChipSummaryClick = (event: ReactMouseEvent<HTMLElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n setHiddenChipAnchorEl((previousAnchorElement) =>\n previousAnchorElement === event.currentTarget ? null : event.currentTarget,\n );\n };\n\n const handleHiddenChipDelete = (optionValue: string) => {\n selectMultipleValues(\n filteredSelectedOptions\n .filter((option) => option.value !== optionValue)\n .map((option) => option.value),\n );\n };\n\n const handleMultipleRootKeyDown = (event: SelectorAutocompleteKeyDownEvent) => {\n const currentInputValue = getCurrentAutocompleteInputValue(event, autocompleteInputValue);\n\n if (\n (isAllSelected || hiddenSelectedOptionCount > 0) &&\n currentInputValue === '' &&\n (event.key === 'Backspace' || event.key === 'Delete')\n ) {\n event.defaultMuiPrevented = true;\n event.preventDefault();\n event.stopPropagation();\n }\n\n textFieldProps?.onKeyDown?.(\n event as Parameters<NonNullable<typeof textFieldProps.onKeyDown>>[0],\n );\n };\n\n if (multiple) {\n return (\n <>\n <Autocomplete\n ref={autocompleteRootRef as MutableRefObject<HTMLDivElement | null>}\n className={clsx('min-w-128', className)}\n disableCloseOnSelect\n disabled={disabled}\n filterOptions={disableClientFilter ? (nextOptions) => nextOptions : undefined}\n fullWidth={fullWidth}\n inputValue={autocompleteInputValue}\n loading={loading}\n multiple\n options={options}\n clearText=\"\"\n closeText=\"\"\n clearIcon={<ClearIcon sx={{ fontSize: SELECTOR_CLEAR_ICON_FONT_SIZE }} />}\n openText=\"\"\n popupIcon={<ArrowDropDownIcon />}\n sx={multipleAutocompleteSx}\n value={selectedOptions}\n getOptionLabel={(option) => getAutocompleteOptionLabel(option.label)}\n getOptionKey={(option) => option.value}\n isOptionEqualToValue={(option, selected) => option.value === selected.value}\n loadingText={loadingText ?? t('Common.로딩 중...')}\n noOptionsText={resolvedNoOptionsText}\n onChange={(\n _event: SyntheticEvent,\n nextOptions: OwpSelectorBaseOption[],\n reason: string,\n details,\n ) => {\n const currentInputValue =\n _event.type === 'keydown'\n ? getCurrentAutocompleteInputValue(\n _event as SelectorAutocompleteKeyDownEvent,\n autocompleteInputValue,\n )\n : (autocompleteInputValue ?? '');\n\n if (\n reason === 'removeOption' &&\n _event.type === 'keydown' &&\n currentInputValue === '' &&\n (isAllSelected || hiddenSelectedOptionCount > 0)\n ) {\n _event.preventDefault();\n _event.stopPropagation();\n return;\n }\n\n if (reason === 'clear') {\n if (shouldRestoreAllOnClearRef.current) {\n selectAll();\n return;\n }\n\n clearSelection();\n return;\n }\n\n if (!disableAllValueItem && details?.option && isSelectorAllOption(details.option)) {\n if (isAllSelected) {\n clearSelection();\n return;\n }\n\n selectAll();\n return;\n }\n\n selectMultipleValues(\n nextOptions\n .filter((option) => !isSelectorAllOption(option))\n .map((option) => option.value),\n );\n }}\n onInputChange={(_event, nextInputValue, reason) => {\n onAutocompleteInputChange?.(nextInputValue, reason);\n }}\n onKeyDown={handleMultipleRootKeyDown}\n slotProps={autocompleteSlotProps}\n renderInput={(params) => (\n <TextField\n {...params}\n {...textFieldProps}\n disabled={disabled}\n error={error}\n fullWidth={fullWidth}\n helperText={helperText}\n label={label}\n placeholder={placeholder ?? t('Common.검색')}\n required={required}\n slotProps={{\n ...textFieldProps?.slotProps,\n input: {\n ...params.InputProps,\n ...textFieldProps?.slotProps?.input,\n endAdornment: (\n <>\n {loading ? (\n <CircularProgress color=\"inherit\" size={16} sx={{ mr: 0.5 }} />\n ) : null}\n {params.InputProps.endAdornment}\n </>\n ),\n },\n }}\n variant={resolvedTextFieldVariant}\n />\n )}\n renderOption={(optionProps, option, state) => {\n const { key, ...restOptionProps } = optionProps;\n\n return (\n <li key={key} {...restOptionProps}>\n <Checkbox checked={state.selected} className=\"!mr-8 !p-0\" size=\"small\" />\n {option.label}\n </li>\n );\n }}\n renderValue={(nextSelectedOptions, getItemProps) => {\n if (!disableAllValueItem && isAllSelected) {\n return [\n <Box\n component=\"span\"\n key={allOption.value}\n sx={{ color: 'text.primary', fontWeight: 500, mr: 0.5 }}\n >\n {allOption.label}\n </Box>,\n ];\n }\n\n const visibleSelectedOptions = nextSelectedOptions\n .filter((option) => !isSelectorAllOption(option))\n .slice(0, MULTIPLE_VISIBLE_CHIP_COUNT);\n\n return [\n ...visibleSelectedOptions.map((option, index) => {\n const { key, ...itemProps } = getItemProps({ index });\n\n return (\n <Chip\n {...itemProps}\n key={key}\n label={option.label}\n size=\"small\"\n sx={{ borderRadius: 1, mr: 0.5 }}\n />\n );\n }),\n ...(hiddenSelectedOptionCount > 0\n ? [\n <Chip\n key=\"owp-selector-hidden-chip-summary\"\n clickable\n label={`+${hiddenSelectedOptionCount}`}\n onClick={handleHiddenChipSummaryClick}\n onMouseDown={handleHiddenChipSummaryMouseDown}\n size=\"small\"\n sx={(theme) => ({\n backgroundColor: alpha(theme.palette.primary.main, 0.14),\n border: `1px solid ${alpha(theme.palette.primary.main, 0.22)}`,\n borderRadius: 1,\n color: theme.palette.primary.dark,\n fontWeight: 600,\n mr: 0.5,\n '&:hover': {\n backgroundColor: alpha(theme.palette.primary.main, 0.2),\n },\n })}\n />,\n ]\n : []),\n ];\n }}\n />\n <Popper\n anchorEl={hiddenChipAnchorEl}\n open={Boolean(hiddenChipAnchorEl) && hiddenSelectedOptionCount > 0}\n placement=\"bottom-start\"\n sx={{ zIndex: (theme) => theme.zIndex.modal }}\n >\n <ClickAwayListener onClickAway={handleHiddenChipPopperClose}>\n <Paper\n className=\"mt-4\"\n sx={{\n border: (theme) => `1px solid ${alpha(theme.palette.common.black, 0.12)}`,\n display: 'flex',\n flexWrap: 'wrap',\n gap: 0.75,\n maxWidth: 280,\n p: 1,\n }}\n >\n {hiddenSelectedOptions.map((option) => (\n <Chip\n key={option.value}\n label={option.label}\n onDelete={() => handleHiddenChipDelete(option.value)}\n size=\"small\"\n sx={{ borderRadius: 1 }}\n />\n ))}\n </Paper>\n </ClickAwayListener>\n </Popper>\n </>\n );\n }\n\n return (\n <Autocomplete\n className={clsx('min-w-128', className)}\n disabled={disabled}\n filterOptions={disableClientFilter ? (nextOptions) => nextOptions : undefined}\n fullWidth={fullWidth}\n inputValue={autocompleteInputValue}\n loading={loading}\n options={options}\n clearText=\"\"\n closeText=\"\"\n clearIcon={<ClearIcon sx={{ fontSize: SELECTOR_CLEAR_ICON_FONT_SIZE }} />}\n openText=\"\"\n popupIcon={<ArrowDropDownIcon />}\n sx={autocompleteSx}\n value={selectedOption}\n getOptionLabel={(option) => getAutocompleteOptionLabel(option.label)}\n getOptionKey={(option) => option.value}\n isOptionEqualToValue={(option, selected) => option.value === selected.value}\n loadingText={loadingText ?? t('Common.로딩 중...')}\n noOptionsText={resolvedNoOptionsText}\n onChange={(_event: SyntheticEvent, nextOption) => {\n if (!nextOption || (!disableAllValueItem && isSelectorAllOption(nextOption))) {\n selectSingleValue('');\n return;\n }\n\n selectSingleValue(nextOption.value);\n }}\n onInputChange={(_event, nextInputValue, reason) => {\n onAutocompleteInputChange?.(nextInputValue, reason);\n }}\n slotProps={autocompleteSlotProps}\n renderInput={(params) => (\n <TextField\n {...params}\n {...textFieldProps}\n disabled={disabled}\n error={error}\n fullWidth={fullWidth}\n helperText={helperText}\n label={label}\n placeholder={placeholder}\n required={required}\n slotProps={{\n ...textFieldProps?.slotProps,\n input: {\n ...params.InputProps,\n ...textFieldProps?.slotProps?.input,\n sx: {\n ...(singleAutocompleteInputSx ?? {}),\n ...((params.InputProps as { sx?: object }).sx ?? {}),\n ...((textFieldProps?.slotProps?.input as { sx?: object } | undefined)?.sx ?? {}),\n },\n endAdornment: (\n <>\n {loading ? <CircularProgress color=\"inherit\" size={16} sx={{ mr: 0.5 }} /> : null}\n {params.InputProps.endAdornment}\n </>\n ),\n },\n }}\n variant={resolvedTextFieldVariant}\n />\n )}\n selectOnFocus\n renderOption={(optionProps, option) => {\n const { key, ...restOptionProps } = optionProps;\n\n return (\n <li key={key} {...restOptionProps}>\n {option.label}\n </li>\n );\n }}\n />\n );\n};\n"],"names":["MULTIPLE_VISIBLE_CHIP_COUNT","AUTOCOMPLETE_MIN_WIDTH","MULTIPLE_AUTOCOMPLETE_INPUT_MIN_WIDTH","SELECTOR_CLEAR_ICON_FONT_SIZE","STANDARD_AUTOCOMPLETE_INPUT_PADDING_LEFT","OUTLINED_AUTOCOMPLETE_INPUT_PADDING_LEFT","OUTLINED_SMALL_AUTOCOMPLETE_INPUT_PADDING_LEFT","getCurrentAutocompleteInputValue","__name","event","fallbackValue","eventTarget","getAutocompleteOptionLabel","label","OwpSelectorAutocomplete","hookResult","props","t","useOwpTranslation","autocompleteInputValue","className","disableAllValueItem","disableClientFilter","disabled","error","fullWidth","helperText","loading","loadingText","multiple","noOptionsText","onAutocompleteInputChange","placeholder","required","textFieldProps","allOption","clearSelection","isAllSelected","resolvedOptions","restoreAllSelection","selectAll","selectedOption","selectedOptions","selectMultipleValues","selectSingleValue","options","filteredSelectedOptions","useMemo","option","isSelectorAllOption","hiddenSelectedOptions","hiddenSelectedOptionCount","hiddenChipAnchorEl","setHiddenChipAnchorEl","useState","autocompleteRootRef","useRef","resolvedNoOptionsText","shouldRestoreAllOnClearRef","autocompleteSlotProps","resolvedTextFieldVariant","singleAutocompleteInputSx","autocompleteSx","multipleAutocompleteSx","useEffect","formElement","_a","handleFormReset","handleHiddenChipPopperClose","handleHiddenChipSummaryMouseDown","handleHiddenChipSummaryClick","previousAnchorElement","handleHiddenChipDelete","optionValue","handleMultipleRootKeyDown","currentInputValue","jsxs","Fragment","jsx","Autocomplete","clsx","nextOptions","ClearIcon","ArrowDropDownIcon","selected","_event","reason","details","nextInputValue","params","TextField","CircularProgress","optionProps","state","key","restOptionProps","Checkbox","nextSelectedOptions","getItemProps","Box","index","itemProps","createElement","Chip","theme","alpha","Popper","ClickAwayListener","Paper","nextOption","_c","_b"],"mappings":"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"}