@owp/core 2.2.5 → 2.2.6

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 (132) hide show
  1. package/dist/_virtual/index5.js +2 -5
  2. package/dist/_virtual/index5.js.map +1 -1
  3. package/dist/_virtual/index6.js +5 -2
  4. package/dist/_virtual/index6.js.map +1 -1
  5. package/dist/_virtual/index7.js +2 -2
  6. package/dist/components/OwpDialog/OwpDialog.js +48 -46
  7. package/dist/components/OwpDialog/OwpDialog.js.map +1 -1
  8. package/dist/components/OwpErrorStatusPage/OwpErrorStatusPage.js +24 -24
  9. package/dist/components/OwpErrorStatusPage/OwpErrorStatusPage.js.map +1 -1
  10. package/dist/components/OwpMrtTable/OwpMrtTable.js +2 -2
  11. package/dist/components/OwpMrtTable/OwpMrtTable.js.map +1 -1
  12. package/dist/components/OwpMrtTable/{OwpMrtTableNoDataOverlay.js → internal/OwpMrtTableNoDataOverlay.js} +1 -1
  13. package/dist/components/OwpMrtTable/internal/OwpMrtTableNoDataOverlay.js.map +1 -0
  14. package/dist/components/OwpMrtTable/{OwpMrtTableTopToolbar.js → internal/OwpMrtTableTopToolbar.js} +3 -3
  15. package/dist/components/OwpMrtTable/internal/OwpMrtTableTopToolbar.js.map +1 -0
  16. package/dist/components/OwpPageCarded/OwpPageCarded.js +81 -77
  17. package/dist/components/OwpPageCarded/OwpPageCarded.js.map +1 -1
  18. package/dist/components/OwpPageCarded/{OwpPageCardedHeader.js → internal/OwpPageCardedHeader.js} +2 -2
  19. package/dist/components/OwpPageCarded/internal/OwpPageCardedHeader.js.map +1 -0
  20. package/dist/components/OwpPageCarded/{OwpPageCardedSidebar.js → internal/OwpPageCardedSidebar.js} +3 -3
  21. package/dist/components/OwpPageCarded/internal/OwpPageCardedSidebar.js.map +1 -0
  22. package/dist/components/OwpPageCarded/{OwpPageCardedSidebarContent.js → internal/OwpPageCardedSidebarContent.js} +2 -2
  23. package/dist/components/OwpPageCarded/internal/OwpPageCardedSidebarContent.js.map +1 -0
  24. package/dist/components/OwpPicker/OwpDatePicker.js +90 -83
  25. package/dist/components/OwpPicker/OwpDatePicker.js.map +1 -1
  26. package/dist/components/OwpPicker/OwpDateRangePicker.js +57 -50
  27. package/dist/components/OwpPicker/OwpDateRangePicker.js.map +1 -1
  28. package/dist/components/OwpPicker/OwpTimePicker.js +65 -61
  29. package/dist/components/OwpPicker/OwpTimePicker.js.map +1 -1
  30. package/dist/components/OwpPicker/OwpWeekDatePicker.js +58 -52
  31. package/dist/components/OwpPicker/OwpWeekDatePicker.js.map +1 -1
  32. package/dist/components/OwpPicker/OwpYearRangePicker.js +68 -62
  33. package/dist/components/OwpPicker/OwpYearRangePicker.js.map +1 -1
  34. package/dist/components/OwpPicker/{constants.js → constants/index.js} +1 -1
  35. package/dist/components/OwpPicker/constants/index.js.map +1 -0
  36. package/dist/components/OwpPicker/{AnimatedCalendarContainer.js → internal/AnimatedCalendarContainer.js} +2 -2
  37. package/dist/components/OwpPicker/internal/AnimatedCalendarContainer.js.map +1 -0
  38. package/dist/components/OwpPicker/{CalendarContainer.js → internal/CalendarContainer.js} +2 -2
  39. package/dist/components/OwpPicker/internal/CalendarContainer.js.map +1 -0
  40. package/dist/components/OwpPicker/{DatePickerInput.js → internal/DatePickerInput.js} +4 -4
  41. package/dist/components/OwpPicker/internal/DatePickerInput.js.map +1 -0
  42. package/dist/components/OwpQuerySelector/OwpQuerySelector.js +205 -171
  43. package/dist/components/OwpQuerySelector/OwpQuerySelector.js.map +1 -1
  44. package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js +112 -103
  45. package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js.map +1 -1
  46. package/dist/components/OwpStyleProvider/OwpStyleProvider.js +90 -42
  47. package/dist/components/OwpStyleProvider/OwpStyleProvider.js.map +1 -1
  48. package/dist/components/OwpSuspense/OwpSuspense.js.map +1 -1
  49. package/dist/components/OwpTable/OwpTable.js +50 -51
  50. package/dist/components/OwpTable/OwpTable.js.map +1 -1
  51. package/dist/components/OwpTreeGrid/OwpTreeGrid.js +163 -308
  52. package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
  53. package/dist/components/OwpTreeGrid/hooks/useOwpTreeGridOverlayFrame.js +1 -1
  54. package/dist/components/OwpTreeGrid/hooks/useOwpTreeGridOverlayFrame.js.map +1 -1
  55. package/dist/components/OwpTreeGrid/{OwpTreeGridLoadingOverlay.js → internal/OwpTreeGridLoadingOverlay.js} +2 -2
  56. package/dist/components/OwpTreeGrid/internal/OwpTreeGridLoadingOverlay.js.map +1 -0
  57. package/dist/components/OwpTreeGrid/{OwpTreeGridNoDataOverlay.js → internal/OwpTreeGridNoDataOverlay.js} +2 -2
  58. package/dist/components/OwpTreeGrid/internal/OwpTreeGridNoDataOverlay.js.map +1 -0
  59. package/dist/components/OwpTreeGrid/{utils/index.js → internal/treeGridLayout.js} +1 -1
  60. package/dist/components/OwpTreeGrid/internal/treeGridLayout.js.map +1 -0
  61. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +176 -0
  62. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js.map +1 -0
  63. package/dist/components/OwpTreeGrid/utils/perf.js.map +1 -0
  64. package/dist/components/OwpZoomImageSlider/OwpZoomImageSlider.js +1 -1
  65. package/dist/components/OwpZoomImageSlider/OwpZoomImageSlider.js.map +1 -1
  66. package/dist/components/OwpZoomImageSlider/{ZoomImage.js → internal/ZoomImage.js} +1 -1
  67. package/dist/components/OwpZoomImageSlider/internal/ZoomImage.js.map +1 -0
  68. package/dist/index.js +98 -104
  69. package/dist/index.js.map +1 -1
  70. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
  71. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/constants.js +1 -1
  72. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
  73. package/dist/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js +1 -1
  74. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
  75. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
  76. package/dist/node_modules/.pnpm/react-imask@7.6.1_react@19.2.4/node_modules/react-imask/esm/mixin.js +1 -1
  77. package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js +1 -1
  78. 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
  79. package/dist/owp-app.css +1 -1
  80. package/dist/types/components/OwpPageCarded/OwpPageCarded.d.ts +12 -41
  81. package/dist/types/components/OwpPageSkeleton/index.d.ts +1 -0
  82. package/dist/types/components/OwpPicker/OwpWeekDatePicker.d.ts +0 -1
  83. package/dist/types/components/OwpPicker/OwpYearRangePicker.d.ts +0 -1
  84. package/dist/types/components/OwpQuerySelector/OwpQuerySelector.d.ts +1 -1
  85. package/dist/types/components/OwpQuerySelector/types/types.d.ts +2 -0
  86. package/dist/types/components/OwpTreeGrid/OwpTreeGrid.d.ts +3 -1
  87. package/dist/types/components/OwpTreeGrid/{OwpTreeGridLoadingOverlay.d.ts → internal/OwpTreeGridLoadingOverlay.d.ts} +1 -1
  88. package/dist/types/components/OwpTreeGrid/{OwpTreeGridNoDataOverlay.d.ts → internal/OwpTreeGridNoDataOverlay.d.ts} +1 -1
  89. package/dist/types/components/OwpTreeGrid/{utils/index.d.ts → internal/treeGridLayout.d.ts} +0 -2
  90. package/dist/types/components/OwpTreeGrid/internal/treeGridRuntime.d.ts +75 -0
  91. package/dist/types/index.d.ts +1 -4
  92. package/dist/types/store/navigationSlice.d.ts +1 -0
  93. package/dist/types/types/OwpNavigationTypes.d.ts +14 -0
  94. package/dist/types/types/index.d.ts +1 -1
  95. package/dist/types/utils/index.d.ts +1 -0
  96. package/dist/types/utils/navigationUtils.d.ts +6 -2
  97. package/dist/types/utils/normalizeTimeToHourMinute.d.ts +11 -0
  98. package/dist/utils/navigationUtils.js.map +1 -1
  99. package/dist/utils/normalizeTimeToHourMinute.js +34 -0
  100. package/dist/utils/normalizeTimeToHourMinute.js.map +1 -0
  101. package/dist/utils/treeGridUtil.js +1 -1
  102. package/dist/utils/treeGridUtil.js.map +1 -1
  103. package/dist/utils.js +78 -75
  104. package/dist/utils.js.map +1 -1
  105. package/package.json +1 -1
  106. package/dist/components/OwpMrtTable/OwpMrtTableNoDataOverlay.js.map +0 -1
  107. package/dist/components/OwpMrtTable/OwpMrtTableTopToolbar.js.map +0 -1
  108. package/dist/components/OwpPageCarded/OwpPageCardedHeader.js.map +0 -1
  109. package/dist/components/OwpPageCarded/OwpPageCardedSidebar.js.map +0 -1
  110. package/dist/components/OwpPageCarded/OwpPageCardedSidebarContent.js.map +0 -1
  111. package/dist/components/OwpPicker/AnimatedCalendarContainer.js.map +0 -1
  112. package/dist/components/OwpPicker/CalendarContainer.js.map +0 -1
  113. package/dist/components/OwpPicker/DatePickerInput.js.map +0 -1
  114. package/dist/components/OwpPicker/constants.js.map +0 -1
  115. package/dist/components/OwpTreeGrid/OwpTreeGridLoadingOverlay.js.map +0 -1
  116. package/dist/components/OwpTreeGrid/OwpTreeGridNoDataOverlay.js.map +0 -1
  117. package/dist/components/OwpTreeGrid/perf.js.map +0 -1
  118. package/dist/components/OwpTreeGrid/utils/index.js.map +0 -1
  119. package/dist/components/OwpZoomImageSlider/ZoomImage.js.map +0 -1
  120. package/dist/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/react-datepicker.css +0 -1
  121. /package/dist/components/OwpTreeGrid/{perf.js → utils/perf.js} +0 -0
  122. /package/dist/types/components/OwpMrtTable/{OwpMrtTableNoDataOverlay.d.ts → internal/OwpMrtTableNoDataOverlay.d.ts} +0 -0
  123. /package/dist/types/components/OwpMrtTable/{OwpMrtTableTopToolbar.d.ts → internal/OwpMrtTableTopToolbar.d.ts} +0 -0
  124. /package/dist/types/components/OwpPageCarded/{OwpPageCardedHeader.d.ts → internal/OwpPageCardedHeader.d.ts} +0 -0
  125. /package/dist/types/components/OwpPageCarded/{OwpPageCardedSidebar.d.ts → internal/OwpPageCardedSidebar.d.ts} +0 -0
  126. /package/dist/types/components/OwpPageCarded/{OwpPageCardedSidebarContent.d.ts → internal/OwpPageCardedSidebarContent.d.ts} +0 -0
  127. /package/dist/types/components/OwpPicker/{constants.d.ts → constants/index.d.ts} +0 -0
  128. /package/dist/types/components/OwpPicker/{AnimatedCalendarContainer.d.ts → internal/AnimatedCalendarContainer.d.ts} +0 -0
  129. /package/dist/types/components/OwpPicker/{CalendarContainer.d.ts → internal/CalendarContainer.d.ts} +0 -0
  130. /package/dist/types/components/OwpPicker/{DatePickerInput.d.ts → internal/DatePickerInput.d.ts} +0 -0
  131. /package/dist/types/components/OwpTreeGrid/{perf.d.ts → utils/perf.d.ts} +0 -0
  132. /package/dist/types/components/OwpZoomImageSlider/{ZoomImage.d.ts → internal/ZoomImage.d.ts} +0 -0
@@ -1,56 +1,56 @@
1
- var ge = Object.defineProperty;
2
- var n = (a, s) => ge(a, "name", { value: s, configurable: !0 });
3
- import { jsxs as C, jsx as r, Fragment as M } 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 { createElement as xe } from "@emotion/react";
5
- import { useOwpTranslation as be } from "../../hooks/useOwpTranslation.js";
1
+ var xe = Object.defineProperty;
2
+ var n = (a, s) => xe(a, "name", { value: s, configurable: !0 });
3
+ import { jsxs as x, jsx as i, Fragment as M } 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 { createElement as be } from "@emotion/react";
5
+ import { useOwpTranslation as ye } from "../../hooks/useOwpTranslation.js";
6
6
  import Y 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";
7
7
  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/Clear.js";
8
- import { Box as ve, Chip as E, Checkbox as Ae, TextField as ee, CircularProgress as te, Autocomplete as oe, ClickAwayListener as ye, Paper as Se, Popper as Me } from "@mui/material";
9
- import { alpha as g } from "@mui/material/styles";
8
+ import { Box as Ae, Chip as E, Checkbox as ve, TextField as ee, CircularProgress as te, Autocomplete as oe, ClickAwayListener as Se, Paper as Me, Popper as Ee } from "@mui/material";
9
+ import { alpha as b } from "@mui/material/styles";
10
10
  import { clsx as ne } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
11
- import { useMemo as le, useState as Ee, useRef as re, useEffect as ie } from "react";
12
- import { isSelectorAllOption as h } from "./utils/querySelectorUtils.js";
13
- const ae = 2, we = 152, se = 72, ue = 18.57, pe = /* @__PURE__ */ n((a, s) => {
11
+ import { useMemo as le, useState as we, useRef as re, useEffect as ie } from "react";
12
+ import { isSelectorAllOption as O } from "./utils/querySelectorUtils.js";
13
+ const ae = 2, ke = 152, se = 72, ue = 18.57, pe = /* @__PURE__ */ n((a, s) => {
14
14
  const u = a.target;
15
15
  return u instanceof HTMLInputElement ? u.value : s ?? "";
16
- }, "getCurrentAutocompleteInputValue"), ce = /* @__PURE__ */ n((a) => typeof a == "string" || typeof a == "number" ? `${a}` : "", "getAutocompleteOptionLabel"), Be = /* @__PURE__ */ n(({ hookResult: a, props: s }) => {
17
- const { t: u } = be(), {
16
+ }, "getCurrentAutocompleteInputValue"), ce = /* @__PURE__ */ n((a) => typeof a == "string" || typeof a == "number" ? `${a}` : "", "getAutocompleteOptionLabel"), Ue = /* @__PURE__ */ n(({ hookResult: a, props: s }) => {
17
+ const { t: u } = ye(), {
18
18
  autocompleteInputValue: d,
19
19
  className: w,
20
20
  disableAllValueItem: f,
21
21
  disableClientFilter: k,
22
- disabled: I,
22
+ disabled: T,
23
23
  error: L,
24
- fullWidth: O,
24
+ fullWidth: C,
25
25
  helperText: D,
26
- label: V,
27
- loading: T,
28
- loadingText: N,
29
- multiple: z,
26
+ label: P,
27
+ loading: g,
28
+ loadingText: V,
29
+ multiple: N,
30
30
  noOptionsText: me,
31
31
  onAutocompleteInputChange: c,
32
- placeholder: R,
33
- required: P,
32
+ placeholder: z,
33
+ required: R,
34
34
  textFieldProps: o
35
35
  } = s, {
36
- allOption: x,
36
+ allOption: y,
37
37
  clearSelection: _,
38
38
  isAllSelected: m,
39
39
  resolvedOptions: H,
40
40
  restoreAllSelection: W,
41
41
  selectAll: B,
42
42
  selectedOption: de,
43
- selectedOptions: b,
43
+ selectedOptions: A,
44
44
  selectMultipleValues: U,
45
45
  selectSingleValue: $
46
- } = a, q = f ? H : [x, ...H], v = le(
47
- () => b.filter((e) => !h(e)),
48
- [b]
46
+ } = a, q = f ? H : [y, ...H], v = le(
47
+ () => A.filter((e) => !O(e)),
48
+ [A]
49
49
  ), K = le(
50
50
  () => m ? [] : v.slice(ae),
51
51
  [v, m]
52
- ), p = K.length, [j, A] = Ee(null), Z = re(null), G = me ?? u("Message.검색 결과 없음"), J = re(
53
- z && !f && ((s.value ?? s.defaultValue) == null || (s.value ?? s.defaultValue) === "")
52
+ ), p = K.length, [j, S] = we(null), Z = re(null), G = me ?? u("Message.검색 결과 없음"), J = re(
53
+ N && !f && ((s.value ?? s.defaultValue) == null || (s.value ?? s.defaultValue) === "")
54
54
  ), Q = {
55
55
  clearIndicator: {
56
56
  className: "m-0 p-0",
@@ -71,7 +71,7 @@ const ae = 2, we = 152, se = 72, ue = 18.57, pe = /* @__PURE__ */ n((a, s) => {
71
71
  size: "small"
72
72
  }
73
73
  }, X = {
74
- minWidth: we,
74
+ minWidth: ke,
75
75
  "& .MuiAutocomplete-endAdornment": {
76
76
  "& .MuiAutocomplete-clearIndicator + .MuiAutocomplete-popupIndicator": {
77
77
  ml: 0
@@ -95,7 +95,7 @@ const ae = 2, we = 152, se = 72, ue = 18.57, pe = /* @__PURE__ */ n((a, s) => {
95
95
  }
96
96
  };
97
97
  ie(() => {
98
- p || A(null);
98
+ p || S(null);
99
99
  }, [p]), ie(() => {
100
100
  var l;
101
101
  if (!J.current)
@@ -113,11 +113,11 @@ const ae = 2, we = 152, se = 72, ue = 18.57, pe = /* @__PURE__ */ n((a, s) => {
113
113
  };
114
114
  }, [W]);
115
115
  const he = /* @__PURE__ */ n(() => {
116
- A(null);
116
+ S(null);
117
117
  }, "handleHiddenChipPopperClose"), Ie = /* @__PURE__ */ n((e) => {
118
118
  e.preventDefault();
119
119
  }, "handleHiddenChipSummaryMouseDown"), Oe = /* @__PURE__ */ n((e) => {
120
- e.preventDefault(), e.stopPropagation(), A(
120
+ e.preventDefault(), e.stopPropagation(), S(
121
121
  (t) => t === e.currentTarget ? null : e.currentTarget
122
122
  );
123
123
  }, "handleHiddenChipSummaryClick"), Te = /* @__PURE__ */ n((e) => {
@@ -129,37 +129,37 @@ const ae = 2, we = 152, se = 72, ue = 18.57, pe = /* @__PURE__ */ n((a, s) => {
129
129
  const t = pe(e, d);
130
130
  (m || p > 0) && t === "" && (e.key === "Backspace" || e.key === "Delete") && (e.defaultMuiPrevented = !0, e.preventDefault(), e.stopPropagation()), (l = o == null ? void 0 : o.onKeyDown) == null || l.call(o, e);
131
131
  }, "handleMultipleRootKeyDown");
132
- return z ? /* @__PURE__ */ C(M, { children: [
133
- /* @__PURE__ */ r(
132
+ return N ? /* @__PURE__ */ x(M, { children: [
133
+ /* @__PURE__ */ i(
134
134
  oe,
135
135
  {
136
136
  ref: Z,
137
137
  className: ne("min-w-128", w),
138
138
  disableCloseOnSelect: !0,
139
- disabled: I,
139
+ disabled: T,
140
140
  filterOptions: k ? (e) => e : void 0,
141
- fullWidth: O,
141
+ fullWidth: C,
142
142
  inputValue: d,
143
- loading: T,
143
+ loading: g,
144
144
  multiple: !0,
145
145
  options: q,
146
146
  clearText: "",
147
147
  closeText: "",
148
- clearIcon: /* @__PURE__ */ r(F, { sx: { fontSize: ue } }),
148
+ clearIcon: /* @__PURE__ */ i(F, { sx: { fontSize: ue } }),
149
149
  openText: "",
150
- popupIcon: /* @__PURE__ */ r(Y, {}),
150
+ popupIcon: /* @__PURE__ */ i(Y, {}),
151
151
  sx: fe,
152
- value: b,
152
+ value: A,
153
153
  getOptionLabel: /* @__PURE__ */ n((e) => ce(e.label), "getOptionLabel"),
154
154
  isOptionEqualToValue: /* @__PURE__ */ n((e, t) => e.value === t.value, "isOptionEqualToValue"),
155
- loadingText: N ?? u("Common.로딩 중..."),
155
+ loadingText: V ?? u("Common.로딩 중..."),
156
156
  noOptionsText: G,
157
- onChange: /* @__PURE__ */ n((e, t, l, i) => {
158
- const y = e.type === "keydown" ? pe(
157
+ onChange: /* @__PURE__ */ n((e, t, l, r) => {
158
+ const h = e.type === "keydown" ? pe(
159
159
  e,
160
160
  d
161
161
  ) : d ?? "";
162
- if (l === "removeOption" && e.type === "keydown" && y === "" && (m || p > 0)) {
162
+ if (l === "removeOption" && e.type === "keydown" && h === "" && (m || p > 0)) {
163
163
  e.preventDefault(), e.stopPropagation();
164
164
  return;
165
165
  }
@@ -171,7 +171,7 @@ const ae = 2, we = 152, se = 72, ue = 18.57, pe = /* @__PURE__ */ n((a, s) => {
171
171
  _();
172
172
  return;
173
173
  }
174
- if (!f && (i != null && i.option) && h(i.option)) {
174
+ if (!f && (r != null && r.option) && O(r.option)) {
175
175
  if (m) {
176
176
  _();
177
177
  return;
@@ -180,7 +180,7 @@ const ae = 2, we = 152, se = 72, ue = 18.57, pe = /* @__PURE__ */ n((a, s) => {
180
180
  return;
181
181
  }
182
182
  U(
183
- t.filter((S) => !h(S)).map((S) => S.value)
183
+ t.filter((I) => !O(I)).map((I) => I.value)
184
184
  );
185
185
  }, "onChange"),
186
186
  onInputChange: /* @__PURE__ */ n((e, t, l) => {
@@ -190,25 +190,25 @@ const ae = 2, we = 152, se = 72, ue = 18.57, pe = /* @__PURE__ */ n((a, s) => {
190
190
  slotProps: Q,
191
191
  renderInput: /* @__PURE__ */ n((e) => {
192
192
  var t;
193
- return /* @__PURE__ */ r(
193
+ return /* @__PURE__ */ i(
194
194
  ee,
195
195
  {
196
196
  ...e,
197
197
  ...o,
198
- disabled: I,
198
+ disabled: T,
199
199
  error: L,
200
- fullWidth: O,
200
+ fullWidth: C,
201
201
  helperText: D,
202
- label: V,
203
- placeholder: R ?? u("Common.검색"),
204
- required: P,
202
+ label: P,
203
+ placeholder: z ?? u("Common.검색"),
204
+ required: R,
205
205
  slotProps: {
206
206
  ...o == null ? void 0 : o.slotProps,
207
207
  input: {
208
208
  ...e.InputProps,
209
209
  ...(t = o == null ? void 0 : o.slotProps) == null ? void 0 : t.input,
210
- endAdornment: /* @__PURE__ */ C(M, { children: [
211
- T ? /* @__PURE__ */ r(te, { color: "inherit", size: 16, sx: { mr: 0.5 } }) : null,
210
+ endAdornment: /* @__PURE__ */ x(M, { children: [
211
+ g ? /* @__PURE__ */ i(te, { color: "inherit", size: 16, sx: { mr: 0.5 } }) : null,
212
212
  e.InputProps.endAdornment
213
213
  ] })
214
214
  }
@@ -217,33 +217,39 @@ const ae = 2, we = 152, se = 72, ue = 18.57, pe = /* @__PURE__ */ n((a, s) => {
217
217
  }
218
218
  );
219
219
  }, "renderInput"),
220
- renderOption: /* @__PURE__ */ n((e, t, l) => /* @__PURE__ */ C("li", { ...e, children: [
221
- /* @__PURE__ */ r(Ae, { checked: l.selected, className: "!mr-8 !p-0", size: "small" }),
222
- t.label
223
- ] }), "renderOption"),
220
+ renderOption: /* @__PURE__ */ n((e, t, l) => {
221
+ const { key: r, ...h } = e;
222
+ return /* @__PURE__ */ x("li", { ...h, children: [
223
+ /* @__PURE__ */ i(ve, { checked: l.selected, className: "!mr-8 !p-0", size: "small" }),
224
+ t.label
225
+ ] }, r);
226
+ }, "renderOption"),
224
227
  renderValue: /* @__PURE__ */ n((e, t) => !f && m ? [
225
- /* @__PURE__ */ r(
226
- ve,
228
+ /* @__PURE__ */ i(
229
+ Ae,
227
230
  {
228
231
  component: "span",
229
232
  sx: { color: "text.primary", fontWeight: 500, mr: 0.5 },
230
- children: x.label
233
+ children: y.label
231
234
  },
232
- x.value
235
+ y.value
233
236
  )
234
237
  ] : [
235
- ...e.filter((i) => !h(i)).slice(0, ae).map((i, y) => /* @__PURE__ */ xe(
236
- E,
237
- {
238
- ...t({ index: y }),
239
- key: i.value,
240
- label: i.label,
241
- size: "small",
242
- sx: { borderRadius: 1, mr: 0.5 }
243
- }
244
- )),
238
+ ...e.filter((r) => !O(r)).slice(0, ae).map((r, h) => {
239
+ const { key: I, ...ge } = t({ index: h });
240
+ return /* @__PURE__ */ be(
241
+ E,
242
+ {
243
+ ...ge,
244
+ key: I,
245
+ label: r.label,
246
+ size: "small",
247
+ sx: { borderRadius: 1, mr: 0.5 }
248
+ }
249
+ );
250
+ }),
245
251
  ...p > 0 ? [
246
- /* @__PURE__ */ r(
252
+ /* @__PURE__ */ i(
247
253
  E,
248
254
  {
249
255
  clickable: !0,
@@ -251,15 +257,15 @@ const ae = 2, we = 152, se = 72, ue = 18.57, pe = /* @__PURE__ */ n((a, s) => {
251
257
  onClick: Oe,
252
258
  onMouseDown: Ie,
253
259
  size: "small",
254
- sx: /* @__PURE__ */ n((i) => ({
255
- backgroundColor: g(i.palette.primary.main, 0.14),
256
- border: `1px solid ${g(i.palette.primary.main, 0.22)}`,
260
+ sx: /* @__PURE__ */ n((r) => ({
261
+ backgroundColor: b(r.palette.primary.main, 0.14),
262
+ border: `1px solid ${b(r.palette.primary.main, 0.22)}`,
257
263
  borderRadius: 1,
258
- color: i.palette.primary.dark,
264
+ color: r.palette.primary.dark,
259
265
  fontWeight: 600,
260
266
  mr: 0.5,
261
267
  "&:hover": {
262
- backgroundColor: g(i.palette.primary.main, 0.2)
268
+ backgroundColor: b(r.palette.primary.main, 0.2)
263
269
  }
264
270
  }), "sx")
265
271
  },
@@ -269,26 +275,26 @@ const ae = 2, we = 152, se = 72, ue = 18.57, pe = /* @__PURE__ */ n((a, s) => {
269
275
  ], "renderValue")
270
276
  }
271
277
  ),
272
- /* @__PURE__ */ r(
273
- Me,
278
+ /* @__PURE__ */ i(
279
+ Ee,
274
280
  {
275
281
  anchorEl: j,
276
282
  open: !!j && p > 0,
277
283
  placement: "bottom-start",
278
284
  sx: { zIndex: /* @__PURE__ */ n((e) => e.zIndex.modal, "zIndex") },
279
- children: /* @__PURE__ */ r(ye, { onClickAway: he, children: /* @__PURE__ */ r(
280
- Se,
285
+ children: /* @__PURE__ */ i(Se, { onClickAway: he, children: /* @__PURE__ */ i(
286
+ Me,
281
287
  {
282
288
  className: "mt-4",
283
289
  sx: {
284
- border: /* @__PURE__ */ n((e) => `1px solid ${g(e.palette.common.black, 0.12)}`, "border"),
290
+ border: /* @__PURE__ */ n((e) => `1px solid ${b(e.palette.common.black, 0.12)}`, "border"),
285
291
  display: "flex",
286
292
  flexWrap: "wrap",
287
293
  gap: 0.75,
288
294
  maxWidth: 280,
289
295
  p: 1
290
296
  },
291
- children: K.map((e) => /* @__PURE__ */ r(
297
+ children: K.map((e) => /* @__PURE__ */ i(
292
298
  E,
293
299
  {
294
300
  label: e.label,
@@ -302,29 +308,29 @@ const ae = 2, we = 152, se = 72, ue = 18.57, pe = /* @__PURE__ */ n((a, s) => {
302
308
  ) })
303
309
  }
304
310
  )
305
- ] }) : /* @__PURE__ */ r(
311
+ ] }) : /* @__PURE__ */ i(
306
312
  oe,
307
313
  {
308
314
  className: ne("min-w-128", w),
309
- disabled: I,
315
+ disabled: T,
310
316
  filterOptions: k ? (e) => e : void 0,
311
- fullWidth: O,
317
+ fullWidth: C,
312
318
  inputValue: d,
313
- loading: T,
319
+ loading: g,
314
320
  options: q,
315
321
  clearText: "",
316
322
  closeText: "",
317
- clearIcon: /* @__PURE__ */ r(F, { sx: { fontSize: ue } }),
323
+ clearIcon: /* @__PURE__ */ i(F, { sx: { fontSize: ue } }),
318
324
  openText: "",
319
- popupIcon: /* @__PURE__ */ r(Y, {}),
325
+ popupIcon: /* @__PURE__ */ i(Y, {}),
320
326
  sx: X,
321
327
  value: de,
322
328
  getOptionLabel: /* @__PURE__ */ n((e) => ce(e.label), "getOptionLabel"),
323
329
  isOptionEqualToValue: /* @__PURE__ */ n((e, t) => e.value === t.value, "isOptionEqualToValue"),
324
- loadingText: N ?? u("Common.로딩 중..."),
330
+ loadingText: V ?? u("Common.로딩 중..."),
325
331
  noOptionsText: G,
326
332
  onChange: /* @__PURE__ */ n((e, t) => {
327
- if (!t || !f && h(t)) {
333
+ if (!t || !f && O(t)) {
328
334
  $("");
329
335
  return;
330
336
  }
@@ -335,19 +341,19 @@ const ae = 2, we = 152, se = 72, ue = 18.57, pe = /* @__PURE__ */ n((a, s) => {
335
341
  }, "onInputChange"),
336
342
  slotProps: Q,
337
343
  renderInput: /* @__PURE__ */ n((e) => {
338
- var t, l, i;
339
- return /* @__PURE__ */ r(
344
+ var t, l, r;
345
+ return /* @__PURE__ */ i(
340
346
  ee,
341
347
  {
342
348
  ...e,
343
349
  ...o,
344
- disabled: I,
350
+ disabled: T,
345
351
  error: L,
346
- fullWidth: O,
352
+ fullWidth: C,
347
353
  helperText: D,
348
- label: V,
349
- placeholder: R,
350
- required: P,
354
+ label: P,
355
+ placeholder: z,
356
+ required: R,
351
357
  slotProps: {
352
358
  ...o == null ? void 0 : o.slotProps,
353
359
  input: {
@@ -358,10 +364,10 @@ const ae = 2, we = 152, se = 72, ue = 18.57, pe = /* @__PURE__ */ n((a, s) => {
358
364
  paddingLeft: "11px !important"
359
365
  },
360
366
  ...e.InputProps.sx ?? {},
361
- ...((i = (l = o == null ? void 0 : o.slotProps) == null ? void 0 : l.input) == null ? void 0 : i.sx) ?? {}
367
+ ...((r = (l = o == null ? void 0 : o.slotProps) == null ? void 0 : l.input) == null ? void 0 : r.sx) ?? {}
362
368
  },
363
- endAdornment: /* @__PURE__ */ C(M, { children: [
364
- T ? /* @__PURE__ */ r(te, { color: "inherit", size: 16, sx: { mr: 0.5 } }) : null,
369
+ endAdornment: /* @__PURE__ */ x(M, { children: [
370
+ g ? /* @__PURE__ */ i(te, { color: "inherit", size: 16, sx: { mr: 0.5 } }) : null,
365
371
  e.InputProps.endAdornment
366
372
  ] })
367
373
  }
@@ -371,11 +377,14 @@ const ae = 2, we = 152, se = 72, ue = 18.57, pe = /* @__PURE__ */ n((a, s) => {
371
377
  );
372
378
  }, "renderInput"),
373
379
  selectOnFocus: !0,
374
- renderOption: /* @__PURE__ */ n((e, t) => /* @__PURE__ */ r("li", { ...e, children: t.label }), "renderOption")
380
+ renderOption: /* @__PURE__ */ n((e, t) => {
381
+ const { key: l, ...r } = e;
382
+ return /* @__PURE__ */ i("li", { ...r, children: t.label }, l);
383
+ }, "renderOption")
375
384
  }
376
385
  );
377
386
  }, "OwpSelectorAutocomplete");
378
387
  export {
379
- Be as OwpSelectorAutocomplete
388
+ Ue as OwpSelectorAutocomplete
380
389
  };
381
390
  //# sourceMappingURL=OwpSelectorAutocomplete.js.map
@@ -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 { OwpSelectorBaseHookResult, OwpSelectorBaseOption, OwpSelectorBaseProps } 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;\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 () =>\n isAllSelected\n ? []\n : 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 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?.(event as Parameters<NonNullable<typeof textFieldProps.onKeyDown>>[0]);\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 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.filter((option) => !isSelectorAllOption(option)).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 ? <CircularProgress color=\"inherit\" size={16} sx={{ mr: 0.5 }} /> : null}\n {params.InputProps.endAdornment}\n </>\n ),\n },\n }}\n variant={textFieldProps?.variant ?? 'standard'}\n />\n )}\n renderOption={(optionProps, option, state) => (\n <li {...optionProps}>\n <Checkbox checked={state.selected} className=\"!mr-8 !p-0\" size=\"small\" />\n {option.label}\n </li>\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 <Chip\n {...getItemProps({ index })}\n key={option.value}\n label={option.label}\n size=\"small\"\n sx={{ borderRadius: 1, mr: 0.5 }}\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 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 '& .MuiAutocomplete-input, & .MuiInputBase-input': {\n paddingLeft: '11px !important',\n },\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={textFieldProps?.variant ?? 'standard'}\n />\n )}\n selectOnFocus\n renderOption={(optionProps, option) => <li {...optionProps}>{option.label}</li>}\n />\n );\n};\n"],"names":["MULTIPLE_VISIBLE_CHIP_COUNT","AUTOCOMPLETE_MIN_WIDTH","MULTIPLE_AUTOCOMPLETE_INPUT_MIN_WIDTH","SELECTOR_CLEAR_ICON_FONT_SIZE","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","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","Checkbox","nextSelectedOptions","getItemProps","Box","index","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 { OwpSelectorBaseHookResult, OwpSelectorBaseOption, OwpSelectorBaseProps } 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;\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 () =>\n isAllSelected\n ? []\n : 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 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?.(event as Parameters<NonNullable<typeof textFieldProps.onKeyDown>>[0]);\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 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.filter((option) => !isSelectorAllOption(option)).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 ? <CircularProgress color=\"inherit\" size={16} sx={{ mr: 0.5 }} /> : null}\n {params.InputProps.endAdornment}\n </>\n ),\n },\n }}\n variant={textFieldProps?.variant ?? 'standard'}\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 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 '& .MuiAutocomplete-input, & .MuiInputBase-input': {\n paddingLeft: '11px !important',\n },\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={textFieldProps?.variant ?? 'standard'}\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","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","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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"}