sales-frontend-components 0.0.72 → 0.0.73

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.esm.js CHANGED
@@ -1,16 +1,17 @@
1
1
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
2
  import { useController } from 'react-hook-form';
3
- import { CheckboxButton, Checkbox, DatePicker, DateRangePicker, Accordion, Radio, Table, Button, FormField, Select, Tab, Icon, useModalState, Modal, SegmentGroup, ModalUtils, FormCore, RadioGroup } from 'sales-frontend-design-system';
3
+ import { CheckboxButton, Checkbox, DatePicker, DateRangePicker, Accordion, Radio, Table, Button, FormField, Select, Tab, useModalState, Modal, SegmentGroup, ModalUtils, Icon, FormCore, RadioGroup, useDropDown, List, ListItem } from 'sales-frontend-design-system';
4
4
  import React, { useState, useEffect, useRef, useCallback, useMemo } from 'react';
5
5
  import { useSearchOccupationQuery, useSearchModalAddressQuery, useSearchVehicleQuery } from 'sales-frontend-api/method';
6
+ import { IconMainUiSearch, IconGraphicsBankHsbc, IconGraphicsBankKebHana, IconGraphicsBankScJeil, IconGraphicsBankGyeongnam, IconGraphicsBankGwangju, IconGraphicsBankKukmin, IconGraphicsBankKiup, IconGraphicsBankJiyeokNonghyeop, IconGraphicsBankNhNonghyeop, IconGraphicsBankDaegu, IconGraphicsBankBusan, IconGraphicsBankSanlim, IconGraphicsBankSaneop, IconGraphicsBankSaemaulGeumgo, IconGraphicsBankSuhyeop, IconGraphicsBankSinhan, IconGraphicsBankSinhyeop, IconGraphicsBankOehwan, IconGraphicsBankWoori, IconGraphicsBankPost, IconGraphicsBankJeochuk, IconGraphicsBankJeonbuk, IconGraphicsBankJeju, IconGraphicsBankKakaoBank, IconGraphicsBankKBank, IconGraphicsBankHankookCity, IconGraphicsStockDbGeumyungTujajeungkwon, IconGraphicsStockKbJeungkwon, IconGraphicsStockNhWooriTujajeungkwon, IconGraphicsStockNhTujajeungkwon, IconGraphicsStockSkJeungkwon, IconGraphicsStockGyoboJeungkwon, IconGraphicsStockDaesinJeungkwon, IconGraphicsStockMeritzJeungkwon, IconGraphicsStockMiraeAssetJeungkwon, IconGraphicsStockBugukJeungkwon, IconGraphicsStockSamsungJeungkwon, IconGraphicsStockSinyeongJeungkwon, IconGraphicsStockSinhanTujajeungkwon, IconGraphicsStockYuantaJeungkwon, IconGraphicsStockYujinTujajeungkwon, IconGraphicsStockKiwoomJeungkwon, IconGraphicsStockHanaGeumyungTujajeungkwon, IconGraphicsStockHiTujajeungkwon, IconGraphicsStockHankookJeungkwonGeumyung, IconGraphicsStockHankookTujajeungkwon, IconGraphicsStockHanwhaTujajeungkwon, IconGraphicsStockHyundaiChaJeungkwon, IconGraphicsStockHochulEopsum, IconIllustGrade, IconIllustJob, IconSubUiArrowRight, IconIllustVehicle } from 'sales-frontend-assets';
6
7
  import styles from './modal/pre-standard/job-search-modal/job-search-modal.module.scss';
7
8
  import styles$1 from './step-indicator/step-indicator.module.scss';
8
9
  import styles$2 from './camera/camera.module.scss';
9
10
  import styles$3 from './modal/standard/address-search/select-address.module.scss';
10
11
  import styles$4 from './modal/standard/bank-stock-search/bank-stock-search-modal.module.scss';
11
- import { IconGraphicsBankHsbc, IconGraphicsBankKebHana, IconGraphicsBankScJeil, IconGraphicsBankGyeongnam, IconGraphicsBankGwangju, IconGraphicsBankKukmin, IconGraphicsBankKiup, IconGraphicsBankJiyeokNonghyeop, IconGraphicsBankNhNonghyeop, IconGraphicsBankDaegu, IconGraphicsBankBusan, IconGraphicsBankSanlim, IconGraphicsBankSaneop, IconGraphicsBankSaemaulGeumgo, IconGraphicsBankSuhyeop, IconGraphicsBankSinhan, IconGraphicsBankSinhyeop, IconGraphicsBankOehwan, IconGraphicsBankWoori, IconGraphicsBankPost, IconGraphicsBankJeochuk, IconGraphicsBankJeonbuk, IconGraphicsBankJeju, IconGraphicsBankKakaoBank, IconGraphicsBankKBank, IconGraphicsBankHankookCity, IconGraphicsStockDbGeumyungTujajeungkwon, IconGraphicsStockKbJeungkwon, IconGraphicsStockNhWooriTujajeungkwon, IconGraphicsStockNhTujajeungkwon, IconGraphicsStockSkJeungkwon, IconGraphicsStockGyoboJeungkwon, IconGraphicsStockDaesinJeungkwon, IconGraphicsStockMeritzJeungkwon, IconGraphicsStockMiraeAssetJeungkwon, IconGraphicsStockBugukJeungkwon, IconGraphicsStockSamsungJeungkwon, IconGraphicsStockSinyeongJeungkwon, IconGraphicsStockSinhanTujajeungkwon, IconGraphicsStockYuantaJeungkwon, IconGraphicsStockYujinTujajeungkwon, IconGraphicsStockKiwoomJeungkwon, IconGraphicsStockHanaGeumyungTujajeungkwon, IconGraphicsStockHiTujajeungkwon, IconGraphicsStockHankookJeungkwonGeumyung, IconGraphicsStockHankookTujajeungkwon, IconGraphicsStockHanwhaTujajeungkwon, IconGraphicsStockHyundaiChaJeungkwon, IconGraphicsStockHochulEopsum } from 'sales-frontend-assets';
12
12
  import styles$5 from './modal/pre-standard/job-vehicle-search-modal/job-vehicle-search-modal.module.scss';
13
13
  import styles$6 from './modal/pre-standard/vehicle-search-modal/vehicle-search-modal.module.scss';
14
+ import styles$7 from './modal/standard/customer-search/customer-search.module.scss';
14
15
 
15
16
  const FormCheckboxButton = ({
16
17
  name,
@@ -208,7 +209,7 @@ function requireBind () {
208
209
  var bindExports = requireBind();
209
210
  var classNames = /*@__PURE__*/getDefaultExportFromCjs(bindExports);
210
211
 
211
- const highlightOnSearchKeyword = (originalText, targetString) => {
212
+ const highlightOnSearchKeyword$1 = (originalText, targetString) => {
212
213
  if (originalText?.includes(targetString)) {
213
214
  const replacedText = [];
214
215
  const splitText = originalText.split(targetString);
@@ -223,22 +224,22 @@ const highlightOnSearchKeyword = (originalText, targetString) => {
223
224
  return originalText;
224
225
  };
225
226
 
226
- const cx$9 = classNames.bind(styles);
227
+ const cx$a = classNames.bind(styles);
227
228
  function JobSearchCategory({ filteredJobs, onJobSelect, searchTerm }) {
228
- return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", { className: cx$9("category-section"), children: [
229
- /* @__PURE__ */ jsxs("p", { className: cx$9("result-title"), children: [
229
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", { className: cx$a("category-section"), children: [
230
+ /* @__PURE__ */ jsxs("p", { className: cx$a("result-title"), children: [
230
231
  "\uCD1D ",
231
232
  /* @__PURE__ */ jsx("span", { className: "text-primary", children: filteredJobs.length }),
232
233
  "\uAC74\uC758 \uAC80\uC0C9\uACB0\uACFC"
233
234
  ] }),
234
- /* @__PURE__ */ jsx(Accordion.Root, { children: /* @__PURE__ */ jsx(Radio.Root, { name: "job-selection", size: "small", className: cx$9("job-radio-root"), onToggle: () => {
235
+ /* @__PURE__ */ jsx(Accordion.Root, { children: /* @__PURE__ */ jsx(Radio.Root, { name: "job-selection", size: "small", className: cx$a("job-radio-root"), onToggle: () => {
235
236
  }, children: filteredJobs.map((job, index) => /* @__PURE__ */ jsxs(
236
237
  Accordion.Item,
237
238
  {
238
239
  id: `item-${job.occupationIndustryCode}-${index}-accordion`,
239
240
  children: [
240
241
  /* @__PURE__ */ jsx(Accordion.HeaderDiv, { children: /* @__PURE__ */ jsx("div", { style: { flex: 1 }, children: /* @__PURE__ */ jsxs(Radio.Item, { size: "small", value: job.occupationIndustryCode, onChange: () => onJobSelect(job), children: [
241
- highlightOnSearchKeyword(job.occupationIndustryName, searchTerm),
242
+ highlightOnSearchKeyword$1(job.occupationIndustryName, searchTerm),
242
243
  "(",
243
244
  job.occupationIndustryCode,
244
245
  ")"
@@ -271,23 +272,23 @@ function JobSearchCategory({ filteredJobs, onJobSelect, searchTerm }) {
271
272
  ] }) });
272
273
  }
273
274
 
274
- const cx$8 = classNames.bind(styles);
275
+ const cx$9 = classNames.bind(styles);
275
276
  function JobSearchFavorite({ filteredJobs, onJobSelect }) {
276
- return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", { className: cx$8("popular-jobs"), children: [
277
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", { className: cx$9("popular-jobs"), children: [
277
278
  /* @__PURE__ */ jsx("p", { children: "\uB9CE\uC774 \uCC3E\uB294 \uC9C1\uC885" }),
278
- /* @__PURE__ */ jsx(Accordion.Root, { children: /* @__PURE__ */ jsx(Radio.Root, { name: "job-selection", size: "small", className: cx$8("job-radio-root"), children: filteredJobs.map((job, index) => /* @__PURE__ */ jsxs(
279
+ /* @__PURE__ */ jsx(Accordion.Root, { children: /* @__PURE__ */ jsx(Radio.Root, { name: "job-selection", size: "small", className: cx$9("job-radio-root"), children: filteredJobs.map((job, index) => /* @__PURE__ */ jsxs(
279
280
  Accordion.Item,
280
281
  {
281
282
  id: `item-${job.occupationIndustryCode}-${index}`,
282
- className: cx$8("accordion-item"),
283
+ className: cx$9("accordion-item"),
283
284
  children: [
284
- /* @__PURE__ */ jsx(Accordion.HeaderDiv, { className: cx$8("accordion-header-item"), children: /* @__PURE__ */ jsxs(
285
+ /* @__PURE__ */ jsx(Accordion.HeaderDiv, { className: cx$9("accordion-header-item"), children: /* @__PURE__ */ jsxs(
285
286
  Radio.Item,
286
287
  {
287
288
  size: "small",
288
289
  value: job.occupationIndustryCode,
289
290
  onChange: () => onJobSelect(job),
290
- className: cx$8("radio-item"),
291
+ className: cx$9("radio-item"),
291
292
  children: [
292
293
  job.occupationIndustryName,
293
294
  "(",
@@ -304,15 +305,15 @@ function JobSearchFavorite({ filteredJobs, onJobSelect }) {
304
305
  ] }) });
305
306
  }
306
307
 
307
- const cx$7 = classNames.bind(styles);
308
+ const cx$8 = classNames.bind(styles);
308
309
  function JobSearchResult({ filteredJobs, onJobSelect, searchTerm }) {
309
- return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", { className: cx$7("popular-jobs"), children: [
310
- /* @__PURE__ */ jsxs("p", { className: cx$7("result-title"), children: [
310
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", { className: cx$8("popular-jobs"), children: [
311
+ /* @__PURE__ */ jsxs("p", { className: cx$8("result-title"), children: [
311
312
  "\uCD1D ",
312
313
  /* @__PURE__ */ jsx("span", { className: "text-primary", children: filteredJobs.length }),
313
314
  "\uAC74\uC758 \uAC80\uC0C9\uACB0\uACFC"
314
315
  ] }),
315
- /* @__PURE__ */ jsx(Accordion.Root, { children: /* @__PURE__ */ jsx(Radio.Root, { name: "job-selection", size: "small", className: cx$7("job-radio-root"), children: filteredJobs.map((job) => /* @__PURE__ */ jsxs(
316
+ /* @__PURE__ */ jsx(Accordion.Root, { children: /* @__PURE__ */ jsx(Radio.Root, { name: "job-selection", size: "small", className: cx$8("job-radio-root"), children: filteredJobs.map((job) => /* @__PURE__ */ jsxs(
316
317
  Accordion.Item,
317
318
  {
318
319
  id: `item-${job.occupationIndustryCode}`,
@@ -326,7 +327,7 @@ function JobSearchResult({ filteredJobs, onJobSelect, searchTerm }) {
326
327
  onChange: () => {
327
328
  onJobSelect(job);
328
329
  },
329
- children: highlightOnSearchKeyword(job.occupationIndustryName, searchTerm)
330
+ children: highlightOnSearchKeyword$1(job.occupationIndustryName, searchTerm)
330
331
  }
331
332
  ) }) }),
332
333
  /* @__PURE__ */ jsx(Accordion.Content, { variant: "text", children: /* @__PURE__ */ jsx(Table, { variant: "horizontal", children: /* @__PURE__ */ jsxs("tbody", { children: [
@@ -358,7 +359,7 @@ function JobSearchResult({ filteredJobs, onJobSelect, searchTerm }) {
358
359
  }
359
360
 
360
361
  const { TextField } = FormField;
361
- const cx$6 = classNames.bind(styles);
362
+ const cx$7 = classNames.bind(styles);
362
363
  const { Option } = Select;
363
364
  function JobSearch({
364
365
  activeTab,
@@ -395,7 +396,7 @@ function JobSearch({
395
396
  }
396
397
  ),
397
398
  /* @__PURE__ */ jsxs("div", { children: [
398
- activeTab === "jobName" && /* @__PURE__ */ jsxs("div", { className: cx$6("favorite-jobs-section"), children: [
399
+ activeTab === "jobName" && /* @__PURE__ */ jsxs("div", { className: cx$7("favorite-jobs-section"), children: [
399
400
  /* @__PURE__ */ jsx(
400
401
  TextField,
401
402
  {
@@ -406,7 +407,7 @@ function JobSearch({
406
407
  className: styles.searchInput,
407
408
  size: "medium",
408
409
  rootProps: {
409
- endElement: /* @__PURE__ */ jsx(Icon, { name: "sub-ui/search", onClick: () => setSearchTerm(searchInput) }),
410
+ endElement: /* @__PURE__ */ jsx(IconMainUiSearch, { onClick: () => setSearchTerm(searchInput) }),
410
411
  onClear: () => {
411
412
  setSearchTerm("");
412
413
  setSearchInput("");
@@ -417,8 +418,8 @@ function JobSearch({
417
418
  !searchTerm && /* @__PURE__ */ jsx(JobSearchFavorite, { filteredJobs, onJobSelect }),
418
419
  searchTerm && /* @__PURE__ */ jsx(JobSearchResult, { filteredJobs, onJobSelect, searchTerm })
419
420
  ] }),
420
- activeTab === "jobCode" && /* @__PURE__ */ jsxs("div", { className: cx$6("select-jobs-section"), children: [
421
- /* @__PURE__ */ jsxs("div", { className: cx$6("category-section"), children: [
421
+ activeTab === "jobCode" && /* @__PURE__ */ jsxs("div", { className: cx$7("select-jobs-section"), children: [
422
+ /* @__PURE__ */ jsxs("div", { className: cx$7("category-section"), children: [
422
423
  /* @__PURE__ */ jsx(
423
424
  Select,
424
425
  {
@@ -800,7 +801,7 @@ const FormTextField = ({
800
801
  );
801
802
  };
802
803
 
803
- const cx$5 = classNames.bind(styles$1);
804
+ const cx$6 = classNames.bind(styles$1);
804
805
  const StepIndicator = ({
805
806
  items,
806
807
  onClickItem,
@@ -835,26 +836,26 @@ const StepIndicator = ({
835
836
  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");
836
837
  }
837
838
  };
838
- return /* @__PURE__ */ jsxs("div", { className: cx$5("stepper-layout", { loading: isLoading }), children: [
839
- /* @__PURE__ */ jsx("div", { className: cx$5("stepper"), children: steps.map((item, idx) => /* @__PURE__ */ jsxs(React.Fragment, { children: [
839
+ return /* @__PURE__ */ jsxs("div", { className: cx$6("stepper-layout", { loading: isLoading }), children: [
840
+ /* @__PURE__ */ jsx("div", { className: cx$6("stepper"), children: steps.map((item, idx) => /* @__PURE__ */ jsxs(React.Fragment, { children: [
840
841
  /* @__PURE__ */ jsx(
841
842
  "div",
842
843
  {
843
- className: cx$5(
844
+ className: cx$6(
844
845
  "circle",
845
846
  { completed: item.isCompleted ?? false },
846
847
  { active: defaultValue === item.value || current === idx }
847
848
  ),
848
849
  onClick: () => handleClickStep?.(item),
849
- children: item.isCompleted ? /* @__PURE__ */ jsx("span", { className: cx$5("completed-icon") }) : idx + 1
850
+ children: item.isCompleted ? /* @__PURE__ */ jsx("span", { className: cx$6("completed-icon") }) : idx + 1
850
851
  }
851
852
  ),
852
- idx < steps.length - 1 && Array.from({ length: dotCount }).map((_, dotIdx) => /* @__PURE__ */ jsx("span", { className: cx$5("dot") }, `dot-${idx}-${dotIdx}`))
853
+ idx < steps.length - 1 && Array.from({ length: dotCount }).map((_, dotIdx) => /* @__PURE__ */ jsx("span", { className: cx$6("dot") }, `dot-${idx}-${dotIdx}`))
853
854
  ] }, `num-${idx}`)) }),
854
- /* @__PURE__ */ jsx("ul", { className: cx$5("step-labels"), children: steps.map((item, idx) => /* @__PURE__ */ jsx(
855
+ /* @__PURE__ */ jsx("ul", { className: cx$6("step-labels"), children: steps.map((item, idx) => /* @__PURE__ */ jsx(
855
856
  "li",
856
857
  {
857
- className: cx$5(
858
+ className: cx$6(
858
859
  { completed: steps[idx < 1 ? idx : idx - 1]?.isCompleted ?? false },
859
860
  { active: defaultValue === item.value || current === idx }
860
861
  ),
@@ -866,7 +867,7 @@ const StepIndicator = ({
866
867
  ] });
867
868
  };
868
869
 
869
- const cx$4 = classNames.bind(styles$2);
870
+ const cx$5 = classNames.bind(styles$2);
870
871
  function Attachment({
871
872
  photos,
872
873
  onAddPhoto,
@@ -883,14 +884,14 @@ function Attachment({
883
884
  };
884
885
  const renderPhotoSingle = () => {
885
886
  if (photos.length === 0) {
886
- return /* @__PURE__ */ jsx("div", { className: cx$4("single-photo-item", "add-photo-item"), children: /* @__PURE__ */ jsxs("button", { className: cx$4("add-photo-button-single"), onClick: handleAddPhoto, children: [
887
+ return /* @__PURE__ */ jsx("div", { className: cx$5("single-photo-item", "add-photo-item"), children: /* @__PURE__ */ jsxs("button", { className: cx$5("add-photo-button-single"), onClick: handleAddPhoto, children: [
887
888
  /* @__PURE__ */ jsx(Icon, { name: "illust/camera" }),
888
889
  /* @__PURE__ */ jsx("span", { children: buttonText || "\uC0AC\uC9C4 \uCCA8\uBD80\uD558\uAE30" })
889
890
  ] }) });
890
891
  }
891
- return photos.map((photo) => /* @__PURE__ */ jsxs("div", { className: cx$4("single-photo-item"), children: [
892
- /* @__PURE__ */ jsx("div", { className: cx$4("photo-placeholder"), children: /* @__PURE__ */ jsx("img", { src: photo.src, alt: photo.name, className: cx$4("photo-image") }) }),
893
- /* @__PURE__ */ jsx("button", { className: cx$4("remove-button"), onClick: () => handleRemovePhoto(photo.id), "aria-label": "\uC0AC\uC9C4 \uC0AD\uC81C", children: "\xD7" })
892
+ return photos.map((photo) => /* @__PURE__ */ jsxs("div", { className: cx$5("single-photo-item"), children: [
893
+ /* @__PURE__ */ jsx("div", { className: cx$5("photo-placeholder"), children: /* @__PURE__ */ jsx("img", { src: photo.src, alt: photo.name, className: cx$5("photo-image") }) }),
894
+ /* @__PURE__ */ jsx("button", { className: cx$5("remove-button"), onClick: () => handleRemovePhoto(photo.id), "aria-label": "\uC0AC\uC9C4 \uC0AD\uC81C", children: "\xD7" })
894
895
  ] }, photo.id));
895
896
  };
896
897
  const renderPhotoGrid = () => {
@@ -898,12 +899,12 @@ function Attachment({
898
899
  const gridItems = [];
899
900
  if (photos.length < maxPhotos) {
900
901
  gridItems.push(
901
- /* @__PURE__ */ jsx("div", { className: cx$4("photo-item", "add-photo-item"), children: /* @__PURE__ */ jsxs("button", { className: cx$4("add-photo-button"), onClick: handleAddPhoto, children: [
902
+ /* @__PURE__ */ jsx("div", { className: cx$5("photo-item", "add-photo-item"), children: /* @__PURE__ */ jsxs("button", { className: cx$5("add-photo-button"), onClick: handleAddPhoto, children: [
902
903
  /* @__PURE__ */ jsx(Icon, { name: "illust/camera" }),
903
904
  /* @__PURE__ */ jsx("span", { children: buttonText || "\uCCA8\uBD80\uD558\uAE30" }),
904
- /* @__PURE__ */ jsxs("span", { className: cx$4("photo-count"), children: [
905
+ /* @__PURE__ */ jsxs("span", { className: cx$5("photo-count"), children: [
905
906
  "(",
906
- /* @__PURE__ */ jsx("span", { className: cx$4("photo-count-number"), children: photos.length }),
907
+ /* @__PURE__ */ jsx("span", { className: cx$5("photo-count-number"), children: photos.length }),
907
908
  "/",
908
909
  maxPhotos,
909
910
  ")"
@@ -913,9 +914,9 @@ function Attachment({
913
914
  }
914
915
  photos.forEach((photo) => {
915
916
  gridItems.push(
916
- /* @__PURE__ */ jsxs("div", { className: cx$4("photo-item"), children: [
917
- /* @__PURE__ */ jsx("div", { className: cx$4("photo-placeholder"), children: /* @__PURE__ */ jsx("img", { src: photo.src, alt: photo.name, className: cx$4("photo-image") }) }),
918
- /* @__PURE__ */ jsx("button", { className: cx$4("remove-button"), onClick: () => handleRemovePhoto(photo.id), "aria-label": "\uC0AC\uC9C4 \uC0AD\uC81C", children: "\xD7" })
917
+ /* @__PURE__ */ jsxs("div", { className: cx$5("photo-item"), children: [
918
+ /* @__PURE__ */ jsx("div", { className: cx$5("photo-placeholder"), children: /* @__PURE__ */ jsx("img", { src: photo.src, alt: photo.name, className: cx$5("photo-image") }) }),
919
+ /* @__PURE__ */ jsx("button", { className: cx$5("remove-button"), onClick: () => handleRemovePhoto(photo.id), "aria-label": "\uC0AC\uC9C4 \uC0AD\uC81C", children: "\xD7" })
919
920
  ] }, photo.id)
920
921
  );
921
922
  });
@@ -926,9 +927,9 @@ function Attachment({
926
927
  return null;
927
928
  }
928
929
  if (type === "single") {
929
- return /* @__PURE__ */ jsx("div", { className: cx$4("photo-single"), children: renderPhotoSingle() });
930
+ return /* @__PURE__ */ jsx("div", { className: cx$5("photo-single"), children: renderPhotoSingle() });
930
931
  }
931
- return /* @__PURE__ */ jsx("div", { className: cx$4("photo-grid", { linear: type === "linear" }), children: renderPhotoGrid() });
932
+ return /* @__PURE__ */ jsx("div", { className: cx$5("photo-grid", { linear: type === "linear" }), children: renderPhotoGrid() });
932
933
  }
933
934
 
934
935
  const maxImageSize = 3 * 1024 * 1024;
@@ -1375,12 +1376,12 @@ function useCanvasPaint(paintProps = {}) {
1375
1376
 
1376
1377
  const testSignatureBase64Data = "data:image/png;base64,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";
1377
1378
 
1378
- const cx$3 = classNames.bind(styles$3);
1379
- const { InputBox, Input } = FormCore;
1379
+ const cx$4 = classNames.bind(styles$3);
1380
+ const { InputBox: InputBox$1, Input: Input$1 } = FormCore;
1380
1381
  const AddressSearchInitialText = () => {
1381
1382
  return /* @__PURE__ */ jsxs("div", { children: [
1382
- /* @__PURE__ */ jsx("p", { className: cx$3("guide-title"), children: "\uC774\uB807\uAC8C \uAC80\uC0C9\uD574 \uBCF4\uC138\uC694." }),
1383
- /* @__PURE__ */ jsxs("ul", { className: cx$3("guide"), children: [
1383
+ /* @__PURE__ */ jsx("p", { className: cx$4("guide-title"), children: "\uC774\uB807\uAC8C \uAC80\uC0C9\uD574 \uBCF4\uC138\uC694." }),
1384
+ /* @__PURE__ */ jsxs("ul", { className: cx$4("guide"), children: [
1384
1385
  /* @__PURE__ */ jsx("li", { children: "\uB3C4\uB85C\uBA85/\uC9C0\uBA85\uACFC \uAC74\uBB3C\uBC88\uD638\uB97C \uD568\uAED8 \uC785\uB825\uD574\uC8FC\uC138\uC694" }),
1385
1386
  /* @__PURE__ */ jsx("li", { children: "\uC608) 63\uB85C 50, \uC5EC\uC758\uB3C4\uB3D9 60" }),
1386
1387
  /* @__PURE__ */ jsx("li", { children: "\uC9C0\uBA85\uC740 \uB3D9/\uC74D/\uBA74/\uB9AC\uB85C \uC785\uB825\uD574\uC8FC\uC138\uC694" }),
@@ -1404,7 +1405,7 @@ const AddressSearchResult = ({
1404
1405
  setFilterList(filterList2);
1405
1406
  }, [addressSearchList, searchKeyword]);
1406
1407
  return /* @__PURE__ */ jsxs("div", { children: [
1407
- /* @__PURE__ */ jsxs("p", { className: cx$3("guide-title"), children: [
1408
+ /* @__PURE__ */ jsxs("p", { className: cx$4("guide-title"), children: [
1408
1409
  "\uCD1D ",
1409
1410
  /* @__PURE__ */ jsx("span", { className: "text-primary", children: filterList.length }),
1410
1411
  "\uAC74\uC758 \uAC80\uC0C9\uACB0\uACFC"
@@ -1415,20 +1416,20 @@ const AddressSearchResult = ({
1415
1416
  items: filterList.map((item) => ({
1416
1417
  value: item.address,
1417
1418
  select: item.address === selectedAddress?.address && item.zipCode === selectedAddress?.zipCode,
1418
- label: /* @__PURE__ */ jsxs("div", { className: cx$3("search-result"), children: [
1419
- /* @__PURE__ */ jsxs("div", { className: cx$3("zipcode"), children: [
1419
+ label: /* @__PURE__ */ jsxs("div", { className: cx$4("search-result"), children: [
1420
+ /* @__PURE__ */ jsxs("div", { className: cx$4("zipcode"), children: [
1420
1421
  " ",
1421
- highlightOnSearchKeyword(item.zipCode, searchKeyword)
1422
+ highlightOnSearchKeyword$1(item.zipCode, searchKeyword)
1422
1423
  ] }),
1423
- /* @__PURE__ */ jsx("div", { className: cx$3("divider") }),
1424
- /* @__PURE__ */ jsxs("div", { className: cx$3("address-info"), children: [
1425
- /* @__PURE__ */ jsx("span", { className: cx$3("address"), children: highlightOnSearchKeyword(item.address, searchKeyword) }),
1426
- /* @__PURE__ */ jsx("span", { className: cx$3("old-address"), children: highlightOnSearchKeyword(item.oldAddress, searchKeyword) })
1424
+ /* @__PURE__ */ jsx("div", { className: cx$4("divider") }),
1425
+ /* @__PURE__ */ jsxs("div", { className: cx$4("address-info"), children: [
1426
+ /* @__PURE__ */ jsx("span", { className: cx$4("address"), children: highlightOnSearchKeyword$1(item.address, searchKeyword) }),
1427
+ /* @__PURE__ */ jsx("span", { className: cx$4("old-address"), children: highlightOnSearchKeyword$1(item.oldAddress, searchKeyword) })
1427
1428
  ] })
1428
1429
  ] }),
1429
1430
  id: item.address
1430
1431
  })),
1431
- className: cx$3("radio-group"),
1432
+ className: cx$4("radio-group"),
1432
1433
  name: "address-search",
1433
1434
  size: "medium",
1434
1435
  defaultValue: "",
@@ -1462,7 +1463,7 @@ const AddressSearchDetailInput = ({
1462
1463
  /* @__PURE__ */ jsxs("div", { children: [
1463
1464
  /* @__PURE__ */ jsx(FormField.Label, { id: "detail", style: { width: "90px" }, children: "\uC0C1\uC138\uC8FC\uC18C" }),
1464
1465
  /* @__PURE__ */ jsx(
1465
- Input,
1466
+ Input$1,
1466
1467
  {
1467
1468
  placeholder: "\uC0C1\uC138\uC8FC\uC18C \uC785\uB825",
1468
1469
  onChange: onDetailChange,
@@ -1500,25 +1501,17 @@ function AddressComponent({ isOpen, onClose, setValue }) {
1500
1501
  /* @__PURE__ */ jsxs(Modal.Content, { children: [
1501
1502
  /* @__PURE__ */ jsx(Modal.Header, { headerTitle: "\uC8FC\uC18C \uAC80\uC0C9", showCloseButton: true }),
1502
1503
  /* @__PURE__ */ jsxs(Modal.Body, { children: [
1503
- /* @__PURE__ */ jsx(
1504
- InputBox,
1504
+ /* @__PURE__ */ jsx(InputBox$1, { clearable: true, endElement: /* @__PURE__ */ jsx(IconMainUiSearch, { onClick: search }), onClear: onAddressSearchClear, children: /* @__PURE__ */ jsx(
1505
+ Input$1,
1505
1506
  {
1506
- clearable: true,
1507
- endElement: /* @__PURE__ */ jsx(Icon, { name: "sub-ui/search", onClick: search }),
1508
- onClear: onAddressSearchClear,
1509
- children: /* @__PURE__ */ jsx(
1510
- Input,
1511
- {
1512
- ...addressSearchStep !== "detail-input" && { autoFocus: true },
1513
- onChange: onSearch,
1514
- onKeyUp,
1515
- value: searchInput,
1516
- placeholder: "\uC9C0\uBC88, \uB3C4\uB85C\uBA85, \uAC74\uBB3C\uBA85, \uC6B0\uD3B8\uBC88\uD638 \uC785\uB825",
1517
- size: "large"
1518
- }
1519
- )
1507
+ ...addressSearchStep !== "detail-input" && { autoFocus: true },
1508
+ onChange: onSearch,
1509
+ onKeyUp,
1510
+ value: searchInput,
1511
+ placeholder: "\uC9C0\uBC88, \uB3C4\uB85C\uBA85, \uAC74\uBB3C\uBA85, \uC6B0\uD3B8\uBC88\uD638 \uC785\uB825",
1512
+ size: "large"
1520
1513
  }
1521
- ),
1514
+ ) }),
1522
1515
  addressSearchStep === "initial" && /* @__PURE__ */ jsx(AddressSearchInitialText, {}),
1523
1516
  addressSearchStep === "search-result" && /* @__PURE__ */ jsx(
1524
1517
  AddressSearchResult,
@@ -1769,20 +1762,20 @@ function BankStockSearchModal({ open, onClose, onSelect }) {
1769
1762
  ] });
1770
1763
  }
1771
1764
 
1772
- const cx$2 = classNames.bind(styles$5);
1765
+ const cx$3 = classNames.bind(styles$5);
1773
1766
  const JobVehicleSearchGrade = ({ riskGrade, hospitalizationGrade }) => {
1774
- return /* @__PURE__ */ jsxs("div", { className: cx$2("grade-section"), children: [
1775
- /* @__PURE__ */ jsxs("div", { className: cx$2("icon-title"), children: [
1776
- /* @__PURE__ */ jsx(Icon, { name: "illust/grade" }),
1767
+ return /* @__PURE__ */ jsxs("div", { className: cx$3("grade-section"), children: [
1768
+ /* @__PURE__ */ jsxs("div", { className: cx$3("icon-title"), children: [
1769
+ /* @__PURE__ */ jsx(IconIllustGrade, {}),
1777
1770
  /* @__PURE__ */ jsx("span", { className: "typo-title5 text-body", children: "\uB4F1\uAE09" })
1778
1771
  ] }),
1779
1772
  /* @__PURE__ */ 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." }),
1780
- /* @__PURE__ */ jsxs("div", { className: cx$2("grade-list"), children: [
1781
- /* @__PURE__ */ jsxs("div", { className: cx$2("grade"), children: [
1773
+ /* @__PURE__ */ jsxs("div", { className: cx$3("grade-list"), children: [
1774
+ /* @__PURE__ */ jsxs("div", { className: cx$3("grade"), children: [
1782
1775
  /* @__PURE__ */ jsx("span", { children: "\uC704\uD5D8\uB4F1\uAE09" }),
1783
1776
  /* @__PURE__ */ jsx("span", { className: "text-primary typo-subtitle3", children: riskGrade || "-" })
1784
1777
  ] }),
1785
- /* @__PURE__ */ jsxs("div", { className: cx$2("grade"), children: [
1778
+ /* @__PURE__ */ jsxs("div", { className: cx$3("grade"), children: [
1786
1779
  /* @__PURE__ */ jsx("span", { children: "\uC785\uC6D0\uB4F1\uAE09" }),
1787
1780
  /* @__PURE__ */ jsx("span", { className: "text-primary typo-subtitle3", children: hospitalizationGrade || "-" })
1788
1781
  ] })
@@ -1790,11 +1783,11 @@ const JobVehicleSearchGrade = ({ riskGrade, hospitalizationGrade }) => {
1790
1783
  ] });
1791
1784
  };
1792
1785
 
1793
- const cx$1 = classNames.bind(styles$6);
1786
+ const cx$2 = classNames.bind(styles$6);
1794
1787
  function VehicleSearch({ vehicles, onVehicleSelect }) {
1795
- return /* @__PURE__ */ jsxs("div", { className: cx$1("vehicle-search-section"), children: [
1788
+ return /* @__PURE__ */ jsxs("div", { className: cx$2("vehicle-search-section"), children: [
1796
1789
  /* @__PURE__ */ jsx("p", { children: "\uC6B4\uC804 \uCC28\uC885" }),
1797
- /* @__PURE__ */ jsx(Radio.Root, { name: "vehicle-selection", size: "small", className: cx$1("vehicle-radio-root"), children: vehicles.map((vehicle, index) => /* @__PURE__ */ jsxs(
1790
+ /* @__PURE__ */ jsx(Radio.Root, { name: "vehicle-selection", size: "small", className: cx$2("vehicle-radio-root"), children: vehicles.map((vehicle, index) => /* @__PURE__ */ jsxs(
1798
1791
  Radio.Item,
1799
1792
  {
1800
1793
  id: `item-${vehicle.integrationCodeValue}`,
@@ -1808,7 +1801,7 @@ function VehicleSearch({ vehicles, onVehicleSelect }) {
1808
1801
  onVehicleSelect(selected);
1809
1802
  }
1810
1803
  },
1811
- className: cx$1("item"),
1804
+ className: cx$2("item"),
1812
1805
  children: [
1813
1806
  vehicle.integrationCodeValueName,
1814
1807
  "(",
@@ -1856,7 +1849,7 @@ const useJobVehicleSearch = () => {
1856
1849
  };
1857
1850
  };
1858
1851
 
1859
- const cx = classNames.bind(styles$5);
1852
+ const cx$1 = classNames.bind(styles$5);
1860
1853
  function useJobVehicleSearchModal() {
1861
1854
  const {
1862
1855
  selectedVehicle,
@@ -1902,19 +1895,19 @@ function useJobVehicleSearchModal() {
1902
1895
  /* @__PURE__ */ jsx(Modal.Overlay, {}),
1903
1896
  /* @__PURE__ */ jsxs(Modal.Content, { style: { height: "697px" }, children: [
1904
1897
  /* @__PURE__ */ jsx(Modal.Header, { headerTitle: "\uC9C1\uC885\xB7\uC6B4\uC804\uCC28\uC885 \uAC80\uC0C9", showCloseButton: true }),
1905
- /* @__PURE__ */ jsx(Modal.Body, { className: cx("job-vehicle-search-modal"), raw: true, children: /* @__PURE__ */ jsxs(Fragment, { children: [
1906
- /* @__PURE__ */ jsxs("div", { className: cx("left-panel"), children: [
1907
- /* @__PURE__ */ jsxs("div", { className: cx("card-section"), children: [
1898
+ /* @__PURE__ */ jsx(Modal.Body, { className: cx$1("job-vehicle-search-modal"), raw: true, children: /* @__PURE__ */ jsxs(Fragment, { children: [
1899
+ /* @__PURE__ */ jsxs("div", { className: cx$1("left-panel"), children: [
1900
+ /* @__PURE__ */ jsxs("div", { className: cx$1("card-section"), children: [
1908
1901
  /* @__PURE__ */ jsxs(
1909
1902
  "div",
1910
1903
  {
1911
- className: cx("card-menu", { "card-selected": rightPanelView === "jobSearch" }),
1904
+ className: cx$1("card-menu", { "card-selected": rightPanelView === "jobSearch" }),
1912
1905
  onClick: () => setRightPanelView("jobSearch"),
1913
1906
  children: [
1914
- /* @__PURE__ */ jsxs("div", { className: cx("card-title"), children: [
1915
- /* @__PURE__ */ jsx(Icon, { name: "illust/job", className: cx("card-icon") }),
1916
- /* @__PURE__ */ jsx("span", { className: cx("card-text", "typo-title5", "text-body"), children: "\uC9C1\uC885" }),
1917
- /* @__PURE__ */ jsx(Icon, { name: "sub-ui/arrow/right" })
1907
+ /* @__PURE__ */ jsxs("div", { className: cx$1("card-title"), children: [
1908
+ /* @__PURE__ */ jsx(IconIllustJob, { className: cx$1("card-icon") }),
1909
+ /* @__PURE__ */ jsx("span", { className: cx$1("card-text", "typo-title5", "text-body"), children: "\uC9C1\uC885" }),
1910
+ /* @__PURE__ */ jsx(IconSubUiArrowRight, {})
1918
1911
  ] }),
1919
1912
  /* @__PURE__ */ jsx("div", { className: "typo-body2 text-body_2", children: selectedJob ? selectedJob.occupationIndustryName : "\uBBF8\uC120\uD0DD" })
1920
1913
  ]
@@ -1923,13 +1916,13 @@ function useJobVehicleSearchModal() {
1923
1916
  /* @__PURE__ */ jsxs(
1924
1917
  "div",
1925
1918
  {
1926
- className: cx("card-menu", { "card-selected": rightPanelView === "vehicleSelection" }),
1919
+ className: cx$1("card-menu", { "card-selected": rightPanelView === "vehicleSelection" }),
1927
1920
  onClick: () => setRightPanelView("vehicleSelection"),
1928
1921
  children: [
1929
- /* @__PURE__ */ jsxs("div", { className: cx("card-title"), children: [
1930
- /* @__PURE__ */ jsx(Icon, { name: "illust/vehicle", className: cx("card-icon") }),
1931
- /* @__PURE__ */ jsx("span", { className: cx("card-text", "typo-title5", "text-body"), children: "\uC6B4\uC804 \uC5EC\uBD80\xB7\uCC28\uC885" }),
1932
- /* @__PURE__ */ jsx(Icon, { name: "sub-ui/arrow/right" })
1922
+ /* @__PURE__ */ jsxs("div", { className: cx$1("card-title"), children: [
1923
+ /* @__PURE__ */ jsx(IconIllustVehicle, { className: cx$1("card-icon") }),
1924
+ /* @__PURE__ */ jsx("span", { className: cx$1("card-text", "typo-title5", "text-body"), children: "\uC6B4\uC804 \uC5EC\uBD80\xB7\uCC28\uC885" }),
1925
+ /* @__PURE__ */ jsx(IconSubUiArrowRight, {})
1933
1926
  ] }),
1934
1927
  /* @__PURE__ */ jsxs("div", { className: "typo-body2 text-body_2", children: [
1935
1928
  selectedVehicle?.integrationCodeValueName,
@@ -1941,7 +1934,7 @@ function useJobVehicleSearchModal() {
1941
1934
  ] }),
1942
1935
  /* @__PURE__ */ jsx(JobVehicleSearchGrade, { riskGrade, hospitalizationGrade })
1943
1936
  ] }),
1944
- /* @__PURE__ */ jsx("div", { className: cx("right-panel"), children: rightPanelView === "jobSearch" ? JobSearch : VehicleSearch })
1937
+ /* @__PURE__ */ jsx("div", { className: cx$1("right-panel"), children: rightPanelView === "jobSearch" ? JobSearch : VehicleSearch })
1945
1938
  ] }) }),
1946
1939
  /* @__PURE__ */ jsx(Modal.Footer, { style: { marginTop: 0 }, children: /* @__PURE__ */ jsx(Button, { variant: "primary", size: "medium", appearance: "filled", width: "full", onClick: validate, children: "\uD655\uC778" }) })
1947
1940
  ] })
@@ -1961,5 +1954,144 @@ const JobSearchModal = ({ onClose }) => {
1961
1954
  ] });
1962
1955
  };
1963
1956
 
1964
- export { Attachment, BankStockSearchModal, FormCheckbox, FormCheckboxButton, FormDatePicker, FormDateRangePicker, FormSearchJobField, FormSegmentGroup, FormSelect, FormTextField, JobSearchModal, StepIndicator, resize, testSignatureBase64Data, useAddressComponent, useBankStockSearch, useCamera, useCanvasPaint, useJobVehicleSearchModal, useSearchAddress };
1957
+ const mockCustomers = [
1958
+ { customerId: "1", customerName: "\uAE40\uD55C\uD654", birthDate: "1999.01.01", genderCode: "\uB0A8\uC131" },
1959
+ {
1960
+ customerId: "2",
1961
+ customerName: "\uAE40\uD55C\uD654\uC0DD\uBA85",
1962
+ birthDate: "1989.01.01",
1963
+ genderCode: "\uC5EC\uC131",
1964
+ baseAddress: "\uC11C\uC6B8\uC2DC \uB9C8\uD3EC\uAD6C"
1965
+ },
1966
+ {
1967
+ customerId: "3",
1968
+ customerName: "\uAE40\uD55C\uD654\uC190\uD574\uBCF4\uD5D8",
1969
+ birthDate: "1999.01.01",
1970
+ genderCode: "\uB0A8\uC131",
1971
+ baseAddress: "\uC11C\uC6B8\uC2DC \uB9C8\uD3EC\uAD6C"
1972
+ }
1973
+ ];
1974
+ const useCustomerSearch = (onSelect) => {
1975
+ const { triggerRef, isOpen, setIsOpen, DropDown } = useDropDown();
1976
+ const [searchKeyword, setSearchKeyword] = useState("");
1977
+ const [searchInput, setSearchInput] = useState("");
1978
+ const [customerList, setCustomerList] = useState([]);
1979
+ const [selectedCustomer, setSelectedCustomer] = useState(null);
1980
+ const search = () => {
1981
+ if (searchInput.length >= 2) {
1982
+ setSearchKeyword(searchInput);
1983
+ const filtered = mockCustomers.filter((c) => c.customerName?.toLowerCase().includes(searchInput.toLowerCase()));
1984
+ setCustomerList(filtered);
1985
+ setIsOpen(true);
1986
+ } else {
1987
+ setCustomerList([]);
1988
+ setSearchKeyword("");
1989
+ setIsOpen(false);
1990
+ }
1991
+ };
1992
+ const onKeyUp = (e) => {
1993
+ if (e.key === "Enter") {
1994
+ search();
1995
+ }
1996
+ };
1997
+ const onSearchInputChange = (e) => {
1998
+ setSearchInput(e.target.value);
1999
+ if (e.target.value.length < 2) {
2000
+ setCustomerList([]);
2001
+ setSearchKeyword("");
2002
+ setIsOpen(false);
2003
+ }
2004
+ };
2005
+ const onClear = () => {
2006
+ setSearchInput("");
2007
+ setSearchKeyword("");
2008
+ setCustomerList([]);
2009
+ setSelectedCustomer(null);
2010
+ setIsOpen(false);
2011
+ };
2012
+ const handleSelectItem = (customer) => {
2013
+ setSelectedCustomer(customer);
2014
+ setSearchInput(customer.customerName || "");
2015
+ setCustomerList([]);
2016
+ setIsOpen(false);
2017
+ if (onSelect) {
2018
+ onSelect(customer);
2019
+ }
2020
+ };
2021
+ return {
2022
+ triggerRef,
2023
+ isOpen,
2024
+ DropDown,
2025
+ searchInput,
2026
+ customerList,
2027
+ searchKeyword,
2028
+ onSearchInputChange,
2029
+ onKeyUp,
2030
+ search,
2031
+ onClear,
2032
+ handleSelectItem,
2033
+ selectedCustomer
2034
+ };
2035
+ };
2036
+
2037
+ const cx = classNames.bind(styles$7);
2038
+ const highlightOnSearchKeyword = (originalText, targetString) => {
2039
+ if (!targetString || !originalText?.includes(targetString)) {
2040
+ return originalText;
2041
+ }
2042
+ const replacedText = [];
2043
+ const splitText = originalText.split(targetString);
2044
+ for (let i = 0; i < splitText.length; i++) {
2045
+ replacedText.push(splitText[i] || "");
2046
+ if (i < splitText.length - 1) {
2047
+ replacedText.push(
2048
+ /* @__PURE__ */ jsx("span", { className: "text-primary", children: targetString }, i)
2049
+ );
2050
+ }
2051
+ }
2052
+ return replacedText;
2053
+ };
2054
+ const { InputBox, Input } = FormCore;
2055
+ const CustomerSearch = ({ onSelect }) => {
2056
+ const {
2057
+ triggerRef,
2058
+ isOpen,
2059
+ DropDown,
2060
+ searchInput,
2061
+ customerList,
2062
+ searchKeyword,
2063
+ onSearchInputChange,
2064
+ onKeyUp,
2065
+ search,
2066
+ onClear,
2067
+ handleSelectItem
2068
+ } = useCustomerSearch(onSelect);
2069
+ return /* @__PURE__ */ jsxs("div", { className: cx("container"), children: [
2070
+ /* @__PURE__ */ jsx("div", { className: cx("search-bar"), children: /* @__PURE__ */ jsx(InputBox, { endElement: /* @__PURE__ */ jsx(IconMainUiSearch, { onClick: search }), onClear, clearable: true, children: /* @__PURE__ */ jsx(
2071
+ Input,
2072
+ {
2073
+ onChange: onSearchInputChange,
2074
+ onKeyUp,
2075
+ value: searchInput,
2076
+ placeholder: "\uACE0\uAC1D\uBA85\uC744 \uB450 \uAE00\uC790 \uC774\uC0C1 \uC785\uB825\uD574\uC8FC\uC138\uC694.",
2077
+ size: "large",
2078
+ ref: triggerRef
2079
+ }
2080
+ ) }) }),
2081
+ isOpen && /* @__PURE__ */ jsx(DropDown, { children: /* @__PURE__ */ jsx("div", { className: cx("result-container"), children: customerList.length > 0 && /* @__PURE__ */ jsx(List, { rootProps: { style: { width: "100%" } }, children: customerList.map((customer) => /* @__PURE__ */ jsx(ListItem, { onClick: () => handleSelectItem(customer), selectable: true, children: /* @__PURE__ */ jsxs("div", { className: cx("customer-item"), children: [
2082
+ /* @__PURE__ */ jsx("div", { className: cx("name"), children: highlightOnSearchKeyword(customer.customerName || "", searchKeyword) }),
2083
+ /* @__PURE__ */ jsxs("div", { className: cx("details"), children: [
2084
+ /* @__PURE__ */ jsx("span", { children: customer.birthDate }),
2085
+ /* @__PURE__ */ jsx("span", { className: cx("separator"), children: "|" }),
2086
+ /* @__PURE__ */ jsx("span", { children: customer.genderCode }),
2087
+ customer.baseAddress && /* @__PURE__ */ jsxs(Fragment, { children: [
2088
+ /* @__PURE__ */ jsx("span", { className: cx("separator"), children: "|" }),
2089
+ /* @__PURE__ */ jsx("span", { children: customer.baseAddress })
2090
+ ] })
2091
+ ] })
2092
+ ] }) }, customer.customerId)) }) }) })
2093
+ ] });
2094
+ };
2095
+
2096
+ export { Attachment, BankStockSearchModal, CustomerSearch, FormCheckbox, FormCheckboxButton, FormDatePicker, FormDateRangePicker, FormSearchJobField, FormSegmentGroup, FormSelect, FormTextField, JobSearchModal, StepIndicator, resize, testSignatureBase64Data, useAddressComponent, useBankStockSearch, useCamera, useCanvasPaint, useJobVehicleSearchModal, useSearchAddress };
1965
2097
  //# sourceMappingURL=index.esm.js.map