@eventlook/sdk 1.4.46-beta.7 → 1.4.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/.claude/settings.local.json +9 -0
  2. package/dist/cjs/components/Image.js +29 -14
  3. package/dist/cjs/components/Image.js.map +1 -1
  4. package/dist/cjs/components/hook-form/FormProvider.js +2 -2
  5. package/dist/cjs/components/hook-form/FormProvider.js.map +1 -1
  6. package/dist/cjs/form/ChildEventDialog.js +3 -3
  7. package/dist/cjs/form/ChildEventDialog.js.map +1 -1
  8. package/dist/cjs/form/ContactPerson.js +1 -1
  9. package/dist/cjs/form/ContactPerson.js.map +1 -1
  10. package/dist/cjs/form/Payment.js +2 -2
  11. package/dist/cjs/form/Payment.js.map +1 -1
  12. package/dist/cjs/form/PaymentOverviewBox.js +61 -47
  13. package/dist/cjs/form/PaymentOverviewBox.js.map +1 -1
  14. package/dist/cjs/form/PaymentPending.js +4 -1
  15. package/dist/cjs/form/PaymentPending.js.map +1 -1
  16. package/dist/cjs/form/ReleaseWithMerchandise.js +48 -57
  17. package/dist/cjs/form/ReleaseWithMerchandise.js.map +1 -1
  18. package/dist/cjs/form/TicketForm.js +25 -43
  19. package/dist/cjs/form/TicketForm.js.map +1 -1
  20. package/dist/cjs/form/TicketSelection.js +6 -5
  21. package/dist/cjs/form/TicketSelection.js.map +1 -1
  22. package/dist/cjs/form/TicketWithMerchandiseSelection.js +5 -3
  23. package/dist/cjs/form/TicketWithMerchandiseSelection.js.map +1 -1
  24. package/dist/cjs/form/index.js +1 -1
  25. package/dist/cjs/form/index.js.map +1 -1
  26. package/dist/cjs/form/payment/FeeBox.js +16 -4
  27. package/dist/cjs/form/payment/FeeBox.js.map +1 -1
  28. package/dist/cjs/form/payment/PaymentOverviewCheckbox.js +28 -34
  29. package/dist/cjs/form/payment/PaymentOverviewCheckbox.js.map +1 -1
  30. package/dist/cjs/form/product/ProductCard.js +36 -117
  31. package/dist/cjs/form/product/ProductCard.js.map +1 -1
  32. package/dist/cjs/form/product/ProductVariantsDialog.js +96 -158
  33. package/dist/cjs/form/product/ProductVariantsDialog.js.map +1 -1
  34. package/dist/cjs/locales/cs.js +2 -17
  35. package/dist/cjs/locales/cs.js.map +1 -1
  36. package/dist/cjs/locales/en.js +2 -17
  37. package/dist/cjs/locales/en.js.map +1 -1
  38. package/dist/cjs/locales/es.js +1 -16
  39. package/dist/cjs/locales/es.js.map +1 -1
  40. package/dist/cjs/locales/pl.js +1 -16
  41. package/dist/cjs/locales/pl.js.map +1 -1
  42. package/dist/cjs/locales/sk.js +1 -16
  43. package/dist/cjs/locales/sk.js.map +1 -1
  44. package/dist/cjs/locales/uk.js +1 -16
  45. package/dist/cjs/locales/uk.js.map +1 -1
  46. package/dist/cjs/utils/data/global.js +0 -2
  47. package/dist/cjs/utils/data/global.js.map +1 -1
  48. package/dist/esm/components/Image.js +30 -15
  49. package/dist/esm/components/Image.js.map +1 -1
  50. package/dist/esm/components/hook-form/FormProvider.js +2 -2
  51. package/dist/esm/components/hook-form/FormProvider.js.map +1 -1
  52. package/dist/esm/form/ChildEventDialog.js +3 -3
  53. package/dist/esm/form/ChildEventDialog.js.map +1 -1
  54. package/dist/esm/form/ContactPerson.js +1 -1
  55. package/dist/esm/form/ContactPerson.js.map +1 -1
  56. package/dist/esm/form/Payment.js +2 -2
  57. package/dist/esm/form/Payment.js.map +1 -1
  58. package/dist/esm/form/PaymentOverviewBox.js +62 -48
  59. package/dist/esm/form/PaymentOverviewBox.js.map +1 -1
  60. package/dist/esm/form/PaymentPending.js +4 -1
  61. package/dist/esm/form/PaymentPending.js.map +1 -1
  62. package/dist/esm/form/ReleaseWithMerchandise.js +49 -58
  63. package/dist/esm/form/ReleaseWithMerchandise.js.map +1 -1
  64. package/dist/esm/form/TicketForm.js +27 -45
  65. package/dist/esm/form/TicketForm.js.map +1 -1
  66. package/dist/esm/form/TicketSelection.js +6 -5
  67. package/dist/esm/form/TicketSelection.js.map +1 -1
  68. package/dist/esm/form/TicketWithMerchandiseSelection.js +6 -4
  69. package/dist/esm/form/TicketWithMerchandiseSelection.js.map +1 -1
  70. package/dist/esm/form/index.js +1 -1
  71. package/dist/esm/form/index.js.map +1 -1
  72. package/dist/esm/form/payment/FeeBox.js +17 -5
  73. package/dist/esm/form/payment/FeeBox.js.map +1 -1
  74. package/dist/esm/form/payment/PaymentOverviewCheckbox.js +30 -36
  75. package/dist/esm/form/payment/PaymentOverviewCheckbox.js.map +1 -1
  76. package/dist/esm/form/product/ProductCard.js +37 -118
  77. package/dist/esm/form/product/ProductCard.js.map +1 -1
  78. package/dist/esm/form/product/ProductVariantsDialog.js +98 -160
  79. package/dist/esm/form/product/ProductVariantsDialog.js.map +1 -1
  80. package/dist/esm/locales/cs.js +2 -17
  81. package/dist/esm/locales/cs.js.map +1 -1
  82. package/dist/esm/locales/en.js +2 -17
  83. package/dist/esm/locales/en.js.map +1 -1
  84. package/dist/esm/locales/es.js +1 -16
  85. package/dist/esm/locales/es.js.map +1 -1
  86. package/dist/esm/locales/pl.js +1 -16
  87. package/dist/esm/locales/pl.js.map +1 -1
  88. package/dist/esm/locales/sk.js +1 -16
  89. package/dist/esm/locales/sk.js.map +1 -1
  90. package/dist/esm/locales/uk.js +1 -16
  91. package/dist/esm/locales/uk.js.map +1 -1
  92. package/dist/esm/utils/data/global.js +1 -2
  93. package/dist/esm/utils/data/global.js.map +1 -1
  94. package/dist/types/components/Image.d.ts +4 -4
  95. package/dist/types/form/style.d.ts +1 -1
  96. package/package.json +2 -8
  97. package/rollup.config.mjs +0 -2
  98. package/src/components/Image.tsx +48 -27
  99. package/src/components/hook-form/FormProvider.tsx +2 -5
  100. package/src/form/ChildEventDialog.tsx +3 -3
  101. package/src/form/ContactPerson.tsx +1 -1
  102. package/src/form/MerchandiseSelection.tsx +29 -0
  103. package/src/form/Payment.tsx +2 -2
  104. package/src/form/PaymentOverviewBox.tsx +122 -89
  105. package/src/form/PaymentPending.tsx +1 -1
  106. package/src/form/ReleaseWithMerchandise.tsx +230 -0
  107. package/src/form/TicketForm.tsx +25 -63
  108. package/src/form/{tickets/TicketSelection.tsx → TicketSelection.tsx} +128 -24
  109. package/src/form/{tickets/TicketSelectionMap.tsx → TicketSelectionMap.tsx} +1 -9
  110. package/src/form/{tickets/TicketWithMerchandiseSelection.tsx → TicketWithMerchandiseSelection.tsx} +7 -3
  111. package/src/form/index.tsx +1 -3
  112. package/src/form/payment/FeeBox.tsx +31 -4
  113. package/src/form/payment/PaymentOverviewCheckbox.tsx +56 -57
  114. package/src/form/product/ProductCard.tsx +59 -179
  115. package/src/form/product/ProductVariantsDialog.tsx +140 -253
  116. package/src/locales/cs.tsx +2 -17
  117. package/src/locales/en.tsx +2 -17
  118. package/src/locales/es.tsx +1 -16
  119. package/src/locales/pl.tsx +1 -16
  120. package/src/locales/sk.tsx +1 -16
  121. package/src/locales/uk.tsx +1 -16
  122. package/src/utils/data/global.ts +0 -1
  123. package/tsconfig.json +1 -2
  124. package/.env.example +0 -1
  125. package/dist/cjs/_virtual/_commonjsHelpers.js +0 -8
  126. package/dist/cjs/_virtual/_commonjsHelpers.js.map +0 -1
  127. package/dist/cjs/_virtual/index.js +0 -6
  128. package/dist/cjs/_virtual/index.js.map +0 -1
  129. package/dist/cjs/_virtual/index2.js +0 -6
  130. package/dist/cjs/_virtual/index2.js.map +0 -1
  131. package/dist/cjs/_virtual/index3.js +0 -6
  132. package/dist/cjs/_virtual/index3.js.map +0 -1
  133. package/dist/cjs/_virtual/react-is.development.js +0 -6
  134. package/dist/cjs/_virtual/react-is.development.js.map +0 -1
  135. package/dist/cjs/_virtual/react-is.development2.js +0 -6
  136. package/dist/cjs/_virtual/react-is.development2.js.map +0 -1
  137. package/dist/cjs/_virtual/react-is.production.js +0 -6
  138. package/dist/cjs/_virtual/react-is.production.js.map +0 -1
  139. package/dist/cjs/_virtual/react-is.production.min.js +0 -6
  140. package/dist/cjs/_virtual/react-is.production.min.js.map +0 -1
  141. package/dist/cjs/form/PaymentOverviewDrawer.js +0 -149
  142. package/dist/cjs/form/PaymentOverviewDrawer.js.map +0 -1
  143. package/dist/cjs/form/TicketQuantityControl.js +0 -51
  144. package/dist/cjs/form/TicketQuantityControl.js.map +0 -1
  145. package/dist/cjs/form/TicketSelectionMobile.js +0 -98
  146. package/dist/cjs/form/TicketSelectionMobile.js.map +0 -1
  147. package/dist/cjs/form/merchandise/MerchandiseSelection.js +0 -14
  148. package/dist/cjs/form/merchandise/MerchandiseSelection.js.map +0 -1
  149. package/dist/cjs/form/merchandise/MerchandiseSlider.js +0 -40
  150. package/dist/cjs/form/merchandise/MerchandiseSlider.js.map +0 -1
  151. package/dist/cjs/form/merchendise/MerchandiseSelection.js +0 -19
  152. package/dist/cjs/form/merchendise/MerchandiseSelection.js.map +0 -1
  153. package/dist/cjs/form/merchendise/MerchandiseSlider.js +0 -75
  154. package/dist/cjs/form/merchendise/MerchandiseSlider.js.map +0 -1
  155. package/dist/cjs/form/services/index.js +0 -134
  156. package/dist/cjs/form/services/index.js.map +0 -1
  157. package/dist/cjs/form/tickets/ReleaseDescription.js +0 -23
  158. package/dist/cjs/form/tickets/ReleaseDescription.js.map +0 -1
  159. package/dist/cjs/form/tickets/ReleaseWithMerchandise.js +0 -141
  160. package/dist/cjs/form/tickets/ReleaseWithMerchandise.js.map +0 -1
  161. package/dist/cjs/form/tickets/TicketQuantityControl.js +0 -52
  162. package/dist/cjs/form/tickets/TicketQuantityControl.js.map +0 -1
  163. package/dist/cjs/form/tickets/TicketSelection.js +0 -139
  164. package/dist/cjs/form/tickets/TicketSelection.js.map +0 -1
  165. package/dist/cjs/form/tickets/TicketSelectionMap.js +0 -73
  166. package/dist/cjs/form/tickets/TicketSelectionMap.js.map +0 -1
  167. package/dist/cjs/form/tickets/TicketSelectionMobile.js +0 -90
  168. package/dist/cjs/form/tickets/TicketSelectionMobile.js.map +0 -1
  169. package/dist/cjs/form/tickets/TicketWithMerchandiseSelection.js +0 -117
  170. package/dist/cjs/form/tickets/TicketWithMerchandiseSelection.js.map +0 -1
  171. package/dist/esm/_virtual/_commonjsHelpers.js +0 -6
  172. package/dist/esm/_virtual/_commonjsHelpers.js.map +0 -1
  173. package/dist/esm/_virtual/index.js +0 -4
  174. package/dist/esm/_virtual/index.js.map +0 -1
  175. package/dist/esm/_virtual/index2.js +0 -4
  176. package/dist/esm/_virtual/index2.js.map +0 -1
  177. package/dist/esm/_virtual/index3.js +0 -4
  178. package/dist/esm/_virtual/index3.js.map +0 -1
  179. package/dist/esm/_virtual/react-is.development.js +0 -4
  180. package/dist/esm/_virtual/react-is.development.js.map +0 -1
  181. package/dist/esm/_virtual/react-is.development2.js +0 -4
  182. package/dist/esm/_virtual/react-is.development2.js.map +0 -1
  183. package/dist/esm/_virtual/react-is.production.js +0 -4
  184. package/dist/esm/_virtual/react-is.production.js.map +0 -1
  185. package/dist/esm/_virtual/react-is.production.min.js +0 -4
  186. package/dist/esm/_virtual/react-is.production.min.js.map +0 -1
  187. package/dist/esm/form/PaymentOverviewDrawer.js +0 -145
  188. package/dist/esm/form/PaymentOverviewDrawer.js.map +0 -1
  189. package/dist/esm/form/TicketQuantityControl.js +0 -47
  190. package/dist/esm/form/TicketQuantityControl.js.map +0 -1
  191. package/dist/esm/form/TicketSelectionMobile.js +0 -94
  192. package/dist/esm/form/TicketSelectionMobile.js.map +0 -1
  193. package/dist/esm/form/merchandise/MerchandiseSelection.js +0 -10
  194. package/dist/esm/form/merchandise/MerchandiseSelection.js.map +0 -1
  195. package/dist/esm/form/merchandise/MerchandiseSlider.js +0 -36
  196. package/dist/esm/form/merchandise/MerchandiseSlider.js.map +0 -1
  197. package/dist/esm/form/merchendise/MerchandiseSelection.js +0 -15
  198. package/dist/esm/form/merchendise/MerchandiseSelection.js.map +0 -1
  199. package/dist/esm/form/merchendise/MerchandiseSlider.js +0 -71
  200. package/dist/esm/form/merchendise/MerchandiseSlider.js.map +0 -1
  201. package/dist/esm/form/services/index.js +0 -130
  202. package/dist/esm/form/services/index.js.map +0 -1
  203. package/dist/esm/form/tickets/ReleaseDescription.js +0 -19
  204. package/dist/esm/form/tickets/ReleaseDescription.js.map +0 -1
  205. package/dist/esm/form/tickets/ReleaseWithMerchandise.js +0 -137
  206. package/dist/esm/form/tickets/ReleaseWithMerchandise.js.map +0 -1
  207. package/dist/esm/form/tickets/TicketQuantityControl.js +0 -48
  208. package/dist/esm/form/tickets/TicketQuantityControl.js.map +0 -1
  209. package/dist/esm/form/tickets/TicketSelection.js +0 -135
  210. package/dist/esm/form/tickets/TicketSelection.js.map +0 -1
  211. package/dist/esm/form/tickets/TicketSelectionMap.js +0 -69
  212. package/dist/esm/form/tickets/TicketSelectionMap.js.map +0 -1
  213. package/dist/esm/form/tickets/TicketSelectionMobile.js +0 -86
  214. package/dist/esm/form/tickets/TicketSelectionMobile.js.map +0 -1
  215. package/dist/esm/form/tickets/TicketWithMerchandiseSelection.js +0 -113
  216. package/dist/esm/form/tickets/TicketWithMerchandiseSelection.js.map +0 -1
  217. package/dist/types/form/PaymentOverviewDrawer.d.ts +0 -8
  218. package/dist/types/form/merchendise/MerchandiseSelection.d.ts +0 -9
  219. package/dist/types/form/merchendise/MerchandiseSlider.d.ts +0 -10
  220. package/dist/types/form/merchendise/MerchendiseSlider.d.ts +0 -0
  221. package/src/form/PaymentOverviewDrawer.tsx +0 -228
  222. package/src/form/merchandise/MerchandiseSelection.tsx +0 -24
  223. package/src/form/merchandise/MerchandiseSlider.tsx +0 -62
  224. package/src/form/services/index.tsx +0 -263
  225. package/src/form/tickets/ReleaseDescription.tsx +0 -46
  226. package/src/form/tickets/ReleaseWithMerchandise.tsx +0 -239
  227. package/src/form/tickets/TicketQuantityControl.tsx +0 -94
  228. package/src/form/tickets/TicketSelectionMobile.tsx +0 -177
@@ -1 +1 @@
1
- {"version":3,"file":"FormProvider.js","sources":["../../../../src/components/hook-form/FormProvider.tsx"],"sourcesContent":["import React from 'react';\nimport { FormProvider as Form, UseFormReturn } from 'react-hook-form';\n\n// ----------------------------------------------------------------------\n\ntype Props = {\n children: React.ReactNode;\n methods: UseFormReturn<any>;\n onSubmit?: VoidFunction;\n formId?: string;\n};\n\nexport default function FormProvider({ children, onSubmit, methods, formId }: Props) {\n return (\n <Form {...methods}>\n <form id={formId} onSubmit={onSubmit}>\n {children}\n </form>\n </Form>\n );\n}\n"],"names":["Form"],"mappings":";;;AAYc,SAAU,YAAY,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAS,EAAA;AACjF,IAAA,QACE,KAAA,CAAA,aAAA,CAACA,cAAI,EAAA,EAAA,GAAK,OAAO,EAAA;AACf,QAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAA,EACjC,QAAQ,CACJ,CACF;AAEX;;;;"}
1
+ {"version":3,"file":"FormProvider.js","sources":["../../../../src/components/hook-form/FormProvider.tsx"],"sourcesContent":["import React from 'react';\nimport { FormProvider as Form, UseFormReturn } from 'react-hook-form';\n\n// ----------------------------------------------------------------------\n\ntype Props = {\n children: React.ReactNode;\n methods: UseFormReturn<any>;\n onSubmit?: VoidFunction;\n};\n\nexport default function FormProvider({ children, onSubmit, methods }: Props) {\n return (\n <Form {...methods}>\n <form onSubmit={onSubmit}>{children}</form>\n </Form>\n );\n}\n"],"names":["Form"],"mappings":";;;AAWc,SAAU,YAAY,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAS,EAAA;AACzE,IAAA,QACE,KAAA,CAAA,aAAA,CAACA,cAAI,EAAA,EAAA,GAAK,OAAO,EAAA;QACf,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,QAAQ,EAAE,QAAQ,EAAA,EAAG,QAAQ,CAAQ,CACtC;AAEX;;;;"}
@@ -1,10 +1,10 @@
1
1
  import useActiveEventProducts from '../hooks/data/useActiveEventProducts.js';
2
2
  import { Dialog, DialogContent, Stack, Stepper, Step, StepLabel, StepContent } from '@mui/material';
3
3
  import React from 'react';
4
- import TicketWithMerchandiseSelection from './tickets/TicketWithMerchandiseSelection.js';
5
- import TicketSelection from './tickets/TicketSelection.js';
4
+ import TicketWithMerchandiseSelection from './TicketWithMerchandiseSelection.js';
5
+ import TicketSelection from './TicketSelection.js';
6
6
  import useGlobal from '../hooks/useGlobal.js';
7
- import MerchandiseSelection from './merchandise/MerchandiseSelection.js';
7
+ import MerchandiseSelection from './MerchandiseSelection.js';
8
8
 
9
9
  const ChildEventDialog = ({ event, openDialog, onClose }) => {
10
10
  const { t } = useGlobal();
@@ -1 +1 @@
1
- {"version":3,"file":"ChildEventDialog.js","sources":["../../../src/form/ChildEventDialog.tsx"],"sourcesContent":["import useActiveEventProducts from '@hooks/data/useActiveEventProducts';\nimport { Dialog, DialogContent, Stack, Step, StepContent, StepLabel, Stepper } from '@mui/material';\nimport { IEvent } from '@utils/types/event.type';\nimport React from 'react';\nimport TicketWithMerchandiseSelection from './tickets/TicketWithMerchandiseSelection';\nimport TicketSelection from './tickets/TicketSelection';\nimport useGlobal from '@hooks/useGlobal';\nimport MerchandiseSelection from './merchandise/MerchandiseSelection';\n\ninterface Props {\n event: IEvent;\n openDialog: boolean;\n onClose?: () => void;\n}\n\nconst ChildEventDialog: React.FC<Props> = ({ event, openDialog, onClose }) => {\n const { t } = useGlobal();\n const { data: eventProducts, isLoading } = useActiveEventProducts(event.id);\n\n return (\n <Dialog open={openDialog} onClose={() => onClose && onClose()} fullWidth>\n <DialogContent>\n <Stack spacing={1}>\n <Stepper orientation=\"vertical\">\n <Step active>\n <StepLabel>{t('event.tickets.stepper.1.title')}</StepLabel>\n <StepContent>\n {event.hasMerchandise ? (\n <TicketWithMerchandiseSelection event={event} />\n ) : (\n <TicketSelection event={event} />\n )}\n </StepContent>\n </Step>\n {event.hasMerchandise && eventProducts.length && (\n <Step active>\n <StepLabel>{t('event.tickets.stepper.4.title')}</StepLabel>\n <StepContent>\n <MerchandiseSelection\n eventProducts={eventProducts}\n eventId={event.id}\n isLoading={isLoading}\n />\n </StepContent>\n </Step>\n )}\n </Stepper>\n </Stack>\n </DialogContent>\n </Dialog>\n );\n};\n\nexport default ChildEventDialog;\n"],"names":[],"mappings":";;;;;;;;AAeA,MAAM,gBAAgB,GAAoB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,KAAI;AAC3E,IAAA,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE;AACzB,IAAA,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;AAE3E,IAAA,QACE,KAAA,CAAA,aAAA,CAAC,MAAM,IAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,IAAI,OAAO,EAAE,EAAE,SAAS,EAAA,IAAA,EAAA;AACtE,QAAA,KAAA,CAAA,aAAA,CAAC,aAAa,EAAA,IAAA;AACZ,YAAA,KAAA,CAAA,aAAA,CAAC,KAAK,EAAA,EAAC,OAAO,EAAE,CAAC,EAAA;AACf,gBAAA,KAAA,CAAA,aAAA,CAAC,OAAO,EAAA,EAAC,WAAW,EAAC,UAAU,EAAA;oBAC7B,KAAA,CAAA,aAAA,CAAC,IAAI,IAAC,MAAM,EAAA,IAAA,EAAA;AACV,wBAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,IAAA,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAa;AAC3D,wBAAA,KAAA,CAAA,aAAA,CAAC,WAAW,EAAA,IAAA,EACT,KAAK,CAAC,cAAc,IACnB,KAAA,CAAA,aAAA,CAAC,8BAA8B,EAAA,EAAC,KAAK,EAAE,KAAK,EAAA,CAAI,KAEhD,KAAA,CAAA,aAAA,CAAC,eAAe,EAAA,EAAC,KAAK,EAAE,KAAK,EAAA,CAAI,CAClC,CACW,CACT;oBACN,KAAK,CAAC,cAAc,IAAI,aAAa,CAAC,MAAM,KAC3C,KAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAC,MAAM,EAAA,IAAA,EAAA;AACV,wBAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,IAAA,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAa;AAC3D,wBAAA,KAAA,CAAA,aAAA,CAAC,WAAW,EAAA,IAAA;4BACV,KAAA,CAAA,aAAA,CAAC,oBAAoB,EAAA,EACnB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,KAAK,CAAC,EAAE,EACjB,SAAS,EAAE,SAAS,EAAA,CACpB,CACU,CACT,CACR,CACO,CACJ,CACM,CACT;AAEb;;;;"}
1
+ {"version":3,"file":"ChildEventDialog.js","sources":["../../../src/form/ChildEventDialog.tsx"],"sourcesContent":["import useActiveEventProducts from '@hooks/data/useActiveEventProducts';\nimport { Dialog, DialogContent, Stack, Step, StepContent, StepLabel, Stepper } from '@mui/material';\nimport { IEvent } from '@utils/types/event.type';\nimport React from 'react';\nimport TicketWithMerchandiseSelection from './TicketWithMerchandiseSelection';\nimport TicketSelection from './TicketSelection';\nimport useGlobal from '@hooks/useGlobal';\nimport MerchandiseSelection from './MerchandiseSelection';\n\ninterface Props {\n event: IEvent;\n openDialog: boolean;\n onClose?: () => void;\n}\n\nconst ChildEventDialog: React.FC<Props> = ({ event, openDialog, onClose }) => {\n const { t } = useGlobal();\n const { data: eventProducts, isLoading } = useActiveEventProducts(event.id);\n\n return (\n <Dialog open={openDialog} onClose={() => onClose && onClose()} fullWidth>\n <DialogContent>\n <Stack spacing={1}>\n <Stepper orientation=\"vertical\">\n <Step active>\n <StepLabel>{t('event.tickets.stepper.1.title')}</StepLabel>\n <StepContent>\n {event.hasMerchandise ? (\n <TicketWithMerchandiseSelection event={event} />\n ) : (\n <TicketSelection event={event} />\n )}\n </StepContent>\n </Step>\n {event.hasMerchandise && eventProducts.length && (\n <Step active>\n <StepLabel>{t('event.tickets.stepper.4.title')}</StepLabel>\n <StepContent>\n <MerchandiseSelection\n eventProducts={eventProducts}\n eventId={event.id}\n isLoading={isLoading}\n />\n </StepContent>\n </Step>\n )}\n </Stepper>\n </Stack>\n </DialogContent>\n </Dialog>\n );\n};\n\nexport default ChildEventDialog;\n"],"names":[],"mappings":";;;;;;;;AAeA,MAAM,gBAAgB,GAAoB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,KAAI;AAC3E,IAAA,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE;AACzB,IAAA,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;AAE3E,IAAA,QACE,KAAA,CAAA,aAAA,CAAC,MAAM,IAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,IAAI,OAAO,EAAE,EAAE,SAAS,EAAA,IAAA,EAAA;AACtE,QAAA,KAAA,CAAA,aAAA,CAAC,aAAa,EAAA,IAAA;AACZ,YAAA,KAAA,CAAA,aAAA,CAAC,KAAK,EAAA,EAAC,OAAO,EAAE,CAAC,EAAA;AACf,gBAAA,KAAA,CAAA,aAAA,CAAC,OAAO,EAAA,EAAC,WAAW,EAAC,UAAU,EAAA;oBAC7B,KAAA,CAAA,aAAA,CAAC,IAAI,IAAC,MAAM,EAAA,IAAA,EAAA;AACV,wBAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,IAAA,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAa;AAC3D,wBAAA,KAAA,CAAA,aAAA,CAAC,WAAW,EAAA,IAAA,EACT,KAAK,CAAC,cAAc,IACnB,KAAA,CAAA,aAAA,CAAC,8BAA8B,EAAA,EAAC,KAAK,EAAE,KAAK,EAAA,CAAI,KAEhD,KAAA,CAAA,aAAA,CAAC,eAAe,EAAA,EAAC,KAAK,EAAE,KAAK,EAAA,CAAI,CAClC,CACW,CACT;oBACN,KAAK,CAAC,cAAc,IAAI,aAAa,CAAC,MAAM,KAC3C,KAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAC,MAAM,EAAA,IAAA,EAAA;AACV,wBAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,IAAA,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAa;AAC3D,wBAAA,KAAA,CAAA,aAAA,CAAC,WAAW,EAAA,IAAA;4BACV,KAAA,CAAA,aAAA,CAAC,oBAAoB,EAAA,EACnB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,KAAK,CAAC,EAAE,EACjB,SAAS,EAAE,SAAS,EAAA,CACpB,CACU,CACT,CACR,CACO,CACJ,CACM,CACT;AAEb;;;;"}
@@ -12,7 +12,7 @@ import useGlobal from '../hooks/useGlobal.js';
12
12
 
13
13
  const ContactPerson = ({ event }) => {
14
14
  const { t, content } = useGlobal();
15
- return (React.createElement(Grid, { container: true, spacing: { xs: 1, md: 2 } },
15
+ return (React.createElement(Grid, { container: true, spacing: 3 },
16
16
  React.createElement(Grid, { item: true, xs: 12, md: 6 },
17
17
  React.createElement(RHFTextField, { name: "firstName", label: t('form.labels.first_name') })),
18
18
  React.createElement(Grid, { item: true, xs: 12, md: 6 },
@@ -1 +1 @@
1
- {"version":3,"file":"ContactPerson.js","sources":["../../../src/form/ContactPerson.tsx"],"sourcesContent":["import React from 'react';\nimport { Grid, MenuItem } from '@mui/material';\nimport { RHFSelect, RHFTextField } from '@components/hook-form';\nimport RHFDatePicker from '@components/hook-form/RHFDatePicker';\nimport { Gender } from '@utils/data/gender';\nimport RHFPhone from '@components/hook-form/RHFPhone';\nimport dayjs from 'dayjs';\nimport { IEvent } from '@utils/types/event.type';\nimport { MuiTelInputCountry } from 'mui-tel-input';\nimport ExtraField from '@form/extra-field/ExtraField';\nimport useGlobal from '@hooks/useGlobal.ts';\n\ninterface Props {\n event: IEvent;\n}\n\nconst ContactPerson: React.FC<Props> = ({ event }) => {\n const { t, content } = useGlobal();\n\n return (\n <Grid container spacing={{ xs: 1, md: 2 }}>\n <Grid item xs={12} md={6}>\n <RHFTextField name=\"firstName\" label={t('form.labels.first_name')} />\n </Grid>\n <Grid item xs={12} md={6}>\n <RHFTextField name=\"lastName\" label={t('form.labels.last_name')} />\n </Grid>\n <Grid item xs={12} md={6}>\n <RHFTextField name=\"email\" label={t('form.labels.email')} />\n </Grid>\n <Grid item xs={12} md={6}>\n <RHFPhone\n name=\"phone\"\n label={t('form.labels.phone')}\n defaultCountry={event.place.countryCode as MuiTelInputCountry}\n />\n </Grid>\n {!content?.form?.disableBirthDate && (\n <Grid item xs={12} md={6}>\n <RHFDatePicker\n name=\"birthdate\"\n label={t('form.labels.birthdate')}\n openTo=\"year\"\n views={['year', 'month', 'day']}\n maxDate={dayjs()}\n />\n </Grid>\n )}\n {!content?.form?.disableGender && (\n <Grid item xs={12} md={6}>\n <RHFSelect name=\"gender\" label={t('form.labels.gender')}>\n <MenuItem value={Gender.MALE}>{t('form.labels.male')}</MenuItem>\n <MenuItem value={Gender.FEMALE}>{t('form.labels.female')}</MenuItem>\n <MenuItem value={Gender.OTHER}>{t('form.labels.other')}</MenuItem>\n </RHFSelect>\n </Grid>\n )}\n {event?.extraFields.map((field, index) => (\n <Grid key={field.id} item xs={12} md={6}>\n <ExtraField extraField={field} name={`extraFields.${index}.value`} />\n </Grid>\n ))}\n </Grid>\n );\n};\n\nexport default ContactPerson;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContactPerson.js","sources":["../../../src/form/ContactPerson.tsx"],"sourcesContent":["import React from 'react';\nimport { Grid, MenuItem } from '@mui/material';\nimport { RHFSelect, RHFTextField } from '@components/hook-form';\nimport RHFDatePicker from '@components/hook-form/RHFDatePicker';\nimport { Gender } from '@utils/data/gender';\nimport RHFPhone from '@components/hook-form/RHFPhone';\nimport dayjs from 'dayjs';\nimport { IEvent } from '@utils/types/event.type';\nimport { MuiTelInputCountry } from 'mui-tel-input';\nimport ExtraField from '@form/extra-field/ExtraField';\nimport useGlobal from '@hooks/useGlobal.ts';\n\ninterface Props {\n event: IEvent;\n}\n\nconst ContactPerson: React.FC<Props> = ({ event }) => {\n const { t, content } = useGlobal();\n\n return (\n <Grid container spacing={3}>\n <Grid item xs={12} md={6}>\n <RHFTextField name=\"firstName\" label={t('form.labels.first_name')} />\n </Grid>\n <Grid item xs={12} md={6}>\n <RHFTextField name=\"lastName\" label={t('form.labels.last_name')} />\n </Grid>\n <Grid item xs={12} md={6}>\n <RHFTextField name=\"email\" label={t('form.labels.email')} />\n </Grid>\n <Grid item xs={12} md={6}>\n <RHFPhone\n name=\"phone\"\n label={t('form.labels.phone')}\n defaultCountry={event.place.countryCode as MuiTelInputCountry}\n />\n </Grid>\n {!content?.form?.disableBirthDate && (\n <Grid item xs={12} md={6}>\n <RHFDatePicker\n name=\"birthdate\"\n label={t('form.labels.birthdate')}\n openTo=\"year\"\n views={['year', 'month', 'day']}\n maxDate={dayjs()}\n />\n </Grid>\n )}\n {!content?.form?.disableGender && (\n <Grid item xs={12} md={6}>\n <RHFSelect name=\"gender\" label={t('form.labels.gender')}>\n <MenuItem value={Gender.MALE}>{t('form.labels.male')}</MenuItem>\n <MenuItem value={Gender.FEMALE}>{t('form.labels.female')}</MenuItem>\n <MenuItem value={Gender.OTHER}>{t('form.labels.other')}</MenuItem>\n </RHFSelect>\n </Grid>\n )}\n {event?.extraFields.map((field, index) => (\n <Grid key={field.id} item xs={12} md={6}>\n <ExtraField extraField={field} name={`extraFields.${index}.value`} />\n </Grid>\n ))}\n </Grid>\n );\n};\n\nexport default ContactPerson;\n"],"names":[],"mappings":";;;;;;;;;;;;AAgBA,MAAM,aAAa,GAAoB,CAAC,EAAE,KAAK,EAAE,KAAI;IACnD,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE;IAElC,QACE,oBAAC,IAAI,EAAA,EAAC,SAAS,EAAA,IAAA,EAAC,OAAO,EAAE,CAAC,EAAA;QACxB,KAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAC,IAAI,EAAA,IAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAA;AACtB,YAAA,KAAA,CAAA,aAAA,CAAC,YAAY,EAAA,EAAC,IAAI,EAAC,WAAW,EAAC,KAAK,EAAE,CAAC,CAAC,wBAAwB,CAAC,GAAI,CAChE;QACP,KAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAC,IAAI,EAAA,IAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAA;AACtB,YAAA,KAAA,CAAA,aAAA,CAAC,YAAY,EAAA,EAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAE,CAAC,CAAC,uBAAuB,CAAC,GAAI,CAC9D;QACP,KAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAC,IAAI,EAAA,IAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAA;AACtB,YAAA,KAAA,CAAA,aAAA,CAAC,YAAY,EAAA,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,CAAC,CAAC,mBAAmB,CAAC,GAAI,CACvD;QACP,KAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAC,IAAI,EAAA,IAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAA;YACtB,KAAA,CAAA,aAAA,CAAC,QAAQ,IACP,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,CAAC,CAAC,mBAAmB,CAAC,EAC7B,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,WAAiC,EAAA,CAC7D,CACG;AACN,QAAA,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,KAC/B,KAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAC,IAAI,QAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAA;AACtB,YAAA,KAAA,CAAA,aAAA,CAAC,aAAa,EAAA,EACZ,IAAI,EAAC,WAAW,EAChB,KAAK,EAAE,CAAC,CAAC,uBAAuB,CAAC,EACjC,MAAM,EAAC,MAAM,EACb,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAC/B,OAAO,EAAE,KAAK,EAAE,EAAA,CAChB,CACG,CACR;AACA,QAAA,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,KAC5B,KAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAC,IAAI,QAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAA;YACtB,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,CAAC,CAAC,oBAAoB,CAAC,EAAA;AACrD,gBAAA,KAAA,CAAA,aAAA,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAA,EAAG,CAAC,CAAC,kBAAkB,CAAC,CAAY;AAChE,gBAAA,KAAA,CAAA,aAAA,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAA,EAAG,CAAC,CAAC,oBAAoB,CAAC,CAAY;AACpE,gBAAA,KAAA,CAAA,aAAA,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAA,EAAG,CAAC,CAAC,mBAAmB,CAAC,CAAY,CACxD,CACP,CACR;AACA,QAAA,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,MACnC,KAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAA,IAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAA;AACrC,YAAA,KAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA,YAAA,EAAe,KAAK,QAAQ,EAAA,CAAI,CAChE,CACR,CAAC,CACG;AAEX;;;;"}
@@ -173,7 +173,7 @@ const Payment = ({ event }) => {
173
173
  } }, payment.label[lang]),
174
174
  React.createElement(Image, { src: payment.image.url, sx: {
175
175
  height: '20px',
176
- '& .wrapper img': {
176
+ '& img': {
177
177
  objectFit: 'contain',
178
178
  },
179
179
  } })), sx: {
@@ -195,7 +195,7 @@ const Payment = ({ event }) => {
195
195
  maxWidth: '70px',
196
196
  display: 'inline-block',
197
197
  marginRight: 1,
198
- '& .wrapper img': {
198
+ '& img': {
199
199
  objectFit: 'contain',
200
200
  objectPosition: 'left',
201
201
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Payment.js","sources":["../../../src/form/Payment.tsx"],"sourcesContent":["import React, { KeyboardEvent, useEffect, useMemo, useState } from 'react';\nimport {\n Box,\n Button,\n Divider,\n FormControl,\n FormControlLabel,\n FormHelperText,\n IconButton,\n Radio,\n RadioGroup,\n Stack,\n TextField,\n Typography,\n} from '@mui/material';\nimport useAllowedPaymentMethods from '@hooks/data/useAllowedPaymentMethods';\nimport { Controller, useFormContext, useWatch } from 'react-hook-form';\nimport { PaymentItem, PaymentWrapper, PaymentSwiftWrapper } from '@form/style';\nimport Image from '@components/Image';\nimport Label from '@components/Label';\nimport PaymentSkeleton from '@form/payment/PaymentSkeleton';\nimport { RHFRadioGroup } from '@components/hook-form';\nimport { postPromoCodeApply } from '@modules/promo-code';\nimport { IEvent } from '@utils/types/event.type';\nimport { ITicketForm, ITicketFormTicket } from '@utils/types/ticket.type';\nimport useGlobal from '@hooks/useGlobal.ts';\nimport { IPromoCode } from '@utils/types/promo-code.type';\nimport { PromoCodeTypes } from '@utils/data/promo-code';\nimport { throttle } from 'lodash';\nimport { Iconify } from '@components';\nimport { IEventProductForm } from '@utils/types/product.type';\n\ninterface Props {\n event: IEvent;\n}\n\nconst Payment: React.FC<Props> = ({ event }) => {\n const { t, lang } = useGlobal();\n const { showSnackbar } = useGlobal();\n const { data, isLoading } = useAllowedPaymentMethods(event.currency, event.id);\n const { control, watch, setValue } = useFormContext<ITicketForm>();\n const paymentMethodId = watch('paymentMethodId');\n const paymentMethodOptionId = watch('paymentMethodOptionId');\n const [promoCode, setPromoCode] = useState<string>('');\n const [promoCodeError, setPromoCodeError] = useState<string | null>(null);\n const [combine, setCombine] = useState<boolean>(true);\n const promoCodes: IPromoCode[] = watch('promoCodes');\n const originalPrice: number = watch('originalPrice');\n\n const handleSubmit = throttle(\n async () => {\n if (!promoCode) {\n setPromoCodeError(t('form.validation.required'));\n return;\n }\n\n try {\n if (promoCodes.find((i) => i.code === promoCode)) {\n setPromoCodeError(t('form.validation.promo_code_applied'));\n return;\n }\n if (!combine) {\n setPromoCodeError(t('form.validation.promo_code_cant_combine'));\n return;\n }\n\n const res = await postPromoCodeApply(promoCode, event.id);\n const promo = res.data.data;\n\n if (promo && promo.minPurchaseAmount && promo.minPurchaseAmount > originalPrice) {\n setPromoCodeError(\n t('form.validation.min_purchase_not_met') +\n promo.minPurchaseAmount +\n ' ' +\n event.currency\n );\n return;\n }\n\n if (!promo.combine && promoCodes.length === 0) {\n setCombine(false);\n } else if (!promo.combine) {\n setPromoCodeError(t('form.validation.promo_code_cant_combine'));\n return;\n }\n\n setValue('promoCodes', [...promoCodes, promo]);\n showSnackbar(res.message);\n setPromoCodeError(null);\n setPromoCode('');\n } catch (err) {\n setPromoCodeError(t('form.validation.promo_code_invalid'));\n console.error(err);\n }\n },\n 1000,\n { leading: true, trailing: false } // Allow immediate execution but prevent spam\n );\n\n const removePromoCode = (promoCodeToRemove: string) => {\n const newPromoCodes: IPromoCode[] = promoCodes.filter(\n (promoC) => promoC.code !== promoCodeToRemove\n );\n\n if (!newPromoCodes.find((promoC) => promoC.combine)) setCombine(true);\n\n setValue('promoCodes', newPromoCodes);\n };\n\n const handleKeyDown = async (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n if (promoCode) await handleSubmit();\n }\n };\n\n useEffect(() => {\n if (promoCodes.length === 0) return;\n\n const highest = promoCodes.sort((a, b) => b.minPurchaseAmount - a.minPurchaseAmount)[0]\n .minPurchaseAmount;\n\n if (originalPrice < highest) {\n const newPromoCodes = promoCodes.filter(\n (promoCode) => promoCode.minPurchaseAmount <= originalPrice\n );\n if (newPromoCodes.length === 0) {\n setCombine(true);\n }\n setValue('promoCodes', newPromoCodes);\n }\n }, [originalPrice]);\n\n useEffect(() => {\n if (data) {\n if (!paymentMethodId && !!data.length) {\n setValue('paymentMethodId', data[0].id);\n }\n const selectedPayment =\n data && data?.length && data.find((payment) => payment.id === Number(paymentMethodId));\n if (selectedPayment && !!selectedPayment.options.length && !paymentMethodOptionId) {\n setValue('paymentMethodOptionId', selectedPayment.options[0].id);\n } else if (selectedPayment && !!selectedPayment.options.length && !!paymentMethodOptionId) {\n const existingOption = selectedPayment.options.find(\n (option) => option.id === Number(paymentMethodOptionId)\n );\n if (!existingOption) {\n setValue('paymentMethodOptionId', selectedPayment.options[0].id);\n }\n } else if (selectedPayment && !selectedPayment?.options.length) {\n setValue('paymentMethodOptionId', null);\n }\n }\n }, [data, paymentMethodId, paymentMethodOptionId]);\n\n const tickets: Record<string, ITicketFormTicket[]> = useWatch({\n name: 'tickets',\n defaultValue: {},\n });\n const products: Record<string, IEventProductForm[]> = useWatch({\n name: 'products',\n defaultValue: {},\n });\n const total: number = useWatch({ name: 'total' });\n\n const paymentMethods = useMemo(() => {\n if (!data) return [];\n\n const hasTickets =\n Object.values(tickets)\n .flat()\n .filter((t) => t.quantity).length > 0;\n const hasProducts = Object.values(products).flat().length > 0;\n\n if (total === 0 && (hasTickets || hasProducts)) {\n setValue('isPaymentVerify', true);\n return data.filter((payment) =>\n ['PAYMENT_CARD', 'APPLE_PAY', 'GPAY', 'CLICK_TO_PAY'].includes(payment.type)\n );\n } else {\n setValue('isPaymentVerify', false);\n return data;\n }\n }, [data, total, tickets, products]);\n\n return (\n <Box>\n <Box className=\"payment__promo-code\">\n <Stack direction=\"row\" spacing={2}>\n <TextField\n name=\"promoCode\"\n size=\"small\"\n label={t('form.labels.promo_code')}\n value={promoCode}\n onChange={(e) => setPromoCode(e.target.value)}\n onBlur={(e) => {\n if (!e.target.value.trim()) setPromoCodeError(null);\n }}\n onKeyDown={handleKeyDown}\n error={!!promoCodeError}\n helperText={promoCodeError}\n fullWidth\n />\n <Box>\n <Button\n size=\"large\"\n type=\"button\"\n variant=\"contained\"\n onClick={handleSubmit}\n disabled={!promoCode}\n sx={{ height: 51 }}\n >\n {t('apply')}\n </Button>\n </Box>\n </Stack>\n <Stack paddingTop={3} direction=\"column\" spacing={1}>\n {promoCodes.length > 0 &&\n promoCodes.map((item: IPromoCode) => (\n <Stack\n marginTop={3}\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n spacing={2}\n key={item.code}\n >\n <>\n <Stack direction=\"row\" alignItems=\"center\">\n <Label variant=\"filled\" sx={{ textTransform: 'none', cursor: 'pointer' }}>\n {item.code}\n </Label>\n <Typography variant=\"subtitle2\" sx={{ ml: 1 }}>\n -{' '}\n {item.value +\n `${item.type === PromoCodeTypes.FIXED ? ' ' + event.currency : '%'}`}\n </Typography>\n </Stack>\n <Box>\n <IconButton\n color=\"primary\"\n onClick={() => removePromoCode(item.code)}\n aria-label=\"delete\"\n >\n <Iconify icon=\"carbon:trash-can\" />\n </IconButton>\n </Box>\n </>\n </Stack>\n ))}\n </Stack>\n </Box>\n\n <Typography variant=\"h4\" mt={2}>\n {t('event.tickets.stepper.3.subtitle')}\n </Typography>\n\n {isLoading ? (\n <PaymentSkeleton sx={{ marginTop: 1 }} />\n ) : (\n <PaymentWrapper>\n <Controller\n name=\"paymentMethodId\"\n control={control}\n render={({ field, fieldState: { error } }) => (\n <FormControl component=\"fieldset\">\n <RadioGroup {...field}>\n {paymentMethods.map((payment) => (\n <PaymentItem\n key={payment.type}\n active={!!paymentMethodId && Number(paymentMethodId) === payment.id}\n >\n <FormControlLabel\n value={payment.id}\n control={<Radio />}\n label={\n <Stack direction=\"row\" alignItems=\"center\">\n <Typography\n sx={{\n marginRight: 2,\n }}\n >\n {payment.label[lang]}\n </Typography>\n <Image\n src={payment.image.url}\n sx={{\n height: '20px',\n '& .wrapper img': {\n objectFit: 'contain',\n },\n }}\n />\n </Stack>\n }\n sx={{\n '&:not(:last-of-type)': {\n mb: 0,\n },\n }}\n />\n {!!payment.options.length &&\n !!paymentMethodId &&\n Number(paymentMethodId) === payment.id && (\n <PaymentSwiftWrapper>\n <Divider sx={{ mb: 2 }} />\n <RHFRadioGroup\n name=\"paymentMethodOptionId\"\n row\n options={payment.options\n .filter((item) => !item.label.en.includes('eshop.api.swifts'))\n .map((option) => ({\n label: (\n <Stack direction=\"row\" alignItems=\"center\">\n <Image\n src={option.image.url}\n sx={{\n width: 'auto',\n height: '15px',\n maxWidth: '70px',\n display: 'inline-block',\n marginRight: 1,\n '& .wrapper img': {\n objectFit: 'contain',\n objectPosition: 'left',\n },\n }}\n />\n <Typography variant=\"body2\">{option.label[lang]}</Typography>\n </Stack>\n ),\n value: option.id,\n }))}\n />\n </PaymentSwiftWrapper>\n )}\n </PaymentItem>\n ))}\n </RadioGroup>\n\n {!!error && (\n <FormHelperText error={!!error} sx={{ mx: 0 }}>\n {error?.message}\n </FormHelperText>\n )}\n </FormControl>\n )}\n />\n </PaymentWrapper>\n )}\n </Box>\n );\n};\n\nexport default Payment;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAoCA,MAAM,OAAO,GAAoB,CAAC,EAAE,KAAK,EAAE,KAAI;IAC7C,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE;AAC/B,IAAA,MAAM,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE;AACpC,IAAA,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,wBAAwB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IAC9E,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAe;AAClE,IAAA,MAAM,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC;AAChD,IAAA,MAAM,qBAAqB,GAAG,KAAK,CAAC,uBAAuB,CAAC;IAC5D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC;IACtD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC;IACzE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAU,IAAI,CAAC;AACrD,IAAA,MAAM,UAAU,GAAiB,KAAK,CAAC,YAAY,CAAC;AACpD,IAAA,MAAM,aAAa,GAAW,KAAK,CAAC,eAAe,CAAC;AAEpD,IAAA,MAAM,YAAY,GAAG,QAAQ,CAC3B,YAAW;QACT,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,iBAAiB,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC;YAChD;;AAGF,QAAA,IAAI;AACF,YAAA,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE;AAChD,gBAAA,iBAAiB,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC;gBAC1D;;YAEF,IAAI,CAAC,OAAO,EAAE;AACZ,gBAAA,iBAAiB,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC;gBAC/D;;YAGF,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;AACzD,YAAA,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI;AAE3B,YAAA,IAAI,KAAK,IAAI,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,iBAAiB,GAAG,aAAa,EAAE;AAC/E,gBAAA,iBAAiB,CACf,CAAC,CAAC,sCAAsC,CAAC;AACvC,oBAAA,KAAK,CAAC,iBAAiB;oBACvB,GAAG;oBACH,KAAK,CAAC,QAAQ,CACjB;gBACD;;YAGF,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7C,UAAU,CAAC,KAAK,CAAC;;AACZ,iBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACzB,gBAAA,iBAAiB,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC;gBAC/D;;YAGF,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC;AAC9C,YAAA,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;YACzB,iBAAiB,CAAC,IAAI,CAAC;YACvB,YAAY,CAAC,EAAE,CAAC;;QAChB,OAAO,GAAG,EAAE;AACZ,YAAA,iBAAiB,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC;AAC1D,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;;AAEtB,KAAC,EACD,IAAI,EACJ,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;KACnC;AAED,IAAA,MAAM,eAAe,GAAG,CAAC,iBAAyB,KAAI;AACpD,QAAA,MAAM,aAAa,GAAiB,UAAU,CAAC,MAAM,CACnD,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,iBAAiB,CAC9C;AAED,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC;AAErE,QAAA,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;AACvC,KAAC;AAED,IAAA,MAAM,aAAa,GAAG,OAAO,CAAgC,KAAI;AAC/D,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;YACrB,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,IAAI,SAAS;gBAAE,MAAM,YAAY,EAAE;;AAEvC,KAAC;IAED,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE;QAE7B,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACnF,aAAA,iBAAiB;AAEpB,QAAA,IAAI,aAAa,GAAG,OAAO,EAAE;AAC3B,YAAA,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CACrC,CAAC,SAAS,KAAK,SAAS,CAAC,iBAAiB,IAAI,aAAa,CAC5D;AACD,YAAA,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,UAAU,CAAC,IAAI,CAAC;;AAElB,YAAA,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;;AAEzC,KAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAEnB,SAAS,CAAC,MAAK;QACb,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE;gBACrC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;;YAEzC,MAAM,eAAe,GACnB,IAAI,IAAI,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,KAAK,MAAM,CAAC,eAAe,CAAC,CAAC;AACxF,YAAA,IAAI,eAAe,IAAI,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE;AACjF,gBAAA,QAAQ,CAAC,uBAAuB,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;;AAC3D,iBAAA,IAAI,eAAe,IAAI,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,qBAAqB,EAAE;gBACzF,MAAM,cAAc,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CACjD,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,qBAAqB,CAAC,CACxD;gBACD,IAAI,CAAC,cAAc,EAAE;AACnB,oBAAA,QAAQ,CAAC,uBAAuB,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;;;iBAE7D,IAAI,eAAe,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,EAAE;AAC9D,gBAAA,QAAQ,CAAC,uBAAuB,EAAE,IAAI,CAAC;;;KAG5C,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,qBAAqB,CAAC,CAAC;IAElD,MAAM,OAAO,GAAwC,QAAQ,CAAC;AAC5D,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,YAAY,EAAE,EAAE;AACjB,KAAA,CAAC;IACF,MAAM,QAAQ,GAAwC,QAAQ,CAAC;AAC7D,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,YAAY,EAAE,EAAE;AACjB,KAAA,CAAC;IACF,MAAM,KAAK,GAAW,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAEjD,IAAA,MAAM,cAAc,GAAG,OAAO,CAAC,MAAK;AAClC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,EAAE;AAEpB,QAAA,MAAM,UAAU,GACd,MAAM,CAAC,MAAM,CAAC,OAAO;AAClB,aAAA,IAAI;AACJ,aAAA,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;AACzC,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAE7D,IAAI,KAAK,KAAK,CAAC,KAAK,UAAU,IAAI,WAAW,CAAC,EAAE;AAC9C,YAAA,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,KACzB,CAAC,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAC7E;;aACI;AACL,YAAA,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC;AAClC,YAAA,OAAO,IAAI;;KAEd,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEpC,QACE,oBAAC,GAAG,EAAA,IAAA;AACF,QAAA,KAAA,CAAA,aAAA,CAAC,GAAG,EAAA,EAAC,SAAS,EAAC,qBAAqB,EAAA;YAClC,KAAA,CAAA,aAAA,CAAC,KAAK,IAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAE,CAAC,EAAA;AAC/B,gBAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EACR,IAAI,EAAC,WAAW,EAChB,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,CAAC,CAAC,wBAAwB,CAAC,EAClC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC7C,MAAM,EAAE,CAAC,CAAC,KAAI;wBACZ,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;4BAAE,iBAAiB,CAAC,IAAI,CAAC;AACrD,qBAAC,EACD,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,CAAC,CAAC,cAAc,EACvB,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAA,IAAA,EAAA,CACT;AACF,gBAAA,KAAA,CAAA,aAAA,CAAC,GAAG,EAAA,IAAA;AACF,oBAAA,KAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EACL,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,WAAW,EACnB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,CAAC,SAAS,EACpB,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAEjB,CAAC,CAAC,OAAO,CAAC,CACJ,CACL,CACA;AACR,YAAA,KAAA,CAAA,aAAA,CAAC,KAAK,EAAA,EAAC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,EAAA,EAChD,UAAU,CAAC,MAAM,GAAG,CAAC;AACpB,gBAAA,UAAU,CAAC,GAAG,CAAC,CAAC,IAAgB,MAC9B,KAAA,CAAA,aAAA,CAAC,KAAK,EAAA,EACJ,SAAS,EAAE,CAAC,EACZ,SAAS,EAAC,KAAK,EACf,UAAU,EAAC,QAAQ,EACnB,cAAc,EAAC,eAAe,EAC9B,OAAO,EAAE,CAAC,EACV,GAAG,EAAE,IAAI,CAAC,IAAI,EAAA;AAEd,oBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;wBACE,KAAA,CAAA,aAAA,CAAC,KAAK,IAAC,SAAS,EAAC,KAAK,EAAC,UAAU,EAAC,QAAQ,EAAA;4BACxC,KAAA,CAAA,aAAA,CAAC,KAAK,IAAC,OAAO,EAAC,QAAQ,EAAC,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAA,EACrE,IAAI,CAAC,IAAI,CACJ;AACR,4BAAA,KAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EAAC,OAAO,EAAC,WAAW,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAA;;gCACzC,GAAG;AACJ,gCAAA,IAAI,CAAC,KAAK;oCACT,CAAA,EAAG,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAA,CAAE,CAC3D,CACP;AACR,wBAAA,KAAA,CAAA,aAAA,CAAC,GAAG,EAAA,IAAA;AACF,4BAAA,KAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EACT,KAAK,EAAC,SAAS,EACf,OAAO,EAAE,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,gBAC9B,QAAQ,EAAA;AAEnB,gCAAA,KAAA,CAAA,aAAA,CAAC,OAAO,EAAA,EAAC,IAAI,EAAC,kBAAkB,EAAA,CAAG,CACxB,CACT,CACL,CACG,CACT,CAAC,CACE,CACJ;AAEN,QAAA,KAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EAAC,OAAO,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,EAAA,EAC3B,CAAC,CAAC,kCAAkC,CAAC,CAC3B;QAEZ,SAAS,IACR,oBAAC,eAAe,EAAA,EAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAA,CAAI,KAEzC,KAAA,CAAA,aAAA,CAAC,cAAc,EAAA,IAAA;AACb,YAAA,KAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EACT,IAAI,EAAC,iBAAiB,EACtB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,MACvC,KAAA,CAAA,aAAA,CAAC,WAAW,EAAA,EAAC,SAAS,EAAC,UAAU,EAAA;AAC/B,oBAAA,KAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EAAA,GAAK,KAAK,EAAA,EAClB,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,MAC1B,KAAA,CAAA,aAAA,CAAC,WAAW,EAAA,EACV,GAAG,EAAE,OAAO,CAAC,IAAI,EACjB,MAAM,EAAE,CAAC,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,OAAO,CAAC,EAAE,EAAA;wBAEnE,KAAA,CAAA,aAAA,CAAC,gBAAgB,EAAA,EACf,KAAK,EAAE,OAAO,CAAC,EAAE,EACjB,OAAO,EAAE,KAAA,CAAA,aAAA,CAAC,KAAK,OAAG,EAClB,KAAK,EACH,KAAA,CAAA,aAAA,CAAC,KAAK,EAAA,EAAC,SAAS,EAAC,KAAK,EAAC,UAAU,EAAC,QAAQ,EAAA;gCACxC,KAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EACT,EAAE,EAAE;AACF,wCAAA,WAAW,EAAE,CAAC;AACf,qCAAA,EAAA,EAEA,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CACT;gCACb,KAAA,CAAA,aAAA,CAAC,KAAK,EAAA,EACJ,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,EACtB,EAAE,EAAE;AACF,wCAAA,MAAM,EAAE,MAAM;AACd,wCAAA,gBAAgB,EAAE;AAChB,4CAAA,SAAS,EAAE,SAAS;AACrB,yCAAA;qCACF,EAAA,CACD,CACI,EAEV,EAAE,EAAE;AACF,gCAAA,sBAAsB,EAAE;AACtB,oCAAA,EAAE,EAAE,CAAC;AACN,iCAAA;6BACF,EAAA,CACD;AACD,wBAAA,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM;AACvB,4BAAA,CAAC,CAAC,eAAe;4BACjB,MAAM,CAAC,eAAe,CAAC,KAAK,OAAO,CAAC,EAAE,KACpC,KAAA,CAAA,aAAA,CAAC,mBAAmB,EAAA,IAAA;4BAClB,KAAA,CAAA,aAAA,CAAC,OAAO,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAA,CAAI;AAC1B,4BAAA,KAAA,CAAA,aAAA,CAAC,aAAa,EAAA,EACZ,IAAI,EAAC,uBAAuB,EAC5B,GAAG,EAAA,IAAA,EACH,OAAO,EAAE,OAAO,CAAC;AACd,qCAAA,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;AAC5D,qCAAA,GAAG,CAAC,CAAC,MAAM,MAAM;oCAChB,KAAK,GACH,KAAA,CAAA,aAAA,CAAC,KAAK,EAAA,EAAC,SAAS,EAAC,KAAK,EAAC,UAAU,EAAC,QAAQ,EAAA;wCACxC,KAAA,CAAA,aAAA,CAAC,KAAK,EAAA,EACJ,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,EACrB,EAAE,EAAE;AACF,gDAAA,KAAK,EAAE,MAAM;AACb,gDAAA,MAAM,EAAE,MAAM;AACd,gDAAA,QAAQ,EAAE,MAAM;AAChB,gDAAA,OAAO,EAAE,cAAc;AACvB,gDAAA,WAAW,EAAE,CAAC;AACd,gDAAA,gBAAgB,EAAE;AAChB,oDAAA,SAAS,EAAE,SAAS;AACpB,oDAAA,cAAc,EAAE,MAAM;AACvB,iDAAA;6CACF,EAAA,CACD;AACF,wCAAA,KAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EAAC,OAAO,EAAC,OAAO,EAAA,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAc,CACvD,CACT;oCACD,KAAK,EAAE,MAAM,CAAC,EAAE;AACjB,iCAAA,CAAC,CAAC,EAAA,CACL,CACkB,CACvB,CACS,CACf,CAAC,CACS;AAEZ,oBAAA,CAAC,CAAC,KAAK,KACN,oBAAC,cAAc,EAAA,EAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAA,EAC1C,KAAK,EAAE,OAAO,CACA,CAClB,CACW,CACf,EAAA,CACD,CACa,CAClB,CACG;AAEV;;;;"}
1
+ {"version":3,"file":"Payment.js","sources":["../../../src/form/Payment.tsx"],"sourcesContent":["import React, { KeyboardEvent, useEffect, useMemo, useState } from 'react';\nimport {\n Box,\n Button,\n Divider,\n FormControl,\n FormControlLabel,\n FormHelperText,\n IconButton,\n Radio,\n RadioGroup,\n Stack,\n TextField,\n Typography,\n} from '@mui/material';\nimport useAllowedPaymentMethods from '@hooks/data/useAllowedPaymentMethods';\nimport { Controller, useFormContext, useWatch } from 'react-hook-form';\nimport { PaymentItem, PaymentWrapper, PaymentSwiftWrapper } from '@form/style';\nimport Image from '@components/Image';\nimport Label from '@components/Label';\nimport PaymentSkeleton from '@form/payment/PaymentSkeleton';\nimport { RHFRadioGroup } from '@components/hook-form';\nimport { postPromoCodeApply } from '@modules/promo-code';\nimport { IEvent } from '@utils/types/event.type';\nimport { ITicketForm, ITicketFormTicket } from '@utils/types/ticket.type';\nimport useGlobal from '@hooks/useGlobal.ts';\nimport { IPromoCode } from '@utils/types/promo-code.type';\nimport { PromoCodeTypes } from '@utils/data/promo-code';\nimport { throttle } from 'lodash';\nimport { Iconify } from '@components';\nimport { IEventProductForm } from '@utils/types/product.type';\n\ninterface Props {\n event: IEvent;\n}\n\nconst Payment: React.FC<Props> = ({ event }) => {\n const { t, lang } = useGlobal();\n const { showSnackbar } = useGlobal();\n const { data, isLoading } = useAllowedPaymentMethods(event.currency, event.id);\n const { control, watch, setValue } = useFormContext<ITicketForm>();\n const paymentMethodId = watch('paymentMethodId');\n const paymentMethodOptionId = watch('paymentMethodOptionId');\n const [promoCode, setPromoCode] = useState<string>('');\n const [promoCodeError, setPromoCodeError] = useState<string | null>(null);\n const [combine, setCombine] = useState<boolean>(true);\n const promoCodes: IPromoCode[] = watch('promoCodes');\n const originalPrice: number = watch('originalPrice');\n\n const handleSubmit = throttle(\n async () => {\n if (!promoCode) {\n setPromoCodeError(t('form.validation.required'));\n return;\n }\n\n try {\n if (promoCodes.find((i) => i.code === promoCode)) {\n setPromoCodeError(t('form.validation.promo_code_applied'));\n return;\n }\n if (!combine) {\n setPromoCodeError(t('form.validation.promo_code_cant_combine'));\n return;\n }\n\n const res = await postPromoCodeApply(promoCode, event.id);\n const promo = res.data.data;\n\n if (promo && promo.minPurchaseAmount && promo.minPurchaseAmount > originalPrice) {\n setPromoCodeError(\n t('form.validation.min_purchase_not_met') +\n promo.minPurchaseAmount +\n ' ' +\n event.currency\n );\n return;\n }\n\n if (!promo.combine && promoCodes.length === 0) {\n setCombine(false);\n } else if (!promo.combine) {\n setPromoCodeError(t('form.validation.promo_code_cant_combine'));\n return;\n }\n\n setValue('promoCodes', [...promoCodes, promo]);\n showSnackbar(res.message);\n setPromoCodeError(null);\n setPromoCode('');\n } catch (err) {\n setPromoCodeError(t('form.validation.promo_code_invalid'));\n console.error(err);\n }\n },\n 1000,\n { leading: true, trailing: false } // Allow immediate execution but prevent spam\n );\n\n const removePromoCode = (promoCodeToRemove: string) => {\n const newPromoCodes: IPromoCode[] = promoCodes.filter(\n (promoC) => promoC.code !== promoCodeToRemove\n );\n\n if (!newPromoCodes.find((promoC) => promoC.combine)) setCombine(true);\n\n setValue('promoCodes', newPromoCodes);\n };\n\n const handleKeyDown = async (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n if (promoCode) await handleSubmit();\n }\n };\n\n useEffect(() => {\n if (promoCodes.length === 0) return;\n\n const highest = promoCodes.sort((a, b) => b.minPurchaseAmount - a.minPurchaseAmount)[0]\n .minPurchaseAmount;\n\n if (originalPrice < highest) {\n const newPromoCodes = promoCodes.filter(\n (promoCode) => promoCode.minPurchaseAmount <= originalPrice\n );\n if (newPromoCodes.length === 0) {\n setCombine(true);\n }\n setValue('promoCodes', newPromoCodes);\n }\n }, [originalPrice]);\n\n useEffect(() => {\n if (data) {\n if (!paymentMethodId && !!data.length) {\n setValue('paymentMethodId', data[0].id);\n }\n const selectedPayment =\n data && data?.length && data.find((payment) => payment.id === Number(paymentMethodId));\n if (selectedPayment && !!selectedPayment.options.length && !paymentMethodOptionId) {\n setValue('paymentMethodOptionId', selectedPayment.options[0].id);\n } else if (selectedPayment && !!selectedPayment.options.length && !!paymentMethodOptionId) {\n const existingOption = selectedPayment.options.find(\n (option) => option.id === Number(paymentMethodOptionId)\n );\n if (!existingOption) {\n setValue('paymentMethodOptionId', selectedPayment.options[0].id);\n }\n } else if (selectedPayment && !selectedPayment?.options.length) {\n setValue('paymentMethodOptionId', null);\n }\n }\n }, [data, paymentMethodId, paymentMethodOptionId]);\n\n const tickets: Record<string, ITicketFormTicket[]> = useWatch({\n name: 'tickets',\n defaultValue: {},\n });\n const products: Record<string, IEventProductForm[]> = useWatch({\n name: 'products',\n defaultValue: {},\n });\n const total: number = useWatch({ name: 'total' });\n\n const paymentMethods = useMemo(() => {\n if (!data) return [];\n\n const hasTickets =\n Object.values(tickets)\n .flat()\n .filter((t) => t.quantity).length > 0;\n const hasProducts = Object.values(products).flat().length > 0;\n\n if (total === 0 && (hasTickets || hasProducts)) {\n setValue('isPaymentVerify', true);\n return data.filter((payment) =>\n ['PAYMENT_CARD', 'APPLE_PAY', 'GPAY', 'CLICK_TO_PAY'].includes(payment.type)\n );\n } else {\n setValue('isPaymentVerify', false);\n return data;\n }\n }, [data, total, tickets, products]);\n\n return (\n <Box>\n <Box className=\"payment__promo-code\">\n <Stack direction=\"row\" spacing={2}>\n <TextField\n name=\"promoCode\"\n size=\"small\"\n label={t('form.labels.promo_code')}\n value={promoCode}\n onChange={(e) => setPromoCode(e.target.value)}\n onBlur={(e) => {\n if (!e.target.value.trim()) setPromoCodeError(null);\n }}\n onKeyDown={handleKeyDown}\n error={!!promoCodeError}\n helperText={promoCodeError}\n fullWidth\n />\n <Box>\n <Button\n size=\"large\"\n type=\"button\"\n variant=\"contained\"\n onClick={handleSubmit}\n disabled={!promoCode}\n sx={{ height: 51 }}\n >\n {t('apply')}\n </Button>\n </Box>\n </Stack>\n <Stack paddingTop={3} direction=\"column\" spacing={1}>\n {promoCodes.length > 0 &&\n promoCodes.map((item: IPromoCode) => (\n <Stack\n marginTop={3}\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n spacing={2}\n key={item.code}\n >\n <>\n <Stack direction=\"row\" alignItems=\"center\">\n <Label variant=\"filled\" sx={{ textTransform: 'none', cursor: 'pointer' }}>\n {item.code}\n </Label>\n <Typography variant=\"subtitle2\" sx={{ ml: 1 }}>\n -{' '}\n {item.value +\n `${item.type === PromoCodeTypes.FIXED ? ' ' + event.currency : '%'}`}\n </Typography>\n </Stack>\n <Box>\n <IconButton\n color=\"primary\"\n onClick={() => removePromoCode(item.code)}\n aria-label=\"delete\"\n >\n <Iconify icon=\"carbon:trash-can\" />\n </IconButton>\n </Box>\n </>\n </Stack>\n ))}\n </Stack>\n </Box>\n\n <Typography variant=\"h4\" mt={2}>\n {t('event.tickets.stepper.3.subtitle')}\n </Typography>\n\n {isLoading ? (\n <PaymentSkeleton sx={{ marginTop: 1 }} />\n ) : (\n <PaymentWrapper>\n <Controller\n name=\"paymentMethodId\"\n control={control}\n render={({ field, fieldState: { error } }) => (\n <FormControl component=\"fieldset\">\n <RadioGroup {...field}>\n {paymentMethods.map((payment) => (\n <PaymentItem\n key={payment.type}\n active={!!paymentMethodId && Number(paymentMethodId) === payment.id}\n >\n <FormControlLabel\n value={payment.id}\n control={<Radio />}\n label={\n <Stack direction=\"row\" alignItems=\"center\">\n <Typography\n sx={{\n marginRight: 2,\n }}\n >\n {payment.label[lang]}\n </Typography>\n <Image\n src={payment.image.url}\n sx={{\n height: '20px',\n '& img': {\n objectFit: 'contain',\n },\n }}\n />\n </Stack>\n }\n sx={{\n '&:not(:last-of-type)': {\n mb: 0,\n },\n }}\n />\n {!!payment.options.length &&\n !!paymentMethodId &&\n Number(paymentMethodId) === payment.id && (\n <PaymentSwiftWrapper>\n <Divider sx={{ mb: 2 }} />\n <RHFRadioGroup\n name=\"paymentMethodOptionId\"\n row\n options={payment.options\n .filter((item) => !item.label.en.includes('eshop.api.swifts'))\n .map((option) => ({\n label: (\n <Stack direction=\"row\" alignItems=\"center\">\n <Image\n src={option.image.url}\n sx={{\n width: 'auto',\n height: '15px',\n maxWidth: '70px',\n display: 'inline-block',\n marginRight: 1,\n '& img': {\n objectFit: 'contain',\n objectPosition: 'left',\n },\n }}\n />\n <Typography variant=\"body2\">{option.label[lang]}</Typography>\n </Stack>\n ),\n value: option.id,\n }))}\n />\n </PaymentSwiftWrapper>\n )}\n </PaymentItem>\n ))}\n </RadioGroup>\n\n {!!error && (\n <FormHelperText error={!!error} sx={{ mx: 0 }}>\n {error?.message}\n </FormHelperText>\n )}\n </FormControl>\n )}\n />\n </PaymentWrapper>\n )}\n </Box>\n );\n};\n\nexport default Payment;\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import React, { useState, useMemo, useEffect, useCallback } from 'react';
2
2
  import 'framer-motion';
3
- import { Stack, Typography, Box, Grid, Divider } from '@mui/material';
3
+ import { Stack, Typography, Box, Grid, Divider, IconButton } from '@mui/material';
4
4
  import '../components/animate/IconButtonAnimate.js';
5
5
  import useResponsive from '../hooks/useResponsive.js';
6
6
  import Iconify from '../components/iconify/Iconify.js';
@@ -25,7 +25,6 @@ import { getCart, calculateCart } from '../modules/shopping-cart.js';
25
25
  import { PromoCodeTypes } from '../utils/data/promo-code.js';
26
26
  import useActiveEventProducts from '../hooks/data/useActiveEventProducts.js';
27
27
  import useDebounce from '../hooks/useDebounce.js';
28
- import { EVENTLOOK_ORDER_FORM_ID } from '../utils/data/global.js';
29
28
 
30
29
  const PaymentOverviewBox = ({ event }) => {
31
30
  const { t, lang, options } = useGlobal();
@@ -36,7 +35,7 @@ const PaymentOverviewBox = ({ event }) => {
36
35
  const [shippingFee, setShippingFee] = useState(0);
37
36
  const { setValue, watch } = useFormContext();
38
37
  const values = watch();
39
- const { total, uuid, firstName, lastName, email, gender, birthdate, phone, promoCodes, shipping, totalFee, isPaymentVerify, ticketInsurance, smsNotification, smsNotificationPrice, ticketInsurancePricePerUnit, } = values;
38
+ const { total, uuid, firstName, lastName, email, gender, birthdate, phone, promoCodes, shipping, totalFee, isPaymentVerify, ticketInsurance, ticketInsurancePricePerUnit, smsNotification, smsNotificationPrice, } = values;
40
39
  const tickets = useWatch({
41
40
  name: 'tickets',
42
41
  defaultValue: {},
@@ -301,25 +300,28 @@ const PaymentOverviewBox = ({ event }) => {
301
300
  console.error('Error calculating cart:', err);
302
301
  }
303
302
  }, []);
304
- // const removeProduct = (variant: ISelectedProductVariant) => {
305
- // const { eventId, variantId } = variant;
306
- // const list = Array.isArray(products[eventId]) ? [...products[eventId]] : [];
307
- // const idx = list.findIndex((p) => Number(p.eventProductVariantId) === Number(variantId));
308
- // if (idx === -1) return;
309
- // const item = list[idx];
310
- // if ((item.quantity ?? 0) <= 1) {
311
- // list.splice(idx, 1);
312
- // } else {
313
- // list[idx] = { ...item, quantity: (item.quantity ?? 1) - 1 };
314
- // }
315
- // const next = { ...products, [eventId]: list };
316
- // if (list.length === 0) {
317
- // const { [eventId]: _removed, ...rest } = next;
318
- // setValue('products', rest);
319
- // } else {
320
- // setValue('products', next);
321
- // }
322
- // };
303
+ const removeProduct = (variant) => {
304
+ const { eventId, variantId } = variant;
305
+ const list = Array.isArray(products[eventId]) ? [...products[eventId]] : [];
306
+ const idx = list.findIndex((p) => Number(p.eventProductVariantId) === Number(variantId));
307
+ if (idx === -1)
308
+ return;
309
+ const item = list[idx];
310
+ if ((item.quantity ?? 0) <= 1) {
311
+ list.splice(idx, 1);
312
+ }
313
+ else {
314
+ list[idx] = { ...item, quantity: (item.quantity ?? 1) - 1 };
315
+ }
316
+ const next = { ...products, [eventId]: list };
317
+ if (list.length === 0) {
318
+ const { [eventId]: _removed, ...rest } = next;
319
+ setValue('products', rest);
320
+ }
321
+ else {
322
+ setValue('products', next);
323
+ }
324
+ };
323
325
  return (React.createElement(OverviewCard, { id: "overview-card", stickyHeaderTop: options?.stickyHeaderTop || 0 },
324
326
  !isMobile && (React.createElement(Stack, { className: "overview-card__event-info", p: 2, spacing: 2 },
325
327
  React.createElement(Typography, { variant: "h6" }, event.name),
@@ -331,7 +333,7 @@ const PaymentOverviewBox = ({ event }) => {
331
333
  React.createElement(TextIconLabel, { icon: React.createElement(Iconify, { icon: locationIcon, sx: { mr: 0.5, mt: 0.5, width: 18, height: 18, minWidth: 18 } }), value: React.createElement(Box, null, getPlaceAsString(event.place)), sx: { typography: 'body3', color: 'text.secondary', alignItems: 'flex-start' } })))),
332
334
  React.createElement(Divider, { sx: { borderStyle: 'dashed' } }),
333
335
  React.createElement(Stack, { direction: { xs: 'column', sm: 'row', md: 'column', lg: 'row' }, spacing: 2, p: 2, divider: React.createElement(Divider, { orientation: xs || md ? 'horizontal' : 'vertical', flexItem: true, sx: { borderStyle: 'dashed' } }), sx: {
334
- backgroundColor: (theme) => theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[900],
336
+ backgroundColor: (theme) => theme.palette.grey.A100,
335
337
  borderRadius: 1,
336
338
  } },
337
339
  React.createElement(Box, { width: { sm: '50%', md: '100%', lg: '50%' } },
@@ -340,55 +342,67 @@ const PaymentOverviewBox = ({ event }) => {
340
342
  React.createElement(Box, { width: { sm: '50%', md: '100%', lg: '50%' } },
341
343
  React.createElement(TextIconLabel, { icon: React.createElement(Iconify, { icon: userIcon, sx: { minWidth: 20, height: 20, mr: 1 } }), value: t('form.labels.organizer'), sx: { color: 'text.secondary' } }),
342
344
  React.createElement(Typography, { variant: "body2", fontWeight: 700 }, event.company.displayName))))),
343
- React.createElement(Stack, { className: "overview-card__order-info", p: 2, pt: { xs: 0, sm: 2 }, spacing: 0.75, useFlexGap: true },
345
+ React.createElement(Stack, { className: "overview-card__order-info", p: 2, spacing: 1 },
344
346
  !!selectedTickets.length && !isMobile && React.createElement(Divider, { sx: { borderStyle: 'dashed' } }),
345
- !!selectedTickets.length && (React.createElement(Stack, { spacing: 0.5 },
346
- React.createElement(PaymentOverviewCheckbox, { checkboxName: "ticketInsurance", label: t('event.tickets.insurance.label'), value: React.createElement(React.Fragment, null,
347
- ticketInsurance && totalItemCount.totalTickets > 0 ? '' : '+ ',
348
- fCurrency(ticketInsurancePricePerUnit, lang, event.currency),
349
- " /",
350
- ' ',
351
- t('event.tickets.insurance.per_ticket')) }),
352
- React.createElement(PaymentOverviewCheckbox, { checkboxName: "smsNotification", label: t('event.tickets.sms_notification.label'), value: React.createElement(React.Fragment, null,
353
- smsNotification && totalItemCount.totalTickets > 0 ? '' : '+ ',
354
- fCurrency(smsNotificationPrice, lang, event.currency)) }),
355
- React.createElement(Divider, { sx: { borderStyle: 'dashed' } }))),
356
347
  selectedTickets.map((ticket, index) => (React.createElement(Box, { key: index },
357
348
  React.createElement(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", spacing: 2 },
358
- React.createElement(Typography, { variant: "body2" },
349
+ React.createElement(Typography, { variant: "caption" },
359
350
  ticket.quantity,
360
351
  "x ",
361
352
  ticket.itemName),
362
- React.createElement(Typography, { variant: "body2" }, fCurrency(calculatePriceWithDiscount(ticket.price, promoCodesValues.percent, promoCodesValues.fixedDevidedTickets) * Number(ticket.quantity), lang, event.currency))),
353
+ React.createElement(Typography, { variant: "caption" }, fCurrency(calculatePriceWithDiscount(ticket.price, promoCodesValues.percent, promoCodesValues.fixedDevidedTickets) * Number(ticket.quantity), lang, event.currency))),
363
354
  ticket.products.map((product, index2) => (React.createElement(Stack, { key: index2, direction: "row", justifyContent: "space-between", alignItems: "center", spacing: 2 },
364
- React.createElement(Typography, { variant: "body2" },
355
+ React.createElement(Typography, { variant: "caption" },
365
356
  "- ",
366
357
  product.quantity,
367
358
  "x ",
368
359
  product.name),
369
- React.createElement(Typography, { variant: "body2" }, product.price > 0
360
+ React.createElement(Typography, { variant: "caption" }, product.price > 0
370
361
  ? fCurrency(calculatePriceWithDiscount(product.price, promoCodesValues.productDiscountPercent, promoCodesValues.fixedDevidedProducts
371
362
  ? promoCodesValues.fixedDevidedProducts * product.quantity
372
363
  : 0), lang, event.currency)
373
364
  : t('free')))))))),
374
365
  selectedVariants.map((variant, index) => (React.createElement(Box, { key: index },
375
366
  React.createElement(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", spacing: 2 },
376
- React.createElement(Typography, { variant: "body2" },
367
+ React.createElement(Typography, { variant: "caption" },
377
368
  variant.quantity,
378
369
  "x ",
379
370
  variant.name),
380
- React.createElement(Typography, { variant: "body2" }, fCurrency(calculatePriceWithDiscount(variant.price, promoCodesValues.productDiscountPercent, promoCodesValues.fixedDevidedProducts
381
- ? promoCodesValues.fixedDevidedProducts * variant.quantity
382
- : 0), lang, event.currency)))))),
371
+ React.createElement(Stack, { direction: "row", spacing: 1, alignItems: "center" },
372
+ React.createElement(Typography, { variant: "caption" }, fCurrency(calculatePriceWithDiscount(variant.price, promoCodesValues.productDiscountPercent, promoCodesValues.fixedDevidedProducts
373
+ ? promoCodesValues.fixedDevidedProducts * variant.quantity
374
+ : 0), lang, event.currency)),
375
+ React.createElement(IconButton, { onClick: () => removeProduct(variant), color: "primary", size: "small" },
376
+ React.createElement(Iconify, { icon: "carbon:trash-can" }))))))),
383
377
  !!shippingFee && (React.createElement(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", spacing: 2 },
384
- React.createElement(Typography, { variant: "body2" }, t('form.labels.shipping_fee')),
385
- React.createElement(Typography, { variant: "body2" }, fCurrency(shippingFee, lang, event.currency)))),
378
+ React.createElement(Typography, { variant: "caption" }, t('form.labels.shipping_fee')),
379
+ React.createElement(Typography, { variant: "caption" }, fCurrency(shippingFee, lang, event.currency)))),
380
+ ticketInsurance && totalItemCount.totalTickets > 0 && (React.createElement(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", spacing: 2 },
381
+ React.createElement(Typography, { variant: "caption" }, t('form.labels.ticket_insurance')),
382
+ React.createElement(Typography, { variant: "caption" }, fCurrency(values.ticketInsurancePrice, lang, event.currency)))),
383
+ smsNotification && totalItemCount.totalTickets > 0 && (React.createElement(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", spacing: 2 },
384
+ React.createElement(Typography, { variant: "caption" }, t('form.labels.sms_notification')),
385
+ React.createElement(Typography, { variant: "caption" }, fCurrency(values.smsNotificationPrice, lang, event.currency)))),
386
386
  !!total && !!totalFee && (React.createElement(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", spacing: 2 },
387
- React.createElement(Typography, { variant: "body2" }, t('form.labels.service_fee')),
388
- React.createElement(Typography, { variant: "body2" }, getFee))),
387
+ React.createElement(Typography, { variant: "caption" }, t('form.labels.service_fee')),
388
+ React.createElement(Typography, { variant: "caption" }, getFee))),
389
389
  ((!!selectedTickets.length && isMobile) || !isMobile) && (React.createElement(Divider, { sx: { borderStyle: 'dashed' } })),
390
+ !!selectedTickets.length && (React.createElement(React.Fragment, null,
391
+ React.createElement(PaymentOverviewCheckbox, { checkboxName: "smsNotification", label: t('event.tickets.sms_notification.label'), value: React.createElement(React.Fragment, null,
392
+ "+ ",
393
+ fCurrency(smsNotificationPrice, lang, event.currency)), modal: {
394
+ title: t('event.tickets.sms_notification.label'),
395
+ description: (React.createElement(React.Fragment, null,
396
+ React.createElement(Typography, { variant: "body2", paragraph: true }, t('event.tickets.sms_notification.modal.description')),
397
+ React.createElement(Typography, { variant: "body2", sx: { fontWeight: 600 } },
398
+ t('event.tickets.sms_notification.modal.price'),
399
+ ":",
400
+ ' ',
401
+ fCurrency(smsNotificationPrice, lang, event.currency)))),
402
+ } }),
403
+ React.createElement(Divider, { sx: { borderStyle: 'dashed' } }))),
390
404
  React.createElement(FeeBox, { event: event }),
391
- React.createElement(LoadingButton, { type: "submit", form: EVENTLOOK_ORDER_FORM_ID, variant: "contained", size: "large", fullWidth: true, sx: { height: { xs: 36, md: 40 } } }, t(isPaymentVerify ? 'verify' : 'buy')))));
405
+ React.createElement(LoadingButton, { type: "submit", variant: "contained", size: "large", fullWidth: true }, t(isPaymentVerify ? 'verify' : 'buy')))));
392
406
  };
393
407
 
394
408
  export { PaymentOverviewBox as default };