sales-frontend-components 0.0.70 → 0.0.71

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
@@ -9,8 +9,10 @@ var styles = require('./modal/pre-standard/job-search-modal/job-search-modal.mod
9
9
  var styles$1 = require('./step-indicator/step-indicator.module.scss');
10
10
  var styles$2 = require('./camera/camera.module.scss');
11
11
  var styles$3 = require('./modal/standard/address-search/select-address.module.scss');
12
- var styles$4 = require('./modal/pre-standard/job-vehicle-search-modal/job-vehicle-search-modal.module.scss');
13
- var styles$5 = require('./modal/pre-standard/vehicle-search-modal/vehicle-search-modal.module.scss');
12
+ var styles$4 = require('./modal/standard/bank-stock-search/bank-stock-search-modal.module.scss');
13
+ var salesFrontendAssets = require('sales-frontend-assets');
14
+ var styles$5 = require('./modal/pre-standard/job-vehicle-search-modal/job-vehicle-search-modal.module.scss');
15
+ var styles$6 = require('./modal/pre-standard/vehicle-search-modal/vehicle-search-modal.module.scss');
14
16
 
15
17
  const FormCheckboxButton = ({
16
18
  name,
@@ -1665,7 +1667,111 @@ const useAddressComponent = () => {
1665
1667
  };
1666
1668
  };
1667
1669
 
1668
- const cx$2 = classNames.bind(styles$4);
1670
+ const BANK_LIST = [
1671
+ { label: "HSBC", value: "HSBC", Icon: salesFrontendAssets.IconGraphicsBankHsbc },
1672
+ { label: "KEB\uD558\uB098", value: "KEB\uD558\uB098", Icon: salesFrontendAssets.IconGraphicsBankKebHana },
1673
+ { label: "SC\uC81C\uC77C", value: "SC\uC81C\uC77C", Icon: salesFrontendAssets.IconGraphicsBankScJeil },
1674
+ { label: "\uACBD\uB0A8", value: "\uACBD\uB0A8", Icon: salesFrontendAssets.IconGraphicsBankGyeongnam },
1675
+ { label: "\uAD11\uC8FC", value: "\uAD11\uC8FC", Icon: salesFrontendAssets.IconGraphicsBankGwangju },
1676
+ { label: "\uAD6D\uBBFC", value: "\uAD6D\uBBFC", Icon: salesFrontendAssets.IconGraphicsBankKukmin },
1677
+ { label: "\uAE30\uC5C5", value: "\uAE30\uC5C5", Icon: salesFrontendAssets.IconGraphicsBankKiup },
1678
+ { label: "\uC9C0\uC5ED\uB18D\uD611", value: "\uC9C0\uC5ED\uB18D\uD611", Icon: salesFrontendAssets.IconGraphicsBankJiyeokNonghyeop },
1679
+ { label: "NH\uB18D\uD611", value: "NH\uB18D\uD611", Icon: salesFrontendAssets.IconGraphicsBankNhNonghyeop },
1680
+ { label: "\uB300\uAD6C", value: "\uB300\uAD6C", Icon: salesFrontendAssets.IconGraphicsBankDaegu },
1681
+ { label: "\uBD80\uC0B0", value: "\uBD80\uC0B0", Icon: salesFrontendAssets.IconGraphicsBankBusan },
1682
+ { label: "\uC0B0\uB9BC\uC870\uD569", value: "\uC0B0\uB9BC\uC870\uD569", Icon: salesFrontendAssets.IconGraphicsBankSanlim },
1683
+ { label: "\uC0B0\uC5C5", value: "\uC0B0\uC5C5", Icon: salesFrontendAssets.IconGraphicsBankSaneop },
1684
+ { label: "\uC0C8\uB9C8\uC744\uAE08\uACE0", value: "\uC0C8\uB9C8\uC744\uAE08\uACE0", Icon: salesFrontendAssets.IconGraphicsBankSaemaulGeumgo },
1685
+ { label: "\uC218\uD611", value: "\uC218\uD611", Icon: salesFrontendAssets.IconGraphicsBankSuhyeop },
1686
+ { label: "\uC2E0\uD55C", value: "\uC2E0\uD55C", Icon: salesFrontendAssets.IconGraphicsBankSinhan },
1687
+ { label: "\uC2E0\uD611", value: "\uC2E0\uD611", Icon: salesFrontendAssets.IconGraphicsBankSinhyeop },
1688
+ { label: "\uC678\uD658", value: "\uC678\uD658", Icon: salesFrontendAssets.IconGraphicsBankOehwan },
1689
+ { label: "\uC6B0\uB9AC", value: "\uC6B0\uB9AC", Icon: salesFrontendAssets.IconGraphicsBankWoori },
1690
+ { label: "\uC6B0\uCCB4\uAD6D", value: "\uC6B0\uCCB4\uAD6D", Icon: salesFrontendAssets.IconGraphicsBankPost },
1691
+ { label: "\uC800\uCD95", value: "\uC800\uCD95", Icon: salesFrontendAssets.IconGraphicsBankJeochuk },
1692
+ { label: "\uC804\uBD81", value: "\uC804\uBD81", Icon: salesFrontendAssets.IconGraphicsBankJeonbuk },
1693
+ { label: "\uC81C\uC8FC", value: "\uC81C\uC8FC", Icon: salesFrontendAssets.IconGraphicsBankJeju },
1694
+ { label: "\uCE74\uCE74\uC624\uBC45\uD06C", value: "\uCE74\uCE74\uC624\uBC45\uD06C", Icon: salesFrontendAssets.IconGraphicsBankKakaoBank },
1695
+ { label: "\uCF00\uC774\uBC45\uD06C", value: "\uCF00\uC774\uBC45\uD06C", Icon: salesFrontendAssets.IconGraphicsBankKBank },
1696
+ { label: "\uD55C\uAD6D\uC528\uD2F0", value: "\uD55C\uAD6D\uC528\uD2F0", Icon: salesFrontendAssets.IconGraphicsBankHankookCity }
1697
+ ];
1698
+ const STOCK_LIST = [
1699
+ { label: "DB\uAE08\uC735\n\uD22C\uC790\uC99D\uAD8C", value: "DB\uAE08\uC735\uD22C\uC790", Icon: salesFrontendAssets.IconGraphicsStockDbGeumyungTujajeungkwon },
1700
+ { label: "KB\uC99D\uAD8C", value: "KB\uC99D\uAD8C", Icon: salesFrontendAssets.IconGraphicsStockKbJeungkwon },
1701
+ { label: "NH(\uC6B0\uB9AC)\n\uD22C\uC790\uC99D\uAD8C", value: "NH(\uC6B0\uB9AC)\uD22C\uC790\uC99D\uAD8C", Icon: salesFrontendAssets.IconGraphicsStockNhWooriTujajeungkwon },
1702
+ { label: "NH\n\uD22C\uC790\uC99D\uAD8C", value: "NH\uD22C\uC790\uC99D\uAD8C", Icon: salesFrontendAssets.IconGraphicsStockNhTujajeungkwon },
1703
+ { label: "SK\uC99D\uAD8C", value: "SK\uC99D\uAD8C", Icon: salesFrontendAssets.IconGraphicsStockSkJeungkwon },
1704
+ { label: "\uAD50\uBCF4\uC99D\uAD8C", value: "\uAD50\uBCF4\uC99D\uAD8C", Icon: salesFrontendAssets.IconGraphicsStockGyoboJeungkwon },
1705
+ { label: "\uB300\uC2E0\uC99D\uAD8C", value: "\uB300\uC2E0\uC99D\uAD8C", Icon: salesFrontendAssets.IconGraphicsStockDaesinJeungkwon },
1706
+ { label: "\uBA54\uB9AC\uCE20\uC99D\uAD8C", value: "\uBA54\uB9AC\uCE20\uC99D\uAD8C", Icon: salesFrontendAssets.IconGraphicsStockMeritzJeungkwon },
1707
+ { label: "\uBBF8\uB798\uC5D0\uC14B\n\uC99D\uAD8C", value: "\uBBF8\uB798\uC5D0\uC14B\uC99D\uAD8C", Icon: salesFrontendAssets.IconGraphicsStockMiraeAssetJeungkwon },
1708
+ { label: "\uBD80\uAD6D\uC99D\uAD8C", value: "\uBD80\uAD6D\uC99D\uAD8C", Icon: salesFrontendAssets.IconGraphicsStockBugukJeungkwon },
1709
+ { label: "\uC0BC\uC131\uC99D\uAD8C", value: "\uC0BC\uC131\uC99D\uAD8C", Icon: salesFrontendAssets.IconGraphicsStockSamsungJeungkwon },
1710
+ { label: "\uC2E0\uC601\uC99D\uAD8C", value: "\uC2E0\uC601\uC99D\uAD8C", Icon: salesFrontendAssets.IconGraphicsStockSinyeongJeungkwon },
1711
+ { label: "\uC2E0\uD55C\uAE08\uC735\n\uD22C\uC790\uC99D\uAD8C", value: "\uC2E0\uD55C\uAE08\uC735\uD22C\uC790\uC99D\uAD8C", Icon: salesFrontendAssets.IconGraphicsStockSinhanTujajeungkwon },
1712
+ { label: "\uC720\uC548\uD0C0\uC99D\uAD8C", value: "\uC720\uC548\uD0C0\uC99D\uAD8C", Icon: salesFrontendAssets.IconGraphicsStockYuantaJeungkwon },
1713
+ { label: "\uC720\uC9C4\n\uD22C\uC790\uC99D\uAD8C", value: "\uC720\uC9C4\uD22C\uC790\uC99D\uAD8C", Icon: salesFrontendAssets.IconGraphicsStockYujinTujajeungkwon },
1714
+ { label: "\uD0A4\uC6C0\uC99D\uAD8C", value: "\uD0A4\uC6C0\uC99D\uAD8C", Icon: salesFrontendAssets.IconGraphicsStockKiwoomJeungkwon },
1715
+ { label: "\uD558\uB098\uAE08\uC735\n\uD22C\uC790\uC99D\uAD8C", value: "\uD558\uB098\uAE08\uC735\uD22C\uC790\uC99D\uAD8C", Icon: salesFrontendAssets.IconGraphicsStockHanaGeumyungTujajeungkwon },
1716
+ { label: "\uD558\uC774\n\uD22C\uC790\uC99D\uAD8C", value: "\uD558\uC774\uD22C\uC790\uC99D\uAD8C", Icon: salesFrontendAssets.IconGraphicsStockHiTujajeungkwon },
1717
+ { label: "\uD55C\uAD6D\uC99D\uAD8C\n\uAE08\uC735", value: "\uD55C\uAD6D\uC99D\uAD8C\uAE08\uC735", Icon: salesFrontendAssets.IconGraphicsStockHankookJeungkwonGeumyung },
1718
+ { label: "\uD55C\uAD6D\n\uD22C\uC790\uC99D\uAD8C", value: "\uD55C\uAD6D\uD22C\uC790\uC99D\uAD8C", Icon: salesFrontendAssets.IconGraphicsStockHankookTujajeungkwon },
1719
+ { label: "\uD55C\uD654\n\uD22C\uC790\uC99D\uAD8C", value: "\uD55C\uD654\uD22C\uC790\uC99D\uAD8C", Icon: salesFrontendAssets.IconGraphicsStockHanwhaTujajeungkwon },
1720
+ { label: "\uD604\uB300\uCC28\uC99D\uAD8C", value: "\uD604\uB300\uCC28\uC99D\uAD8C", Icon: salesFrontendAssets.IconGraphicsStockHyundaiChaJeungkwon },
1721
+ { label: "\uD638\uCD9C\uC5C6\uC74C", value: "\uD638\uCD9C\uC5C6\uC74C", Icon: salesFrontendAssets.IconGraphicsStockHochulEopsum }
1722
+ ];
1723
+ function useBankStockSearch({ onSelect }) {
1724
+ const [searchKeyword, setSearchKeyword] = React.useState("");
1725
+ const bankList = React.useMemo(() => BANK_LIST.filter((bank) => bank.label.includes(searchKeyword)), [searchKeyword]);
1726
+ const stockList = React.useMemo(() => STOCK_LIST.filter((stock) => stock.label.includes(searchKeyword)), [searchKeyword]);
1727
+ const handleSelect = (item) => {
1728
+ onSelect(item);
1729
+ };
1730
+ return {
1731
+ searchKeyword,
1732
+ setSearchKeyword,
1733
+ bankList,
1734
+ stockList,
1735
+ handleSelect
1736
+ };
1737
+ }
1738
+
1739
+ function chunk(array, size) {
1740
+ return Array.from({ length: Math.ceil(array.length / size) }, (v, i) => array.slice(i * size, i * size + size));
1741
+ }
1742
+ function BankStockSearchModal({ open, onClose, onSelect }) {
1743
+ const { bankList, stockList, handleSelect } = useBankStockSearch({
1744
+ onSelect
1745
+ });
1746
+ const renderItems = (list) => {
1747
+ const chunkedList = chunk(list, 5);
1748
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles$4["list-container"], children: chunkedList.map((chunk2, chunkIndex) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles$4.row, children: [
1749
+ chunk2.map((item) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles$4.item, onClick: () => handleSelect(item), children: [
1750
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles$4["icon-wrapper"], children: /* @__PURE__ */ jsxRuntime.jsx(item.Icon, {}) }),
1751
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: item.label })
1752
+ ] }, item.value)),
1753
+ chunk2.length < 5 && Array.from({ length: 5 - chunk2.length }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles$4.item, style: { visibility: "hidden" } }, `placeholder-${chunkIndex}-${i}`))
1754
+ ] }, chunkIndex)) });
1755
+ };
1756
+ return /* @__PURE__ */ jsxRuntime.jsxs(salesFrontendDesignSystem.Modal.Root, { isOpen: open, onClose, modalSize: "full-screen", children: [
1757
+ /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Modal.Overlay, {}),
1758
+ /* @__PURE__ */ jsxRuntime.jsxs(salesFrontendDesignSystem.Modal.Content, { children: [
1759
+ /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Modal.Header, { headerTitle: "\uC740\uD589/\uC99D\uAD8C\uC0AC \uC120\uD0DD", showCloseButton: true }),
1760
+ /* @__PURE__ */ jsxRuntime.jsx(salesFrontendDesignSystem.Modal.Body, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles$4.container, children: [
1761
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles$4.section, children: [
1762
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles$4["section-title"], children: "\uC740\uD589\uC0AC" }),
1763
+ renderItems(bankList)
1764
+ ] }),
1765
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles$4.section, children: [
1766
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles$4["section-title"], children: "\uC99D\uAD8C\uC0AC" }),
1767
+ renderItems(stockList)
1768
+ ] })
1769
+ ] }) })
1770
+ ] })
1771
+ ] });
1772
+ }
1773
+
1774
+ const cx$2 = classNames.bind(styles$5);
1669
1775
  const JobVehicleSearchGrade = ({ riskGrade, hospitalizationGrade }) => {
1670
1776
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$2("grade-section"), children: [
1671
1777
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$2("icon-title"), children: [
@@ -1686,7 +1792,7 @@ const JobVehicleSearchGrade = ({ riskGrade, hospitalizationGrade }) => {
1686
1792
  ] });
1687
1793
  };
1688
1794
 
1689
- const cx$1 = classNames.bind(styles$5);
1795
+ const cx$1 = classNames.bind(styles$6);
1690
1796
  function VehicleSearch({ vehicles, onVehicleSelect }) {
1691
1797
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx$1("vehicle-search-section"), children: [
1692
1798
  /* @__PURE__ */ jsxRuntime.jsx("p", { children: "\uC6B4\uC804 \uCC28\uC885" }),
@@ -1752,7 +1858,7 @@ const useJobVehicleSearch = () => {
1752
1858
  };
1753
1859
  };
1754
1860
 
1755
- const cx = classNames.bind(styles$4);
1861
+ const cx = classNames.bind(styles$5);
1756
1862
  function useJobVehicleSearchModal() {
1757
1863
  const {
1758
1864
  selectedVehicle,
@@ -1858,6 +1964,7 @@ const JobSearchModal = ({ onClose }) => {
1858
1964
  };
1859
1965
 
1860
1966
  exports.Attachment = Attachment;
1967
+ exports.BankStockSearchModal = BankStockSearchModal;
1861
1968
  exports.FormCheckbox = FormCheckbox;
1862
1969
  exports.FormCheckboxButton = FormCheckboxButton;
1863
1970
  exports.FormDatePicker = FormDatePicker;
@@ -1871,6 +1978,7 @@ exports.StepIndicator = StepIndicator;
1871
1978
  exports.resize = resize;
1872
1979
  exports.testSignatureBase64Data = testSignatureBase64Data;
1873
1980
  exports.useAddressComponent = useAddressComponent;
1981
+ exports.useBankStockSearch = useBankStockSearch;
1874
1982
  exports.useCamera = useCamera;
1875
1983
  exports.useCanvasPaint = useCanvasPaint;
1876
1984
  exports.useJobVehicleSearchModal = useJobVehicleSearchModal;