@eventlook/sdk 1.4.44 → 1.4.46-beta.1

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 (589) hide show
  1. package/.env.example +1 -0
  2. package/package.json +3 -1
  3. package/rollup.config.mjs +2 -0
  4. package/src/components/hook-form/FormProvider.tsx +5 -2
  5. package/src/form/ChildEventDialog.tsx +3 -3
  6. package/src/form/ContactPerson.tsx +1 -1
  7. package/src/form/PaymentOverviewBox.tsx +39 -72
  8. package/src/form/PaymentOverviewDrawer.tsx +169 -0
  9. package/src/form/PaymentPending.tsx +1 -1
  10. package/src/form/TicketForm.tsx +53 -17
  11. package/src/form/index.tsx +3 -1
  12. package/src/form/merchandise/MerchandiseSelection.tsx +24 -0
  13. package/src/form/merchandise/MerchandiseSlider.tsx +61 -0
  14. package/src/form/payment/FeeBox.tsx +0 -10
  15. package/src/form/payment/PaymentOverviewCheckbox.tsx +33 -56
  16. package/src/form/product/ProductCard.tsx +60 -55
  17. package/src/form/product/ProductVariantsDialog.tsx +195 -137
  18. package/src/form/services/index.tsx +217 -0
  19. package/src/form/tickets/ReleaseDescription.tsx +57 -0
  20. package/src/form/tickets/ReleaseWithMerchandise.tsx +237 -0
  21. package/src/form/tickets/TicketQuantityControl.tsx +93 -0
  22. package/src/form/{TicketSelection.tsx → tickets/TicketSelection.tsx} +140 -105
  23. package/src/form/tickets/TicketSelectionMobile.tsx +175 -0
  24. package/src/form/{TicketWithMerchandiseSelection.tsx → tickets/TicketWithMerchandiseSelection.tsx} +15 -11
  25. package/src/locales/cs.tsx +7 -1
  26. package/src/locales/en.tsx +7 -1
  27. package/src/locales/es.tsx +6 -0
  28. package/src/locales/pl.tsx +6 -0
  29. package/src/locales/sk.tsx +6 -0
  30. package/src/locales/uk.tsx +6 -0
  31. package/src/utils/data/global.ts +1 -0
  32. package/tsconfig.json +2 -1
  33. package/.claude/settings.local.json +0 -9
  34. package/dist/cjs/components/ClientOnly.js +0 -19
  35. package/dist/cjs/components/ClientOnly.js.map +0 -1
  36. package/dist/cjs/components/CustomSkeleton.js +0 -15
  37. package/dist/cjs/components/CustomSkeleton.js.map +0 -1
  38. package/dist/cjs/components/Image.js +0 -56
  39. package/dist/cjs/components/Image.js.map +0 -1
  40. package/dist/cjs/components/Label.js +0 -65
  41. package/dist/cjs/components/Label.js.map +0 -1
  42. package/dist/cjs/components/TextIconLabel.js +0 -19
  43. package/dist/cjs/components/TextIconLabel.js.map +0 -1
  44. package/dist/cjs/components/TicketFormSkeleton.js +0 -55
  45. package/dist/cjs/components/TicketFormSkeleton.js.map +0 -1
  46. package/dist/cjs/components/Trans.js +0 -87
  47. package/dist/cjs/components/Trans.js.map +0 -1
  48. package/dist/cjs/components/animate/IconButtonAnimate.js +0 -29
  49. package/dist/cjs/components/animate/IconButtonAnimate.js.map +0 -1
  50. package/dist/cjs/components/animate/MotionContainer.js +0 -18
  51. package/dist/cjs/components/animate/MotionContainer.js.map +0 -1
  52. package/dist/cjs/components/animate/variants/bounce.js +0 -98
  53. package/dist/cjs/components/animate/variants/bounce.js.map +0 -1
  54. package/dist/cjs/components/animate/variants/container.js +0 -25
  55. package/dist/cjs/components/animate/variants/container.js.map +0 -1
  56. package/dist/cjs/components/animate/variants/transition.js +0 -17
  57. package/dist/cjs/components/animate/variants/transition.js.map +0 -1
  58. package/dist/cjs/components/confirm-dialog/ConfirmDialog.js +0 -24
  59. package/dist/cjs/components/confirm-dialog/ConfirmDialog.js.map +0 -1
  60. package/dist/cjs/components/hook-form/FormProvider.js +0 -14
  61. package/dist/cjs/components/hook-form/FormProvider.js.map +0 -1
  62. package/dist/cjs/components/hook-form/RHFCheckbox.js +0 -15
  63. package/dist/cjs/components/hook-form/RHFCheckbox.js.map +0 -1
  64. package/dist/cjs/components/hook-form/RHFDatePicker.js +0 -22
  65. package/dist/cjs/components/hook-form/RHFDatePicker.js.map +0 -1
  66. package/dist/cjs/components/hook-form/RHFPhone.js +0 -24
  67. package/dist/cjs/components/hook-form/RHFPhone.js.map +0 -1
  68. package/dist/cjs/components/hook-form/RHFRadioGroup.js +0 -29
  69. package/dist/cjs/components/hook-form/RHFRadioGroup.js.map +0 -1
  70. package/dist/cjs/components/hook-form/RHFSelect.js +0 -34
  71. package/dist/cjs/components/hook-form/RHFSelect.js.map +0 -1
  72. package/dist/cjs/components/hook-form/RHFTextField.js +0 -15
  73. package/dist/cjs/components/hook-form/RHFTextField.js.map +0 -1
  74. package/dist/cjs/components/iconify/Iconify.js +0 -14
  75. package/dist/cjs/components/iconify/Iconify.js.map +0 -1
  76. package/dist/cjs/context/GlobalContext.js +0 -65
  77. package/dist/cjs/context/GlobalContext.js.map +0 -1
  78. package/dist/cjs/form/ChildEventCard.js +0 -60
  79. package/dist/cjs/form/ChildEventCard.js.map +0 -1
  80. package/dist/cjs/form/ChildEventDialog.js +0 -30
  81. package/dist/cjs/form/ChildEventDialog.js.map +0 -1
  82. package/dist/cjs/form/ChildEvents.js +0 -17
  83. package/dist/cjs/form/ChildEvents.js.map +0 -1
  84. package/dist/cjs/form/ContactPerson.js +0 -40
  85. package/dist/cjs/form/ContactPerson.js.map +0 -1
  86. package/dist/cjs/form/EmailConfirmation.js +0 -28
  87. package/dist/cjs/form/EmailConfirmation.js.map +0 -1
  88. package/dist/cjs/form/MerchandiseSelection.js +0 -17
  89. package/dist/cjs/form/MerchandiseSelection.js.map +0 -1
  90. package/dist/cjs/form/OrderSuccess.js +0 -57
  91. package/dist/cjs/form/OrderSuccess.js.map +0 -1
  92. package/dist/cjs/form/Payment.js +0 -214
  93. package/dist/cjs/form/Payment.js.map +0 -1
  94. package/dist/cjs/form/PaymentOverviewBox.js +0 -413
  95. package/dist/cjs/form/PaymentOverviewBox.js.map +0 -1
  96. package/dist/cjs/form/PaymentPending.js +0 -26
  97. package/dist/cjs/form/PaymentPending.js.map +0 -1
  98. package/dist/cjs/form/PaymentSuccess.js +0 -203
  99. package/dist/cjs/form/PaymentSuccess.js.map +0 -1
  100. package/dist/cjs/form/ReleaseCountdown.js +0 -34
  101. package/dist/cjs/form/ReleaseCountdown.js.map +0 -1
  102. package/dist/cjs/form/ReleaseWithMerchandise.js +0 -130
  103. package/dist/cjs/form/ReleaseWithMerchandise.js.map +0 -1
  104. package/dist/cjs/form/ScriptLoader.js +0 -21
  105. package/dist/cjs/form/ScriptLoader.js.map +0 -1
  106. package/dist/cjs/form/Shipping.js +0 -119
  107. package/dist/cjs/form/Shipping.js.map +0 -1
  108. package/dist/cjs/form/TicketForm.js +0 -470
  109. package/dist/cjs/form/TicketForm.js.map +0 -1
  110. package/dist/cjs/form/TicketSelection.js +0 -174
  111. package/dist/cjs/form/TicketSelection.js.map +0 -1
  112. package/dist/cjs/form/TicketSelectionMap.js +0 -67
  113. package/dist/cjs/form/TicketSelectionMap.js.map +0 -1
  114. package/dist/cjs/form/TicketWithMerchandiseSelection.js +0 -117
  115. package/dist/cjs/form/TicketWithMerchandiseSelection.js.map +0 -1
  116. package/dist/cjs/form/TimeslotSelection.js +0 -68
  117. package/dist/cjs/form/TimeslotSelection.js.map +0 -1
  118. package/dist/cjs/form/extra-field/ExtraField.js +0 -20
  119. package/dist/cjs/form/extra-field/ExtraField.js.map +0 -1
  120. package/dist/cjs/form/extra-field/ReleaseExtraFields.js +0 -60
  121. package/dist/cjs/form/extra-field/ReleaseExtraFields.js.map +0 -1
  122. package/dist/cjs/form/index.js +0 -69
  123. package/dist/cjs/form/index.js.map +0 -1
  124. package/dist/cjs/form/payment/FeeBox.js +0 -42
  125. package/dist/cjs/form/payment/FeeBox.js.map +0 -1
  126. package/dist/cjs/form/payment/PaymentOverviewCheckbox.js +0 -48
  127. package/dist/cjs/form/payment/PaymentOverviewCheckbox.js.map +0 -1
  128. package/dist/cjs/form/payment/PaymentSkeleton.js +0 -14
  129. package/dist/cjs/form/payment/PaymentSkeleton.js.map +0 -1
  130. package/dist/cjs/form/product/ProductCard.js +0 -61
  131. package/dist/cjs/form/product/ProductCard.js.map +0 -1
  132. package/dist/cjs/form/product/ProductVariantsDialog.js +0 -173
  133. package/dist/cjs/form/product/ProductVariantsDialog.js.map +0 -1
  134. package/dist/cjs/form/shipping/ShippingSkeleton.js +0 -14
  135. package/dist/cjs/form/shipping/ShippingSkeleton.js.map +0 -1
  136. package/dist/cjs/form/style.js +0 -50
  137. package/dist/cjs/form/style.js.map +0 -1
  138. package/dist/cjs/form/timeslot/TimeslotCalendar.js +0 -57
  139. package/dist/cjs/form/timeslot/TimeslotCalendar.js.map +0 -1
  140. package/dist/cjs/hooks/data/useActiveEventProducts.js +0 -22
  141. package/dist/cjs/hooks/data/useActiveEventProducts.js.map +0 -1
  142. package/dist/cjs/hooks/data/useAllowedPaymentMethods.js +0 -22
  143. package/dist/cjs/hooks/data/useAllowedPaymentMethods.js.map +0 -1
  144. package/dist/cjs/hooks/data/useEvent.js +0 -22
  145. package/dist/cjs/hooks/data/useEvent.js.map +0 -1
  146. package/dist/cjs/hooks/data/useEventActiveReleases.js +0 -26
  147. package/dist/cjs/hooks/data/useEventActiveReleases.js.map +0 -1
  148. package/dist/cjs/hooks/data/useEventShippingMethods.js +0 -22
  149. package/dist/cjs/hooks/data/useEventShippingMethods.js.map +0 -1
  150. package/dist/cjs/hooks/data/useEventTimeslots.js +0 -23
  151. package/dist/cjs/hooks/data/useEventTimeslots.js.map +0 -1
  152. package/dist/cjs/hooks/useCountdown.js +0 -40
  153. package/dist/cjs/hooks/useCountdown.js.map +0 -1
  154. package/dist/cjs/hooks/useDebounce.js +0 -17
  155. package/dist/cjs/hooks/useDebounce.js.map +0 -1
  156. package/dist/cjs/hooks/useErrors.js +0 -28
  157. package/dist/cjs/hooks/useErrors.js.map +0 -1
  158. package/dist/cjs/hooks/useFirstRender.js +0 -14
  159. package/dist/cjs/hooks/useFirstRender.js.map +0 -1
  160. package/dist/cjs/hooks/useGlobal.js +0 -11
  161. package/dist/cjs/hooks/useGlobal.js.map +0 -1
  162. package/dist/cjs/hooks/useResponsive.js +0 -29
  163. package/dist/cjs/hooks/useResponsive.js.map +0 -1
  164. package/dist/cjs/index.js.map +0 -1
  165. package/dist/cjs/locales/cs.js +0 -163
  166. package/dist/cjs/locales/cs.js.map +0 -1
  167. package/dist/cjs/locales/en.js +0 -164
  168. package/dist/cjs/locales/en.js.map +0 -1
  169. package/dist/cjs/locales/es.js +0 -164
  170. package/dist/cjs/locales/es.js.map +0 -1
  171. package/dist/cjs/locales/index.js +0 -18
  172. package/dist/cjs/locales/index.js.map +0 -1
  173. package/dist/cjs/locales/pl.js +0 -164
  174. package/dist/cjs/locales/pl.js.map +0 -1
  175. package/dist/cjs/locales/sk.js +0 -164
  176. package/dist/cjs/locales/sk.js.map +0 -1
  177. package/dist/cjs/locales/uk.js +0 -164
  178. package/dist/cjs/locales/uk.js.map +0 -1
  179. package/dist/cjs/modules/event-timeslot.js +0 -12
  180. package/dist/cjs/modules/event-timeslot.js.map +0 -1
  181. package/dist/cjs/modules/event.js +0 -24
  182. package/dist/cjs/modules/event.js.map +0 -1
  183. package/dist/cjs/modules/order.js +0 -14
  184. package/dist/cjs/modules/order.js.map +0 -1
  185. package/dist/cjs/modules/promo-code.js +0 -13
  186. package/dist/cjs/modules/promo-code.js.map +0 -1
  187. package/dist/cjs/modules/shopping-cart.js +0 -16
  188. package/dist/cjs/modules/shopping-cart.js.map +0 -1
  189. package/dist/cjs/utils/axios.js +0 -20
  190. package/dist/cjs/utils/axios.js.map +0 -1
  191. package/dist/cjs/utils/data/cookie.js +0 -6
  192. package/dist/cjs/utils/data/cookie.js.map +0 -1
  193. package/dist/cjs/utils/data/currency.js +0 -9
  194. package/dist/cjs/utils/data/currency.js.map +0 -1
  195. package/dist/cjs/utils/data/event.js +0 -8
  196. package/dist/cjs/utils/data/event.js.map +0 -1
  197. package/dist/cjs/utils/data/extra-field.js +0 -16
  198. package/dist/cjs/utils/data/extra-field.js.map +0 -1
  199. package/dist/cjs/utils/data/gender.js +0 -9
  200. package/dist/cjs/utils/data/gender.js.map +0 -1
  201. package/dist/cjs/utils/data/global.js +0 -6
  202. package/dist/cjs/utils/data/global.js.map +0 -1
  203. package/dist/cjs/utils/data/gopay.js +0 -14
  204. package/dist/cjs/utils/data/gopay.js.map +0 -1
  205. package/dist/cjs/utils/data/language.js +0 -14
  206. package/dist/cjs/utils/data/language.js.map +0 -1
  207. package/dist/cjs/utils/data/lottie/bank-transfer.json.js +0 -20
  208. package/dist/cjs/utils/data/lottie/bank-transfer.json.js.map +0 -1
  209. package/dist/cjs/utils/data/promo-code.js +0 -8
  210. package/dist/cjs/utils/data/promo-code.js.map +0 -1
  211. package/dist/cjs/utils/data/shipping-method.js +0 -8
  212. package/dist/cjs/utils/data/shipping-method.js.map +0 -1
  213. package/dist/cjs/utils/formatNumber.js +0 -19
  214. package/dist/cjs/utils/formatNumber.js.map +0 -1
  215. package/dist/cjs/utils/global.js +0 -26
  216. package/dist/cjs/utils/global.js.map +0 -1
  217. package/dist/cjs/utils/gtm.js +0 -125
  218. package/dist/cjs/utils/gtm.js.map +0 -1
  219. package/dist/cjs/utils/isBrowser.js +0 -6
  220. package/dist/cjs/utils/isBrowser.js.map +0 -1
  221. package/dist/cjs/utils/place.js +0 -6
  222. package/dist/cjs/utils/place.js.map +0 -1
  223. package/dist/cjs/utils/price.js +0 -15
  224. package/dist/cjs/utils/price.js.map +0 -1
  225. package/dist/cjs/utils/product.js +0 -29
  226. package/dist/cjs/utils/product.js.map +0 -1
  227. package/dist/cjs/utils/translation.js +0 -6
  228. package/dist/cjs/utils/translation.js.map +0 -1
  229. package/dist/cjs/utils/url.js +0 -18
  230. package/dist/cjs/utils/url.js.map +0 -1
  231. package/dist/esm/components/ClientOnly.js +0 -15
  232. package/dist/esm/components/ClientOnly.js.map +0 -1
  233. package/dist/esm/components/CustomSkeleton.js +0 -11
  234. package/dist/esm/components/CustomSkeleton.js.map +0 -1
  235. package/dist/esm/components/Image.js +0 -52
  236. package/dist/esm/components/Image.js.map +0 -1
  237. package/dist/esm/components/Label.js +0 -61
  238. package/dist/esm/components/Label.js.map +0 -1
  239. package/dist/esm/components/TextIconLabel.js +0 -15
  240. package/dist/esm/components/TextIconLabel.js.map +0 -1
  241. package/dist/esm/components/TicketFormSkeleton.js +0 -51
  242. package/dist/esm/components/TicketFormSkeleton.js.map +0 -1
  243. package/dist/esm/components/Trans.js +0 -85
  244. package/dist/esm/components/Trans.js.map +0 -1
  245. package/dist/esm/components/animate/IconButtonAnimate.js +0 -27
  246. package/dist/esm/components/animate/IconButtonAnimate.js.map +0 -1
  247. package/dist/esm/components/animate/MotionContainer.js +0 -14
  248. package/dist/esm/components/animate/MotionContainer.js.map +0 -1
  249. package/dist/esm/components/animate/variants/bounce.js +0 -96
  250. package/dist/esm/components/animate/variants/bounce.js.map +0 -1
  251. package/dist/esm/components/animate/variants/container.js +0 -23
  252. package/dist/esm/components/animate/variants/container.js.map +0 -1
  253. package/dist/esm/components/animate/variants/transition.js +0 -14
  254. package/dist/esm/components/animate/variants/transition.js.map +0 -1
  255. package/dist/esm/components/confirm-dialog/ConfirmDialog.js +0 -20
  256. package/dist/esm/components/confirm-dialog/ConfirmDialog.js.map +0 -1
  257. package/dist/esm/components/hook-form/FormProvider.js +0 -10
  258. package/dist/esm/components/hook-form/FormProvider.js.map +0 -1
  259. package/dist/esm/components/hook-form/RHFCheckbox.js +0 -13
  260. package/dist/esm/components/hook-form/RHFCheckbox.js.map +0 -1
  261. package/dist/esm/components/hook-form/RHFDatePicker.js +0 -18
  262. package/dist/esm/components/hook-form/RHFDatePicker.js.map +0 -1
  263. package/dist/esm/components/hook-form/RHFPhone.js +0 -20
  264. package/dist/esm/components/hook-form/RHFPhone.js.map +0 -1
  265. package/dist/esm/components/hook-form/RHFRadioGroup.js +0 -25
  266. package/dist/esm/components/hook-form/RHFRadioGroup.js.map +0 -1
  267. package/dist/esm/components/hook-form/RHFSelect.js +0 -32
  268. package/dist/esm/components/hook-form/RHFSelect.js.map +0 -1
  269. package/dist/esm/components/hook-form/RHFTextField.js +0 -11
  270. package/dist/esm/components/hook-form/RHFTextField.js.map +0 -1
  271. package/dist/esm/components/iconify/Iconify.js +0 -10
  272. package/dist/esm/components/iconify/Iconify.js.map +0 -1
  273. package/dist/esm/context/GlobalContext.js +0 -62
  274. package/dist/esm/context/GlobalContext.js.map +0 -1
  275. package/dist/esm/form/ChildEventCard.js +0 -56
  276. package/dist/esm/form/ChildEventCard.js.map +0 -1
  277. package/dist/esm/form/ChildEventDialog.js +0 -26
  278. package/dist/esm/form/ChildEventDialog.js.map +0 -1
  279. package/dist/esm/form/ChildEvents.js +0 -13
  280. package/dist/esm/form/ChildEvents.js.map +0 -1
  281. package/dist/esm/form/ContactPerson.js +0 -36
  282. package/dist/esm/form/ContactPerson.js.map +0 -1
  283. package/dist/esm/form/EmailConfirmation.js +0 -24
  284. package/dist/esm/form/EmailConfirmation.js.map +0 -1
  285. package/dist/esm/form/MerchandiseSelection.js +0 -13
  286. package/dist/esm/form/MerchandiseSelection.js.map +0 -1
  287. package/dist/esm/form/OrderSuccess.js +0 -53
  288. package/dist/esm/form/OrderSuccess.js.map +0 -1
  289. package/dist/esm/form/Payment.js +0 -210
  290. package/dist/esm/form/Payment.js.map +0 -1
  291. package/dist/esm/form/PaymentOverviewBox.js +0 -409
  292. package/dist/esm/form/PaymentOverviewBox.js.map +0 -1
  293. package/dist/esm/form/PaymentPending.js +0 -22
  294. package/dist/esm/form/PaymentPending.js.map +0 -1
  295. package/dist/esm/form/PaymentSuccess.js +0 -199
  296. package/dist/esm/form/PaymentSuccess.js.map +0 -1
  297. package/dist/esm/form/ReleaseCountdown.js +0 -30
  298. package/dist/esm/form/ReleaseCountdown.js.map +0 -1
  299. package/dist/esm/form/ReleaseWithMerchandise.js +0 -126
  300. package/dist/esm/form/ReleaseWithMerchandise.js.map +0 -1
  301. package/dist/esm/form/ScriptLoader.js +0 -17
  302. package/dist/esm/form/ScriptLoader.js.map +0 -1
  303. package/dist/esm/form/Shipping.js +0 -115
  304. package/dist/esm/form/Shipping.js.map +0 -1
  305. package/dist/esm/form/TicketForm.js +0 -447
  306. package/dist/esm/form/TicketForm.js.map +0 -1
  307. package/dist/esm/form/TicketSelection.js +0 -170
  308. package/dist/esm/form/TicketSelection.js.map +0 -1
  309. package/dist/esm/form/TicketSelectionMap.js +0 -63
  310. package/dist/esm/form/TicketSelectionMap.js.map +0 -1
  311. package/dist/esm/form/TicketWithMerchandiseSelection.js +0 -113
  312. package/dist/esm/form/TicketWithMerchandiseSelection.js.map +0 -1
  313. package/dist/esm/form/TimeslotSelection.js +0 -64
  314. package/dist/esm/form/TimeslotSelection.js.map +0 -1
  315. package/dist/esm/form/extra-field/ExtraField.js +0 -16
  316. package/dist/esm/form/extra-field/ExtraField.js.map +0 -1
  317. package/dist/esm/form/extra-field/ReleaseExtraFields.js +0 -56
  318. package/dist/esm/form/extra-field/ReleaseExtraFields.js.map +0 -1
  319. package/dist/esm/form/index.js +0 -65
  320. package/dist/esm/form/index.js.map +0 -1
  321. package/dist/esm/form/payment/FeeBox.js +0 -38
  322. package/dist/esm/form/payment/FeeBox.js.map +0 -1
  323. package/dist/esm/form/payment/PaymentOverviewCheckbox.js +0 -44
  324. package/dist/esm/form/payment/PaymentOverviewCheckbox.js.map +0 -1
  325. package/dist/esm/form/payment/PaymentSkeleton.js +0 -10
  326. package/dist/esm/form/payment/PaymentSkeleton.js.map +0 -1
  327. package/dist/esm/form/product/ProductCard.js +0 -57
  328. package/dist/esm/form/product/ProductCard.js.map +0 -1
  329. package/dist/esm/form/product/ProductVariantsDialog.js +0 -169
  330. package/dist/esm/form/product/ProductVariantsDialog.js.map +0 -1
  331. package/dist/esm/form/shipping/ShippingSkeleton.js +0 -10
  332. package/dist/esm/form/shipping/ShippingSkeleton.js.map +0 -1
  333. package/dist/esm/form/style.js +0 -44
  334. package/dist/esm/form/style.js.map +0 -1
  335. package/dist/esm/form/timeslot/TimeslotCalendar.js +0 -53
  336. package/dist/esm/form/timeslot/TimeslotCalendar.js.map +0 -1
  337. package/dist/esm/hooks/data/useActiveEventProducts.js +0 -18
  338. package/dist/esm/hooks/data/useActiveEventProducts.js.map +0 -1
  339. package/dist/esm/hooks/data/useAllowedPaymentMethods.js +0 -18
  340. package/dist/esm/hooks/data/useAllowedPaymentMethods.js.map +0 -1
  341. package/dist/esm/hooks/data/useEvent.js +0 -18
  342. package/dist/esm/hooks/data/useEvent.js.map +0 -1
  343. package/dist/esm/hooks/data/useEventActiveReleases.js +0 -22
  344. package/dist/esm/hooks/data/useEventActiveReleases.js.map +0 -1
  345. package/dist/esm/hooks/data/useEventShippingMethods.js +0 -18
  346. package/dist/esm/hooks/data/useEventShippingMethods.js.map +0 -1
  347. package/dist/esm/hooks/data/useEventTimeslots.js +0 -19
  348. package/dist/esm/hooks/data/useEventTimeslots.js.map +0 -1
  349. package/dist/esm/hooks/useCountdown.js +0 -36
  350. package/dist/esm/hooks/useCountdown.js.map +0 -1
  351. package/dist/esm/hooks/useDebounce.js +0 -13
  352. package/dist/esm/hooks/useDebounce.js.map +0 -1
  353. package/dist/esm/hooks/useErrors.js +0 -24
  354. package/dist/esm/hooks/useErrors.js.map +0 -1
  355. package/dist/esm/hooks/useFirstRender.js +0 -12
  356. package/dist/esm/hooks/useFirstRender.js.map +0 -1
  357. package/dist/esm/hooks/useGlobal.js +0 -7
  358. package/dist/esm/hooks/useGlobal.js.map +0 -1
  359. package/dist/esm/hooks/useResponsive.js +0 -25
  360. package/dist/esm/hooks/useResponsive.js.map +0 -1
  361. package/dist/esm/index.js +0 -6
  362. package/dist/esm/index.js.map +0 -1
  363. package/dist/esm/locales/cs.js +0 -159
  364. package/dist/esm/locales/cs.js.map +0 -1
  365. package/dist/esm/locales/en.js +0 -160
  366. package/dist/esm/locales/en.js.map +0 -1
  367. package/dist/esm/locales/es.js +0 -160
  368. package/dist/esm/locales/es.js.map +0 -1
  369. package/dist/esm/locales/index.js +0 -7
  370. package/dist/esm/locales/index.js.map +0 -1
  371. package/dist/esm/locales/pl.js +0 -160
  372. package/dist/esm/locales/pl.js.map +0 -1
  373. package/dist/esm/locales/sk.js +0 -160
  374. package/dist/esm/locales/sk.js.map +0 -1
  375. package/dist/esm/locales/uk.js +0 -160
  376. package/dist/esm/locales/uk.js.map +0 -1
  377. package/dist/esm/modules/event-timeslot.js +0 -10
  378. package/dist/esm/modules/event-timeslot.js.map +0 -1
  379. package/dist/esm/modules/event.js +0 -19
  380. package/dist/esm/modules/event.js.map +0 -1
  381. package/dist/esm/modules/order.js +0 -10
  382. package/dist/esm/modules/order.js.map +0 -1
  383. package/dist/esm/modules/promo-code.js +0 -11
  384. package/dist/esm/modules/promo-code.js.map +0 -1
  385. package/dist/esm/modules/shopping-cart.js +0 -13
  386. package/dist/esm/modules/shopping-cart.js.map +0 -1
  387. package/dist/esm/utils/axios.js +0 -16
  388. package/dist/esm/utils/axios.js.map +0 -1
  389. package/dist/esm/utils/data/cookie.js +0 -4
  390. package/dist/esm/utils/data/cookie.js.map +0 -1
  391. package/dist/esm/utils/data/currency.js +0 -9
  392. package/dist/esm/utils/data/currency.js.map +0 -1
  393. package/dist/esm/utils/data/event.js +0 -8
  394. package/dist/esm/utils/data/event.js.map +0 -1
  395. package/dist/esm/utils/data/extra-field.js +0 -16
  396. package/dist/esm/utils/data/extra-field.js.map +0 -1
  397. package/dist/esm/utils/data/gender.js +0 -9
  398. package/dist/esm/utils/data/gender.js.map +0 -1
  399. package/dist/esm/utils/data/global.js +0 -4
  400. package/dist/esm/utils/data/global.js.map +0 -1
  401. package/dist/esm/utils/data/gopay.js +0 -14
  402. package/dist/esm/utils/data/gopay.js.map +0 -1
  403. package/dist/esm/utils/data/language.js +0 -14
  404. package/dist/esm/utils/data/language.js.map +0 -1
  405. package/dist/esm/utils/data/lottie/bank-transfer.json.js +0 -4
  406. package/dist/esm/utils/data/lottie/bank-transfer.json.js.map +0 -1
  407. package/dist/esm/utils/data/promo-code.js +0 -8
  408. package/dist/esm/utils/data/promo-code.js.map +0 -1
  409. package/dist/esm/utils/data/shipping-method.js +0 -8
  410. package/dist/esm/utils/data/shipping-method.js.map +0 -1
  411. package/dist/esm/utils/formatNumber.js +0 -17
  412. package/dist/esm/utils/formatNumber.js.map +0 -1
  413. package/dist/esm/utils/global.js +0 -21
  414. package/dist/esm/utils/global.js.map +0 -1
  415. package/dist/esm/utils/gtm.js +0 -112
  416. package/dist/esm/utils/gtm.js.map +0 -1
  417. package/dist/esm/utils/isBrowser.js +0 -4
  418. package/dist/esm/utils/isBrowser.js.map +0 -1
  419. package/dist/esm/utils/place.js +0 -4
  420. package/dist/esm/utils/place.js.map +0 -1
  421. package/dist/esm/utils/price.js +0 -12
  422. package/dist/esm/utils/price.js.map +0 -1
  423. package/dist/esm/utils/product.js +0 -27
  424. package/dist/esm/utils/product.js.map +0 -1
  425. package/dist/esm/utils/translation.js +0 -4
  426. package/dist/esm/utils/translation.js.map +0 -1
  427. package/dist/esm/utils/url.js +0 -16
  428. package/dist/esm/utils/url.js.map +0 -1
  429. package/dist/types/components/ClientOnly.d.ts +0 -5
  430. package/dist/types/components/CustomSkeleton.d.ts +0 -4
  431. package/dist/types/components/Image.d.ts +0 -14
  432. package/dist/types/components/Label.d.ts +0 -11
  433. package/dist/types/components/TextIconLabel.d.ts +0 -11
  434. package/dist/types/components/TicketFormSkeleton.d.ts +0 -3
  435. package/dist/types/components/Trans.d.ts +0 -12
  436. package/dist/types/components/animate/DialogAnimate.d.ts +0 -9
  437. package/dist/types/components/animate/IconButtonAnimate.d.ts +0 -7
  438. package/dist/types/components/animate/MotionContainer.d.ts +0 -10
  439. package/dist/types/components/animate/MotionLazyContainer.d.ts +0 -6
  440. package/dist/types/components/animate/MotionViewport.d.ts +0 -10
  441. package/dist/types/components/animate/TextAnimate.d.ts +0 -9
  442. package/dist/types/components/animate/index.d.ts +0 -7
  443. package/dist/types/components/animate/variants/actions.d.ts +0 -5
  444. package/dist/types/components/animate/variants/background.d.ts +0 -104
  445. package/dist/types/components/animate/variants/bounce.d.ts +0 -131
  446. package/dist/types/components/animate/variants/container.d.ts +0 -19
  447. package/dist/types/components/animate/variants/fade.d.ts +0 -217
  448. package/dist/types/components/animate/variants/flip.d.ts +0 -75
  449. package/dist/types/components/animate/variants/index.d.ts +0 -12
  450. package/dist/types/components/animate/variants/path.d.ts +0 -14
  451. package/dist/types/components/animate/variants/rotate.d.ts +0 -39
  452. package/dist/types/components/animate/variants/scale.d.ts +0 -75
  453. package/dist/types/components/animate/variants/slide.d.ts +0 -155
  454. package/dist/types/components/animate/variants/transition.d.ts +0 -13
  455. package/dist/types/components/animate/variants/zoom.d.ts +0 -199
  456. package/dist/types/components/confirm-dialog/ConfirmDialog.d.ts +0 -3
  457. package/dist/types/components/confirm-dialog/index.d.ts +0 -1
  458. package/dist/types/components/confirm-dialog/types.d.ts +0 -8
  459. package/dist/types/components/hook-form/FormProvider.d.ts +0 -9
  460. package/dist/types/components/hook-form/RHFAutocomplete.d.ts +0 -9
  461. package/dist/types/components/hook-form/RHFCheckbox.d.ts +0 -20
  462. package/dist/types/components/hook-form/RHFCodes.d.ts +0 -8
  463. package/dist/types/components/hook-form/RHFDatePicker.d.ts +0 -9
  464. package/dist/types/components/hook-form/RHFPhone.d.ts +0 -8
  465. package/dist/types/components/hook-form/RHFRadioGroup.d.ts +0 -14
  466. package/dist/types/components/hook-form/RHFSelect.d.ts +0 -23
  467. package/dist/types/components/hook-form/RHFSlider.d.ts +0 -8
  468. package/dist/types/components/hook-form/RHFSwitch.d.ts +0 -8
  469. package/dist/types/components/hook-form/RHFTextField.d.ts +0 -7
  470. package/dist/types/components/hook-form/index.d.ts +0 -9
  471. package/dist/types/components/iconify/Iconify.d.ts +0 -10
  472. package/dist/types/components/iconify/index.d.ts +0 -2
  473. package/dist/types/components/iconify/types.d.ts +0 -2
  474. package/dist/types/components/index.d.ts +0 -4
  475. package/dist/types/context/GlobalContext.d.ts +0 -16
  476. package/dist/types/form/ChildEventCard.d.ts +0 -7
  477. package/dist/types/form/ChildEventDialog.d.ts +0 -9
  478. package/dist/types/form/ChildEvents.d.ts +0 -8
  479. package/dist/types/form/ContactPerson.d.ts +0 -7
  480. package/dist/types/form/EmailConfirmation.d.ts +0 -8
  481. package/dist/types/form/MerchandiseSelection.d.ts +0 -9
  482. package/dist/types/form/OrderSuccess.d.ts +0 -9
  483. package/dist/types/form/Payment.d.ts +0 -7
  484. package/dist/types/form/PaymentOverviewBox.d.ts +0 -7
  485. package/dist/types/form/PaymentPending.d.ts +0 -3
  486. package/dist/types/form/PaymentSuccess.d.ts +0 -9
  487. package/dist/types/form/ReleaseCountdown.d.ts +0 -8
  488. package/dist/types/form/ReleaseWithMerchandise.d.ts +0 -12
  489. package/dist/types/form/ScriptLoader.d.ts +0 -3
  490. package/dist/types/form/Shipping.d.ts +0 -7
  491. package/dist/types/form/TicketForm.d.ts +0 -11
  492. package/dist/types/form/TicketSelection.d.ts +0 -7
  493. package/dist/types/form/TicketSelectionMap.d.ts +0 -7
  494. package/dist/types/form/TicketWithMerchandiseSelection.d.ts +0 -7
  495. package/dist/types/form/TimeslotSelection.d.ts +0 -7
  496. package/dist/types/form/extra-field/ExtraField.d.ts +0 -9
  497. package/dist/types/form/extra-field/ReleaseExtraFields.d.ts +0 -10
  498. package/dist/types/form/index.d.ts +0 -26
  499. package/dist/types/form/payment/FeeBox.d.ts +0 -8
  500. package/dist/types/form/payment/PaymentOverviewCheckbox.d.ts +0 -12
  501. package/dist/types/form/payment/PaymentSkeleton.d.ts +0 -7
  502. package/dist/types/form/product/ProductCard.d.ts +0 -9
  503. package/dist/types/form/product/ProductVariantsDialog.d.ts +0 -14
  504. package/dist/types/form/shipping/ShippingSkeleton.d.ts +0 -7
  505. package/dist/types/form/style.d.ts +0 -11
  506. package/dist/types/form/timeslot/TimeslotCalendar.d.ts +0 -12
  507. package/dist/types/hooks/data/useActiveEventProducts.d.ts +0 -8
  508. package/dist/types/hooks/data/useAllowedPaymentMethods.d.ts +0 -9
  509. package/dist/types/hooks/data/useEvent.d.ts +0 -8
  510. package/dist/types/hooks/data/useEventActiveReleases.d.ts +0 -8
  511. package/dist/types/hooks/data/useEventShippingMethods.d.ts +0 -8
  512. package/dist/types/hooks/data/useEventTimeslots.d.ts +0 -10
  513. package/dist/types/hooks/useCountdown.d.ts +0 -6
  514. package/dist/types/hooks/useDebounce.d.ts +0 -1
  515. package/dist/types/hooks/useErrors.d.ts +0 -4
  516. package/dist/types/hooks/useEventListener.d.ts +0 -5
  517. package/dist/types/hooks/useFirstRender.d.ts +0 -1
  518. package/dist/types/hooks/useGlobal.d.ts +0 -2
  519. package/dist/types/hooks/useResponsive.d.ts +0 -8
  520. package/dist/types/index.d.ts +0 -4
  521. package/dist/types/locales/cs.d.ts +0 -157
  522. package/dist/types/locales/en.d.ts +0 -158
  523. package/dist/types/locales/es.d.ts +0 -158
  524. package/dist/types/locales/index.d.ts +0 -6
  525. package/dist/types/locales/pl.d.ts +0 -158
  526. package/dist/types/locales/sk.d.ts +0 -158
  527. package/dist/types/locales/uk.d.ts +0 -158
  528. package/dist/types/modules/event-timeslot.d.ts +0 -2
  529. package/dist/types/modules/event.d.ts +0 -5
  530. package/dist/types/modules/order.d.ts +0 -7
  531. package/dist/types/modules/promo-code.d.ts +0 -1
  532. package/dist/types/modules/shopping-cart.d.ts +0 -4
  533. package/dist/types/utils/axios.d.ts +0 -2
  534. package/dist/types/utils/data/cookie.d.ts +0 -1
  535. package/dist/types/utils/data/currency.d.ts +0 -5
  536. package/dist/types/utils/data/event.d.ts +0 -4
  537. package/dist/types/utils/data/extra-field.d.ts +0 -11
  538. package/dist/types/utils/data/gender.d.ts +0 -5
  539. package/dist/types/utils/data/global.d.ts +0 -1
  540. package/dist/types/utils/data/gopay.d.ts +0 -10
  541. package/dist/types/utils/data/language.d.ts +0 -10
  542. package/dist/types/utils/data/order.d.ts +0 -4
  543. package/dist/types/utils/data/product.d.ts +0 -3
  544. package/dist/types/utils/data/promo-code.d.ts +0 -4
  545. package/dist/types/utils/data/shipping-method.d.ts +0 -4
  546. package/dist/types/utils/data/shopping-cart.d.ts +0 -5
  547. package/dist/types/utils/formatNumber.d.ts +0 -8
  548. package/dist/types/utils/global.d.ts +0 -4
  549. package/dist/types/utils/gtm.d.ts +0 -28
  550. package/dist/types/utils/isBrowser.d.ts +0 -1
  551. package/dist/types/utils/place.d.ts +0 -2
  552. package/dist/types/utils/price.d.ts +0 -5
  553. package/dist/types/utils/product.d.ts +0 -3
  554. package/dist/types/utils/translation.d.ts +0 -2
  555. package/dist/types/utils/types/animate.d.ts +0 -26
  556. package/dist/types/utils/types/artist.type.d.ts +0 -17
  557. package/dist/types/utils/types/company.type.d.ts +0 -12
  558. package/dist/types/utils/types/country.type.d.ts +0 -39
  559. package/dist/types/utils/types/customer.type.d.ts +0 -10
  560. package/dist/types/utils/types/event-product.type.d.ts +0 -15
  561. package/dist/types/utils/types/event-timeslot.type.d.ts +0 -15
  562. package/dist/types/utils/types/event.type.d.ts +0 -67
  563. package/dist/types/utils/types/extra-field.type.d.ts +0 -18
  564. package/dist/types/utils/types/file.type.d.ts +0 -6
  565. package/dist/types/utils/types/global.type.d.ts +0 -76
  566. package/dist/types/utils/types/gtm.type.d.ts +0 -90
  567. package/dist/types/utils/types/locale.type.d.ts +0 -4
  568. package/dist/types/utils/types/order.type.d.ts +0 -69
  569. package/dist/types/utils/types/palette.type.d.ts +0 -1
  570. package/dist/types/utils/types/payment-method.type.d.ts +0 -23
  571. package/dist/types/utils/types/pixel.type.d.ts +0 -7
  572. package/dist/types/utils/types/place.type.d.ts +0 -19
  573. package/dist/types/utils/types/product-image.type.d.ts +0 -5
  574. package/dist/types/utils/types/product-parameter.type.d.ts +0 -7
  575. package/dist/types/utils/types/product-variant.type.d.ts +0 -9
  576. package/dist/types/utils/types/product.type.d.ts +0 -57
  577. package/dist/types/utils/types/project.type.d.ts +0 -24
  578. package/dist/types/utils/types/promo-code.type.d.ts +0 -15
  579. package/dist/types/utils/types/release-category.type.d.ts +0 -17
  580. package/dist/types/utils/types/release.type.d.ts +0 -28
  581. package/dist/types/utils/types/shipping-method.type.d.ts +0 -11
  582. package/dist/types/utils/types/shopping-cart.type.d.ts +0 -78
  583. package/dist/types/utils/types/ticket.type.d.ts +0 -110
  584. package/dist/types/utils/types/translation.type.d.ts +0 -18
  585. package/dist/types/utils/types/user.type.d.ts +0 -9
  586. package/dist/types/utils/url.d.ts +0 -1
  587. package/src/form/MerchandiseSelection.tsx +0 -29
  588. package/src/form/ReleaseWithMerchandise.tsx +0 -230
  589. /package/src/form/{TicketSelectionMap.tsx → tickets/TicketSelectionMap.tsx} +0 -0
@@ -0,0 +1,57 @@
1
+ import React from 'react';
2
+ import { Button, Collapse, Typography } from '@mui/material';
3
+ import { Iconify } from '@components/iconify';
4
+
5
+ interface ReleaseDescriptionProps {
6
+ description?: string | null;
7
+ isExpanded: boolean;
8
+ onToggle: () => void;
9
+ moreInfoLabel: string;
10
+ showCollapse?: boolean;
11
+ }
12
+
13
+ const ReleaseDescription: React.FC<ReleaseDescriptionProps> = ({
14
+ description,
15
+ isExpanded,
16
+ onToggle,
17
+ moreInfoLabel,
18
+ showCollapse = false,
19
+ }) => {
20
+ if (!description) return null;
21
+
22
+ if (showCollapse) {
23
+ return (
24
+ <Collapse in={isExpanded}>
25
+ <Typography variant="body2" color="text.secondary">
26
+ {description}
27
+ </Typography>
28
+ </Collapse>
29
+ );
30
+ }
31
+
32
+ return (
33
+ <Button
34
+ size="small"
35
+ onClick={onToggle}
36
+ endIcon={
37
+ <Iconify
38
+ sx={{ width: 24, height: 24 }}
39
+ icon={isExpanded ? 'eva:chevron-up-fill' : 'eva:chevron-down-fill'}
40
+ />
41
+ }
42
+ sx={{
43
+ px: 0,
44
+ minWidth: 'auto',
45
+ textTransform: 'none',
46
+ color: 'text.primary',
47
+ textDecoration: 'underline',
48
+ fontWeight: 400,
49
+ '& .MuiButton-endIcon': { ml: 0 },
50
+ }}
51
+ >
52
+ {moreInfoLabel}
53
+ </Button>
54
+ );
55
+ };
56
+
57
+ export default ReleaseDescription;
@@ -0,0 +1,237 @@
1
+ import React, { useCallback, useState } from 'react';
2
+ import { Box, Stack, Typography } from '@mui/material';
3
+ import ProductVariantsDialog from '@form/product/ProductVariantsDialog';
4
+ import TicketQuantityControl from '@form/tickets/TicketQuantityControl';
5
+ import { IReleaseShort } from '@utils/types/release.type';
6
+ import { ITicketForm, ITicketFormTicket } from '@utils/types/ticket.type';
7
+ import { useFormContext, useWatch } from 'react-hook-form';
8
+ import { IEventProductForm } from '@utils/types/product.type';
9
+ import { fCurrency } from '@utils/formatNumber';
10
+ import { Currencies } from '@utils/data/currency';
11
+ import { getSelectedQuantityByVariant } from '@utils/product';
12
+ import ReleaseExtraFields from '@form/extra-field/ReleaseExtraFields';
13
+ import ReleaseDescription from '@form/tickets/ReleaseDescription';
14
+ import useGlobal from '@hooks/useGlobal.ts';
15
+
16
+ interface Props {
17
+ eventId: number;
18
+ release: IReleaseShort;
19
+ activeReleases: IReleaseShort[];
20
+ currency: Currencies;
21
+ index: number;
22
+ }
23
+
24
+ const ReleaseWithMerchandise: React.FC<Props> = ({
25
+ eventId,
26
+ release,
27
+ activeReleases,
28
+ currency,
29
+ index,
30
+ }) => {
31
+ const { t, lang } = useGlobal();
32
+ const [openVariantDialog, setOpenVariantDialog] = useState<'add' | 'increase' | null>(null);
33
+ const [isDescriptionExpanded, setIsDescriptionExpanded] = useState(false);
34
+ const { setValue } = useFormContext<ITicketForm>();
35
+ const tickets: ITicketFormTicket[] = useWatch({ name: `tickets.${eventId}`, defaultValue: [] });
36
+ const products: IEventProductForm[] = useWatch({ name: `products.${eventId}`, defaultValue: [] });
37
+ const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);
38
+ const countTickets = addedRelease?.quantity || 0;
39
+
40
+ const getReleaseTitle = (release: IReleaseShort) =>
41
+ release.releaseCategoryName || release.name || '';
42
+
43
+ const getSelectedQuantity = (id: number) =>
44
+ tickets.find((ticket) => ticket.releaseId === id)?.quantity || 0;
45
+
46
+ const getAvailableTicketsForRelease = (release: ITicketFormTicket): number => {
47
+ const selectedRelease = activeReleases?.find((item) => item.id === release.releaseId);
48
+ const availableQuantity = selectedRelease ? selectedRelease.availableTickets : 0;
49
+ return availableQuantity > 10 ? 10 : availableQuantity;
50
+ };
51
+
52
+ const isMaxQuantity = (releaseId: number) => {
53
+ const release = tickets.find((ticket) => ticket.releaseId === releaseId);
54
+ if (!release) return false;
55
+ return getSelectedQuantity(releaseId) >= getAvailableTicketsForRelease(release);
56
+ };
57
+
58
+ const addRelease = (productsToAdd?: IEventProductForm[] | IEventProductForm) => {
59
+ const normalizedProducts = Array.isArray(productsToAdd)
60
+ ? productsToAdd
61
+ : productsToAdd
62
+ ? [productsToAdd]
63
+ : [];
64
+ const quantity = normalizedProducts.length ? normalizedProducts.length : 1;
65
+ const extraFields = release.extraFields?.length
66
+ ? Array.from({ length: quantity }, () =>
67
+ release.extraFields!.map((field) => ({
68
+ eventExtraFieldId: field.id,
69
+ value: '',
70
+ }))
71
+ )
72
+ : [];
73
+
74
+ setValue(`tickets.${eventId}`, [
75
+ ...tickets,
76
+ {
77
+ releaseId: release.id,
78
+ quantity,
79
+ itemName: '',
80
+ price: 0,
81
+ products: normalizedProducts,
82
+ extraFields,
83
+ },
84
+ ]);
85
+ setOpenVariantDialog(null);
86
+ };
87
+
88
+ const increaseQuantity = (productsToAdd?: IEventProductForm[] | IEventProductForm) => {
89
+ const normalizedProducts = Array.isArray(productsToAdd)
90
+ ? productsToAdd
91
+ : productsToAdd
92
+ ? [productsToAdd]
93
+ : [];
94
+ const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);
95
+ if (addedRelease) {
96
+ const increment = normalizedProducts.length ? normalizedProducts.length : 1;
97
+ const maxQuantity = getAvailableTicketsForRelease(addedRelease);
98
+ const availableIncrement = Math.max(
99
+ 0,
100
+ Math.min(increment, maxQuantity - Number(addedRelease.quantity))
101
+ );
102
+ if (availableIncrement === 0) return;
103
+
104
+ const newQuantity = Number(addedRelease.quantity) + availableIncrement;
105
+ const productsSlice = normalizedProducts.slice(0, availableIncrement);
106
+ const extraFieldsToAdd = release.extraFields?.length
107
+ ? Array.from({ length: availableIncrement }, () =>
108
+ release.extraFields!.map((field) => ({
109
+ eventExtraFieldId: field.id,
110
+ value: '',
111
+ }))
112
+ )
113
+ : [];
114
+
115
+ setValue(
116
+ `tickets.${eventId}`,
117
+ tickets.map((ticket) =>
118
+ ticket.releaseId === release.id
119
+ ? {
120
+ ...ticket,
121
+ quantity: newQuantity > maxQuantity ? maxQuantity : newQuantity,
122
+ products: [...ticket.products, ...productsSlice],
123
+ extraFields: release.extraFields?.length
124
+ ? [...ticket.extraFields, ...extraFieldsToAdd]
125
+ : [],
126
+ }
127
+ : ticket
128
+ )
129
+ );
130
+ setOpenVariantDialog(null);
131
+ }
132
+ };
133
+
134
+ const decreaseQuantity = useCallback(() => {
135
+ const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);
136
+ if (addedRelease) {
137
+ const newQuantity = Number(addedRelease.quantity) - 1;
138
+ if (newQuantity < 1) {
139
+ setValue(
140
+ `tickets.${eventId}`,
141
+ tickets.filter((ticket) => ticket.releaseId !== release.id)
142
+ );
143
+ } else {
144
+ setValue(
145
+ `tickets.${eventId}`,
146
+ tickets.map((ticket) => {
147
+ if (ticket.releaseId !== release.id) return ticket;
148
+
149
+ return {
150
+ ...ticket,
151
+ quantity: newQuantity,
152
+ products: ticket?.products?.slice(0, -1), // non-mutating "pop"
153
+ extraFields: ticket?.extraFields?.slice(0, -1),
154
+ };
155
+ })
156
+ );
157
+ }
158
+ }
159
+ }, [tickets, release.id, setValue]);
160
+
161
+ return (
162
+ <Box
163
+ sx={{
164
+ p: 1,
165
+ pb: 0,
166
+ borderRadius: 1,
167
+ bgcolor: (theme) =>
168
+ theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[800],
169
+ }}
170
+ >
171
+ <Stack spacing={0}>
172
+ <Box>
173
+ <Typography variant="subtitle1" fontWeight={600}>
174
+ {getReleaseTitle(release)}
175
+ </Typography>
176
+ </Box>
177
+
178
+ <Stack direction="row" alignItems="center" justifyContent="space-between">
179
+ <Stack>
180
+ <Typography variant="body2">
181
+ {release.price === 0 ? t('free') : fCurrency(release.price, lang, currency)}
182
+ </Typography>
183
+
184
+ <ReleaseDescription
185
+ description={release.description}
186
+ isExpanded={isDescriptionExpanded}
187
+ onToggle={() => setIsDescriptionExpanded((prev) => !prev)}
188
+ moreInfoLabel={t('more_info')}
189
+ />
190
+ </Stack>
191
+
192
+ <TicketQuantityControl
193
+ quantity={getSelectedQuantity(release.id)}
194
+ isDisabled={release.locked}
195
+ canAddFirst={!release.locked}
196
+ canAddMore={!isMaxQuantity(release.id)}
197
+ addLabel={t('add')}
198
+ onDecrement={() => decreaseQuantity()}
199
+ onIncrement={() =>
200
+ release.product ? setOpenVariantDialog('increase') : increaseQuantity()
201
+ }
202
+ onAddFirst={() => (release.product ? setOpenVariantDialog('add') : addRelease())}
203
+ />
204
+ </Stack>
205
+
206
+ <ReleaseDescription
207
+ description={release.description}
208
+ isExpanded={isDescriptionExpanded}
209
+ onToggle={() => setIsDescriptionExpanded((prev) => !prev)}
210
+ moreInfoLabel={t('more_info')}
211
+ showCollapse
212
+ />
213
+ {release.extraFields && release.extraFields.length > 0 && (
214
+ <ReleaseExtraFields
215
+ release={release}
216
+ eventId={eventId}
217
+ releaseIndex={index}
218
+ quantity={countTickets}
219
+ />
220
+ )}
221
+ {release.product && (
222
+ <ProductVariantsDialog
223
+ eventProduct={release.product}
224
+ openDialog={!!openVariantDialog}
225
+ callback={openVariantDialog === 'increase' ? increaseQuantity : addRelease}
226
+ onClose={() => setOpenVariantDialog(null)}
227
+ selectedQuantityByVariant={getSelectedQuantityByVariant(products, tickets)}
228
+ eventId={eventId}
229
+ canAddOnlyOneAtATime
230
+ />
231
+ )}
232
+ </Stack>
233
+ </Box>
234
+ );
235
+ };
236
+
237
+ export default ReleaseWithMerchandise;
@@ -0,0 +1,93 @@
1
+ import React from 'react';
2
+ import { Box, Button, IconButton, Stack } from '@mui/material';
3
+ import { Iconify } from '@components/iconify';
4
+
5
+ interface TicketQuantityControlProps {
6
+ quantity: number;
7
+ isDisabled: boolean;
8
+ canAddFirst: boolean;
9
+ canAddMore: boolean;
10
+ addLabel: string;
11
+ onDecrement: () => void;
12
+ onIncrement: () => void;
13
+ onAddFirst: () => void;
14
+ }
15
+
16
+ const TicketQuantityControl: React.FC<TicketQuantityControlProps> = ({
17
+ quantity,
18
+ isDisabled,
19
+ canAddFirst,
20
+ canAddMore,
21
+ addLabel,
22
+ onDecrement,
23
+ onIncrement,
24
+ onAddFirst,
25
+ }) => {
26
+ if (quantity > 0) {
27
+ return (
28
+ <Stack direction="row" spacing={{ xs: 0.5, md: 1 }} alignItems="center">
29
+ <IconButton
30
+ onClick={onDecrement}
31
+ disabled={isDisabled || quantity <= 0}
32
+ sx={{
33
+ width: { xs: 32, md: 40 },
34
+ height: { xs: 32, md: 40 },
35
+ borderRadius: 1,
36
+ border: '1px solid',
37
+ borderColor: 'grey.300',
38
+ }}
39
+ >
40
+ <Iconify icon="eva:minus-fill" />
41
+ </IconButton>
42
+ <Box
43
+ sx={{
44
+ width: { xs: 32, md: 40 },
45
+ height: { xs: 32, md: 40 },
46
+ borderRadius: 1,
47
+ border: '1px solid',
48
+ borderColor: 'grey.300',
49
+ display: 'flex',
50
+ alignItems: 'center',
51
+ justifyContent: 'center',
52
+ fontWeight: 600,
53
+ }}
54
+ >
55
+ {quantity}
56
+ </Box>
57
+ <IconButton
58
+ onClick={onIncrement}
59
+ disabled={isDisabled || !canAddMore}
60
+ sx={{
61
+ width: { xs: 32, md: 40 },
62
+ height: { xs: 32, md: 40 },
63
+ borderRadius: 1,
64
+ bgcolor: 'primary.main',
65
+ color: 'primary.contrastText',
66
+ '&:hover': { bgcolor: 'primary.dark' },
67
+ }}
68
+ >
69
+ <Iconify icon="eva:plus-fill" />
70
+ </IconButton>
71
+ </Stack>
72
+ );
73
+ }
74
+
75
+ return (
76
+ <Button
77
+ variant="contained"
78
+ onClick={onAddFirst}
79
+ disabled={isDisabled || !canAddFirst}
80
+ sx={{
81
+ height: { xs: 32, md: 40 },
82
+ borderRadius: 1,
83
+ px: 3,
84
+ textTransform: 'none',
85
+ fontWeight: 600,
86
+ }}
87
+ >
88
+ {addLabel}
89
+ </Button>
90
+ );
91
+ };
92
+
93
+ export default TicketQuantityControl;