sales-frontend-components 0.0.72 → 0.0.74

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.
package/dist/index.cjs.js CHANGED
@@ -5,14 +5,15 @@ var reactHookForm = require('react-hook-form');
5
5
  var salesFrontendDesignSystem = require('sales-frontend-design-system');
6
6
  var React = require('react');
7
7
  var method = require('sales-frontend-api/method');
8
+ var salesFrontendAssets = require('sales-frontend-assets');
8
9
  var styles = require('./modal/pre-standard/job-search-modal/job-search-modal.module.scss');
9
10
  var styles$1 = require('./step-indicator/step-indicator.module.scss');
10
11
  var styles$2 = require('./camera/camera.module.scss');
11
12
  var styles$3 = require('./modal/standard/address-search/select-address.module.scss');
12
13
  var styles$4 = require('./modal/standard/bank-stock-search/bank-stock-search-modal.module.scss');
13
- var salesFrontendAssets = require('sales-frontend-assets');
14
14
  var styles$5 = require('./modal/pre-standard/job-vehicle-search-modal/job-vehicle-search-modal.module.scss');
15
15
  var styles$6 = require('./modal/pre-standard/vehicle-search-modal/vehicle-search-modal.module.scss');
16
+ var styles$7 = require('./modal/standard/customer-search/customer-search.module.scss');
16
17
 
17
18
  const FormCheckboxButton = ({
18
19
  name,
@@ -58,12 +59,17 @@ const FormDatePicker = ({
58
59
  ...props
59
60
  }) => {
60
61
  const { field, fieldState } = reactHookForm.useController({ name, control, disabled, defaultValue });
61
- const [initialDate, setInitialDate] = React.useState();
62
+ const [selected, setSelected] = React.useState();
62
63
  React.useEffect(() => {
63
64
  if (field.value) {
64
- setInitialDate(field.value);
65
+ setSelected(field.value);
65
66
  }
66
67
  }, [defaultValue]);
68
+ React.useEffect(() => {
69
+ if (field.value !== selected) {
70
+ setSelected(field.value);
71
+ }
72
+ }, [field.value]);
67
73
  return /* @__PURE__ */ jsxRuntime.jsx(
68
74
  salesFrontendDesignSystem.DatePicker,
69
75
  {
@@ -72,7 +78,7 @@ const FormDatePicker = ({
72
78
  ...props,
73
79
  ...field,
74
80
  id: field.name,
75
- defaultValue: initialDate,
81
+ defaultValue: selected,
76
82
  error: fieldState.invalid,
77
83
  onValueChange: field.onChange
78
84
  }
@@ -88,12 +94,18 @@ const FormDateRangePicker = ({
88
94
  ...props
89
95
  }) => {
90
96
  const { field, fieldState } = reactHookForm.useController({ name, control, disabled, defaultValue });
91
- const [initialDate, setInitialDate] = React.useState();
97
+ const [selected, setSelected] = React.useState();
92
98
  React.useEffect(() => {
93
99
  if (field.value) {
94
- setInitialDate(field.value);
100
+ setSelected(field.value);
95
101
  }
96
102
  }, [defaultValue]);
103
+ React.useEffect(() => {
104
+ if (selected && field.value.startDate.getTime() === selected.startDate?.getTime() && field.value.endDate.getTime() === selected.endDate?.getTime()) {
105
+ return;
106
+ }
107
+ setSelected(field.value);
108
+ }, [field.value]);
97
109
  return /* @__PURE__ */ jsxRuntime.jsx(
98
110
  salesFrontendDesignSystem.DateRangePicker,
99
111
  {
@@ -102,13 +114,9 @@ const FormDateRangePicker = ({
102
114
  ...props,
103
115
  ...field,
104
116
  id: field.name,
105
- defaultValue: initialDate,
117
+ defaultValue: selected,
106
118
  error: fieldState.invalid,
107
- onValueChange: (selected) => {
108
- if (field.value !== selected) {
109
- field.onChange(selected);
110
- }
111
- }
119
+ onValueChange: field.onChange
112
120
  }
113
121
  }
114
122
  );
@@ -210,7 +218,7 @@ function requireBind () {
210
218
  var bindExports = requireBind();
211
219
  var classNames = /*@__PURE__*/getDefaultExportFromCjs(bindExports);
212
220
 
213
- const highlightOnSearchKeyword = (originalText, targetString) => {
221
+ const highlightOnSearchKeyword$1 = (originalText, targetString) => {
214
222
  if (originalText?.includes(targetString)) {
215
223
  const replacedText = [];
216
224
  const splitText = originalText.split(targetString);
@@ -225,22 +233,22 @@ const highlightOnSearchKeyword = (originalText, targetString) => {
225
233
  return originalText;
226
234
  };
227
235
 
228
- const cx$9 = classNames.bind(styles);
236
+ const cx$a = classNames.bind(styles);
229
237
  function JobSearchCategory({ filteredJobs, onJobSelect, searchTerm }) {
230
- return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$9("category-section"), children: [
231
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: cx$9("result-title"), children: [
238
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$a("category-section"), children: [
239
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { className: cx$a("result-title"), children: [
232
240
  "\uCD1D ",
233
241
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary", children: filteredJobs.length }),
234
242
  "\uAC74\uC758 \uAC80\uC0C9\uACB0\uACFC"
235
243
  ] }),
236
- /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Accordion.Root, { children: /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Radio.Root, { name: "job-selection", size: "small", className: cx$9("job-radio-root"), onToggle: () => {
244
+ /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Accordion.Root, { children: /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Radio.Root, { name: "job-selection", size: "small", className: cx$a("job-radio-root"), onToggle: () => {
237
245
  }, children: filteredJobs.map((job, index) => /* @__PURE__ */ jsxRuntime.jsxs(
238
246
  salesFrontendDesignSystem.Accordion.Item,
239
247
  {
240
248
  id: `item-${job.occupationIndustryCode}-${index}-accordion`,
241
249
  children: [
242
250
  /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Accordion.HeaderDiv, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: { flex: 1 }, children: /* @__PURE__ */ jsxRuntime.jsxs(salesFrontendDesignSystem.Radio.Item, { size: "small", value: job.occupationIndustryCode, onChange: () => onJobSelect(job), children: [
243
- highlightOnSearchKeyword(job.occupationIndustryName, searchTerm),
251
+ highlightOnSearchKeyword$1(job.occupationIndustryName, searchTerm),
244
252
  "(",
245
253
  job.occupationIndustryCode,
246
254
  ")"
@@ -273,23 +281,23 @@ function JobSearchCategory({ filteredJobs, onJobSelect, searchTerm }) {
273
281
  ] }) });
274
282
  }
275
283
 
276
- const cx$8 = classNames.bind(styles);
284
+ const cx$9 = classNames.bind(styles);
277
285
  function JobSearchFavorite({ filteredJobs, onJobSelect }) {
278
- return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$8("popular-jobs"), children: [
286
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$9("popular-jobs"), children: [
279
287
  /* @__PURE__ */ jsxRuntime.jsx("p", { children: "\uB9CE\uC774 \uCC3E\uB294 \uC9C1\uC885" }),
280
- /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Accordion.Root, { children: /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Radio.Root, { name: "job-selection", size: "small", className: cx$8("job-radio-root"), children: filteredJobs.map((job, index) => /* @__PURE__ */ jsxRuntime.jsxs(
288
+ /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Accordion.Root, { children: /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Radio.Root, { name: "job-selection", size: "small", className: cx$9("job-radio-root"), children: filteredJobs.map((job, index) => /* @__PURE__ */ jsxRuntime.jsxs(
281
289
  salesFrontendDesignSystem.Accordion.Item,
282
290
  {
283
291
  id: `item-${job.occupationIndustryCode}-${index}`,
284
- className: cx$8("accordion-item"),
292
+ className: cx$9("accordion-item"),
285
293
  children: [
286
- /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Accordion.HeaderDiv, { className: cx$8("accordion-header-item"), children: /* @__PURE__ */ jsxRuntime.jsxs(
294
+ /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Accordion.HeaderDiv, { className: cx$9("accordion-header-item"), children: /* @__PURE__ */ jsxRuntime.jsxs(
287
295
  salesFrontendDesignSystem.Radio.Item,
288
296
  {
289
297
  size: "small",
290
298
  value: job.occupationIndustryCode,
291
299
  onChange: () => onJobSelect(job),
292
- className: cx$8("radio-item"),
300
+ className: cx$9("radio-item"),
293
301
  children: [
294
302
  job.occupationIndustryName,
295
303
  "(",
@@ -306,15 +314,15 @@ function JobSearchFavorite({ filteredJobs, onJobSelect }) {
306
314
  ] }) });
307
315
  }
308
316
 
309
- const cx$7 = classNames.bind(styles);
317
+ const cx$8 = classNames.bind(styles);
310
318
  function JobSearchResult({ filteredJobs, onJobSelect, searchTerm }) {
311
- return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$7("popular-jobs"), children: [
312
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: cx$7("result-title"), children: [
319
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$8("popular-jobs"), children: [
320
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { className: cx$8("result-title"), children: [
313
321
  "\uCD1D ",
314
322
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary", children: filteredJobs.length }),
315
323
  "\uAC74\uC758 \uAC80\uC0C9\uACB0\uACFC"
316
324
  ] }),
317
- /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Accordion.Root, { children: /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Radio.Root, { name: "job-selection", size: "small", className: cx$7("job-radio-root"), children: filteredJobs.map((job) => /* @__PURE__ */ jsxRuntime.jsxs(
325
+ /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Accordion.Root, { children: /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Radio.Root, { name: "job-selection", size: "small", className: cx$8("job-radio-root"), children: filteredJobs.map((job) => /* @__PURE__ */ jsxRuntime.jsxs(
318
326
  salesFrontendDesignSystem.Accordion.Item,
319
327
  {
320
328
  id: `item-${job.occupationIndustryCode}`,
@@ -328,7 +336,7 @@ function JobSearchResult({ filteredJobs, onJobSelect, searchTerm }) {
328
336
  onChange: () => {
329
337
  onJobSelect(job);
330
338
  },
331
- children: highlightOnSearchKeyword(job.occupationIndustryName, searchTerm)
339
+ children: highlightOnSearchKeyword$1(job.occupationIndustryName, searchTerm)
332
340
  }
333
341
  ) }) }),
334
342
  /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Accordion.Content, { variant: "text", children: /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Table, { variant: "horizontal", children: /* @__PURE__ */ jsxRuntime.jsxs("tbody", { children: [
@@ -360,7 +368,7 @@ function JobSearchResult({ filteredJobs, onJobSelect, searchTerm }) {
360
368
  }
361
369
 
362
370
  const { TextField } = salesFrontendDesignSystem.FormField;
363
- const cx$6 = classNames.bind(styles);
371
+ const cx$7 = classNames.bind(styles);
364
372
  const { Option } = salesFrontendDesignSystem.Select;
365
373
  function JobSearch({
366
374
  activeTab,
@@ -397,7 +405,7 @@ function JobSearch({
397
405
  }
398
406
  ),
399
407
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
400
- activeTab === "jobName" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$6("favorite-jobs-section"), children: [
408
+ activeTab === "jobName" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$7("favorite-jobs-section"), children: [
401
409
  /* @__PURE__ */ jsxRuntime.jsx(
402
410
  TextField,
403
411
  {
@@ -408,7 +416,7 @@ function JobSearch({
408
416
  className: styles.searchInput,
409
417
  size: "medium",
410
418
  rootProps: {
411
- endElement: /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Icon, { name: "sub-ui/search", onClick: () => setSearchTerm(searchInput) }),
419
+ endElement: /* @__PURE__ */ jsxRuntime.jsx(salesFrontendAssets.IconMainUiSearch, { onClick: () => setSearchTerm(searchInput) }),
412
420
  onClear: () => {
413
421
  setSearchTerm("");
414
422
  setSearchInput("");
@@ -419,8 +427,8 @@ function JobSearch({
419
427
  !searchTerm && /* @__PURE__ */ jsxRuntime.jsx(JobSearchFavorite, { filteredJobs, onJobSelect }),
420
428
  searchTerm && /* @__PURE__ */ jsxRuntime.jsx(JobSearchResult, { filteredJobs, onJobSelect, searchTerm })
421
429
  ] }),
422
- activeTab === "jobCode" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$6("select-jobs-section"), children: [
423
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$6("category-section"), children: [
430
+ activeTab === "jobCode" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$7("select-jobs-section"), children: [
431
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$7("category-section"), children: [
424
432
  /* @__PURE__ */ jsxRuntime.jsx(
425
433
  salesFrontendDesignSystem.Select,
426
434
  {
@@ -802,7 +810,7 @@ const FormTextField = ({
802
810
  );
803
811
  };
804
812
 
805
- const cx$5 = classNames.bind(styles$1);
813
+ const cx$6 = classNames.bind(styles$1);
806
814
  const StepIndicator = ({
807
815
  items,
808
816
  onClickItem,
@@ -837,26 +845,26 @@ const StepIndicator = ({
837
845
  salesFrontendDesignSystem.ModalUtils.alert("\uC774\uC804 \uB2E8\uACC4\uB97C \uBAA8\uB450 \uC644\uB8CC\uD574\uC57C \uC120\uD0DD\uD55C \uB2E8\uACC4\uB85C\n\uC774\uB3D9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.", "\uC774\uC804 \uB2E8\uACC4\uB97C \uBA3C\uC800 \uC9C4\uD589\uD574\uC8FC\uC138\uC694");
838
846
  }
839
847
  };
840
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$5("stepper-layout", { loading: isLoading }), children: [
841
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx$5("stepper"), children: steps.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsxs(React.Fragment, { children: [
848
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$6("stepper-layout", { loading: isLoading }), children: [
849
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx$6("stepper"), children: steps.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsxs(React.Fragment, { children: [
842
850
  /* @__PURE__ */ jsxRuntime.jsx(
843
851
  "div",
844
852
  {
845
- className: cx$5(
853
+ className: cx$6(
846
854
  "circle",
847
855
  { completed: item.isCompleted ?? false },
848
856
  { active: defaultValue === item.value || current === idx }
849
857
  ),
850
858
  onClick: () => handleClickStep?.(item),
851
- children: item.isCompleted ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cx$5("completed-icon") }) : idx + 1
859
+ children: item.isCompleted ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cx$6("completed-icon") }) : idx + 1
852
860
  }
853
861
  ),
854
- idx < steps.length - 1 && Array.from({ length: dotCount }).map((_, dotIdx) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: cx$5("dot") }, `dot-${idx}-${dotIdx}`))
862
+ idx < steps.length - 1 && Array.from({ length: dotCount }).map((_, dotIdx) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: cx$6("dot") }, `dot-${idx}-${dotIdx}`))
855
863
  ] }, `num-${idx}`)) }),
856
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cx$5("step-labels"), children: steps.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsx(
864
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cx$6("step-labels"), children: steps.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsx(
857
865
  "li",
858
866
  {
859
- className: cx$5(
867
+ className: cx$6(
860
868
  { completed: steps[idx < 1 ? idx : idx - 1]?.isCompleted ?? false },
861
869
  { active: defaultValue === item.value || current === idx }
862
870
  ),
@@ -868,7 +876,7 @@ const StepIndicator = ({
868
876
  ] });
869
877
  };
870
878
 
871
- const cx$4 = classNames.bind(styles$2);
879
+ const cx$5 = classNames.bind(styles$2);
872
880
  function Attachment({
873
881
  photos,
874
882
  onAddPhoto,
@@ -885,14 +893,14 @@ function Attachment({
885
893
  };
886
894
  const renderPhotoSingle = () => {
887
895
  if (photos.length === 0) {
888
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx$4("single-photo-item", "add-photo-item"), children: /* @__PURE__ */ jsxRuntime.jsxs("button", { className: cx$4("add-photo-button-single"), onClick: handleAddPhoto, children: [
896
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx$5("single-photo-item", "add-photo-item"), children: /* @__PURE__ */ jsxRuntime.jsxs("button", { className: cx$5("add-photo-button-single"), onClick: handleAddPhoto, children: [
889
897
  /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Icon, { name: "illust/camera" }),
890
898
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: buttonText || "\uC0AC\uC9C4 \uCCA8\uBD80\uD558\uAE30" })
891
899
  ] }) });
892
900
  }
893
- return photos.map((photo) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$4("single-photo-item"), children: [
894
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx$4("photo-placeholder"), children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: photo.src, alt: photo.name, className: cx$4("photo-image") }) }),
895
- /* @__PURE__ */ jsxRuntime.jsx("button", { className: cx$4("remove-button"), onClick: () => handleRemovePhoto(photo.id), "aria-label": "\uC0AC\uC9C4 \uC0AD\uC81C", children: "\xD7" })
901
+ return photos.map((photo) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$5("single-photo-item"), children: [
902
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx$5("photo-placeholder"), children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: photo.src, alt: photo.name, className: cx$5("photo-image") }) }),
903
+ /* @__PURE__ */ jsxRuntime.jsx("button", { className: cx$5("remove-button"), onClick: () => handleRemovePhoto(photo.id), "aria-label": "\uC0AC\uC9C4 \uC0AD\uC81C", children: "\xD7" })
896
904
  ] }, photo.id));
897
905
  };
898
906
  const renderPhotoGrid = () => {
@@ -900,12 +908,12 @@ function Attachment({
900
908
  const gridItems = [];
901
909
  if (photos.length < maxPhotos) {
902
910
  gridItems.push(
903
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx$4("photo-item", "add-photo-item"), children: /* @__PURE__ */ jsxRuntime.jsxs("button", { className: cx$4("add-photo-button"), onClick: handleAddPhoto, children: [
911
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx$5("photo-item", "add-photo-item"), children: /* @__PURE__ */ jsxRuntime.jsxs("button", { className: cx$5("add-photo-button"), onClick: handleAddPhoto, children: [
904
912
  /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Icon, { name: "illust/camera" }),
905
913
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: buttonText || "\uCCA8\uBD80\uD558\uAE30" }),
906
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cx$4("photo-count"), children: [
914
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cx$5("photo-count"), children: [
907
915
  "(",
908
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: cx$4("photo-count-number"), children: photos.length }),
916
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cx$5("photo-count-number"), children: photos.length }),
909
917
  "/",
910
918
  maxPhotos,
911
919
  ")"
@@ -915,9 +923,9 @@ function Attachment({
915
923
  }
916
924
  photos.forEach((photo) => {
917
925
  gridItems.push(
918
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$4("photo-item"), children: [
919
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx$4("photo-placeholder"), children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: photo.src, alt: photo.name, className: cx$4("photo-image") }) }),
920
- /* @__PURE__ */ jsxRuntime.jsx("button", { className: cx$4("remove-button"), onClick: () => handleRemovePhoto(photo.id), "aria-label": "\uC0AC\uC9C4 \uC0AD\uC81C", children: "\xD7" })
926
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$5("photo-item"), children: [
927
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx$5("photo-placeholder"), children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: photo.src, alt: photo.name, className: cx$5("photo-image") }) }),
928
+ /* @__PURE__ */ jsxRuntime.jsx("button", { className: cx$5("remove-button"), onClick: () => handleRemovePhoto(photo.id), "aria-label": "\uC0AC\uC9C4 \uC0AD\uC81C", children: "\xD7" })
921
929
  ] }, photo.id)
922
930
  );
923
931
  });
@@ -928,9 +936,9 @@ function Attachment({
928
936
  return null;
929
937
  }
930
938
  if (type === "single") {
931
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx$4("photo-single"), children: renderPhotoSingle() });
939
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx$5("photo-single"), children: renderPhotoSingle() });
932
940
  }
933
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx$4("photo-grid", { linear: type === "linear" }), children: renderPhotoGrid() });
941
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx$5("photo-grid", { linear: type === "linear" }), children: renderPhotoGrid() });
934
942
  }
935
943
 
936
944
  const maxImageSize = 3 * 1024 * 1024;
@@ -1377,12 +1385,12 @@ function useCanvasPaint(paintProps = {}) {
1377
1385
 
1378
1386
  const testSignatureBase64Data = "data:image/png;base64,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";
1379
1387
 
1380
- const cx$3 = classNames.bind(styles$3);
1381
- const { InputBox, Input } = salesFrontendDesignSystem.FormCore;
1388
+ const cx$4 = classNames.bind(styles$3);
1389
+ const { InputBox: InputBox$1, Input: Input$1 } = salesFrontendDesignSystem.FormCore;
1382
1390
  const AddressSearchInitialText = () => {
1383
1391
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1384
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: cx$3("guide-title"), children: "\uC774\uB807\uAC8C \uAC80\uC0C9\uD574 \uBCF4\uC138\uC694." }),
1385
- /* @__PURE__ */ jsxRuntime.jsxs("ul", { className: cx$3("guide"), children: [
1392
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: cx$4("guide-title"), children: "\uC774\uB807\uAC8C \uAC80\uC0C9\uD574 \uBCF4\uC138\uC694." }),
1393
+ /* @__PURE__ */ jsxRuntime.jsxs("ul", { className: cx$4("guide"), children: [
1386
1394
  /* @__PURE__ */ jsxRuntime.jsx("li", { children: "\uB3C4\uB85C\uBA85/\uC9C0\uBA85\uACFC \uAC74\uBB3C\uBC88\uD638\uB97C \uD568\uAED8 \uC785\uB825\uD574\uC8FC\uC138\uC694" }),
1387
1395
  /* @__PURE__ */ jsxRuntime.jsx("li", { children: "\uC608) 63\uB85C 50, \uC5EC\uC758\uB3C4\uB3D9 60" }),
1388
1396
  /* @__PURE__ */ jsxRuntime.jsx("li", { children: "\uC9C0\uBA85\uC740 \uB3D9/\uC74D/\uBA74/\uB9AC\uB85C \uC785\uB825\uD574\uC8FC\uC138\uC694" }),
@@ -1406,7 +1414,7 @@ const AddressSearchResult = ({
1406
1414
  setFilterList(filterList2);
1407
1415
  }, [addressSearchList, searchKeyword]);
1408
1416
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1409
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: cx$3("guide-title"), children: [
1417
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { className: cx$4("guide-title"), children: [
1410
1418
  "\uCD1D ",
1411
1419
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary", children: filterList.length }),
1412
1420
  "\uAC74\uC758 \uAC80\uC0C9\uACB0\uACFC"
@@ -1417,20 +1425,20 @@ const AddressSearchResult = ({
1417
1425
  items: filterList.map((item) => ({
1418
1426
  value: item.address,
1419
1427
  select: item.address === selectedAddress?.address && item.zipCode === selectedAddress?.zipCode,
1420
- label: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$3("search-result"), children: [
1421
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$3("zipcode"), children: [
1428
+ label: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$4("search-result"), children: [
1429
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$4("zipcode"), children: [
1422
1430
  " ",
1423
- highlightOnSearchKeyword(item.zipCode, searchKeyword)
1431
+ highlightOnSearchKeyword$1(item.zipCode, searchKeyword)
1424
1432
  ] }),
1425
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx$3("divider") }),
1426
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$3("address-info"), children: [
1427
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: cx$3("address"), children: highlightOnSearchKeyword(item.address, searchKeyword) }),
1428
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: cx$3("old-address"), children: highlightOnSearchKeyword(item.oldAddress, searchKeyword) })
1433
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx$4("divider") }),
1434
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$4("address-info"), children: [
1435
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cx$4("address"), children: highlightOnSearchKeyword$1(item.address, searchKeyword) }),
1436
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cx$4("old-address"), children: highlightOnSearchKeyword$1(item.oldAddress, searchKeyword) })
1429
1437
  ] })
1430
1438
  ] }),
1431
1439
  id: item.address
1432
1440
  })),
1433
- className: cx$3("radio-group"),
1441
+ className: cx$4("radio-group"),
1434
1442
  name: "address-search",
1435
1443
  size: "medium",
1436
1444
  defaultValue: "",
@@ -1464,7 +1472,7 @@ const AddressSearchDetailInput = ({
1464
1472
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1465
1473
  /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.FormField.Label, { id: "detail", style: { width: "90px" }, children: "\uC0C1\uC138\uC8FC\uC18C" }),
1466
1474
  /* @__PURE__ */ jsxRuntime.jsx(
1467
- Input,
1475
+ Input$1,
1468
1476
  {
1469
1477
  placeholder: "\uC0C1\uC138\uC8FC\uC18C \uC785\uB825",
1470
1478
  onChange: onDetailChange,
@@ -1502,25 +1510,17 @@ function AddressComponent({ isOpen, onClose, setValue }) {
1502
1510
  /* @__PURE__ */ jsxRuntime.jsxs(salesFrontendDesignSystem.Modal.Content, { children: [
1503
1511
  /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Modal.Header, { headerTitle: "\uC8FC\uC18C \uAC80\uC0C9", showCloseButton: true }),
1504
1512
  /* @__PURE__ */ jsxRuntime.jsxs(salesFrontendDesignSystem.Modal.Body, { children: [
1505
- /* @__PURE__ */ jsxRuntime.jsx(
1506
- InputBox,
1513
+ /* @__PURE__ */ jsxRuntime.jsx(InputBox$1, { clearable: true, endElement: /* @__PURE__ */ jsxRuntime.jsx(salesFrontendAssets.IconMainUiSearch, { onClick: search }), onClear: onAddressSearchClear, children: /* @__PURE__ */ jsxRuntime.jsx(
1514
+ Input$1,
1507
1515
  {
1508
- clearable: true,
1509
- endElement: /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Icon, { name: "sub-ui/search", onClick: search }),
1510
- onClear: onAddressSearchClear,
1511
- children: /* @__PURE__ */ jsxRuntime.jsx(
1512
- Input,
1513
- {
1514
- ...addressSearchStep !== "detail-input" && { autoFocus: true },
1515
- onChange: onSearch,
1516
- onKeyUp,
1517
- value: searchInput,
1518
- placeholder: "\uC9C0\uBC88, \uB3C4\uB85C\uBA85, \uAC74\uBB3C\uBA85, \uC6B0\uD3B8\uBC88\uD638 \uC785\uB825",
1519
- size: "large"
1520
- }
1521
- )
1516
+ ...addressSearchStep !== "detail-input" && { autoFocus: true },
1517
+ onChange: onSearch,
1518
+ onKeyUp,
1519
+ value: searchInput,
1520
+ placeholder: "\uC9C0\uBC88, \uB3C4\uB85C\uBA85, \uAC74\uBB3C\uBA85, \uC6B0\uD3B8\uBC88\uD638 \uC785\uB825",
1521
+ size: "large"
1522
1522
  }
1523
- ),
1523
+ ) }),
1524
1524
  addressSearchStep === "initial" && /* @__PURE__ */ jsxRuntime.jsx(AddressSearchInitialText, {}),
1525
1525
  addressSearchStep === "search-result" && /* @__PURE__ */ jsxRuntime.jsx(
1526
1526
  AddressSearchResult,
@@ -1771,20 +1771,20 @@ function BankStockSearchModal({ open, onClose, onSelect }) {
1771
1771
  ] });
1772
1772
  }
1773
1773
 
1774
- const cx$2 = classNames.bind(styles$5);
1774
+ const cx$3 = classNames.bind(styles$5);
1775
1775
  const JobVehicleSearchGrade = ({ riskGrade, hospitalizationGrade }) => {
1776
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$2("grade-section"), children: [
1777
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$2("icon-title"), children: [
1778
- /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Icon, { name: "illust/grade" }),
1776
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$3("grade-section"), children: [
1777
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$3("icon-title"), children: [
1778
+ /* @__PURE__ */ jsxRuntime.jsx(salesFrontendAssets.IconIllustGrade, {}),
1779
1779
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "typo-title5 text-body", children: "\uB4F1\uAE09" })
1780
1780
  ] }),
1781
1781
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "typo-body2 text-body_3", children: "\uC9C1\uC885, \uC6B4\uC804 \uC5EC\uBD80 \uC120\uD0DD\uC2DC \uC790\uB3D9\uC73C\uB85C \uC0B0\uC815\uB429\uB2C8\uB2E4." }),
1782
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$2("grade-list"), children: [
1783
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$2("grade"), children: [
1782
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$3("grade-list"), children: [
1783
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$3("grade"), children: [
1784
1784
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "\uC704\uD5D8\uB4F1\uAE09" }),
1785
1785
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary typo-subtitle3", children: riskGrade || "-" })
1786
1786
  ] }),
1787
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$2("grade"), children: [
1787
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$3("grade"), children: [
1788
1788
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "\uC785\uC6D0\uB4F1\uAE09" }),
1789
1789
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary typo-subtitle3", children: hospitalizationGrade || "-" })
1790
1790
  ] })
@@ -1792,11 +1792,11 @@ const JobVehicleSearchGrade = ({ riskGrade, hospitalizationGrade }) => {
1792
1792
  ] });
1793
1793
  };
1794
1794
 
1795
- const cx$1 = classNames.bind(styles$6);
1795
+ const cx$2 = classNames.bind(styles$6);
1796
1796
  function VehicleSearch({ vehicles, onVehicleSelect }) {
1797
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$1("vehicle-search-section"), children: [
1797
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$2("vehicle-search-section"), children: [
1798
1798
  /* @__PURE__ */ jsxRuntime.jsx("p", { children: "\uC6B4\uC804 \uCC28\uC885" }),
1799
- /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Radio.Root, { name: "vehicle-selection", size: "small", className: cx$1("vehicle-radio-root"), children: vehicles.map((vehicle, index) => /* @__PURE__ */ jsxRuntime.jsxs(
1799
+ /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Radio.Root, { name: "vehicle-selection", size: "small", className: cx$2("vehicle-radio-root"), children: vehicles.map((vehicle, index) => /* @__PURE__ */ jsxRuntime.jsxs(
1800
1800
  salesFrontendDesignSystem.Radio.Item,
1801
1801
  {
1802
1802
  id: `item-${vehicle.integrationCodeValue}`,
@@ -1810,7 +1810,7 @@ function VehicleSearch({ vehicles, onVehicleSelect }) {
1810
1810
  onVehicleSelect(selected);
1811
1811
  }
1812
1812
  },
1813
- className: cx$1("item"),
1813
+ className: cx$2("item"),
1814
1814
  children: [
1815
1815
  vehicle.integrationCodeValueName,
1816
1816
  "(",
@@ -1858,7 +1858,7 @@ const useJobVehicleSearch = () => {
1858
1858
  };
1859
1859
  };
1860
1860
 
1861
- const cx = classNames.bind(styles$5);
1861
+ const cx$1 = classNames.bind(styles$5);
1862
1862
  function useJobVehicleSearchModal() {
1863
1863
  const {
1864
1864
  selectedVehicle,
@@ -1904,19 +1904,19 @@ function useJobVehicleSearchModal() {
1904
1904
  /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Modal.Overlay, {}),
1905
1905
  /* @__PURE__ */ jsxRuntime.jsxs(salesFrontendDesignSystem.Modal.Content, { style: { height: "697px" }, children: [
1906
1906
  /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Modal.Header, { headerTitle: "\uC9C1\uC885\xB7\uC6B4\uC804\uCC28\uC885 \uAC80\uC0C9", showCloseButton: true }),
1907
- /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Modal.Body, { className: cx("job-vehicle-search-modal"), raw: true, children: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1908
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx("left-panel"), children: [
1909
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx("card-section"), children: [
1907
+ /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Modal.Body, { className: cx$1("job-vehicle-search-modal"), raw: true, children: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1908
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$1("left-panel"), children: [
1909
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$1("card-section"), children: [
1910
1910
  /* @__PURE__ */ jsxRuntime.jsxs(
1911
1911
  "div",
1912
1912
  {
1913
- className: cx("card-menu", { "card-selected": rightPanelView === "jobSearch" }),
1913
+ className: cx$1("card-menu", { "card-selected": rightPanelView === "jobSearch" }),
1914
1914
  onClick: () => setRightPanelView("jobSearch"),
1915
1915
  children: [
1916
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx("card-title"), children: [
1917
- /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Icon, { name: "illust/job", className: cx("card-icon") }),
1918
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: cx("card-text", "typo-title5", "text-body"), children: "\uC9C1\uC885" }),
1919
- /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Icon, { name: "sub-ui/arrow/right" })
1916
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$1("card-title"), children: [
1917
+ /* @__PURE__ */ jsxRuntime.jsx(salesFrontendAssets.IconIllustJob, { className: cx$1("card-icon") }),
1918
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cx$1("card-text", "typo-title5", "text-body"), children: "\uC9C1\uC885" }),
1919
+ /* @__PURE__ */ jsxRuntime.jsx(salesFrontendAssets.IconSubUiArrowRight, {})
1920
1920
  ] }),
1921
1921
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "typo-body2 text-body_2", children: selectedJob ? selectedJob.occupationIndustryName : "\uBBF8\uC120\uD0DD" })
1922
1922
  ]
@@ -1925,13 +1925,13 @@ function useJobVehicleSearchModal() {
1925
1925
  /* @__PURE__ */ jsxRuntime.jsxs(
1926
1926
  "div",
1927
1927
  {
1928
- className: cx("card-menu", { "card-selected": rightPanelView === "vehicleSelection" }),
1928
+ className: cx$1("card-menu", { "card-selected": rightPanelView === "vehicleSelection" }),
1929
1929
  onClick: () => setRightPanelView("vehicleSelection"),
1930
1930
  children: [
1931
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx("card-title"), children: [
1932
- /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Icon, { name: "illust/vehicle", className: cx("card-icon") }),
1933
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: cx("card-text", "typo-title5", "text-body"), children: "\uC6B4\uC804 \uC5EC\uBD80\xB7\uCC28\uC885" }),
1934
- /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Icon, { name: "sub-ui/arrow/right" })
1931
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$1("card-title"), children: [
1932
+ /* @__PURE__ */ jsxRuntime.jsx(salesFrontendAssets.IconIllustVehicle, { className: cx$1("card-icon") }),
1933
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cx$1("card-text", "typo-title5", "text-body"), children: "\uC6B4\uC804 \uC5EC\uBD80\xB7\uCC28\uC885" }),
1934
+ /* @__PURE__ */ jsxRuntime.jsx(salesFrontendAssets.IconSubUiArrowRight, {})
1935
1935
  ] }),
1936
1936
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "typo-body2 text-body_2", children: [
1937
1937
  selectedVehicle?.integrationCodeValueName,
@@ -1943,7 +1943,7 @@ function useJobVehicleSearchModal() {
1943
1943
  ] }),
1944
1944
  /* @__PURE__ */ jsxRuntime.jsx(JobVehicleSearchGrade, { riskGrade, hospitalizationGrade })
1945
1945
  ] }),
1946
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx("right-panel"), children: rightPanelView === "jobSearch" ? JobSearch : VehicleSearch })
1946
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx$1("right-panel"), children: rightPanelView === "jobSearch" ? JobSearch : VehicleSearch })
1947
1947
  ] }) }),
1948
1948
  /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Modal.Footer, { style: { marginTop: 0 }, children: /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Button, { variant: "primary", size: "medium", appearance: "filled", width: "full", onClick: validate, children: "\uD655\uC778" }) })
1949
1949
  ] })
@@ -1963,8 +1963,148 @@ const JobSearchModal = ({ onClose }) => {
1963
1963
  ] });
1964
1964
  };
1965
1965
 
1966
+ const mockCustomers = [
1967
+ { customerId: "1", customerName: "\uAE40\uD55C\uD654", birthDate: "1999.01.01", genderCode: "\uB0A8\uC131" },
1968
+ {
1969
+ customerId: "2",
1970
+ customerName: "\uAE40\uD55C\uD654\uC0DD\uBA85",
1971
+ birthDate: "1989.01.01",
1972
+ genderCode: "\uC5EC\uC131",
1973
+ baseAddress: "\uC11C\uC6B8\uC2DC \uB9C8\uD3EC\uAD6C"
1974
+ },
1975
+ {
1976
+ customerId: "3",
1977
+ customerName: "\uAE40\uD55C\uD654\uC190\uD574\uBCF4\uD5D8",
1978
+ birthDate: "1999.01.01",
1979
+ genderCode: "\uB0A8\uC131",
1980
+ baseAddress: "\uC11C\uC6B8\uC2DC \uB9C8\uD3EC\uAD6C"
1981
+ }
1982
+ ];
1983
+ const useCustomerSearch = (onSelect) => {
1984
+ const { triggerRef, isOpen, setIsOpen, DropDown } = salesFrontendDesignSystem.useDropDown();
1985
+ const [searchKeyword, setSearchKeyword] = React.useState("");
1986
+ const [searchInput, setSearchInput] = React.useState("");
1987
+ const [customerList, setCustomerList] = React.useState([]);
1988
+ const [selectedCustomer, setSelectedCustomer] = React.useState(null);
1989
+ const search = () => {
1990
+ if (searchInput.length >= 2) {
1991
+ setSearchKeyword(searchInput);
1992
+ const filtered = mockCustomers.filter((c) => c.customerName?.toLowerCase().includes(searchInput.toLowerCase()));
1993
+ setCustomerList(filtered);
1994
+ setIsOpen(true);
1995
+ } else {
1996
+ setCustomerList([]);
1997
+ setSearchKeyword("");
1998
+ setIsOpen(false);
1999
+ }
2000
+ };
2001
+ const onKeyUp = (e) => {
2002
+ if (e.key === "Enter") {
2003
+ search();
2004
+ }
2005
+ };
2006
+ const onSearchInputChange = (e) => {
2007
+ setSearchInput(e.target.value);
2008
+ if (e.target.value.length < 2) {
2009
+ setCustomerList([]);
2010
+ setSearchKeyword("");
2011
+ setIsOpen(false);
2012
+ }
2013
+ };
2014
+ const onClear = () => {
2015
+ setSearchInput("");
2016
+ setSearchKeyword("");
2017
+ setCustomerList([]);
2018
+ setSelectedCustomer(null);
2019
+ setIsOpen(false);
2020
+ };
2021
+ const handleSelectItem = (customer) => {
2022
+ setSelectedCustomer(customer);
2023
+ setSearchInput(customer.customerName || "");
2024
+ setCustomerList([]);
2025
+ setIsOpen(false);
2026
+ if (onSelect) {
2027
+ onSelect(customer);
2028
+ }
2029
+ };
2030
+ return {
2031
+ triggerRef,
2032
+ isOpen,
2033
+ DropDown,
2034
+ searchInput,
2035
+ customerList,
2036
+ searchKeyword,
2037
+ onSearchInputChange,
2038
+ onKeyUp,
2039
+ search,
2040
+ onClear,
2041
+ handleSelectItem,
2042
+ selectedCustomer
2043
+ };
2044
+ };
2045
+
2046
+ const cx = classNames.bind(styles$7);
2047
+ const highlightOnSearchKeyword = (originalText, targetString) => {
2048
+ if (!targetString || !originalText?.includes(targetString)) {
2049
+ return originalText;
2050
+ }
2051
+ const replacedText = [];
2052
+ const splitText = originalText.split(targetString);
2053
+ for (let i = 0; i < splitText.length; i++) {
2054
+ replacedText.push(splitText[i] || "");
2055
+ if (i < splitText.length - 1) {
2056
+ replacedText.push(
2057
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary", children: targetString }, i)
2058
+ );
2059
+ }
2060
+ }
2061
+ return replacedText;
2062
+ };
2063
+ const { InputBox, Input } = salesFrontendDesignSystem.FormCore;
2064
+ const CustomerSearch = ({ onSelect }) => {
2065
+ const {
2066
+ triggerRef,
2067
+ isOpen,
2068
+ DropDown,
2069
+ searchInput,
2070
+ customerList,
2071
+ searchKeyword,
2072
+ onSearchInputChange,
2073
+ onKeyUp,
2074
+ search,
2075
+ onClear,
2076
+ handleSelectItem
2077
+ } = useCustomerSearch(onSelect);
2078
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx("container"), children: [
2079
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx("search-bar"), children: /* @__PURE__ */ jsxRuntime.jsx(InputBox, { endElement: /* @__PURE__ */ jsxRuntime.jsx(salesFrontendAssets.IconMainUiSearch, { onClick: search }), onClear, clearable: true, children: /* @__PURE__ */ jsxRuntime.jsx(
2080
+ Input,
2081
+ {
2082
+ onChange: onSearchInputChange,
2083
+ onKeyUp,
2084
+ value: searchInput,
2085
+ placeholder: "\uACE0\uAC1D\uBA85\uC744 \uB450 \uAE00\uC790 \uC774\uC0C1 \uC785\uB825\uD574\uC8FC\uC138\uC694.",
2086
+ size: "large",
2087
+ ref: triggerRef
2088
+ }
2089
+ ) }) }),
2090
+ isOpen && /* @__PURE__ */ jsxRuntime.jsx(DropDown, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx("result-container"), children: customerList.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.List, { rootProps: { style: { width: "100%" } }, children: customerList.map((customer) => /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.ListItem, { onClick: () => handleSelectItem(customer), selectable: true, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx("customer-item"), children: [
2091
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx("name"), children: highlightOnSearchKeyword(customer.customerName || "", searchKeyword) }),
2092
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx("details"), children: [
2093
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: customer.birthDate }),
2094
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cx("separator"), children: "|" }),
2095
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: customer.genderCode }),
2096
+ customer.baseAddress && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2097
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cx("separator"), children: "|" }),
2098
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: customer.baseAddress })
2099
+ ] })
2100
+ ] })
2101
+ ] }) }, customer.customerId)) }) }) })
2102
+ ] });
2103
+ };
2104
+
1966
2105
  exports.Attachment = Attachment;
1967
2106
  exports.BankStockSearchModal = BankStockSearchModal;
2107
+ exports.CustomerSearch = CustomerSearch;
1968
2108
  exports.FormCheckbox = FormCheckbox;
1969
2109
  exports.FormCheckboxButton = FormCheckboxButton;
1970
2110
  exports.FormDatePicker = FormDatePicker;