{"version":3,"file":"static/chunks/1368-03c0cf61c948aa29.js","mappings":"AAGA","sources":["webpack://_N_E/./node_modules/antd/es/_util/hooks/useFlexGapSupport.js","webpack://_N_E/./node_modules/antd/es/space/Item.js","webpack://_N_E/./node_modules/antd/es/space/index.js","webpack://_N_E/./src/api/booksOrder.ts","webpack://_N_E/./src/components/Books/Order/BooksOrderDelivery.tsx","webpack://_N_E/./src/components/Books/Order/BooksOrderProducts.tsx","webpack://_N_E/./src/components/Books/Order/BooksOrderTerms.tsx","webpack://_N_E/./src/components/Books/Order/BooksOrder.tsx","webpack://_N_E/./src/components/Books/Order/BooksOrderPayMethods.tsx","webpack://_N_E/./src/components/common/RoundedCounter.tsx","webpack://_N_E/./src/components/Books/Order/BooksOrderProductItem.tsx","webpack://_N_E/./src/components/Books/Order/BooksOrderSummary.tsx","webpack://_N_E/./src/components/Package/OrderComponents/OrderSummaryItem.tsx","webpack://_N_E/./src/components/Package/OrderComponents/PassOrderSummary.tsx","webpack://_N_E/./src/components/Package/OrderComponents/PaymentRadio.tsx","webpack://_N_E/./src/components/Package/OrderComponents/PaymentCard.tsx","webpack://_N_E/./src/components/Package/PassRegister/index.tsx","webpack://_N_E/./src/components/Package/SubscribeToPass/SubscribeNotice.tsx","webpack://_N_E/./src/components/Package/index.tsx","webpack://_N_E/./src/lib/iamport/index.tsx","webpack://_N_E/./src/store/booksOrder.ts","webpack://_N_E/<anon>"],"sourcesContent":["import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { detectFlexGapSupported } from '../styleChecker';\nexport default (function () {\n  var _React$useState = React.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    flexible = _React$useState2[0],\n    setFlexible = _React$useState2[1];\n  React.useEffect(function () {\n    setFlexible(detectFlexGapSupported());\n  }, []);\n  return flexible;\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { SpaceContext } from '.';\nexport default function Item(_ref) {\n  var className = _ref.className,\n    direction = _ref.direction,\n    index = _ref.index,\n    marginDirection = _ref.marginDirection,\n    children = _ref.children,\n    split = _ref.split,\n    wrap = _ref.wrap;\n  var _React$useContext = React.useContext(SpaceContext),\n    horizontalSize = _React$useContext.horizontalSize,\n    verticalSize = _React$useContext.verticalSize,\n    latestIndex = _React$useContext.latestIndex,\n    supportFlexGap = _React$useContext.supportFlexGap;\n  var style = {};\n  if (!supportFlexGap) {\n    if (direction === 'vertical') {\n      if (index < latestIndex) {\n        style = {\n          marginBottom: horizontalSize / (split ? 2 : 1)\n        };\n      }\n    } else {\n      style = _extends(_extends({}, index < latestIndex && _defineProperty({}, marginDirection, horizontalSize / (split ? 2 : 1))), wrap && {\n        paddingBottom: verticalSize\n      });\n    }\n  }\n  if (children === null || children === undefined) {\n    return null;\n  }\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n    className: className,\n    style: style\n  }, children), index < latestIndex && split && /*#__PURE__*/React.createElement(\"span\", {\n    className: className + \"-split\",\n    style: style\n  }, split));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useFlexGapSupport from '../_util/hooks/useFlexGapSupport';\nimport Item from './Item';\nimport Compact from './Compact';\nimport useStyle from './style';\nexport var SpaceContext = /*#__PURE__*/React.createContext({\n  latestIndex: 0,\n  horizontalSize: 0,\n  verticalSize: 0,\n  supportFlexGap: false\n});\nvar spaceSize = {\n  small: 8,\n  middle: 16,\n  large: 24\n};\nfunction getNumberSize(size) {\n  return typeof size === 'string' ? spaceSize[size] : size || 0;\n}\nvar Space = function Space(props) {\n  var _classNames;\n  var _React$useContext = React.useContext(ConfigContext),\n    getPrefixCls = _React$useContext.getPrefixCls,\n    space = _React$useContext.space,\n    directionConfig = _React$useContext.direction;\n  var _props$size = props.size,\n    size = _props$size === void 0 ? (space === null || space === void 0 ? void 0 : space.size) || 'small' : _props$size,\n    align = props.align,\n    className = props.className,\n    children = props.children,\n    _props$direction = props.direction,\n    direction = _props$direction === void 0 ? 'horizontal' : _props$direction,\n    customizePrefixCls = props.prefixCls,\n    split = props.split,\n    style = props.style,\n    _props$wrap = props.wrap,\n    wrap = _props$wrap === void 0 ? false : _props$wrap,\n    otherProps = __rest(props, [\"size\", \"align\", \"className\", \"children\", \"direction\", \"prefixCls\", \"split\", \"style\", \"wrap\"]);\n  var supportFlexGap = useFlexGapSupport();\n  var _React$useMemo = React.useMemo(function () {\n      return (Array.isArray(size) ? size : [size, size]).map(function (item) {\n        return getNumberSize(item);\n      });\n    }, [size]),\n    _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n    horizontalSize = _React$useMemo2[0],\n    verticalSize = _React$useMemo2[1];\n  var childNodes = toArray(children, {\n    keepEmpty: true\n  });\n  var mergedAlign = align === undefined && direction === 'horizontal' ? 'center' : align;\n  var prefixCls = getPrefixCls('space', customizePrefixCls);\n  var _useStyle = useStyle(prefixCls),\n    _useStyle2 = _slicedToArray(_useStyle, 2),\n    wrapSSR = _useStyle2[0],\n    hashId = _useStyle2[1];\n  var cn = classNames(prefixCls, hashId, prefixCls + \"-\" + direction, (_classNames = {}, _defineProperty(_classNames, prefixCls + \"-rtl\", directionConfig === 'rtl'), _defineProperty(_classNames, prefixCls + \"-align-\" + mergedAlign, mergedAlign), _classNames), className);\n  var itemClassName = prefixCls + \"-item\";\n  var marginDirection = directionConfig === 'rtl' ? 'marginLeft' : 'marginRight';\n  // Calculate latest one\n  var latestIndex = 0;\n  var nodes = childNodes.map(function (child, i) {\n    if (child !== null && child !== undefined) {\n      latestIndex = i;\n    }\n    var key = child && child.key || itemClassName + \"-\" + i;\n    return /*#__PURE__*/React.createElement(Item, {\n      className: itemClassName,\n      key: key,\n      direction: direction,\n      index: i,\n      marginDirection: marginDirection,\n      split: split,\n      wrap: wrap\n    }, child);\n  });\n  var spaceContext = React.useMemo(function () {\n    return {\n      horizontalSize: horizontalSize,\n      verticalSize: verticalSize,\n      latestIndex: latestIndex,\n      supportFlexGap: supportFlexGap\n    };\n  }, [horizontalSize, verticalSize, latestIndex, supportFlexGap]);\n  // =========================== Render ===========================\n  if (childNodes.length === 0) {\n    return null;\n  }\n  var gapStyle = {};\n  if (wrap) {\n    gapStyle.flexWrap = 'wrap';\n    // Patch for gap not support\n    if (!supportFlexGap) {\n      gapStyle.marginBottom = -verticalSize;\n    }\n  }\n  if (supportFlexGap) {\n    gapStyle.columnGap = horizontalSize;\n    gapStyle.rowGap = verticalSize;\n  }\n  return wrapSSR( /*#__PURE__*/React.createElement(\"div\", _extends({\n    className: cn,\n    style: _extends(_extends({}, gapStyle), style)\n  }, otherProps), /*#__PURE__*/React.createElement(SpaceContext.Provider, {\n    value: spaceContext\n  }, nodes)));\n};\nvar CompoundedSpace = Space;\nCompoundedSpace.Compact = Compact;\nexport default CompoundedSpace;","import { otherApiClient } from \".\";\nexport const OrderStatus = {\n    ORDERED: 0,\n    VBANK_WAITING: 100,\n    BILLING_WAITING: 200,\n    COMPLETE: 400,\n    BILLING_FAILED: 800,\n    CANCELED: 900,\n    REFUND_SUCCESS: 1000,\n    PARTIALLY_REFUND: 1100\n};\nexport const OrderStatusWithString = {\n    [OrderStatus.ORDERED]: \"결제 대기\",\n    [OrderStatus.VBANK_WAITING]: \"입금 대기중\",\n    [OrderStatus.BILLING_WAITING]: \"입금 대기중\",\n    [OrderStatus.COMPLETE]: \"결제 완료\",\n    [OrderStatus.BILLING_FAILED]: \"결제 실패\",\n    [OrderStatus.CANCELED]: \"결제 취소\",\n    [OrderStatus.REFUND_SUCCESS]: \"환불 완료\",\n    [OrderStatus.PARTIALLY_REFUND]: \"부분 환불\"\n};\nexport const DiscountTypes = {\n    AMOUNT: \"amount\",\n    PERCENT: \"percent\"\n};\nexport const postOrder = async (params)=>{\n    const { data  } = await otherApiClient.market.post(\"/orders\", params);\n    return data;\n};\nexport const getBooksOrderList = async (params)=>{\n    const { data  } = await otherApiClient.market(\"/orders\", {\n        params\n    });\n    return data;\n};\nexport const getOrderList = async (param)=>{\n    let { id  } = param;\n    const { data  } = await otherApiClient.market(\"/orders/\".concat(id));\n    return data;\n};\n","import { _ as _tagged_template_literal } from \"@swc/helpers/_/_tagged_template_literal\";\nfunction _templateObject() {\n    const data = _tagged_template_literal([\n        \"\\n  display: flex;\\n  gap: 24px;\\n  align-items: flex-start;\\n\\n  .ant-btn {\\n    color: \",\n        \";\\n    font-size: 14px;\\n    font-weight: 600;\\n    line-height: 22px;\\n    letter-spacing: -0.14px;\\n  }\\n\"\n    ]);\n    _templateObject = function() {\n        return data;\n    };\n    return data;\n}\nfunction _templateObject1() {\n    const data = _tagged_template_literal([\n        \"\\n  display: flex;\\n  flex-direction: column;\\n  gap: 8px;\\n  flex-grow: 1;\\n\\n  color: \",\n        \";\\n  font-size: 16px;\\n  font-weight: 600;\\n  line-height: 1.5;\\n  letter-spacing: -0.16px;\\n  line-break: anywhere;\\n\"\n    ]);\n    _templateObject1 = function() {\n        return data;\n    };\n    return data;\n}\nfunction _templateObject2() {\n    const data = _tagged_template_literal([\n        \"\\n  display: flex;\\n  font-size: 14px;\\n  font-weight: 400;\\n  line-height: 22px;\\n  letter-spacing: -0.14px;\\n\\n  &,\\n  dd {\\n    margin-bottom: 0;\\n  }\\n\\n  &,\\n  dt {\\n    color: \",\n        \";\\n  }\\n  dt {\\n    margin-right: 4px;\\n    white-space: nowrap;\\n  }\\n\"\n    ]);\n    _templateObject2 = function() {\n        return data;\n    };\n    return data;\n}\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useAuthStore } from \"@/lib/auth/AuthStore\";\nimport { BOOKS_DELIVERY_ADDRESS } from \"@/settings/constant\";\nimport Link from \"next/link\";\nimport styled from \"styled-components\";\nimport NoPadButton from \"../../common/Button/NoPadButton\";\nconst HorizontalStack = styled.div.withConfig({\n    componentId: \"sc-e18646af-0\"\n})(_templateObject(), (props)=>props.theme.new.colors.sol_indigo_500);\nconst Stack = styled.div.withConfig({\n    componentId: \"sc-e18646af-1\"\n})(_templateObject1(), (props)=>props.theme.new.colors.sol_gray_900);\nconst Message = styled.dl.withConfig({\n    componentId: \"sc-e18646af-2\"\n})(_templateObject2(), (props)=>props.theme.new.colors.sol_gray_500);\nconst BooksOrderDelivery = ()=>{\n    const { user  } = useAuthStore();\n    return /*#__PURE__*/ _jsxs(Stack, {\n        children: [\n            /*#__PURE__*/ _jsxs(HorizontalStack, {\n                children: [\n                    /*#__PURE__*/ _jsxs(Stack, {\n                        children: [\n                            /*#__PURE__*/ _jsx(\"p\", {\n                                children: user.address.name\n                            }),\n                            /*#__PURE__*/ _jsxs(\"div\", {\n                                children: [\n                                    /*#__PURE__*/ _jsx(\"p\", {\n                                        children: user.address.address1\n                                    }),\n                                    /*#__PURE__*/ _jsx(\"p\", {\n                                        children: user.address.address2\n                                    })\n                                ]\n                            })\n                        ]\n                    }),\n                    /*#__PURE__*/ _jsx(Link, {\n                        href: BOOKS_DELIVERY_ADDRESS,\n                        children: /*#__PURE__*/ _jsx(NoPadButton, {\n                            type: \"text\",\n                            children: \"수정하기\"\n                        })\n                    })\n                ]\n            }),\n            /*#__PURE__*/ _jsxs(Message, {\n                children: [\n                    /*#__PURE__*/ _jsx(\"dt\", {\n                        children: \"배송 메시지:\"\n                    }),\n                    /*#__PURE__*/ _jsx(\"dd\", {\n                        children: user.address.message\n                    })\n                ]\n            })\n        ]\n    });\n};\nexport default BooksOrderDelivery;\n","import { _ as _tagged_template_literal } from \"@swc/helpers/_/_tagged_template_literal\";\nfunction _templateObject() {\n    const data = _tagged_template_literal([\n        \"\\n  display: flex;\\n  flex-direction: column;\\n  align-items: center;\\n  gap: 24px;\\n\\n  max-width: 300px;\\n  margin: 0 auto;\\n\\n  .ant-btn {\\n    padding: 12px 20px;\\n    font-size: 16px;\\n    font-weight: 600;\\n    line-height: 1.5;\\n    letter-spacing: -0.16px;\\n  }\\n\"\n    ]);\n    _templateObject = function() {\n        return data;\n    };\n    return data;\n}\nfunction _templateObject1() {\n    const data = _tagged_template_literal([\n        \"\\n  display: flex;\\n  flex-direction: column;\\n  align-items: center;\\n  gap: 16px;\\n\\n  color: \",\n        \";\\n  font-size: 14px;\\n  font-weight: 400;\\n  line-height: 150%;\\n\\n  svg {\\n    width: 80px;\\n    height: 50px;\\n  }\\n\"\n    ]);\n    _templateObject1 = function() {\n        return data;\n    };\n    return data;\n}\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport FilledButton from \"@/components/common/Button/FilledButton\";\nimport Icon from \"@/components/icon/Icon\";\nimport { Empty } from \"@/components/icon/IconList\";\nimport { BOOKS_LANDING, EBOOKS_LANDING, PASSES_LANDING } from \"@/settings/constant\";\nimport Link from \"next/link\";\nimport useBooksOrderStore from \"src/store/booksOrder\";\nimport styled from \"styled-components\";\nimport { useBooks } from \".\";\nimport BooksOrderProductItem from \"./BooksOrderProductItem\";\nimport { SourceTypeWithString } from \"../../../api/product\";\nimport { usePasses, useProductType } from \"@/components/Package\";\nimport { OrderCardContainer } from \"../../Package/OrderComponents/PaymentCard\";\nconst BooksOrderProductEmptyContainer = styled.div.withConfig({\n    componentId: \"sc-3155adbe-0\"\n})(_templateObject());\nconst BooksOrderProductEmptyImage = styled.div.withConfig({\n    componentId: \"sc-3155adbe-1\"\n})(_templateObject1(), (props)=>props.theme.new.colors.sol_gray_500);\nconst BooksOrderProducts = (param)=>{\n    let { data  } = param;\n    const { isBooks  } = useBooks();\n    const { isPackages  } = usePasses();\n    const items = useBooksOrderStore((state)=>state.items);\n    const { productType  } = useProductType();\n    return items ? items.length ? /*#__PURE__*/ _jsx(_Fragment, {\n        children: items.map((item)=>/*#__PURE__*/ _jsx(BooksOrderProductItem, {\n                ...item\n            }, item.id))\n    }) : /*#__PURE__*/ _jsx(OrderCardContainer, {\n        children: /*#__PURE__*/ _jsxs(BooksOrderProductEmptyContainer, {\n            children: [\n                /*#__PURE__*/ _jsxs(BooksOrderProductEmptyImage, {\n                    children: [\n                        /*#__PURE__*/ _jsx(Icon, {\n                            icon: Empty\n                        }),\n                        \"담겨있는 \",\n                        SourceTypeWithString[productType],\n                        \" 상품이 없습니다.\"\n                    ]\n                }),\n                /*#__PURE__*/ _jsx(Link, {\n                    href: isBooks ? BOOKS_LANDING : isPackages ? PASSES_LANDING : EBOOKS_LANDING,\n                    children: /*#__PURE__*/ _jsxs(FilledButton, {\n                        type: \"text\",\n                        variant: \"solid\",\n                        block: true,\n                        children: [\n                            SourceTypeWithString[productType],\n                            \" 상품 보러가기\"\n                        ]\n                    })\n                })\n            ]\n        })\n    }) : null;\n};\nexport default BooksOrderProducts;\n","import { _ as _tagged_template_literal } from \"@swc/helpers/_/_tagged_template_literal\";\nfunction _templateObject() {\n    const data = _tagged_template_literal([\n        \"\\n  height: 154px;\\n  overflow: auto;\\n\\n  &,\\n  p,\\n  dt {\\n    font-size: 14px;\\n    font-weight: 400;\\n    line-height: 22px;\\n    letter-spacing: -0.14px;\\n    color: \",\n        \";\\n  }\\n\\n  h5 {\\n    color: \",\n        \";\\n    font-size: 16px;\\n    font-weight: 700;\\n    line-height: 1.5;\\n    letter-spacing: -0.16px;\\n  }\\n  dt {\\n    margin-bottom: 0;\\n    font-weight: 700;\\n  }\\n\"\n    ]);\n    _templateObject = function() {\n        return data;\n    };\n    return data;\n}\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport styled from \"styled-components\";\nimport { TermsContainer, useBooks } from \".\";\nimport { usePasses } from \"@/components/Package\";\nconst BooksOrderTermsContainer = styled.div.withConfig({\n    componentId: \"sc-e10d5c86-0\"\n})(_templateObject(), (props)=>props.theme.new.colors.sol_gray_500, (props)=>props.theme.new.colors.sol_gray_900);\nconst BooksOrderTerms = ()=>{\n    const { isBooks  } = useBooks();\n    const { isPackages  } = usePasses();\n    return /*#__PURE__*/ _jsxs(BooksOrderTermsContainer, {\n        children: [\n            /*#__PURE__*/ _jsx(\"h5\", {\n                children: \"개인정보 수집 및 이용 동의\"\n            }),\n            /*#__PURE__*/ _jsx(\"p\", {\n                children: \"아래의 목적으로 개인정보를 수집 및 이용하며, 회원의 개인정보를 안전하게 처리하는데 최선을 다하고 있습니다. 아래의 내용을 확인 후 동의하여 주시기 바랍니다.\"\n            }),\n            /*#__PURE__*/ _jsx(\"br\", {}),\n            isPackages ? /*#__PURE__*/ _jsx(_Fragment, {}) : isBooks ? /*#__PURE__*/ _jsxs(_Fragment, {\n                children: [\n                    /*#__PURE__*/ _jsxs(TermsContainer, {\n                        children: [\n                            /*#__PURE__*/ _jsx(\"dt\", {\n                                children: \"개인정보 수집 및 이용 동의\"\n                            }),\n                            /*#__PURE__*/ _jsx(\"dd\", {\n                                children: /*#__PURE__*/ _jsxs(\"ol\", {\n                                    children: [\n                                        /*#__PURE__*/ _jsxs(\"li\", {\n                                            children: [\n                                                \"수집 및 이용 목적\",\n                                                /*#__PURE__*/ _jsxs(\"ul\", {\n                                                    children: [\n                                                        /*#__PURE__*/ _jsx(\"li\", {\n                                                            children: \"서비스 및 상품 제공에 관한 계약 이행 및 요금 정산\"\n                                                        }),\n                                                        /*#__PURE__*/ _jsx(\"li\", {\n                                                            children: \"고객 상담 및 불만, 민원 사무 처리\"\n                                                        }),\n                                                        /*#__PURE__*/ _jsx(\"li\", {\n                                                            children: \"거래 및 상품 제공의 원활한 진행, 본인 의사의 확정\"\n                                                        }),\n                                                        /*#__PURE__*/ _jsx(\"li\", {\n                                                            children: \"상품 \\xb7 서비스 이용 실적 정보 통계 \\xb7 분석\"\n                                                        }),\n                                                        /*#__PURE__*/ _jsx(\"li\", {\n                                                            children: \"상품 \\xb7 서비스 개선 및 추천, 불법 \\xb7 부정 이용 방지\"\n                                                        })\n                                                    ]\n                                                })\n                                            ]\n                                        }),\n                                        /*#__PURE__*/ _jsxs(\"li\", {\n                                            children: [\n                                                \"수집 및 이용 항목\",\n                                                /*#__PURE__*/ _jsx(\"ul\", {\n                                                    children: /*#__PURE__*/ _jsx(\"li\", {\n                                                        children: \"수령자 정보 (이름, 이메일, 휴대폰번호, 주소, 배송 메시지)\"\n                                                    })\n                                                })\n                                            ]\n                                        }),\n                                        /*#__PURE__*/ _jsxs(\"li\", {\n                                            children: [\n                                                \"보유 및 이용 기간\",\n                                                /*#__PURE__*/ _jsxs(\"ul\", {\n                                                    children: [\n                                                        /*#__PURE__*/ _jsx(\"li\", {\n                                                            children: \"서비스 이용 기록은 회원 탈퇴 시점으로부터 1년간 보관 후 파기합니다.\"\n                                                        }),\n                                                        /*#__PURE__*/ _jsx(\"li\", {\n                                                            children: \"단, 관계 법령에 따라 일정 기간 보존해야 하는 경우 해당 기간 보관 후 파기합니다.\"\n                                                        })\n                                                    ]\n                                                })\n                                            ]\n                                        })\n                                    ]\n                                })\n                            }),\n                            /*#__PURE__*/ _jsx(\"br\", {}),\n                            /*#__PURE__*/ _jsx(\"dt\", {\n                                children: \"개인정보 제 3자 제공 동의\"\n                            }),\n                            /*#__PURE__*/ _jsx(\"dd\", {\n                                children: /*#__PURE__*/ _jsxs(\"ol\", {\n                                    children: [\n                                        /*#__PURE__*/ _jsxs(\"li\", {\n                                            children: [\n                                                \"제공 받는 자\",\n                                                /*#__PURE__*/ _jsx(\"ul\", {\n                                                    children: /*#__PURE__*/ _jsx(\"li\", {\n                                                        children: \"(주) 알라딘커뮤니케이션\"\n                                                    })\n                                                })\n                                            ]\n                                        }),\n                                        /*#__PURE__*/ _jsxs(\"li\", {\n                                            children: [\n                                                \"제공 목적\",\n                                                /*#__PURE__*/ _jsx(\"ul\", {\n                                                    children: /*#__PURE__*/ _jsx(\"li\", {\n                                                        children: \"주문 상품 및 서비스의 제공, 계약 이행\"\n                                                    })\n                                                })\n                                            ]\n                                        }),\n                                        /*#__PURE__*/ _jsxs(\"li\", {\n                                            children: [\n                                                \"제공 항목\",\n                                                /*#__PURE__*/ _jsx(\"ul\", {\n                                                    children: /*#__PURE__*/ _jsx(\"li\", {\n                                                        children: \"수령자 정보 (아이디, 이름, 전화번호, 휴대폰 번호, 이메일, 상품 구매 정보, 주소, 배송 메시지)\"\n                                                    })\n                                                })\n                                            ]\n                                        }),\n                                        /*#__PURE__*/ _jsxs(\"li\", {\n                                            children: [\n                                                \"보유 및 이용 기간\",\n                                                /*#__PURE__*/ _jsxs(\"ul\", {\n                                                    children: [\n                                                        /*#__PURE__*/ _jsx(\"li\", {\n                                                            children: \"상품 구매/배송/반품 서비스 처리 완료 후 180일간 보관 후 파기\"\n                                                        }),\n                                                        /*#__PURE__*/ _jsx(\"li\", {\n                                                            children: \"단, 관계 법령에 따라 일정 기간 보관해야 하는 항목은 해당 기간 보관 후 파기합니다.\"\n                                                        })\n                                                    ]\n                                                })\n                                            ]\n                                        })\n                                    ]\n                                })\n                            })\n                        ]\n                    }),\n                    /*#__PURE__*/ _jsx(\"br\", {}),\n                    /*#__PURE__*/ _jsx(\"p\", {\n                        children: \"필수적인 개인정보 수집 및 이용에 동의하지 않을 권리가 있습니다. 다만, 동의하지 않을 경우 서비스 이용이 제한됩니다.\"\n                    })\n                ]\n            }) : /*#__PURE__*/ _jsxs(_Fragment, {\n                children: [\n                    /*#__PURE__*/ _jsxs(TermsContainer, {\n                        children: [\n                            /*#__PURE__*/ _jsx(\"dt\", {\n                                children: \"개인정보 수집 및 이용 동의\"\n                            }),\n                            /*#__PURE__*/ _jsx(\"dd\", {\n                                children: /*#__PURE__*/ _jsxs(\"ol\", {\n                                    children: [\n                                        /*#__PURE__*/ _jsxs(\"li\", {\n                                            children: [\n                                                \"수집 및 이용 목적\",\n                                                /*#__PURE__*/ _jsxs(\"ul\", {\n                                                    children: [\n                                                        /*#__PURE__*/ _jsx(\"li\", {\n                                                            children: \"서비스 및 상품 제공에 관한 계약 이행 및 요금 정산\"\n                                                        }),\n                                                        /*#__PURE__*/ _jsx(\"li\", {\n                                                            children: \"고객 상담 및 불만, 민원 사무 처리\"\n                                                        }),\n                                                        /*#__PURE__*/ _jsx(\"li\", {\n                                                            children: \"거래 및 상품 제공의 원활한 진행, 본인 의사의 확정\"\n                                                        }),\n                                                        /*#__PURE__*/ _jsx(\"li\", {\n                                                            children: \"상품 \\xb7 서비스 개선 및 추천, 불법 \\xb7 부정 이용 방지\"\n                                                        })\n                                                    ]\n                                                })\n                                            ]\n                                        }),\n                                        /*#__PURE__*/ _jsxs(\"li\", {\n                                            children: [\n                                                \"수집 및 이용 항목\",\n                                                /*#__PURE__*/ _jsx(\"ul\", {\n                                                    children: /*#__PURE__*/ _jsx(\"li\", {\n                                                        children: \"수령자 정보 (이름, 이메일, 휴대폰번호)\"\n                                                    })\n                                                })\n                                            ]\n                                        }),\n                                        /*#__PURE__*/ _jsxs(\"li\", {\n                                            children: [\n                                                \"보유 및 이용 기간\",\n                                                /*#__PURE__*/ _jsxs(\"ul\", {\n                                                    children: [\n                                                        /*#__PURE__*/ _jsx(\"li\", {\n                                                            children: \"탈퇴요청 5일 후 지체 없이 파기합니다.\"\n                                                        }),\n                                                        /*#__PURE__*/ _jsx(\"li\", {\n                                                            children: \"내부 방침에 의해 서비스 부정 이용 기록은 부정 가입 및 이용 방지를 위하여 회원 탈퇴 시점으로부터 1년간 보관 후 파기합니다.\"\n                                                        }),\n                                                        /*#__PURE__*/ _jsx(\"li\", {\n                                                            children: \"단, 관계 법령에 따라 일정 기간 보존해야 하는 경우 해당 기간 보관 후 파기합니다.\"\n                                                        })\n                                                    ]\n                                                })\n                                            ]\n                                        })\n                                    ]\n                                })\n                            }),\n                            /*#__PURE__*/ _jsx(\"br\", {}),\n                            /*#__PURE__*/ _jsx(\"dt\", {\n                                children: \"eBook 상품 구매 시 유의 사항\"\n                            }),\n                            /*#__PURE__*/ _jsx(\"dd\", {\n                                children: /*#__PURE__*/ _jsxs(\"ol\", {\n                                    children: [\n                                        /*#__PURE__*/ _jsx(\"li\", {\n                                            children: \"eBook 상품은 구매 이후 1회에 한해 iOS 굿노트6 앱에서 내려받기가 가능하며, 하나의 계정에서만 이용이 가능합니다. 상품을 내려받은 이후에 구매한 상품을 다른 계정에서 내려받기 할 수 없습니다.\"\n                                        }),\n                                        /*#__PURE__*/ _jsx(\"li\", {\n                                            children: \"모든 eBook 상품은 DRM 기술을 통해 추적이 가능한 형태로 보호되고 있습니다. 무단 배포 시 관련 법 조항에 의거하여 처벌 받을 수 있습니다.\"\n                                        })\n                                    ]\n                                })\n                            })\n                        ]\n                    }),\n                    /*#__PURE__*/ _jsx(\"br\", {}),\n                    /*#__PURE__*/ _jsx(\"br\", {}),\n                    /*#__PURE__*/ _jsx(\"p\", {\n                        children: \"상품, 가격, 유의사항 등을 확인하였으며 결제에 동의합니다.\"\n                    })\n                ]\n            })\n        ]\n    });\n};\nexport default BooksOrderTerms;\n","import { _ as _tagged_template_literal } from \"@swc/helpers/_/_tagged_template_literal\";\nfunction _templateObject() {\n    const data = _tagged_template_literal([\n        \"\\n  display: flex;\\n  flex-direction: column;\\n  gap: 40px;\\n\"\n    ]);\n    _templateObject = function() {\n        return data;\n    };\n    return data;\n}\nfunction _templateObject1() {\n    const data = _tagged_template_literal([\n        \"\\n  display: flex;\\n  flex-direction: column;\\n  gap: 8px;\\n  width: 100%;\\n\"\n    ]);\n    _templateObject1 = function() {\n        return data;\n    };\n    return data;\n}\nfunction _templateObject2() {\n    const data = _tagged_template_literal([\n        \"\\n  color: \",\n        \";\\n\"\n    ]);\n    _templateObject2 = function() {\n        return data;\n    };\n    return data;\n}\nfunction _templateObject3() {\n    const data = _tagged_template_literal([\n        \"\\n  display: flex;\\n  flex-direction: column;\\n  gap: 24px;\\n\"\n    ]);\n    _templateObject3 = function() {\n        return data;\n    };\n    return data;\n}\nfunction _templateObject4() {\n    const data = _tagged_template_literal([\n        \"\\n  display: flex;\\n  flex-direction: column;\\n  gap: 8px;\\n\\n  p {\\n    color: \",\n        \";\\n    font-size: 14px;\\n    font-weight: 400;\\n    line-height: 22px;\\n    letter-spacing: -0.14px;\\n    text-align: center;\\n  }\\n\"\n    ]);\n    _templateObject4 = function() {\n        return data;\n    };\n    return data;\n}\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport FilledButton from \"@/components/common/Button/FilledButton\";\nimport useSearchParams from \"@/hooks/useSearchParams\";\nimport { getIamportPayload, requestPay, useIamport } from \"@/lib/iamport\";\nimport { mixpanelEvent } from \"@/lib/mixpanels/mixpanel\";\nimport { BOOKS_ORDER, EBOOKS_ORDER, HOME_PAGE } from \"@/settings/constant\";\nimport { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { message } from \"antd\";\nimport Link from \"next/link\";\nimport { useRouter } from \"next/router\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { fetchBooksCart } from \"src/api/booksCart\";\nimport { postOrder } from \"src/api/booksOrder\";\nimport useBooksOrderStore from \"src/store/booksOrder\";\nimport styled from \"styled-components\";\nimport { BooksSubtitle, OrderFilledButton, useBooks } from \".\";\nimport BooksOrderDelivery from \"./BooksOrderDelivery\";\nimport BooksOrderModal from \"./BooksOrderModal\";\nimport BooksOrderPayMethods from \"./BooksOrderPayMethods\";\nimport BooksOrderProducts from \"./BooksOrderProducts\";\nimport BooksOrderSummary from \"./BooksOrderSummary\";\nimport BooksOrderTerms from \"./BooksOrderTerms\";\nimport { OrderCardContainer } from \"../../Package/OrderComponents/PaymentCard\";\nexport const OrderStack = styled.div.withConfig({\n    componentId: \"sc-1f2bc4a6-0\"\n})(_templateObject());\nexport const OrderSectionContainer = styled.section.withConfig({\n    componentId: \"sc-1f2bc4a6-1\"\n})(_templateObject1());\nexport const OrderSectionTitle = styled(BooksSubtitle).withConfig({\n    componentId: \"sc-1f2bc4a6-2\"\n})(_templateObject2(), (props)=>props.theme.new.colors.sol_gray_700);\nexport const PaymentContainer = styled.form.withConfig({\n    componentId: \"sc-1f2bc4a6-3\"\n})(_templateObject3());\nexport const PaymentButtonContainer = styled.div.withConfig({\n    componentId: \"sc-1f2bc4a6-4\"\n})(_templateObject4(), (props)=>props.theme.new.colors.sol_gray_500);\nexport const OrderSection = (param)=>{\n    let { children , label  } = param;\n    return /*#__PURE__*/ _jsxs(OrderSectionContainer, {\n        children: [\n            !!label && /*#__PURE__*/ _jsx(OrderSectionTitle, {\n                children: label\n            }),\n            children\n        ]\n    });\n};\nconst mixpanelMemoKey = \"mixpanel-books-order\";\nconst BooksOrder = ()=>{\n    const revision = useBooksOrderStore((state)=>state.revision);\n    const items = useBooksOrderStore((state)=>state.items);\n    const payableAmount = useBooksOrderStore((state)=>state.payableAmount);\n    const payMethod = useBooksOrderStore((state)=>state.payMethod);\n    const { setItems  } = useBooksOrderStore((param)=>{\n        let { setItems  } = param;\n        return {\n            setItems\n        };\n    });\n    const { isBooks  } = useBooks();\n    const { cartType , orderType , mixpanelCategory , postbackURL  } = useMemo(()=>{\n        return {\n            cartType: isBooks ? \"aladinbook\" : \"ebook\",\n            orderType: isBooks ? 3 : 2,\n            mixpanelCategory: isBooks ? \"aladin\" : \"goodnote\",\n            postbackURL: isBooks ? BOOKS_ORDER : EBOOKS_ORDER\n        };\n    }, [\n        isBooks\n    ]);\n    const { data  } = useQuery([\n        \"currentBooksCart\",\n        revision\n    ], ()=>fetchBooksCart({\n            cartType\n        }));\n    useEffect(()=>{\n        if (!data) {\n            setItems(undefined, isBooks);\n            return;\n        }\n        setItems(data.lineItems, isBooks);\n    }, [\n        data,\n        isBooks\n    ]);\n    const [isShownSuccessModal, setIsShownSuccessModal] = useState(false);\n    const booksOrderMutation = useMutation(postOrder);\n    const { impRef  } = useIamport();\n    const handleSuccess = useCallback(()=>{\n        setIsShownSuccessModal(true);\n        const memo = sessionStorage.getItem(mixpanelMemoKey);\n        if (memo && window.mixpanel) {\n            const props = JSON.parse(memo);\n            mixpanelEvent(\"Purchase Completed\", props);\n        }\n        sessionStorage.removeItem(mixpanelMemoKey);\n    }, []);\n    const handleSubmit = useCallback(async (ev)=>{\n        ev.preventDefault();\n        try {\n            const order = await booksOrderMutation.mutateAsync({\n                orderType,\n                cartId: data.id\n            });\n            // console.log(order)\n            sessionStorage.setItem(mixpanelMemoKey, JSON.stringify({\n                \"Payment Method\": payMethod,\n                \"# of Products \": items.length,\n                \"Product IDs\": items.map((param)=>{\n                    let { productId  } = param;\n                    return Number.parseInt(productId, 10);\n                }),\n                \"Product Categories\": [\n                    mixpanelCategory\n                ],\n                \"Product Names\": items.map((param)=>{\n                    let { product  } = param;\n                    return product.title;\n                }),\n                Subtotal: payableAmount,\n                \"Order Total\": payableAmount,\n                \"Product Variants\": []\n            }));\n            const result = await requestPay(getIamportPayload({\n                merchant_uid: order.merchantUid,\n                name: order.title,\n                amount: order.total,\n                buyer_email: order.email,\n                buyer_name: order.name,\n                buyer_tel: order.phone,\n                m_redirect_url: document.location.origin.concat(\"\".concat(postbackURL)),\n                buyer_addr: \"\".concat(order.address, \" \").concat(order.addressDetail),\n                buyer_postcode: order.zipcode,\n                tax_free: order.total\n            }, payMethod), impRef.current);\n            if (result.success) {\n                handleSuccess();\n            } else {\n                throw new Error(result.error_msg);\n            }\n        } catch (error) {\n            ;\n            message.error(error.message);\n        }\n    }, [\n        booksOrderMutation,\n        orderType,\n        data,\n        payMethod,\n        items,\n        payableAmount,\n        mixpanelCategory,\n        postbackURL\n    ]);\n    const { pathname , replace  } = useRouter();\n    const searchParams = useSearchParams();\n    useEffect(()=>{\n        const success = searchParams.get(\"imp_success\");\n        const errorMsg = searchParams.get(\"error_msg\");\n        if (success) {\n            if (success === \"true\") {\n                handleSuccess();\n            } else if (errorMsg) {\n                message.error(errorMsg);\n            }\n            replace({\n                pathname\n            });\n        }\n    }, [\n        handleSuccess,\n        searchParams,\n        replace,\n        pathname\n    ]);\n    return /*#__PURE__*/ _jsxs(OrderStack, {\n        children: [\n            isBooks && /*#__PURE__*/ _jsx(OrderSection, {\n                label: \"배송지 정보\",\n                children: /*#__PURE__*/ _jsx(OrderCardContainer, {\n                    children: /*#__PURE__*/ _jsx(BooksOrderDelivery, {})\n                })\n            }),\n            /*#__PURE__*/ _jsx(OrderSection, {\n                label: \"상품 정보\",\n                children: /*#__PURE__*/ _jsx(BooksOrderProducts, {})\n            }),\n            !!(items === null || items === void 0 ? void 0 : items.length) && /*#__PURE__*/ _jsx(OrderSection, {\n                label: \"결제 정보\",\n                children: /*#__PURE__*/ _jsx(OrderCardContainer, {\n                    children: /*#__PURE__*/ _jsxs(PaymentContainer, {\n                        onSubmit: handleSubmit,\n                        children: [\n                            /*#__PURE__*/ _jsx(BooksOrderSummary, {}),\n                            /*#__PURE__*/ _jsx(BooksOrderPayMethods, {}),\n                            /*#__PURE__*/ _jsx(BooksOrderTerms, {}),\n                            /*#__PURE__*/ _jsxs(PaymentButtonContainer, {\n                                children: [\n                                    /*#__PURE__*/ _jsxs(OrderFilledButton, {\n                                        type: \"text\",\n                                        variant: \"solid\",\n                                        htmlType: \"submit\",\n                                        children: [\n                                            payableAmount.toLocaleString(),\n                                            \"원 결제하기\"\n                                        ]\n                                    }),\n                                    /*#__PURE__*/ _jsx(\"p\", {\n                                        children: \"결제 시 약관 및 정보를 확인하였으며 동의한 것으로 간주합니다.\"\n                                    })\n                                ]\n                            })\n                        ]\n                    })\n                })\n            }),\n            /*#__PURE__*/ _jsx(BooksOrderModal, {\n                open: isShownSuccessModal,\n                title: /*#__PURE__*/ _jsxs(_Fragment, {\n                    children: [\n                        isBooks ? \"도서\" : \"굿노트6 eBook\",\n                        \" 결제가 완료되었습니다.\",\n                        /*#__PURE__*/ _jsx(\"br\", {}),\n                        isBooks ? \"배송이 시작되면\" : \"카카오\",\n                        \" 알림톡으로 안내 드릴게요.\"\n                    ]\n                }),\n                content: !isBooks && \"쏠북에 가입하신 카카오 계정 및 가입한 전화번호가 연결된 카카오 계정에서 알림톡을 확인하실 수 있습니다.\",\n                footer: /*#__PURE__*/ _jsxs(_Fragment, {\n                    children: [\n                        isBooks && /*#__PURE__*/ _jsx(Link, {\n                            href: \"https://solvook.channel.io/support-bots/95251\",\n                            target: \"_blank\",\n                            children: /*#__PURE__*/ _jsx(FilledButton, {\n                                type: \"text\",\n                                variant: \"soft\",\n                                children: \"추천인 코드 입력하기\"\n                            })\n                        }),\n                        /*#__PURE__*/ _jsx(Link, {\n                            href: HOME_PAGE,\n                            children: /*#__PURE__*/ _jsx(FilledButton, {\n                                type: \"text\",\n                                variant: \"solid\",\n                                children: \"홈으로 돌아가기\"\n                            })\n                        })\n                    ]\n                })\n            })\n        ]\n    });\n};\nexport default BooksOrder;\n","import { _ as _tagged_template_literal } from \"@swc/helpers/_/_tagged_template_literal\";\nfunction _templateObject() {\n    const data = _tagged_template_literal([\n        \"\\n  display: flex;\\n  flex-direction: column;\\n  gap: 12px;\\n\\n  .ant-space {\\n    display: flex;\\n    gap: 12px !important;\\n\\n    label {\\n      display: flex;\\n      padding: 16px;\\n      padding-left: 20px;\\n\\n      background-color: \",\n        \";\\n      border: 1px solid \",\n        \";\\n      border-radius: 6px;\\n\\n      color: \",\n        \";\\n      font-size: 16px;\\n      font-weight: 700;\\n      line-height: 1.5;\\n      letter-spacing: -0.16px;\\n\\n      &.ant-radio-wrapper-checked,\\n      &:hover {\\n        background-color: \",\n        \";\\n        border: 1px solid \",\n        \";\\n        color: \",\n        \";\\n      }\\n      & > :not(.ant-radio) {\\n        padding: 0 16px;\\n      }\\n    }\\n  }\\n\"\n    ]);\n    _templateObject = function() {\n        return data;\n    };\n    return data;\n}\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Radio, Space } from \"antd\";\nimport { useCallback } from \"react\";\nimport useBooksOrderStore from \"src/store/booksOrder\";\nimport styled from \"styled-components\";\nimport { BooksSubtitle } from \".\";\nexport const OrderPayMethodsContainer = styled.div.withConfig({\n    componentId: \"sc-c06c6b14-0\"\n})(_templateObject(), (props)=>props.theme.new.colors.white, (props)=>props.theme.new.colors.sol_gray_100, (props)=>props.theme.new.colors.sol_gray_700, (props)=>props.theme.new.colors.sol_indigo_50, (props)=>props.theme.new.colors.sol_indigo_500, (props)=>props.theme.new.colors.sol_indigo_500);\nconst BooksOrderPayMethods = ()=>{\n    const payMethod = useBooksOrderStore((state)=>state.payMethod);\n    const { setPayMethod  } = useBooksOrderStore((param)=>{\n        let { setPayMethod  } = param;\n        return {\n            setPayMethod\n        };\n    });\n    const handleChange = useCallback((ev)=>{\n        setPayMethod(ev.target.value);\n    }, [\n        setPayMethod\n    ]);\n    return /*#__PURE__*/ _jsxs(OrderPayMethodsContainer, {\n        children: [\n            /*#__PURE__*/ _jsx(BooksSubtitle, {\n                children: \"결제수단\"\n            }),\n            /*#__PURE__*/ _jsx(Radio.Group, {\n                onChange: handleChange,\n                value: payMethod,\n                children: /*#__PURE__*/ _jsxs(Space, {\n                    direction: \"vertical\",\n                    children: [\n                        /*#__PURE__*/ _jsx(Radio, {\n                            value: \"card\",\n                            children: \"신용카드\"\n                        }),\n                        /*#__PURE__*/ _jsx(Radio, {\n                            value: \"kakaopay\",\n                            children: \"카카오페이\"\n                        })\n                    ]\n                })\n            })\n        ]\n    });\n};\nexport default BooksOrderPayMethods;\n","import { _ as _tagged_template_literal } from \"@swc/helpers/_/_tagged_template_literal\";\nfunction _templateObject() {\n    const data = _tagged_template_literal([\n        \"\\n  display: inline-flex;\\n  align-items: center;\\n  padding: 8px 16px;\\n\\n  background-color: \",\n        \";\\n  border: 1px solid \",\n        \";\\n  border-radius: 47px;\\n\\n  &,\\n  .ant-btn {\\n    color: \",\n        \";\\n\\n    &[disabled] {\\n      color: \",\n        \";\\n    }\\n  }\\n\"\n    ]);\n    _templateObject = function() {\n        return data;\n    };\n    return data;\n}\nfunction _templateObject1() {\n    const data = _tagged_template_literal([\n        \"\\n  width: 44px;\\n  margin: 0 8px;\\n  border: none;\\n  font-size: 16px;\\n  font-weight: 700;\\n  line-height: 1.5;\\n  letter-spacing: -0.16px;\\n  text-align: center;\\n\"\n    ]);\n    _templateObject1 = function() {\n        return data;\n    };\n    return data;\n}\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback } from \"react\";\nimport styled from \"styled-components\";\nimport Icon from \"../icon/Icon\";\nimport { Minus2, Plus2 } from \"../icon/IconList\";\nimport NoPadButton from \"./Button/NoPadButton\";\nconst RoundedCounterContainer = styled.div.withConfig({\n    componentId: \"sc-8e868426-0\"\n})(_templateObject(), (props)=>props.theme.new.colors.white, (props)=>props.theme.new.colors.sol_gray_100, (props)=>props.theme.new.colors.sol_gray_900, (props)=>props.theme.new.colors.sol_gray_300);\nconst RoundedCounterNumber = styled.input.withConfig({\n    componentId: \"sc-8e868426-1\"\n})(_templateObject1());\nconst RoundedCounter = (param)=>{\n    let { max =99 , value , onChange  } = param;\n    const handleDecr = useCallback(()=>{\n        onChange(value - (value <= 1 ? 0 : 1));\n    }, [\n        onChange,\n        value\n    ]);\n    const handleIncr = useCallback(()=>{\n        onChange(value + (value >= max ? 0 : 1));\n    }, [\n        onChange,\n        value\n    ]);\n    const handleChange = useCallback(()=>{}, []);\n    return /*#__PURE__*/ _jsxs(RoundedCounterContainer, {\n        className: \"rounded-counter\",\n        children: [\n            /*#__PURE__*/ _jsx(NoPadButton, {\n                type: \"text\",\n                disabled: value <= 1,\n                onClick: handleDecr,\n                children: /*#__PURE__*/ _jsx(Icon, {\n                    icon: Minus2\n                })\n            }),\n            /*#__PURE__*/ _jsx(RoundedCounterNumber, {\n                value: value,\n                onChange: handleChange\n            }),\n            /*#__PURE__*/ _jsx(NoPadButton, {\n                type: \"text\",\n                disabled: value >= max,\n                onClick: handleIncr,\n                children: /*#__PURE__*/ _jsx(Icon, {\n                    icon: Plus2\n                })\n            })\n        ]\n    });\n};\nexport default RoundedCounter;\n","import { _ as _tagged_template_literal } from \"@swc/helpers/_/_tagged_template_literal\";\nfunction _templateObject() {\n    const data = _tagged_template_literal([\n        \"\\n  display: flex;\\n  gap: 20px;\\n  align-items: flex-start;\\n\\n  .ant-btn {\\n    color: \",\n        \";\\n    font-size: 14px;\\n    font-weight: 600;\\n    line-height: 22px;\\n    letter-spacing: -0.14px;\\n  }\\n\\n  img {\\n    width: \",\n        \"px;\\n    height: \",\n        \"px;\\n    border-radius: 2px;\\n    box-shadow: 2.217px 2.217px 8.87px 0px rgba(28, 31, 46, 0.06);\\n    object-fit: contain;\\n  }\\n\\n  .remove-button {\\n    &:hover {\\n      background-color: transparent;\\n      color: \",\n        \";\\n    }\\n\\n    svg {\\n      width: 18px;\\n      height: 18px;\\n      margin-right: 4px;\\n    }\\n  }\\n\"\n    ]);\n    _templateObject = function() {\n        return data;\n    };\n    return data;\n}\nfunction _templateObject1() {\n    const data = _tagged_template_literal([\n        \"\\n  display: flex;\\n  flex-direction: column;\\n  gap: 24px;\\n  flex-grow: 1;\\n\\n  font-size: 16px;\\n  font-weight: 400;\\n  line-height: 1.5;\\n  letter-spacing: -0.16px;\\n\\n  .rounded-counter {\\n    align-self: flex-start;\\n  }\\n\"\n    ]);\n    _templateObject1 = function() {\n        return data;\n    };\n    return data;\n}\nfunction _templateObject2() {\n    const data = _tagged_template_literal([\n        \"\\n  display: flex;\\n  flex-direction: column;\\n  gap: 8px;\\n  flex-grow: 1;\\n\\n  &,\\n  dd {\\n    color: \",\n        \";\\n    margin-bottom: 0;\\n  }\\n\\n  dt {\\n    color: \",\n        \";\\n    font-weight: 600;\\n\\n    display: -webkit-box;\\n    -webkit-line-clamp: 2;\\n    -webkit-box-orient: vertical;\\n    overflow: hidden;\\n  }\\n\"\n    ]);\n    _templateObject2 = function() {\n        return data;\n    };\n    return data;\n}\nfunction _templateObject3() {\n    const data = _tagged_template_literal([\n        \"\\n  display: flex;\\n\\n  &,\\n  dd {\\n    margin-bottom: 0;\\n  }\\n\\n  &,\\n  dt {\\n    color: \",\n        \";\\n  }\\n\\n  dt {\\n    font-weight: 400;\\n  }\\n\\n  .amount {\\n    display: flex;\\n    justify-content: flex-end;\\n    flex-grow: 1;\\n  }\\n\"\n    ]);\n    _templateObject3 = function() {\n        return data;\n    };\n    return data;\n}\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport Image from \"@/components/common/Image\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useCallback } from \"react\";\nimport { deleteBooksCart, putBooksCart } from \"src/api/booksCart\";\nimport useBooksOrderStore from \"src/store/booksOrder\";\nimport styled from \"styled-components\";\nimport { useBooks } from \".\";\nimport NoPadButton from \"../../common/Button/NoPadButton\";\nimport RoundedCounter from \"../../common/RoundedCounter\";\nimport Icon from \"../../icon/Icon\";\nimport { Delete1_5 } from \"../../icon/IconList\";\nimport { OrderCardContainer } from \"../../Package/OrderComponents/PaymentCard\";\nconst thumbDimensions = {\n    width: 71,\n    height: 96\n};\nexport const HorizontalStack = styled.div.withConfig({\n    componentId: \"sc-8fbcaca7-0\"\n})(_templateObject(), (props)=>props.theme.new.colors.sol_gray_500, thumbDimensions.width, thumbDimensions.height, (props)=>props.theme.new.colors.sol_red_400);\nexport const Stack = styled.div.withConfig({\n    componentId: \"sc-8fbcaca7-1\"\n})(_templateObject1());\nexport const TitleAndAround = styled.dl.withConfig({\n    componentId: \"sc-8fbcaca7-2\"\n})(_templateObject2(), (props)=>props.theme.new.colors.sol_gray_500, (props)=>props.theme.new.colors.sol_gray_900);\nexport const Total = styled.dl.withConfig({\n    componentId: \"sc-8fbcaca7-3\"\n})(_templateObject3(), (props)=>props.theme.new.colors.sol_gray_500);\nconst BooksOrderProductItem = (param)=>{\n    let { id , product , quantity , subtotal  } = param;\n    const { setItems  } = useBooksOrderStore((param)=>{\n        let { setItems  } = param;\n        return {\n            setItems\n        };\n    });\n    const { isBooks  } = useBooks();\n    const deleteBooksOrderMutation = useMutation(deleteBooksCart);\n    const putBooksOrderMutation = useMutation(putBooksCart);\n    const handleRemove = useCallback((cartItemId)=>async ()=>{\n            const result = await deleteBooksOrderMutation.mutateAsync({\n                lineItemId: cartItemId\n            });\n            setItems(result.lineItems, isBooks);\n        }, [\n        deleteBooksOrderMutation,\n        setItems,\n        isBooks\n    ]);\n    const handleChangeCounter = useCallback((cartItemId)=>async (newQuantity)=>{\n            const result = await putBooksOrderMutation.mutateAsync({\n                lineItemId: cartItemId,\n                quantity: newQuantity\n            });\n            setItems(result.lineItems, isBooks);\n        }, [\n        putBooksOrderMutation,\n        setItems,\n        isBooks\n    ]);\n    return /*#__PURE__*/ _jsx(OrderCardContainer, {\n        children: /*#__PURE__*/ _jsxs(Stack, {\n            children: [\n                /*#__PURE__*/ _jsxs(HorizontalStack, {\n                    children: [\n                        /*#__PURE__*/ _jsx(Image, {\n                            alt: \"book-img\",\n                            width: thumbDimensions.width,\n                            height: thumbDimensions.height,\n                            src: product.thumbImg\n                        }),\n                        /*#__PURE__*/ _jsxs(Stack, {\n                            children: [\n                                /*#__PURE__*/ _jsxs(HorizontalStack, {\n                                    children: [\n                                        /*#__PURE__*/ _jsxs(TitleAndAround, {\n                                            children: [\n                                                /*#__PURE__*/ _jsx(\"dt\", {\n                                                    children: product.title\n                                                }),\n                                                /*#__PURE__*/ _jsx(\"dd\", {\n                                                    children: product.author\n                                                })\n                                            ]\n                                        }),\n                                        /*#__PURE__*/ _jsxs(NoPadButton, {\n                                            type: \"text\",\n                                            className: \"remove-button\",\n                                            onClick: handleRemove(id),\n                                            children: [\n                                                /*#__PURE__*/ _jsx(Icon, {\n                                                    icon: Delete1_5\n                                                }),\n                                                \"삭제\"\n                                            ]\n                                        })\n                                    ]\n                                }),\n                                isBooks && /*#__PURE__*/ _jsx(RoundedCounter, {\n                                    value: quantity,\n                                    max: 99,\n                                    onChange: handleChangeCounter(id)\n                                })\n                            ]\n                        })\n                    ]\n                }),\n                /*#__PURE__*/ _jsxs(Total, {\n                    children: [\n                        /*#__PURE__*/ _jsx(\"dt\", {\n                            children: isBooks ? \"합계 금액\" : \"판매가\"\n                        }),\n                        /*#__PURE__*/ _jsxs(\"dd\", {\n                            className: \"amount\",\n                            children: [\n                                subtotal.toLocaleString(),\n                                \"원\"\n                            ]\n                        })\n                    ]\n                })\n            ]\n        })\n    });\n};\nexport default BooksOrderProductItem;\n","import { _ as _tagged_template_literal } from \"@swc/helpers/_/_tagged_template_literal\";\nfunction _templateObject() {\n    const data = _tagged_template_literal([\n        \"\\n  display: flex;\\n  flex-direction: column;\\n  gap: 8px;\\n\\n  .ant-divider {\\n    margin: 12px 0;\\n    border-color: \",\n        \";\\n\\n    &:last-of-type {\\n      margin-bottom: 0;\\n    }\\n  }\\n\"\n    ]);\n    _templateObject = function() {\n        return data;\n    };\n    return data;\n}\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Divider } from \"antd\";\nimport useBooksOrderStore from \"src/store/booksOrder\";\nimport styled from \"styled-components\";\nimport { useBooks } from \".\";\nimport { OrderSummaryItem } from \"../../Package/OrderComponents/OrderSummaryItem\";\nexport const BooksOrderSummaryContainer = styled.div.withConfig({\n    componentId: \"sc-db641cdb-0\"\n})(_templateObject(), (props)=>props.theme.new.colors.sol_gray_100);\nconst BooksOrderSummary = ()=>{\n    const deliveryFee = useBooksOrderStore((state)=>state.deliveryFee);\n    const originalPriceTotal = useBooksOrderStore((state)=>state.originalPriceTotal);\n    const discountAmount = useBooksOrderStore((state)=>state.discountAmount);\n    const payableAmount = useBooksOrderStore((state)=>state.payableAmount);\n    const { isBooks  } = useBooks();\n    return /*#__PURE__*/ _jsxs(BooksOrderSummaryContainer, {\n        children: [\n            isBooks && /*#__PURE__*/ _jsxs(OrderSummaryItem, {\n                children: [\n                    /*#__PURE__*/ _jsx(\"dt\", {\n                        children: \"배송비\"\n                    }),\n                    /*#__PURE__*/ _jsxs(\"dd\", {\n                        children: [\n                            deliveryFee.toLocaleString(),\n                            \"원\"\n                        ]\n                    })\n                ]\n            }),\n            /*#__PURE__*/ _jsxs(OrderSummaryItem, {\n                children: [\n                    /*#__PURE__*/ _jsx(\"dt\", {\n                        children: \"총 상품 금액\"\n                    }),\n                    /*#__PURE__*/ _jsxs(\"dd\", {\n                        children: [\n                            originalPriceTotal.toLocaleString(),\n                            \"원\"\n                        ]\n                    })\n                ]\n            }),\n            !!discountAmount && /*#__PURE__*/ _jsxs(OrderSummaryItem, {\n                children: [\n                    /*#__PURE__*/ _jsx(\"dt\", {\n                        children: \"총 할인 금액\"\n                    }),\n                    /*#__PURE__*/ _jsxs(\"dd\", {\n                        className: \"discount\",\n                        children: [\n                            \"-\",\n                            discountAmount.toLocaleString(),\n                            \"원\"\n                        ]\n                    })\n                ]\n            }),\n            /*#__PURE__*/ _jsx(Divider, {}),\n            /*#__PURE__*/ _jsxs(OrderSummaryItem, {\n                children: [\n                    /*#__PURE__*/ _jsx(\"dt\", {\n                        children: \"최종 결제 금액\"\n                    }),\n                    /*#__PURE__*/ _jsx(\"dd\", {\n                        children: /*#__PURE__*/ _jsxs(\"strong\", {\n                            children: [\n                                payableAmount.toLocaleString(),\n                                \"원\"\n                            ]\n                        })\n                    })\n                ]\n            }),\n            /*#__PURE__*/ _jsx(Divider, {})\n        ]\n    });\n};\nexport default BooksOrderSummary;\n","import { _ as _tagged_template_literal } from \"@swc/helpers/_/_tagged_template_literal\";\nfunction _templateObject() {\n    const data = _tagged_template_literal([\n        \"\\n  display: flex;\\n  gap: 8px;\\n\\n  font-size: 16px;\\n  font-weight: 400;\\n  line-height: 1.5;\\n  letter-spacing: -0.16px;\\n\\n  &,\\n  dt {\\n    font-weight: 400;\\n    color: \",\n        \";\\n  }\\n\\n  &,\\n  dd {\\n    margin-bottom: 0;\\n  }\\n\\n  dd {\\n    display: flex;\\n    justify-content: flex-end;\\n    flex-grow: 1;\\n\\n    &.discount {\\n      color: \",\n        \";\\n    }\\n\\n    strong {\\n      color: \",\n        \";\\n    }\\n  }\\n\"\n    ]);\n    _templateObject = function() {\n        return data;\n    };\n    return data;\n}\nimport styled from \"styled-components\";\nexport const OrderSummaryItem = styled.dl.withConfig({\n    componentId: \"sc-fcb63891-0\"\n})(_templateObject(), (props)=>props.theme.new.colors.sol_gray_500, (props)=>props.theme.new.colors.sol_red_400, (props)=>props.theme.new.colors.sol_gray_900);\n","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport React, { useMemo } from \"react\";\nimport BigNumber from \"bignumber.js\";\nimport { BooksOrderSummaryContainer } from \"../../Books/Order/BooksOrderSummary\";\nimport { numberFormatter } from \"@/lib/utils\";\nimport { OrderSummaryItem } from \"./OrderSummaryItem\";\nimport { Divider } from \"@mui/material\";\nexport const PassOrderSummary = (param)=>{\n    let { originPrice , price  } = param;\n    const discountAmount = useMemo(()=>{\n        return new BigNumber(originPrice).minus(price);\n    }, [\n        originPrice,\n        price\n    ]);\n    return /*#__PURE__*/ _jsxs(BooksOrderSummaryContainer, {\n        children: [\n            /*#__PURE__*/ _jsxs(OrderSummaryItem, {\n                children: [\n                    /*#__PURE__*/ _jsx(\"dt\", {\n                        children: \"총 상품 금액\"\n                    }),\n                    /*#__PURE__*/ _jsxs(\"dd\", {\n                        children: [\n                            numberFormatter(originPrice),\n                            \"원\"\n                        ]\n                    })\n                ]\n            }),\n            discountAmount.toLocaleString() !== \"0\" && /*#__PURE__*/ _jsxs(OrderSummaryItem, {\n                children: [\n                    /*#__PURE__*/ _jsx(\"dt\", {\n                        children: \"총 할인 금액\"\n                    }),\n                    /*#__PURE__*/ _jsxs(\"dd\", {\n                        className: \"discount\",\n                        children: [\n                            \"-\",\n                            numberFormatter(discountAmount.toLocaleString()),\n                            \"원\"\n                        ]\n                    })\n                ]\n            }),\n            /*#__PURE__*/ _jsx(Divider, {\n                sx: {\n                    marginY: \"12px\"\n                }\n            }),\n            /*#__PURE__*/ _jsxs(OrderSummaryItem, {\n                children: [\n                    /*#__PURE__*/ _jsx(\"dt\", {\n                        children: \"최종 결제 금액\"\n                    }),\n                    /*#__PURE__*/ _jsx(\"dd\", {\n                        children: /*#__PURE__*/ _jsxs(\"strong\", {\n                            children: [\n                                numberFormatter(price),\n                                \"원\"\n                            ]\n                        })\n                    })\n                ]\n            }),\n            /*#__PURE__*/ _jsx(Divider, {\n                sx: {\n                    marginTop: \"12px\"\n                }\n            })\n        ]\n    });\n};\n","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Radio, Space } from \"antd\";\nimport React from \"react\";\nexport const PaymentRadio = (param)=>{\n    let { handleChange , payMethod  } = param;\n    return /*#__PURE__*/ _jsx(Radio.Group, {\n        onChange: (e)=>handleChange(e.target.value),\n        value: payMethod,\n        children: /*#__PURE__*/ _jsxs(Space, {\n            direction: \"vertical\",\n            children: [\n                /*#__PURE__*/ _jsx(Radio, {\n                    value: \"card\",\n                    children: \"신용카드\"\n                }),\n                /*#__PURE__*/ _jsx(Radio, {\n                    value: \"kakaopay\",\n                    children: \"카카오페이\"\n                })\n            ]\n        })\n    });\n};\n","import { _ as _tagged_template_literal } from \"@swc/helpers/_/_tagged_template_literal\";\nfunction _templateObject() {\n    const data = _tagged_template_literal([\n        \"\\n  padding: 24px;\\n  background-color: \",\n        \";\\n  border-radius: 12px;\\n  border: 1px solid \",\n        \";\\n\"\n    ]);\n    _templateObject = function() {\n        return data;\n    };\n    return data;\n}\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { PaymentButtonContainer, PaymentContainer } from \"../../Books/Order/BooksOrder\";\nimport { PassOrderSummary } from \"./PassOrderSummary\";\nimport { OrderPayMethodsContainer } from \"../../Books/Order/BooksOrderPayMethods\";\nimport { BooksSubtitle } from \"../../Books/Order\";\nimport { PaymentRadio } from \"./PaymentRadio\";\nimport { Typography } from \"@mui/material\";\nimport { Button } from \"@bookips/solvook-ui-library\";\nimport Notice from \"../SubscribeToPass/SubscribeNotice\";\nexport const PaymentCard = (param)=>{\n    let { productInfo , handleSubmit , handleChange , payMethod , terms  } = param;\n    return /*#__PURE__*/ _jsx(OrderCardContainer, {\n        children: /*#__PURE__*/ _jsxs(PaymentContainer, {\n            onSubmit: handleSubmit,\n            children: [\n                /*#__PURE__*/ _jsx(PassOrderSummary, {\n                    originPrice: productInfo.originalPrice,\n                    price: productInfo.price\n                }),\n                /*#__PURE__*/ _jsxs(OrderPayMethodsContainer, {\n                    children: [\n                        /*#__PURE__*/ _jsx(BooksSubtitle, {\n                            children: \"결제수단\"\n                        }),\n                        /*#__PURE__*/ _jsx(PaymentRadio, {\n                            payMethod: payMethod,\n                            handleChange: handleChange\n                        })\n                    ]\n                }),\n                terms && /*#__PURE__*/ _jsx(Notice, {\n                    caution: productInfo.description,\n                    title: productInfo.descriptionTitle\n                }),\n                /*#__PURE__*/ _jsxs(PaymentButtonContainer, {\n                    children: [\n                        /*#__PURE__*/ _jsxs(Button, {\n                            variant: \"filledPrimary\",\n                            type: \"submit\",\n                            sx: {\n                                padding: \"16px 24px\",\n                                fontSize: \"16px\"\n                            },\n                            children: [\n                                productInfo.price.toLocaleString(),\n                                \"원 결제하기\"\n                            ]\n                        }),\n                        terms && /*#__PURE__*/ _jsx(Typography, {\n                            variant: \"regular14\",\n                            color: (theme)=>theme.palette.grey[500],\n                            sx: {\n                                textAlign: \"center\"\n                            },\n                            children: \"결제 시 유의사항 및 정보를 확인하였으며 동의한 것으로 간주합니다.\"\n                        })\n                    ]\n                })\n            ]\n        })\n    });\n};\nexport const OrderCardContainer = styled.div.withConfig({\n    componentId: \"sc-63c4ffb8-0\"\n})(_templateObject(), (props)=>props.theme.new.colors.white, (props)=>props.theme.new.colors.sol_gray_100);\n","import { _ as _tagged_template_literal } from \"@swc/helpers/_/_tagged_template_literal\";\nfunction _templateObject() {\n    const data = _tagged_template_literal([\n        \"\\n  flex-grow: 1;\\n  background-color: \",\n        \";\\n\"\n    ]);\n    _templateObject = function() {\n        return data;\n    };\n    return data;\n}\nfunction _templateObject1() {\n    const data = _tagged_template_literal([\n        \"\\n  max-width: 600px;\\n  margin: 0 auto;\\n  padding: 40px 0;\\n\\n  @media (max-width: 1200px) {\\n  }\\n  @media (max-width: 430px) {\\n    width: 100%;\\n    margin: 40px 0;\\n    padding: 0 16px;\\n  }\\n\"\n    ]);\n    _templateObject1 = function() {\n        return data;\n    };\n    return data;\n}\nfunction _templateObject2() {\n    const data = _tagged_template_literal([\n        \"\\n  display: flex;\\n  flex-direction: column;\\n  gap: 8px;\\n  margin-bottom: 24px;\\n  font-size: 24px;\\n  font-weight: 600;\\n  line-height: 32px;\\n  color: \",\n        \";\\n\"\n    ]);\n    _templateObject2 = function() {\n        return data;\n    };\n    return data;\n}\nfunction _templateObject3() {\n    const data = _tagged_template_literal([\n        \"\\n  font-size: 16px;\\n  font-weight: 400;\\n  line-height: 1.5;\\n  letter-spacing: -0.16px;\\n  color: \",\n        \";\\n\"\n    ]);\n    _templateObject3 = function() {\n        return data;\n    };\n    return data;\n}\nfunction _templateObject4() {\n    const data = _tagged_template_literal([\n        \"\\n  margin: 40px 0;\\n  display: flex;\\n  gap: 8px;\\n  flex-direction: column;\\n  p {\\n    font-size: 14px;\\n    font-style: normal;\\n    font-weight: 600;\\n    line-height: 22px; /* 157.143% */\\n    letter-spacing: -0.14px;\\n\\n    color: \",\n        \";\\n    font-weight: 600;\\n  }\\n\"\n    ]);\n    _templateObject4 = function() {\n        return data;\n    };\n    return data;\n}\nfunction _templateObject5() {\n    const data = _tagged_template_literal([\n        \"\\n  font-size: 14px;\\n\\n  li {\\n    font-weight: 400;\\n    color: \",\n        \";\\n\\n    line-height: 22px;\\n    list-style: initial;\\n    margin-inline-start: 24px;\\n  }\\n  @media (max-width: 768px) {\\n    li {\\n      font-size: 14px;\\n    }\\n  }\\n\"\n    ]);\n    _templateObject5 = function() {\n        return data;\n    };\n    return data;\n}\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport styled from \"styled-components\";\nexport const ContentsWrapper = styled.div.withConfig({\n    componentId: \"sc-c644f458-0\"\n})(_templateObject(), (props)=>props.theme.new.colors.sol_gray_0);\nexport const ContentsContainer = styled.div.withConfig({\n    componentId: \"sc-c644f458-1\"\n})(_templateObject1());\nexport const ContentsStyledTitle = styled.h2.withConfig({\n    componentId: \"sc-c644f458-2\"\n})(_templateObject2(), (props)=>props.theme.new.colors.sol_gray_900);\nexport const Subtitle = styled.p.withConfig({\n    componentId: \"sc-c644f458-3\"\n})(_templateObject3(), (props)=>props.theme.new.colors.sol_gray_500);\nexport const ContentsTitle = (param)=>{\n    let { primary , secondary  } = param;\n    return /*#__PURE__*/ _jsx(_Fragment, {\n        children: /*#__PURE__*/ _jsxs(ContentsStyledTitle, {\n            children: [\n                primary,\n                !!secondary && /*#__PURE__*/ _jsx(Subtitle, {\n                    children: secondary\n                })\n            ]\n        })\n    });\n};\nexport const NoticeContainer = styled.div.withConfig({\n    componentId: \"sc-c644f458-4\"\n})(_templateObject4(), (props)=>props.theme.new.colors.sol_gray_500);\n// page/packages/index 스타일 동일한 부분...충돌 방지로 가져와 사용중, 나중에 정리해야\nexport const NoticeList = styled.ul.withConfig({\n    componentId: \"sc-c644f458-5\"\n})(_templateObject5(), (props)=>props.theme.new.colors.sol_gray_500);\n","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { styled, Typography } from \"@mui/material\";\nimport { useTheme } from \"styled-components\";\nimport { NoticeList } from \"../PassRegister\";\nconst Notice = (param)=>{\n    let { title , caution , layoutStyle  } = param;\n    const theme = useTheme();\n    const isArray = Array.isArray(caution);\n    return /*#__PURE__*/ _jsxs(NoticeStack, {\n        sx: layoutStyle,\n        children: [\n            /*#__PURE__*/ _jsx(Typography, {\n                variant: \"semibold14\",\n                sx: {\n                    color: \"\".concat(theme.new.colors.sol_gray_500)\n                },\n                children: title\n            }),\n            /*#__PURE__*/ _jsx(NoticeList, {\n                children: isArray ? caution.map((item, index)=>/*#__PURE__*/ _jsx(\"li\", {\n                        children: /*#__PURE__*/ _jsx(Typography, {\n                            variant: \"regular14\",\n                            children: item\n                        })\n                    }, index)) : /*#__PURE__*/ _jsx(Typography, {\n                    variant: \"regular12\",\n                    color: (theme)=>theme.palette.text.secondary,\n                    sx: {\n                        whiteSpace: \"pre-wrap\"\n                    },\n                    children: caution\n                })\n            })\n        ]\n    });\n};\nconst NoticeStack = styled(\"div\")((param)=>{\n    let { theme  } = param;\n    return {\n        position: \"relative\",\n        overflow: \"auto\",\n        backgroundColor: theme.palette.grey[\"0\"],\n        borderRadius: \"6px\",\n        maxHeight: \"90px\",\n        \"&::-webkit-scrollbar\": {\n            width: \"4px\"\n        },\n        \"&::-webkit-scrollbar-thumb\": {\n            borderRadius: \"2px\",\n            background: \"#bbbbbf\"\n        }\n    };\n});\nexport default Notice;\n","import { _ as _tagged_template_literal } from \"@swc/helpers/_/_tagged_template_literal\";\nfunction _templateObject() {\n    const data = _tagged_template_literal([\n        \"\\n  li {\\n    color: \",\n        \";\\n    line-height: 22px;\\n    list-style: initial;\\n    margin-inline-start: 24px;\\n  }\\n\\n  @media (max-width: 768px) {\\n    li {\\n      font-size: 14px;\\n    }\\n  }\\n\"\n    ]);\n    _templateObject = function() {\n        return data;\n    };\n    return data;\n}\nfunction _templateObject1() {\n    const data = _tagged_template_literal([\n        \"\\n  .priceInfo {\\n    display: flex;\\n    align-items: center;\\n    @media (max-width: 768px) {\\n      display: flex;\\n      align-items: flex-start;\\n    }\\n  }\\n\"\n    ]);\n    _templateObject1 = function() {\n        return data;\n    };\n    return data;\n}\nfunction _templateObject2() {\n    const data = _tagged_template_literal([\n        \"\\n  position: relative;\\n  padding: 24px;\\n  border-radius: 6px;\\n  background-color: \",\n        \";\\n  border: 1px solid \",\n        \";\\n\\n  :hover {\\n    box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.08), 0px 1px 4px 0px rgba(0, 0, 0, 0.04);\\n    transition: box-shadow 0.3s ease-in-out;\\n  }\\n\\n  .ant-row {\\n    width: 100%;\\n    justify-content: space-between;\\n    flex-wrap: nowrap;\\n    gap: 40px;\\n    align-items: center;\\n  }\\n\\n  .ant-col {\\n    align-items: center;\\n\\n    &.clickArea {\\n      cursor: pointer;\\n      flex: 1;\\n    }\\n\\n    &.priceInfo {\\n      text-align: right;\\n      display: flex;\\n      flex-direction: row;\\n      justify-content: space-between;\\n      height: 52px;\\n\\n      .left {\\n        height: 100%;\\n        justify-content: center;\\n        display: flex;\\n        flex-direction: column;\\n        margin-right: 24px;\\n      }\\n\\n      .right {\\n        display: flex;\\n        flex-direction: column;\\n      }\\n    }\\n  }\\n\\n  @media (max-width: 768px) {\\n    padding: 20px;\\n    .ant-row {\\n      flex-direction: column;\\n      align-items: stretch;\\n    }\\n\\n    .ant-col.priceInfo {\\n      align-items: flex-end;\\n    }\\n\\n    .ant-col {\\n      &.priceInfo {\\n        .left {\\n          justify-content: flex-end;\\n        }\\n      }\\n    }\\n  }\\n\"\n    ]);\n    _templateObject2 = function() {\n        return data;\n    };\n    return data;\n}\nfunction _templateObject3() {\n    const data = _tagged_template_literal([\n        \"\\n  width: 100%;\\n  display: flex;\\n  gap: 8px;\\n  padding: 20px 28px;\\n\"\n    ]);\n    _templateObject3 = function() {\n        return data;\n    };\n    return data;\n}\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { BOOKS_LANDING, EBOOKS_LANDING, PASSES_LANDING } from \"@/settings/constant\";\nimport { Button } from \"@bookips/solvook-ui-library\";\nimport { styled as muiStyled } from \"@mui/material\";\nimport { useRouter } from \"next/router\";\nimport { useMemo } from \"react\";\nimport styled from \"styled-components\";\nimport FilledButton from \"../common/Button/FilledButton\";\nexport const getIsPasses = (pathname)=>pathname.startsWith(PASSES_LANDING);\nexport const usePasses = ()=>{\n    const { pathname  } = useRouter();\n    const { isPasses  } = useMemo(()=>{\n        return {\n            isPasses: getIsPasses(pathname)\n        };\n    }, [\n        pathname\n    ]);\n    return {\n        isPackages: isPasses\n    };\n};\nexport const useProductType = ()=>{\n    const { pathname  } = useRouter();\n    // Todo 로직 수정 필요\n    const { productType  } = useMemo(()=>{\n        let productType;\n        switch(pathname.split(\"/\")[1]){\n            case EBOOKS_LANDING:\n                productType = \"ebooks\";\n                break;\n            case PASSES_LANDING:\n                productType = \"package\";\n                break;\n            case BOOKS_LANDING:\n                productType = \"aladinbooks\";\n                break;\n        }\n        return {\n            productType\n        };\n    }, [\n        pathname\n    ]);\n    return {\n        productType\n    };\n};\nexport const Title = muiStyled(\"h5\")((param)=>{\n    let { theme  } = param;\n    return {\n        color: theme.palette.grey[900],\n        marginBottom: \"24px\",\n        ...theme.typography.h4,\n        \"& em\": {\n            color: theme.palette.indigo[500],\n            textDecoration: \"none\"\n        },\n        [theme.breakpoints.down(820)]: {\n            marginBottom: \"20px\"\n        }\n    };\n});\nexport const SubTitle = muiStyled(\"h5\")((param)=>{\n    let { theme  } = param;\n    return {\n        color: theme.palette.text[\"title\"],\n        marginBottom: \"20px\",\n        ...theme.typography.h6,\n        \"& span\": {\n            color: theme.palette.text[\"secondary\"],\n            marginInlineStart: \"4px\",\n            ...theme.typography.body2\n        },\n        [theme.breakpoints.down(\"sm\")]: {\n            \"& span\": {}\n        }\n    };\n});\nexport const Container = muiStyled(\"div\")((param)=>{\n    let { theme  } = param;\n    return {\n        maxWidth: \"1200px\",\n        margin: \"0 auto\",\n        width: \"100%\",\n        // marginBottom: '40px',\n        \".notice-title\": {\n            color: theme.palette.grey[500],\n            fontWeight: \"600\",\n            marginBottom: \"8px\"\n        },\n        [theme.breakpoints.down(\"sm\")]: {\n            gap: \"40px\"\n        }\n    };\n});\nexport const NoticeList = styled.ul.withConfig({\n    componentId: \"sc-f80b46ae-0\"\n})(_templateObject(), (props)=>props.theme.new.colors.sol_gray_500);\nexport const OriginalPrice = muiStyled(\"s\")((param)=>{\n    let { theme  } = param;\n    return {\n        color: theme.palette.text[\"disabled\"],\n        ...theme.typography.body2,\n        [theme.breakpoints.down(\"sm\")]: {\n            textAlign: \"left\"\n        }\n    };\n});\nexport const DiscountRate = muiStyled(\"em\")((param)=>{\n    let { theme  } = param;\n    return {\n        color: theme.palette.red[400],\n        marginInlineEnd: \"4px\",\n        ...theme.typography.h6,\n        [theme.breakpoints.down(\"sm\")]: {}\n    };\n});\nexport const Price = muiStyled(\"p\")((param)=>{\n    let { theme  } = param;\n    return {\n        color: theme.palette.text[\"primary\"],\n        textAlign: \"right\",\n        whiteSpace: \"nowrap\",\n        ...theme.typography.h6,\n        [theme.breakpoints.down(\"sm\")]: {\n            textAlign: \"left\"\n        }\n    };\n});\nexport const PassTitle = muiStyled(\"h5\")((param)=>{\n    let { theme  } = param;\n    return {\n        color: theme.palette.text[\"primary\"],\n        marginBottom: \"4px\",\n        maxWidth: \"380px\",\n        textOverflow: \"ellipsis\",\n        overflow: \"hidden\",\n        display: \"-webkit-box\",\n        WebkitLineClamp: 2,\n        \"-webkit-box-orient\": \"vertical\",\n        wordBreak: \"break-all\",\n        ...theme.typography.h6,\n        [theme.breakpoints.down(\"sm\")]: {\n            display: \"flex\",\n            flexDirection: \"column-reverse\",\n            alignItems: \"flex-start\"\n        }\n    };\n});\nexport const PassPrice = styled.div.withConfig({\n    componentId: \"sc-f80b46ae-1\"\n})(_templateObject1());\nexport const PassItemContainer = styled.li.withConfig({\n    componentId: \"sc-f80b46ae-2\"\n})(_templateObject2(), (pass)=>pass.theme.new.colors.white, (pass)=>pass.theme.new.colors.sol_gray_100);\nexport const SubDescription = muiStyled(\"span\")((param)=>{\n    let { theme  } = param;\n    return {\n        color: theme.palette.text[\"secondary\"],\n        display: \"flex\",\n        alignItems: \"center\",\n        ...theme.typography.body1\n    };\n});\nexport const OrderFilledButton = muiStyled(FilledButton)((param)=>{\n    let { theme  } = param;\n    return {\n        padding: \"10px 16px\",\n        ...theme.typography.subtitle2\n    };\n});\nexport const PurchaseButton = (param)=>{\n    let { onClick , children  } = param;\n    return /*#__PURE__*/ _jsx(OrderFilledButton, {\n        type: \"text\",\n        variant: \"outlined\",\n        className: \"cart-btn\",\n        onClick: onClick,\n        children: children\n    });\n};\nexport const SubscribeButton = (param)=>{\n    let { onClick , children  } = param;\n    return /*#__PURE__*/ _jsx(OrderFilledButton, {\n        type: \"text\",\n        variant: \"solid\",\n        className: \"cart-btn\",\n        onClick: onClick,\n        children: children\n    });\n};\nexport const PassDialogButtonContainer = styled.div.withConfig({\n    componentId: \"sc-f80b46ae-3\"\n})(_templateObject3());\nexport const PassDialogButton = muiStyled(Button)((param)=>{\n    let { theme  } = param;\n    return {\n        width: \"100%\",\n        padding: \"12px 20px\",\n        ...theme.typography.semibold16\n    };\n});\n","import { useEffect, useMemo, useRef, useState } from \"react\";\nconst loadAsyncScript = (param)=>{\n    let { src , async =true , onScriptLoad  } = param;\n    return new Promise((resolve, reject)=>{\n        const script = document.createElement(\"script\");\n        script.src = src;\n        script.async = async;\n        script.onload = ()=>{\n            resolve(script);\n            // @ts-ignore\n            onScriptLoad();\n        };\n        document.body.appendChild(script);\n    });\n};\nconst loadAllScript = ()=>{\n    const scripts = [\n        \"https://code.jquery.com/jquery-1.12.4.min.js\",\n        \"https://cdn.iamport.kr/js/iamport.payment-1.2.0.js\"\n    ].map((url)=>loadAsyncScript({\n            src: url,\n            async: false,\n            onScriptLoad: ()=>{\n                ;\n            }\n        }));\n    return Promise.all(scripts);\n};\nexport const useIamport = (_impCode)=>{\n    const impCode = useMemo(()=>_impCode || process.env.NEXT_PUBLIC_IAMPORT_USER_CODE || \"imp21555572\", [\n        _impCode\n    ]);\n    const impRef = useRef(null);\n    const [loading, setLoading] = useState(true);\n    const [initialized, setInitialized] = useState(false);\n    useEffect(()=>{\n        let loadedScript = [];\n        loadAllScript()// @ts-ignore\n        .then((results)=>{\n            loadedScript = results;\n            const { IMP  } = window;\n            ;\n            // @ts-ignore\n            // IMP.init('imp21555572')\n            IMP.init(impCode);\n            // IMP.init(process.env.NEXT_PUBLIC_IAMPORT_USER_CODE)\n            impRef.current = IMP;\n            setInitialized(true);\n        }).catch((err)=>{\n            ;\n            alert(err.message);\n        }).finally(()=>{\n            setLoading(false);\n        });\n        return ()=>{\n            loadedScript.map((script)=>document.body.removeChild(script));\n            // @ts-ignore\n            window.IMP = undefined;\n        };\n    }, []);\n    return {\n        impRef,\n        loading,\n        initialized\n    };\n};\nexport const getIamportPayload = (payload, payMethod)=>({\n        ...payload,\n        pay_method: payMethod,\n        pg: payMethod !== \"kakaopay\" ? payload.tax_free ? process.env.NEXT_PUBLIC_PORTONE_PG_TAX_FREE : process.env.NEXT_PUBLIC_PORTONE_PG_TAX : \"kakaopay\"\n    });\nexport const requestPay = (payload, impRef)=>{\n    return new Promise((resolve, reject)=>{\n        if (!impRef) {\n            reject({\n                message: \"invalid iamport lib\"\n            });\n        } else {\n            impRef.request_pay(payload, (response)=>{\n                ;\n                if (response.success) {\n                    resolve(response);\n                } else {\n                    reject({\n                        message: response.error_msg\n                    });\n                // let msg = '결제에 실패하였습니다.'\n                // msg += '에러내용 : ' + rsp.error_msg\n                // alert(msg)\n                }\n            });\n        }\n    });\n};\nexport const getTextFromPayMethod = (payMethod)=>{\n    let text;\n    switch(payMethod){\n        case \"card\":\n            text = \"신용/체크카드\";\n            break;\n        case \"trans\":\n            text = \"실시간 계좌이체\";\n            break;\n        case \"vbank\":\n            text = \"가상계좌\";\n            break;\n        case \"phone\":\n            text = \"휴대폰 소액결제\";\n            break;\n        case \"samsung\":\n            text = \"삼성페이\";\n            break;\n        case \"kpay\":\n            text = \"kpay\";\n            break;\n        case \"cultureland\":\n            text = \"문화상품권\";\n            break;\n        case \"smartculture\":\n            text = \"스마트문상\";\n            break;\n        case \"happymoney\":\n            text = \"해피머니\";\n            break;\n        case \"booknlife\":\n            text = \"도서문화상품권\";\n            break;\n        case \"point\":\n        case \"kakaopay\":\n            text = \"카카오페이\";\n            break;\n    }\n    return text;\n};\nexport const getTextFromPG = (pg)=>{\n    let text;\n    switch(pg){\n        case \"html5_inicis\":\n            text = \"이니시스\";\n            break;\n        case \"kcp\":\n            text = \"KCP\";\n            break;\n        case \"kcp_billing\":\n            text = \"KCP(정기결제)\";\n            break;\n        case \"uplus\":\n            text = \"Toss\";\n            break;\n        case \"jtnet\":\n            text = \"JTNet\";\n            break;\n        case \"nice\":\n            text = \"나이스페이\";\n            break;\n        case \"kakaopay\":\n            text = \"카카오페이\";\n            break;\n        case \"kakao\":\n            text = \"카카오페이\";\n            break;\n        case \"danal\":\n            text = \"다날\";\n            break;\n        case \"danal_tpay\":\n            text = \"다날(휴대폰소액결제)\";\n            break;\n        case \"kicc\":\n            text = \"KICC\";\n            break;\n        case \"paypal\":\n            text = \"페이팔\";\n            break;\n        case \"mobilians\":\n            text = \"모빌리언스\";\n            break;\n        case \"payco\":\n            text = \"페이코\";\n            break;\n        case \"settle\":\n            text = \"세틀뱅크\";\n            break;\n        case \"naverco\":\n            text = \"네이버페이\";\n            break;\n        case \"naverpay\":\n            text = \"네이버페이\";\n            break;\n        case \"smilepay\":\n            text = \"스마일페이\";\n            break;\n    }\n    return text;\n};\n","import BigNumber from \"bignumber.js\";\nimport { create } from \"zustand\";\nconst useBooksOrderStore = create((set)=>({\n        revision: 0,\n        deliveryFee: 0,\n        originalPriceTotal: 0,\n        amountTotal: 0,\n        discountAmount: 0,\n        payableAmount: 0,\n        payMethod: \"card\",\n        setItems: (items, isBooks)=>set((state)=>{\n                if (!items) {\n                    return {\n                        items: undefined\n                    };\n                }\n                const totals = {\n                    originalPriceTotal: 0,\n                    amountTotal: 0\n                };\n                const newItems = items.map((item)=>{\n                    totals.originalPriceTotal += BigNumber(item.product.originPrice).multipliedBy(item.quantity).toNumber();\n                    const subtotal = BigNumber(item.product.price).multipliedBy(item.quantity).toNumber();\n                    totals.amountTotal += subtotal;\n                    return {\n                        ...item,\n                        subtotal\n                    };\n                });\n                const deliveryFee = isBooks ? BigNumber(totals.amountTotal).isGreaterThanOrEqualTo(30000) ? 0 : 2500 : 0;\n                return {\n                    items: newItems,\n                    ...totals,\n                    deliveryFee,\n                    discountAmount: BigNumber(totals.originalPriceTotal).minus(BigNumber(totals.amountTotal)).toNumber(),\n                    payableAmount: BigNumber(totals.amountTotal).plus(deliveryFee).toNumber()\n                };\n            }),\n        removeItem: (cartItemId)=>set((state)=>{\n                const newItems = [\n                    ...state.items\n                ];\n                const idx = newItems.findIndex((param)=>{\n                    let { id  } = param;\n                    return cartItemId === id;\n                });\n                if (idx > -1) {\n                    newItems.splice(idx, 1);\n                }\n                return {\n                    items: newItems\n                };\n            }),\n        setItemQuantity: (cartItemId, quantity)=>set((state)=>{\n                const newItems = [\n                    ...state.items\n                ];\n                const idx = newItems.findIndex((param)=>{\n                    let { id  } = param;\n                    return cartItemId === id;\n                });\n                if (idx > -1) {\n                    newItems.splice(idx, 1);\n                }\n                return {\n                    items: state.items.map((item)=>({\n                            ...item,\n                            quantity: cartItemId === item.id ? quantity : item.quantity\n                        }))\n                };\n            }),\n        setPayMethod: (payMethod)=>set((state)=>({\n                    payMethod\n                })),\n        brandNewRevision: ()=>set((state)=>({\n                    revision: new Date().getTime()\n                }))\n    }));\nexport default useBooksOrderStore;\n"],"names":[],"sourceRoot":""}