@eventlook/sdk 1.4.4 → 1.4.5-1.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 (447) hide show
  1. package/.env.example +1 -0
  2. package/dev-frontend.sh +32 -0
  3. package/dist/cjs/_virtual/_commonjsHelpers.js +4 -2
  4. package/dist/cjs/_virtual/_commonjsHelpers.js.map +1 -1
  5. package/dist/cjs/_virtual/index.js +2 -2
  6. package/dist/cjs/_virtual/index2.js +2 -2
  7. package/dist/cjs/_virtual/index3.js +2 -2
  8. package/dist/cjs/components/Image.js +29 -14
  9. package/dist/cjs/components/Image.js.map +1 -1
  10. package/dist/cjs/components/hook-form/FormProvider.js +2 -2
  11. package/dist/cjs/components/hook-form/FormProvider.js.map +1 -1
  12. package/dist/cjs/context/GlobalContext.js +2 -1
  13. package/dist/cjs/context/GlobalContext.js.map +1 -1
  14. package/dist/cjs/form/ChildEventDialog.js +3 -3
  15. package/dist/cjs/form/ChildEventDialog.js.map +1 -1
  16. package/dist/cjs/form/ContactPerson.js +1 -1
  17. package/dist/cjs/form/ContactPerson.js.map +1 -1
  18. package/dist/cjs/form/Payment.js +2 -4
  19. package/dist/cjs/form/Payment.js.map +1 -1
  20. package/dist/cjs/form/PaymentOverviewBox.js +104 -115
  21. package/dist/cjs/form/PaymentOverviewBox.js.map +1 -1
  22. package/dist/cjs/form/PaymentOverviewDrawer.js +317 -0
  23. package/dist/cjs/form/PaymentOverviewDrawer.js.map +1 -0
  24. package/dist/cjs/form/PaymentPending.js +15 -3
  25. package/dist/cjs/form/PaymentPending.js.map +1 -1
  26. package/dist/cjs/form/PaymentSuccess.js +39 -2
  27. package/dist/cjs/form/PaymentSuccess.js.map +1 -1
  28. package/dist/cjs/form/ReleaseWithMerchandise.js +57 -48
  29. package/dist/cjs/form/ReleaseWithMerchandise.js.map +1 -1
  30. package/dist/cjs/form/Shipping.js +33 -27
  31. package/dist/cjs/form/Shipping.js.map +1 -1
  32. package/dist/cjs/form/TicketForm.js +102 -35
  33. package/dist/cjs/form/TicketForm.js.map +1 -1
  34. package/dist/cjs/form/TicketQuantityControl.js +51 -0
  35. package/dist/cjs/form/TicketQuantityControl.js.map +1 -0
  36. package/dist/cjs/form/TicketSelection.js +29 -11
  37. package/dist/cjs/form/TicketSelection.js.map +1 -1
  38. package/dist/cjs/form/TicketSelectionMap.js +67 -0
  39. package/dist/cjs/form/TicketSelectionMap.js.map +1 -0
  40. package/dist/cjs/form/TicketSelectionMobile.js +98 -0
  41. package/dist/cjs/form/TicketSelectionMobile.js.map +1 -0
  42. package/dist/cjs/form/TicketWithMerchandiseSelection.js +46 -10
  43. package/dist/cjs/form/TicketWithMerchandiseSelection.js.map +1 -1
  44. package/dist/cjs/form/extra-field/ExtraField.js.map +1 -1
  45. package/dist/cjs/form/extra-field/ReleaseExtraFields.js +1 -1
  46. package/dist/cjs/form/extra-field/ReleaseExtraFields.js.map +1 -1
  47. package/dist/cjs/form/index.js +2 -2
  48. package/dist/cjs/form/index.js.map +1 -1
  49. package/dist/cjs/form/merchandise/MerchandiseSelection.js +14 -0
  50. package/dist/cjs/form/merchandise/MerchandiseSelection.js.map +1 -0
  51. package/dist/cjs/form/merchandise/MerchandiseSlider.js +40 -0
  52. package/dist/cjs/form/merchandise/MerchandiseSlider.js.map +1 -0
  53. package/dist/cjs/form/merchendise/MerchandiseSelection.js +19 -0
  54. package/dist/cjs/form/merchendise/MerchandiseSelection.js.map +1 -0
  55. package/dist/cjs/form/merchendise/MerchandiseSlider.js +75 -0
  56. package/dist/cjs/form/merchendise/MerchandiseSlider.js.map +1 -0
  57. package/dist/cjs/form/payment/FeeBox.js +5 -17
  58. package/dist/cjs/form/payment/FeeBox.js.map +1 -1
  59. package/dist/cjs/form/payment/PaymentOverviewCheckbox.js +52 -0
  60. package/dist/cjs/form/payment/PaymentOverviewCheckbox.js.map +1 -0
  61. package/dist/cjs/form/product/ProductCard.js +147 -36
  62. package/dist/cjs/form/product/ProductCard.js.map +1 -1
  63. package/dist/cjs/form/product/ProductVariantsDialog.js +182 -97
  64. package/dist/cjs/form/product/ProductVariantsDialog.js.map +1 -1
  65. package/dist/cjs/form/services/index.js +116 -0
  66. package/dist/cjs/form/services/index.js.map +1 -0
  67. package/dist/cjs/form/style.js +13 -4
  68. package/dist/cjs/form/style.js.map +1 -1
  69. package/dist/cjs/form/tickets/ReleaseDescription.js +23 -0
  70. package/dist/cjs/form/tickets/ReleaseDescription.js.map +1 -0
  71. package/dist/cjs/form/tickets/ReleaseWithMerchandise.js +164 -0
  72. package/dist/cjs/form/tickets/ReleaseWithMerchandise.js.map +1 -0
  73. package/dist/cjs/form/tickets/TicketQuantityControl.js +54 -0
  74. package/dist/cjs/form/tickets/TicketQuantityControl.js.map +1 -0
  75. package/dist/cjs/form/tickets/TicketSelection.js +162 -0
  76. package/dist/cjs/form/tickets/TicketSelection.js.map +1 -0
  77. package/dist/cjs/form/tickets/TicketSelectionMap.js +79 -0
  78. package/dist/cjs/form/tickets/TicketSelectionMap.js.map +1 -0
  79. package/dist/cjs/form/tickets/TicketSelectionMobile.js +100 -0
  80. package/dist/cjs/form/tickets/TicketSelectionMobile.js.map +1 -0
  81. package/dist/cjs/form/tickets/TicketWithMerchandiseSelection.js +127 -0
  82. package/dist/cjs/form/tickets/TicketWithMerchandiseSelection.js.map +1 -0
  83. package/dist/cjs/hooks/useConsentScrollOnDrawerOpen.js +59 -0
  84. package/dist/cjs/hooks/useConsentScrollOnDrawerOpen.js.map +1 -0
  85. package/dist/cjs/hooks/useScrollToFirstError.js +73 -0
  86. package/dist/cjs/hooks/useScrollToFirstError.js.map +1 -0
  87. package/dist/cjs/locales/cs.js +47 -2
  88. package/dist/cjs/locales/cs.js.map +1 -1
  89. package/dist/cjs/locales/en.js +47 -1
  90. package/dist/cjs/locales/en.js.map +1 -1
  91. package/dist/cjs/locales/es.js +47 -1
  92. package/dist/cjs/locales/es.js.map +1 -1
  93. package/dist/cjs/locales/pl.js +47 -1
  94. package/dist/cjs/locales/pl.js.map +1 -1
  95. package/dist/cjs/locales/sk.js +47 -1
  96. package/dist/cjs/locales/sk.js.map +1 -1
  97. package/dist/cjs/locales/uk.js +47 -1
  98. package/dist/cjs/locales/uk.js.map +1 -1
  99. package/dist/cjs/modules/shopping-cart.js +10 -9
  100. package/dist/cjs/modules/shopping-cart.js.map +1 -1
  101. package/dist/cjs/utils/data/global.js +2 -0
  102. package/dist/cjs/utils/data/global.js.map +1 -1
  103. package/dist/cjs/utils/data/ticket.js +6 -0
  104. package/dist/cjs/utils/data/ticket.js.map +1 -0
  105. package/dist/cjs/utils/gtm.js +20 -0
  106. package/dist/cjs/utils/gtm.js.map +1 -1
  107. package/dist/esm/_virtual/_commonjsHelpers.js +4 -2
  108. package/dist/esm/_virtual/_commonjsHelpers.js.map +1 -1
  109. package/dist/esm/_virtual/index.js +2 -2
  110. package/dist/esm/_virtual/index2.js +2 -2
  111. package/dist/esm/_virtual/index3.js +2 -2
  112. package/dist/esm/components/Image.js +30 -15
  113. package/dist/esm/components/Image.js.map +1 -1
  114. package/dist/esm/components/hook-form/FormProvider.js +2 -2
  115. package/dist/esm/components/hook-form/FormProvider.js.map +1 -1
  116. package/dist/esm/context/GlobalContext.js +2 -1
  117. package/dist/esm/context/GlobalContext.js.map +1 -1
  118. package/dist/esm/form/ChildEventDialog.js +3 -3
  119. package/dist/esm/form/ChildEventDialog.js.map +1 -1
  120. package/dist/esm/form/ContactPerson.js +1 -1
  121. package/dist/esm/form/ContactPerson.js.map +1 -1
  122. package/dist/esm/form/Payment.js +2 -4
  123. package/dist/esm/form/Payment.js.map +1 -1
  124. package/dist/esm/form/PaymentOverviewBox.js +107 -118
  125. package/dist/esm/form/PaymentOverviewBox.js.map +1 -1
  126. package/dist/esm/form/PaymentOverviewDrawer.js +313 -0
  127. package/dist/esm/form/PaymentOverviewDrawer.js.map +1 -0
  128. package/dist/esm/form/PaymentPending.js +16 -4
  129. package/dist/esm/form/PaymentPending.js.map +1 -1
  130. package/dist/esm/form/PaymentSuccess.js +39 -2
  131. package/dist/esm/form/PaymentSuccess.js.map +1 -1
  132. package/dist/esm/form/ReleaseWithMerchandise.js +58 -49
  133. package/dist/esm/form/ReleaseWithMerchandise.js.map +1 -1
  134. package/dist/esm/form/Shipping.js +33 -27
  135. package/dist/esm/form/Shipping.js.map +1 -1
  136. package/dist/esm/form/TicketForm.js +104 -37
  137. package/dist/esm/form/TicketForm.js.map +1 -1
  138. package/dist/esm/form/TicketQuantityControl.js +47 -0
  139. package/dist/esm/form/TicketQuantityControl.js.map +1 -0
  140. package/dist/esm/form/TicketSelection.js +30 -12
  141. package/dist/esm/form/TicketSelection.js.map +1 -1
  142. package/dist/esm/form/TicketSelectionMap.js +63 -0
  143. package/dist/esm/form/TicketSelectionMap.js.map +1 -0
  144. package/dist/esm/form/TicketSelectionMobile.js +94 -0
  145. package/dist/esm/form/TicketSelectionMobile.js.map +1 -0
  146. package/dist/esm/form/TicketWithMerchandiseSelection.js +48 -12
  147. package/dist/esm/form/TicketWithMerchandiseSelection.js.map +1 -1
  148. package/dist/esm/form/extra-field/ExtraField.js.map +1 -1
  149. package/dist/esm/form/extra-field/ReleaseExtraFields.js +1 -1
  150. package/dist/esm/form/extra-field/ReleaseExtraFields.js.map +1 -1
  151. package/dist/esm/form/index.js +2 -2
  152. package/dist/esm/form/index.js.map +1 -1
  153. package/dist/esm/form/merchandise/MerchandiseSelection.js +10 -0
  154. package/dist/esm/form/merchandise/MerchandiseSelection.js.map +1 -0
  155. package/dist/esm/form/merchandise/MerchandiseSlider.js +36 -0
  156. package/dist/esm/form/merchandise/MerchandiseSlider.js.map +1 -0
  157. package/dist/esm/form/merchendise/MerchandiseSelection.js +15 -0
  158. package/dist/esm/form/merchendise/MerchandiseSelection.js.map +1 -0
  159. package/dist/esm/form/merchendise/MerchandiseSlider.js +71 -0
  160. package/dist/esm/form/merchendise/MerchandiseSlider.js.map +1 -0
  161. package/dist/esm/form/payment/FeeBox.js +6 -18
  162. package/dist/esm/form/payment/FeeBox.js.map +1 -1
  163. package/dist/esm/form/payment/PaymentOverviewCheckbox.js +48 -0
  164. package/dist/esm/form/payment/PaymentOverviewCheckbox.js.map +1 -0
  165. package/dist/esm/form/product/ProductCard.js +148 -37
  166. package/dist/esm/form/product/ProductCard.js.map +1 -1
  167. package/dist/esm/form/product/ProductVariantsDialog.js +184 -99
  168. package/dist/esm/form/product/ProductVariantsDialog.js.map +1 -1
  169. package/dist/esm/form/services/index.js +112 -0
  170. package/dist/esm/form/services/index.js.map +1 -0
  171. package/dist/esm/form/style.js +13 -4
  172. package/dist/esm/form/style.js.map +1 -1
  173. package/dist/esm/form/tickets/ReleaseDescription.js +19 -0
  174. package/dist/esm/form/tickets/ReleaseDescription.js.map +1 -0
  175. package/dist/esm/form/tickets/ReleaseWithMerchandise.js +160 -0
  176. package/dist/esm/form/tickets/ReleaseWithMerchandise.js.map +1 -0
  177. package/dist/esm/form/tickets/TicketQuantityControl.js +50 -0
  178. package/dist/esm/form/tickets/TicketQuantityControl.js.map +1 -0
  179. package/dist/esm/form/tickets/TicketSelection.js +158 -0
  180. package/dist/esm/form/tickets/TicketSelection.js.map +1 -0
  181. package/dist/esm/form/tickets/TicketSelectionMap.js +75 -0
  182. package/dist/esm/form/tickets/TicketSelectionMap.js.map +1 -0
  183. package/dist/esm/form/tickets/TicketSelectionMobile.js +96 -0
  184. package/dist/esm/form/tickets/TicketSelectionMobile.js.map +1 -0
  185. package/dist/esm/form/tickets/TicketWithMerchandiseSelection.js +123 -0
  186. package/dist/esm/form/tickets/TicketWithMerchandiseSelection.js.map +1 -0
  187. package/dist/esm/hooks/useConsentScrollOnDrawerOpen.js +55 -0
  188. package/dist/esm/hooks/useConsentScrollOnDrawerOpen.js.map +1 -0
  189. package/dist/esm/hooks/useScrollToFirstError.js +69 -0
  190. package/dist/esm/hooks/useScrollToFirstError.js.map +1 -0
  191. package/dist/esm/locales/cs.js +47 -2
  192. package/dist/esm/locales/cs.js.map +1 -1
  193. package/dist/esm/locales/en.js +47 -1
  194. package/dist/esm/locales/en.js.map +1 -1
  195. package/dist/esm/locales/es.js +47 -1
  196. package/dist/esm/locales/es.js.map +1 -1
  197. package/dist/esm/locales/pl.js +47 -1
  198. package/dist/esm/locales/pl.js.map +1 -1
  199. package/dist/esm/locales/sk.js +47 -1
  200. package/dist/esm/locales/sk.js.map +1 -1
  201. package/dist/esm/locales/uk.js +47 -1
  202. package/dist/esm/locales/uk.js.map +1 -1
  203. package/dist/esm/modules/shopping-cart.js +9 -8
  204. package/dist/esm/modules/shopping-cart.js.map +1 -1
  205. package/dist/esm/utils/data/global.js +2 -1
  206. package/dist/esm/utils/data/global.js.map +1 -1
  207. package/dist/esm/utils/data/ticket.js +4 -0
  208. package/dist/esm/utils/data/ticket.js.map +1 -0
  209. package/dist/esm/utils/gtm.js +19 -1
  210. package/dist/esm/utils/gtm.js.map +1 -1
  211. package/dist/types/context/GlobalContext.d.ts +2 -1
  212. package/dist/types/form/PaymentOverviewDrawer.d.ts +8 -0
  213. package/dist/types/form/PaymentSuccess.d.ts +2 -0
  214. package/dist/types/form/TicketSelectionMap.d.ts +7 -0
  215. package/dist/types/form/extra-field/ExtraField.d.ts +1 -1
  216. package/dist/types/form/index.d.ts +1 -0
  217. package/dist/types/form/merchendise/MerchandiseSelection.d.ts +9 -0
  218. package/dist/types/form/merchendise/MerchandiseSlider.d.ts +10 -0
  219. package/dist/types/form/merchendise/MerchendiseSlider.d.ts +0 -0
  220. package/dist/types/form/payment/PaymentOverviewCheckbox.d.ts +12 -0
  221. package/dist/types/locales/cs.d.ts +23 -0
  222. package/dist/types/locales/en.d.ts +24 -0
  223. package/dist/types/locales/es.d.ts +24 -0
  224. package/dist/types/locales/pl.d.ts +24 -0
  225. package/dist/types/locales/sk.d.ts +24 -0
  226. package/dist/types/locales/uk.d.ts +24 -0
  227. package/dist/types/modules/shopping-cart.d.ts +3 -5
  228. package/dist/types/utils/data/shopping-cart.d.ts +5 -0
  229. package/dist/types/utils/gtm.d.ts +3 -1
  230. package/dist/types/utils/types/event.type.d.ts +1 -0
  231. package/dist/types/utils/types/global.type.d.ts +1 -0
  232. package/dist/types/utils/types/gtm.type.d.ts +5 -0
  233. package/dist/types/utils/types/order.type.d.ts +1 -0
  234. package/dist/types/utils/types/shopping-cart.type.d.ts +44 -35
  235. package/dist/types/utils/types/ticket.type.d.ts +21 -5
  236. package/package.json +11 -6
  237. package/rollup.config.mjs +16 -1
  238. package/src/components/Image.tsx +49 -27
  239. package/src/components/hook-form/FormProvider.tsx +5 -2
  240. package/src/context/GlobalContext.tsx +3 -0
  241. package/src/form/ChildEventDialog.tsx +3 -3
  242. package/src/form/ContactPerson.tsx +1 -1
  243. package/src/form/Payment.tsx +2 -4
  244. package/src/form/PaymentOverviewBox.tsx +178 -139
  245. package/src/form/PaymentOverviewDrawer.tsx +446 -0
  246. package/src/form/PaymentPending.tsx +19 -3
  247. package/src/form/PaymentSuccess.tsx +46 -3
  248. package/src/form/Shipping.tsx +48 -33
  249. package/src/form/TicketForm.tsx +162 -43
  250. package/src/form/extra-field/ExtraField.tsx +3 -1
  251. package/src/form/extra-field/ReleaseExtraFields.tsx +1 -1
  252. package/src/form/index.tsx +6 -1
  253. package/src/form/merchandise/MerchandiseSelection.tsx +24 -0
  254. package/src/form/merchandise/MerchandiseSlider.tsx +62 -0
  255. package/src/form/payment/FeeBox.tsx +6 -34
  256. package/src/form/payment/PaymentOverviewCheckbox.tsx +88 -0
  257. package/src/form/product/ProductCard.tsx +258 -59
  258. package/src/form/product/ProductVariantsDialog.tsx +292 -139
  259. package/src/form/services/index.tsx +263 -0
  260. package/src/form/style.ts +16 -4
  261. package/src/form/tickets/ReleaseDescription.tsx +46 -0
  262. package/src/form/tickets/ReleaseWithMerchandise.tsx +270 -0
  263. package/src/form/tickets/TicketQuantityControl.tsx +100 -0
  264. package/src/form/tickets/TicketSelection.tsx +236 -0
  265. package/src/form/tickets/TicketSelectionMap.tsx +99 -0
  266. package/src/form/tickets/TicketSelectionMobile.tsx +187 -0
  267. package/src/form/tickets/TicketWithMerchandiseSelection.tsx +192 -0
  268. package/src/hooks/useScrollToFirstError.ts +99 -0
  269. package/src/locales/cs.tsx +50 -2
  270. package/src/locales/en.tsx +50 -1
  271. package/src/locales/es.tsx +50 -1
  272. package/src/locales/pl.tsx +50 -1
  273. package/src/locales/sk.tsx +50 -1
  274. package/src/locales/uk.tsx +50 -1
  275. package/src/modules/shopping-cart.ts +14 -11
  276. package/src/utils/data/global.ts +1 -0
  277. package/src/utils/data/shopping-cart.ts +5 -0
  278. package/src/utils/data/ticket.ts +1 -0
  279. package/src/utils/gtm.ts +29 -0
  280. package/src/utils/types/event.type.ts +1 -0
  281. package/src/utils/types/global.type.ts +1 -0
  282. package/src/utils/types/gtm.type.ts +6 -0
  283. package/src/utils/types/order.type.ts +1 -0
  284. package/src/utils/types/shopping-cart.type.ts +42 -31
  285. package/src/utils/types/ticket.type.ts +23 -3
  286. package/tsconfig.json +2 -1
  287. package/dist/cjs/_virtual/colorManipulator.js +0 -6
  288. package/dist/cjs/_virtual/colorManipulator.js.map +0 -1
  289. package/dist/cjs/_virtual/createStyled.js +0 -6
  290. package/dist/cjs/_virtual/createStyled.js.map +0 -1
  291. package/dist/cjs/_virtual/customParseFormat.js +0 -6
  292. package/dist/cjs/_virtual/customParseFormat.js.map +0 -1
  293. package/dist/cjs/_virtual/dayjs.min.js +0 -6
  294. package/dist/cjs/_virtual/dayjs.min.js.map +0 -1
  295. package/dist/cjs/_virtual/extends.js +0 -6
  296. package/dist/cjs/_virtual/extends.js.map +0 -1
  297. package/dist/cjs/_virtual/index.umd.js +0 -6
  298. package/dist/cjs/_virtual/index.umd.js.map +0 -1
  299. package/dist/cjs/_virtual/index10.js +0 -11
  300. package/dist/cjs/_virtual/index10.js.map +0 -1
  301. package/dist/cjs/_virtual/index11.js +0 -11
  302. package/dist/cjs/_virtual/index11.js.map +0 -1
  303. package/dist/cjs/_virtual/index12.js +0 -6
  304. package/dist/cjs/_virtual/index12.js.map +0 -1
  305. package/dist/cjs/_virtual/index13.js +0 -6
  306. package/dist/cjs/_virtual/index13.js.map +0 -1
  307. package/dist/cjs/_virtual/index14.js +0 -6
  308. package/dist/cjs/_virtual/index14.js.map +0 -1
  309. package/dist/cjs/_virtual/index15.js +0 -6
  310. package/dist/cjs/_virtual/index15.js.map +0 -1
  311. package/dist/cjs/_virtual/index4.js +0 -11
  312. package/dist/cjs/_virtual/index4.js.map +0 -1
  313. package/dist/cjs/_virtual/index5.js +0 -11
  314. package/dist/cjs/_virtual/index5.js.map +0 -1
  315. package/dist/cjs/_virtual/index6.js +0 -11
  316. package/dist/cjs/_virtual/index6.js.map +0 -1
  317. package/dist/cjs/_virtual/index7.js +0 -11
  318. package/dist/cjs/_virtual/index7.js.map +0 -1
  319. package/dist/cjs/_virtual/index8.js +0 -11
  320. package/dist/cjs/_virtual/index8.js.map +0 -1
  321. package/dist/cjs/_virtual/index9.js +0 -11
  322. package/dist/cjs/_virtual/index9.js.map +0 -1
  323. package/dist/cjs/_virtual/interopRequireDefault.js +0 -6
  324. package/dist/cjs/_virtual/interopRequireDefault.js.map +0 -1
  325. package/dist/cjs/_virtual/isBetween.js +0 -6
  326. package/dist/cjs/_virtual/isBetween.js.map +0 -1
  327. package/dist/cjs/_virtual/jsx-runtime.js +0 -6
  328. package/dist/cjs/_virtual/jsx-runtime.js.map +0 -1
  329. package/dist/cjs/_virtual/localizedFormat.js +0 -6
  330. package/dist/cjs/_virtual/localizedFormat.js.map +0 -1
  331. package/dist/cjs/_virtual/lodash.js +0 -6
  332. package/dist/cjs/_virtual/lodash.js.map +0 -1
  333. package/dist/cjs/_virtual/lottie.js +0 -6
  334. package/dist/cjs/_virtual/lottie.js.map +0 -1
  335. package/dist/cjs/_virtual/numeral.js +0 -6
  336. package/dist/cjs/_virtual/numeral.js.map +0 -1
  337. package/dist/cjs/_virtual/objectWithoutPropertiesLoose.js +0 -6
  338. package/dist/cjs/_virtual/objectWithoutPropertiesLoose.js.map +0 -1
  339. package/dist/cjs/_virtual/react-is.development3.js +0 -6
  340. package/dist/cjs/_virtual/react-is.development3.js.map +0 -1
  341. package/dist/cjs/_virtual/react-is.production.min2.js +0 -6
  342. package/dist/cjs/_virtual/react-is.production.min2.js.map +0 -1
  343. package/dist/cjs/_virtual/react-jsx-runtime.development.js +0 -6
  344. package/dist/cjs/_virtual/react-jsx-runtime.development.js.map +0 -1
  345. package/dist/cjs/_virtual/react-jsx-runtime.production.min.js +0 -6
  346. package/dist/cjs/_virtual/react-jsx-runtime.production.min.js.map +0 -1
  347. package/dist/cjs/_virtual/timezone.js +0 -6
  348. package/dist/cjs/_virtual/timezone.js.map +0 -1
  349. package/dist/cjs/_virtual/use-sync-external-store-shim.development.js +0 -6
  350. package/dist/cjs/_virtual/use-sync-external-store-shim.development.js.map +0 -1
  351. package/dist/cjs/_virtual/use-sync-external-store-shim.production.js +0 -6
  352. package/dist/cjs/_virtual/use-sync-external-store-shim.production.js.map +0 -1
  353. package/dist/cjs/_virtual/useThemeWithoutDefault.js +0 -6
  354. package/dist/cjs/_virtual/useThemeWithoutDefault.js.map +0 -1
  355. package/dist/cjs/_virtual/utc.js +0 -6
  356. package/dist/cjs/_virtual/utc.js.map +0 -1
  357. package/dist/cjs/_virtual/weekOfYear.js +0 -6
  358. package/dist/cjs/_virtual/weekOfYear.js.map +0 -1
  359. package/dist/cjs/hooks/useFirstRender.js +0 -14
  360. package/dist/cjs/hooks/useFirstRender.js.map +0 -1
  361. package/dist/cjs/utils/data/order.js +0 -8
  362. package/dist/cjs/utils/data/order.js.map +0 -1
  363. package/dist/esm/_virtual/colorManipulator.js +0 -4
  364. package/dist/esm/_virtual/colorManipulator.js.map +0 -1
  365. package/dist/esm/_virtual/createStyled.js +0 -4
  366. package/dist/esm/_virtual/createStyled.js.map +0 -1
  367. package/dist/esm/_virtual/customParseFormat.js +0 -4
  368. package/dist/esm/_virtual/customParseFormat.js.map +0 -1
  369. package/dist/esm/_virtual/dayjs.min.js +0 -4
  370. package/dist/esm/_virtual/dayjs.min.js.map +0 -1
  371. package/dist/esm/_virtual/extends.js +0 -4
  372. package/dist/esm/_virtual/extends.js.map +0 -1
  373. package/dist/esm/_virtual/index.umd.js +0 -4
  374. package/dist/esm/_virtual/index.umd.js.map +0 -1
  375. package/dist/esm/_virtual/index10.js +0 -7
  376. package/dist/esm/_virtual/index10.js.map +0 -1
  377. package/dist/esm/_virtual/index11.js +0 -7
  378. package/dist/esm/_virtual/index11.js.map +0 -1
  379. package/dist/esm/_virtual/index12.js +0 -4
  380. package/dist/esm/_virtual/index12.js.map +0 -1
  381. package/dist/esm/_virtual/index13.js +0 -4
  382. package/dist/esm/_virtual/index13.js.map +0 -1
  383. package/dist/esm/_virtual/index14.js +0 -4
  384. package/dist/esm/_virtual/index14.js.map +0 -1
  385. package/dist/esm/_virtual/index15.js +0 -4
  386. package/dist/esm/_virtual/index15.js.map +0 -1
  387. package/dist/esm/_virtual/index4.js +0 -7
  388. package/dist/esm/_virtual/index4.js.map +0 -1
  389. package/dist/esm/_virtual/index5.js +0 -7
  390. package/dist/esm/_virtual/index5.js.map +0 -1
  391. package/dist/esm/_virtual/index6.js +0 -7
  392. package/dist/esm/_virtual/index6.js.map +0 -1
  393. package/dist/esm/_virtual/index7.js +0 -7
  394. package/dist/esm/_virtual/index7.js.map +0 -1
  395. package/dist/esm/_virtual/index8.js +0 -7
  396. package/dist/esm/_virtual/index8.js.map +0 -1
  397. package/dist/esm/_virtual/index9.js +0 -7
  398. package/dist/esm/_virtual/index9.js.map +0 -1
  399. package/dist/esm/_virtual/interopRequireDefault.js +0 -4
  400. package/dist/esm/_virtual/interopRequireDefault.js.map +0 -1
  401. package/dist/esm/_virtual/isBetween.js +0 -4
  402. package/dist/esm/_virtual/isBetween.js.map +0 -1
  403. package/dist/esm/_virtual/jsx-runtime.js +0 -4
  404. package/dist/esm/_virtual/jsx-runtime.js.map +0 -1
  405. package/dist/esm/_virtual/localizedFormat.js +0 -4
  406. package/dist/esm/_virtual/localizedFormat.js.map +0 -1
  407. package/dist/esm/_virtual/lodash.js +0 -4
  408. package/dist/esm/_virtual/lodash.js.map +0 -1
  409. package/dist/esm/_virtual/lottie.js +0 -4
  410. package/dist/esm/_virtual/lottie.js.map +0 -1
  411. package/dist/esm/_virtual/numeral.js +0 -4
  412. package/dist/esm/_virtual/numeral.js.map +0 -1
  413. package/dist/esm/_virtual/objectWithoutPropertiesLoose.js +0 -4
  414. package/dist/esm/_virtual/objectWithoutPropertiesLoose.js.map +0 -1
  415. package/dist/esm/_virtual/react-is.development3.js +0 -4
  416. package/dist/esm/_virtual/react-is.development3.js.map +0 -1
  417. package/dist/esm/_virtual/react-is.production.min2.js +0 -4
  418. package/dist/esm/_virtual/react-is.production.min2.js.map +0 -1
  419. package/dist/esm/_virtual/react-jsx-runtime.development.js +0 -4
  420. package/dist/esm/_virtual/react-jsx-runtime.development.js.map +0 -1
  421. package/dist/esm/_virtual/react-jsx-runtime.production.min.js +0 -4
  422. package/dist/esm/_virtual/react-jsx-runtime.production.min.js.map +0 -1
  423. package/dist/esm/_virtual/timezone.js +0 -4
  424. package/dist/esm/_virtual/timezone.js.map +0 -1
  425. package/dist/esm/_virtual/use-sync-external-store-shim.development.js +0 -4
  426. package/dist/esm/_virtual/use-sync-external-store-shim.development.js.map +0 -1
  427. package/dist/esm/_virtual/use-sync-external-store-shim.production.js +0 -4
  428. package/dist/esm/_virtual/use-sync-external-store-shim.production.js.map +0 -1
  429. package/dist/esm/_virtual/useThemeWithoutDefault.js +0 -4
  430. package/dist/esm/_virtual/useThemeWithoutDefault.js.map +0 -1
  431. package/dist/esm/_virtual/utc.js +0 -4
  432. package/dist/esm/_virtual/utc.js.map +0 -1
  433. package/dist/esm/_virtual/weekOfYear.js +0 -4
  434. package/dist/esm/_virtual/weekOfYear.js.map +0 -1
  435. package/dist/esm/hooks/useFirstRender.js +0 -12
  436. package/dist/esm/hooks/useFirstRender.js.map +0 -1
  437. package/dist/esm/utils/data/order.js +0 -8
  438. package/dist/esm/utils/data/order.js.map +0 -1
  439. package/dist/index.cjs.js +0 -90295
  440. package/dist/index.cjs.js.map +0 -1
  441. package/dist/index.esm.js +0 -90275
  442. package/dist/index.esm.js.map +0 -1
  443. package/dist/types/hooks/data/useShoppingCart.d.ts +0 -8
  444. package/src/form/MerchandiseSelection.tsx +0 -29
  445. package/src/form/ReleaseWithMerchandise.tsx +0 -230
  446. package/src/form/TicketSelection.tsx +0 -284
  447. package/src/form/TicketWithMerchandiseSelection.tsx +0 -131
@@ -4,23 +4,25 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var material = require('@mui/material');
7
- var Iconify = require('../components/iconify/Iconify.js');
8
7
  var ProductVariantsDialog = require('./product/ProductVariantsDialog.js');
8
+ var TicketQuantityControl = require('./tickets/TicketQuantityControl.js');
9
9
  var reactHookForm = require('react-hook-form');
10
10
  var formatNumber = require('../utils/formatNumber.js');
11
11
  var product = require('../utils/product.js');
12
12
  var ReleaseExtraFields = require('./extra-field/ReleaseExtraFields.js');
13
+ var ReleaseDescription = require('./tickets/ReleaseDescription.js');
13
14
  var useGlobal = require('../hooks/useGlobal.js');
14
15
 
15
16
  const ReleaseWithMerchandise = ({ eventId, release, activeReleases, currency, index, }) => {
16
17
  const { t, lang } = useGlobal.default();
17
18
  const [openVariantDialog, setOpenVariantDialog] = React.useState(null);
19
+ const [isDescriptionExpanded, setIsDescriptionExpanded] = React.useState(false);
18
20
  const { setValue } = reactHookForm.useFormContext();
19
21
  const tickets = reactHookForm.useWatch({ name: `tickets.${eventId}`, defaultValue: [] });
20
22
  const products = reactHookForm.useWatch({ name: `products.${eventId}`, defaultValue: [] });
21
23
  const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);
22
24
  const countTickets = addedRelease?.quantity || 0;
23
- const isReleaseSelected = (id) => !!tickets.find((ticket) => ticket.releaseId === id);
25
+ const getReleaseTitle = (release) => release.releaseCategoryName || release.name || '';
24
26
  const getSelectedQuantity = (id) => tickets.find((ticket) => ticket.releaseId === id)?.quantity || 0;
25
27
  const getAvailableTicketsForRelease = (release) => {
26
28
  const selectedRelease = activeReleases?.find((item) => item.id === release.releaseId);
@@ -33,45 +35,60 @@ const ReleaseWithMerchandise = ({ eventId, release, activeReleases, currency, in
33
35
  return false;
34
36
  return getSelectedQuantity(releaseId) >= getAvailableTicketsForRelease(release);
35
37
  };
36
- const addRelease = (product) => {
38
+ const addRelease = (productsToAdd) => {
39
+ const normalizedProducts = Array.isArray(productsToAdd)
40
+ ? productsToAdd
41
+ : productsToAdd
42
+ ? [productsToAdd]
43
+ : [];
44
+ const quantity = normalizedProducts.length ? normalizedProducts.length : 1;
45
+ const extraFields = release.extraFields?.length
46
+ ? Array.from({ length: quantity }, () => release.extraFields.map((field) => ({
47
+ eventExtraFieldId: field.id,
48
+ value: '',
49
+ })))
50
+ : [];
37
51
  setValue(`tickets.${eventId}`, [
38
52
  ...tickets,
39
53
  {
40
54
  releaseId: release.id,
41
- quantity: 1,
55
+ quantity,
42
56
  itemName: '',
43
57
  price: 0,
44
- products: product ? [product] : [],
45
- extraFields: release.extraFields?.length
46
- ? [
47
- release.extraFields.map((field) => ({
48
- eventExtraFieldId: field.id,
49
- value: '',
50
- })),
51
- ]
52
- : [],
58
+ products: normalizedProducts,
59
+ extraFields,
53
60
  },
54
61
  ]);
55
62
  setOpenVariantDialog(null);
56
63
  };
57
- const increaseQuantity = (product) => {
64
+ const increaseQuantity = (productsToAdd) => {
65
+ const normalizedProducts = Array.isArray(productsToAdd)
66
+ ? productsToAdd
67
+ : productsToAdd
68
+ ? [productsToAdd]
69
+ : [];
58
70
  const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);
59
71
  if (addedRelease) {
60
- const newQuantity = Number(addedRelease.quantity) + 1;
72
+ const increment = normalizedProducts.length ? normalizedProducts.length : 1;
61
73
  const maxQuantity = getAvailableTicketsForRelease(addedRelease);
74
+ const availableIncrement = Math.max(0, Math.min(increment, maxQuantity - Number(addedRelease.quantity)));
75
+ if (availableIncrement === 0)
76
+ return;
77
+ const newQuantity = Number(addedRelease.quantity) + availableIncrement;
78
+ const productsSlice = normalizedProducts.slice(0, availableIncrement);
79
+ const extraFieldsToAdd = release.extraFields?.length
80
+ ? Array.from({ length: availableIncrement }, () => release.extraFields.map((field) => ({
81
+ eventExtraFieldId: field.id,
82
+ value: '',
83
+ })))
84
+ : [];
62
85
  setValue(`tickets.${eventId}`, tickets.map((ticket) => ticket.releaseId === release.id
63
86
  ? {
64
87
  ...ticket,
65
88
  quantity: newQuantity > maxQuantity ? maxQuantity : newQuantity,
66
- products: product ? [...ticket.products, product] : ticket.products,
89
+ products: [...ticket.products, ...productsSlice],
67
90
  extraFields: release.extraFields?.length
68
- ? [
69
- ...ticket.extraFields,
70
- release.extraFields.map((field) => ({
71
- eventExtraFieldId: field.id,
72
- value: '',
73
- })),
74
- ]
91
+ ? [...ticket.extraFields, ...extraFieldsToAdd]
75
92
  : [],
76
93
  }
77
94
  : ticket));
@@ -99,31 +116,23 @@ const ReleaseWithMerchandise = ({ eventId, release, activeReleases, currency, in
99
116
  }
100
117
  }
101
118
  }, [tickets, release.id, setValue]);
102
- return (React.createElement(material.Box, null,
103
- React.createElement(material.Stack, { direction: "row", spacing: 1 },
104
- React.createElement(material.Stack, { direction: "row", spacing: 1, justifyContent: "space-between", alignItems: "center", sx: { width: '100%', backgroundColor: 'grey.200', p: 1, pl: 1.5, borderRadius: 1 } },
105
- React.createElement(material.Stack, { direction: "row", spacing: 2, alignItems: "center" },
106
- React.createElement(material.Stack, { direction: "row", spacing: 0.5, alignItems: "center" },
107
- React.createElement(Iconify.default, { icon: "ion:ticket-outline", color: "primary.main", sx: { width: 24, height: 24 } }),
108
- release.product && (React.createElement(React.Fragment, null,
109
- React.createElement(material.Typography, { fontSize: 20, lineHeight: 1 }, "+"),
110
- React.createElement(Iconify.default, { icon: "lucide-lab:shirt-t", color: "primary.main", sx: { width: 24, height: 24 } })))),
111
- React.createElement(material.Typography, { color: "grey.500" },
112
- release.releaseCategoryName,
113
- " - ",
114
- release.name,
115
- " -",
116
- ' ',
117
- formatNumber.fCurrency(release.price, lang, currency))),
118
- isReleaseSelected(release.id) ? (React.createElement(material.Stack, { direction: "row", spacing: 1, py: 0.5 },
119
- React.createElement(material.IconButton, { onClick: () => decreaseQuantity(), size: "small", color: "primary" },
120
- React.createElement(Iconify.default, { icon: "eva:minus-fill" })),
121
- React.createElement(material.Typography, { color: "grey.500" }, getSelectedQuantity(release.id)),
122
- React.createElement(material.IconButton, { onClick: () => release.product ? setOpenVariantDialog('increase') : increaseQuantity(), size: "small", color: "primary", disabled: isMaxQuantity(release.id) },
123
- React.createElement(Iconify.default, { icon: "eva:plus-fill" })))) : (React.createElement(material.Button, { onClick: () => !release.locked && (release.product ? setOpenVariantDialog('add') : addRelease()), variant: "contained", disabled: release.locked }, t('add'))))),
124
- React.createElement(material.Typography, { variant: "caption", content: "div", mt: 2, mb: release.extraFields?.length ? 2 : 0, display: "block" }, release.description),
125
- release.extraFields && release.extraFields.length > 0 && (React.createElement(ReleaseExtraFields.default, { release: release, eventId: eventId, releaseIndex: index, quantity: countTickets })),
126
- release.product && (React.createElement(ProductVariantsDialog.default, { eventProduct: release.product, openDialog: !!openVariantDialog, callback: openVariantDialog === 'increase' ? increaseQuantity : addRelease, onClose: () => setOpenVariantDialog(null), selectedQuantityByVariant: product.getSelectedQuantityByVariant(products, tickets), eventId: eventId }))));
119
+ return (React.createElement(material.Box, { sx: {
120
+ p: 1,
121
+ pb: 0,
122
+ borderRadius: 1,
123
+ bgcolor: 'grey.100',
124
+ } },
125
+ React.createElement(material.Stack, { spacing: 0 },
126
+ React.createElement(material.Box, null,
127
+ React.createElement(material.Typography, { variant: "subtitle1", fontWeight: 600 }, getReleaseTitle(release))),
128
+ React.createElement(material.Stack, { direction: "row", alignItems: "center", justifyContent: "space-between" },
129
+ React.createElement(material.Stack, null,
130
+ React.createElement(material.Typography, { variant: "body2" }, release.price === 0 ? t('free') : formatNumber.fCurrency(release.price, lang, currency)),
131
+ React.createElement(ReleaseDescription.default, { description: release.description, isExpanded: isDescriptionExpanded, onToggle: () => setIsDescriptionExpanded((prev) => !prev), moreInfoLabel: t('more_info') })),
132
+ React.createElement(TicketQuantityControl.default, { quantity: getSelectedQuantity(release.id), isDisabled: release.locked, canAddFirst: !release.locked, canAddMore: !isMaxQuantity(release.id), addLabel: t('add'), onDecrement: () => decreaseQuantity(), onIncrement: () => release.product ? setOpenVariantDialog('increase') : increaseQuantity(), onAddFirst: () => (release.product ? setOpenVariantDialog('add') : addRelease()) })),
133
+ React.createElement(ReleaseDescription.default, { description: release.description, isExpanded: isDescriptionExpanded, onToggle: () => setIsDescriptionExpanded((prev) => !prev), moreInfoLabel: t('more_info'), showCollapse: true }),
134
+ release.extraFields && release.extraFields.length > 0 && (React.createElement(ReleaseExtraFields.default, { release: release, eventId: eventId, releaseIndex: index, quantity: countTickets })),
135
+ release.product && (React.createElement(ProductVariantsDialog.default, { eventProduct: release.product, openDialog: !!openVariantDialog, callback: openVariantDialog === 'increase' ? increaseQuantity : addRelease, onClose: () => setOpenVariantDialog(null), selectedQuantityByVariant: product.getSelectedQuantityByVariant(products, tickets), eventId: eventId, canAddOnlyOneAtATime: true })))));
127
136
  };
128
137
 
129
138
  exports.default = ReleaseWithMerchandise;
@@ -1 +1 @@
1
- {"version":3,"file":"ReleaseWithMerchandise.js","sources":["../../../src/form/ReleaseWithMerchandise.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\nimport { Box, Button, IconButton, Stack, Typography } from '@mui/material';\nimport { Iconify } from '@components/iconify';\nimport ProductVariantsDialog from '@form/product/ProductVariantsDialog';\nimport { IReleaseShort } from '@utils/types/release.type';\nimport { ITicketForm, ITicketFormTicket } from '@utils/types/ticket.type';\nimport { useFormContext, useWatch } from 'react-hook-form';\nimport { IEventProductForm } from '@utils/types/product.type';\nimport { fCurrency } from '@utils/formatNumber';\nimport { Currencies } from '@utils/data/currency';\nimport { getSelectedQuantityByVariant } from '@utils/product';\nimport ReleaseExtraFields from '@form/extra-field/ReleaseExtraFields';\nimport useGlobal from '@hooks/useGlobal.ts';\n\ninterface Props {\n eventId: number;\n release: IReleaseShort;\n activeReleases: IReleaseShort[];\n currency: Currencies;\n index: number;\n}\n\nconst ReleaseWithMerchandise: React.FC<Props> = ({\n eventId,\n release,\n activeReleases,\n currency,\n index,\n}) => {\n const { t, lang } = useGlobal();\n const [openVariantDialog, setOpenVariantDialog] = useState<'add' | 'increase' | null>(null);\n const { setValue } = useFormContext<ITicketForm>();\n const tickets: ITicketFormTicket[] = useWatch({ name: `tickets.${eventId}`, defaultValue: [] });\n const products: IEventProductForm[] = useWatch({ name: `products.${eventId}`, defaultValue: [] });\n const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);\n const countTickets = addedRelease?.quantity || 0;\n\n const isReleaseSelected = (id: number) => !!tickets.find((ticket) => ticket.releaseId === id);\n\n const getSelectedQuantity = (id: number) =>\n tickets.find((ticket) => ticket.releaseId === id)?.quantity || 0;\n\n const getAvailableTicketsForRelease = (release: ITicketFormTicket): number => {\n const selectedRelease = activeReleases?.find((item) => item.id === release.releaseId);\n const availableQuantity = selectedRelease ? selectedRelease.availableTickets : 0;\n return availableQuantity > 10 ? 10 : availableQuantity;\n };\n\n const isMaxQuantity = (releaseId: number) => {\n const release = tickets.find((ticket) => ticket.releaseId === releaseId);\n if (!release) return false;\n return getSelectedQuantity(releaseId) >= getAvailableTicketsForRelease(release);\n };\n\n const addRelease = (product?: IEventProductForm) => {\n setValue(`tickets.${eventId}`, [\n ...tickets,\n {\n releaseId: release.id,\n quantity: 1,\n itemName: '',\n price: 0,\n products: product ? [product] : [],\n extraFields: release.extraFields?.length\n ? [\n release.extraFields.map((field) => ({\n eventExtraFieldId: field.id,\n value: '',\n })),\n ]\n : [],\n },\n ]);\n setOpenVariantDialog(null);\n };\n\n const increaseQuantity = (product?: IEventProductForm) => {\n const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);\n if (addedRelease) {\n const newQuantity = Number(addedRelease.quantity) + 1;\n const maxQuantity = getAvailableTicketsForRelease(addedRelease);\n setValue(\n `tickets.${eventId}`,\n tickets.map((ticket) =>\n ticket.releaseId === release.id\n ? {\n ...ticket,\n quantity: newQuantity > maxQuantity ? maxQuantity : newQuantity,\n products: product ? [...ticket.products, product] : ticket.products,\n extraFields: release.extraFields?.length\n ? [\n ...ticket.extraFields,\n release.extraFields.map((field) => ({\n eventExtraFieldId: field.id,\n value: '',\n })),\n ]\n : [],\n }\n : ticket\n )\n );\n setOpenVariantDialog(null);\n }\n };\n\n const decreaseQuantity = useCallback(() => {\n const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);\n if (addedRelease) {\n const newQuantity = Number(addedRelease.quantity) - 1;\n if (newQuantity < 1) {\n setValue(\n `tickets.${eventId}`,\n tickets.filter((ticket) => ticket.releaseId !== release.id)\n );\n } else {\n setValue(\n `tickets.${eventId}`,\n tickets.map((ticket) => {\n if (ticket.releaseId !== release.id) return ticket;\n\n return {\n ...ticket,\n quantity: newQuantity,\n products: ticket?.products?.slice(0, -1), // non-mutating \"pop\"\n extraFields: ticket?.extraFields?.slice(0, -1),\n };\n })\n );\n }\n }\n }, [tickets, release.id, setValue]);\n\n return (\n <Box>\n <Stack direction=\"row\" spacing={1}>\n <Stack\n direction=\"row\"\n spacing={1}\n justifyContent=\"space-between\"\n alignItems=\"center\"\n sx={{ width: '100%', backgroundColor: 'grey.200', p: 1, pl: 1.5, borderRadius: 1 }}\n >\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Stack direction=\"row\" spacing={0.5} alignItems=\"center\">\n <Iconify\n icon=\"ion:ticket-outline\"\n color=\"primary.main\"\n sx={{ width: 24, height: 24 }}\n />\n {release.product && (\n <>\n <Typography fontSize={20} lineHeight={1}>\n +\n </Typography>\n <Iconify\n icon=\"lucide-lab:shirt-t\"\n color=\"primary.main\"\n sx={{ width: 24, height: 24 }}\n />\n </>\n )}\n </Stack>\n <Typography color=\"grey.500\">\n {release.releaseCategoryName} - {release.name} -{' '}\n {fCurrency(release.price, lang, currency)}\n </Typography>\n </Stack>\n {isReleaseSelected(release.id) ? (\n <Stack direction=\"row\" spacing={1} py={0.5}>\n <IconButton onClick={() => decreaseQuantity()} size=\"small\" color=\"primary\">\n <Iconify icon=\"eva:minus-fill\" />\n </IconButton>\n <Typography color=\"grey.500\">{getSelectedQuantity(release.id)}</Typography>\n <IconButton\n onClick={() =>\n release.product ? setOpenVariantDialog('increase') : increaseQuantity()\n }\n size=\"small\"\n color=\"primary\"\n disabled={isMaxQuantity(release.id)}\n >\n <Iconify icon=\"eva:plus-fill\" />\n </IconButton>\n </Stack>\n ) : (\n <Button\n onClick={() =>\n !release.locked && (release.product ? setOpenVariantDialog('add') : addRelease())\n }\n variant=\"contained\"\n disabled={release.locked}\n >\n {t('add')}\n </Button>\n )}\n </Stack>\n </Stack>\n <Typography\n variant=\"caption\"\n content=\"div\"\n mt={2}\n mb={release.extraFields?.length ? 2 : 0}\n display=\"block\"\n >\n {release.description}\n </Typography>\n {release.extraFields && release.extraFields.length > 0 && (\n <ReleaseExtraFields\n release={release}\n eventId={eventId}\n releaseIndex={index}\n quantity={countTickets}\n />\n )}\n {release.product && (\n <ProductVariantsDialog\n eventProduct={release.product}\n openDialog={!!openVariantDialog}\n callback={openVariantDialog === 'increase' ? increaseQuantity : addRelease}\n onClose={() => setOpenVariantDialog(null)}\n selectedQuantityByVariant={getSelectedQuantityByVariant(products, tickets)}\n eventId={eventId}\n />\n )}\n </Box>\n );\n};\n\nexport default ReleaseWithMerchandise;\n"],"names":["useGlobal","useState","useFormContext","useWatch","useCallback","Box","Stack","Iconify","Typography","fCurrency","IconButton","Button","ReleaseExtraFields","ProductVariantsDialog","getSelectedQuantityByVariant"],"mappings":"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"}
1
+ {"version":3,"file":"ReleaseWithMerchandise.js","sources":["../../../src/form/ReleaseWithMerchandise.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\nimport { Box, Stack, Typography } from '@mui/material';\nimport ProductVariantsDialog from '@form/product/ProductVariantsDialog';\nimport TicketQuantityControl from '@form/tickets/TicketQuantityControl';\nimport { IReleaseShort } from '@utils/types/release.type';\nimport { ITicketForm, ITicketFormTicket } from '@utils/types/ticket.type';\nimport { useFormContext, useWatch } from 'react-hook-form';\nimport { IEventProductForm } from '@utils/types/product.type';\nimport { fCurrency } from '@utils/formatNumber';\nimport { Currencies } from '@utils/data/currency';\nimport { getSelectedQuantityByVariant } from '@utils/product';\nimport ReleaseExtraFields from '@form/extra-field/ReleaseExtraFields';\nimport ReleaseDescription from '@form/tickets/ReleaseDescription';\nimport useGlobal from '@hooks/useGlobal.ts';\n\ninterface Props {\n eventId: number;\n release: IReleaseShort;\n activeReleases: IReleaseShort[];\n currency: Currencies;\n index: number;\n}\n\nconst ReleaseWithMerchandise: React.FC<Props> = ({\n eventId,\n release,\n activeReleases,\n currency,\n index,\n}) => {\n const { t, lang } = useGlobal();\n const [openVariantDialog, setOpenVariantDialog] = useState<'add' | 'increase' | null>(null);\n const [isDescriptionExpanded, setIsDescriptionExpanded] = useState(false);\n const { setValue } = useFormContext<ITicketForm>();\n const tickets: ITicketFormTicket[] = useWatch({ name: `tickets.${eventId}`, defaultValue: [] });\n const products: IEventProductForm[] = useWatch({ name: `products.${eventId}`, defaultValue: [] });\n const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);\n const countTickets = addedRelease?.quantity || 0;\n\n const getReleaseTitle = (release: IReleaseShort) =>\n release.releaseCategoryName || release.name || '';\n\n const getSelectedQuantity = (id: number) =>\n tickets.find((ticket) => ticket.releaseId === id)?.quantity || 0;\n\n const getAvailableTicketsForRelease = (release: ITicketFormTicket): number => {\n const selectedRelease = activeReleases?.find((item) => item.id === release.releaseId);\n const availableQuantity = selectedRelease ? selectedRelease.availableTickets : 0;\n return availableQuantity > 10 ? 10 : availableQuantity;\n };\n\n const isMaxQuantity = (releaseId: number) => {\n const release = tickets.find((ticket) => ticket.releaseId === releaseId);\n if (!release) return false;\n return getSelectedQuantity(releaseId) >= getAvailableTicketsForRelease(release);\n };\n\n const addRelease = (productsToAdd?: IEventProductForm[] | IEventProductForm) => {\n const normalizedProducts = Array.isArray(productsToAdd)\n ? productsToAdd\n : productsToAdd\n ? [productsToAdd]\n : [];\n const quantity = normalizedProducts.length ? normalizedProducts.length : 1;\n const extraFields = release.extraFields?.length\n ? Array.from({ length: quantity }, () =>\n release.extraFields!.map((field) => ({\n eventExtraFieldId: field.id,\n value: '',\n }))\n )\n : [];\n\n setValue(`tickets.${eventId}`, [\n ...tickets,\n {\n releaseId: release.id,\n quantity,\n itemName: '',\n price: 0,\n products: normalizedProducts,\n extraFields,\n },\n ]);\n setOpenVariantDialog(null);\n };\n\n const increaseQuantity = (productsToAdd?: IEventProductForm[] | IEventProductForm) => {\n const normalizedProducts = Array.isArray(productsToAdd)\n ? productsToAdd\n : productsToAdd\n ? [productsToAdd]\n : [];\n const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);\n if (addedRelease) {\n const increment = normalizedProducts.length ? normalizedProducts.length : 1;\n const maxQuantity = getAvailableTicketsForRelease(addedRelease);\n const availableIncrement = Math.max(\n 0,\n Math.min(increment, maxQuantity - Number(addedRelease.quantity))\n );\n if (availableIncrement === 0) return;\n\n const newQuantity = Number(addedRelease.quantity) + availableIncrement;\n const productsSlice = normalizedProducts.slice(0, availableIncrement);\n const extraFieldsToAdd = release.extraFields?.length\n ? Array.from({ length: availableIncrement }, () =>\n release.extraFields!.map((field) => ({\n eventExtraFieldId: field.id,\n value: '',\n }))\n )\n : [];\n\n setValue(\n `tickets.${eventId}`,\n tickets.map((ticket) =>\n ticket.releaseId === release.id\n ? {\n ...ticket,\n quantity: newQuantity > maxQuantity ? maxQuantity : newQuantity,\n products: [...ticket.products, ...productsSlice],\n extraFields: release.extraFields?.length\n ? [...ticket.extraFields, ...extraFieldsToAdd]\n : [],\n }\n : ticket\n )\n );\n setOpenVariantDialog(null);\n }\n };\n\n const decreaseQuantity = useCallback(() => {\n const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);\n if (addedRelease) {\n const newQuantity = Number(addedRelease.quantity) - 1;\n if (newQuantity < 1) {\n setValue(\n `tickets.${eventId}`,\n tickets.filter((ticket) => ticket.releaseId !== release.id)\n );\n } else {\n setValue(\n `tickets.${eventId}`,\n tickets.map((ticket) => {\n if (ticket.releaseId !== release.id) return ticket;\n\n return {\n ...ticket,\n quantity: newQuantity,\n products: ticket?.products?.slice(0, -1), // non-mutating \"pop\"\n extraFields: ticket?.extraFields?.slice(0, -1),\n };\n })\n );\n }\n }\n }, [tickets, release.id, setValue]);\n\n return (\n <Box\n sx={{\n p: 1,\n pb: 0,\n borderRadius: 1,\n bgcolor: 'grey.100',\n }}\n >\n <Stack spacing={0}>\n <Box>\n <Typography variant=\"subtitle1\" fontWeight={600}>\n {getReleaseTitle(release)}\n </Typography>\n </Box>\n\n <Stack direction=\"row\" alignItems=\"center\" justifyContent=\"space-between\">\n <Stack>\n <Typography variant=\"body2\">\n {release.price === 0 ? t('free') : fCurrency(release.price, lang, currency)}\n </Typography>\n\n <ReleaseDescription\n description={release.description}\n isExpanded={isDescriptionExpanded}\n onToggle={() => setIsDescriptionExpanded((prev) => !prev)}\n moreInfoLabel={t('more_info')}\n />\n </Stack>\n\n <TicketQuantityControl\n quantity={getSelectedQuantity(release.id)}\n isDisabled={release.locked}\n canAddFirst={!release.locked}\n canAddMore={!isMaxQuantity(release.id)}\n addLabel={t('add')}\n onDecrement={() => decreaseQuantity()}\n onIncrement={() =>\n release.product ? setOpenVariantDialog('increase') : increaseQuantity()\n }\n onAddFirst={() => (release.product ? setOpenVariantDialog('add') : addRelease())}\n />\n </Stack>\n\n <ReleaseDescription\n description={release.description}\n isExpanded={isDescriptionExpanded}\n onToggle={() => setIsDescriptionExpanded((prev) => !prev)}\n moreInfoLabel={t('more_info')}\n showCollapse\n />\n {release.extraFields && release.extraFields.length > 0 && (\n <ReleaseExtraFields\n release={release}\n eventId={eventId}\n releaseIndex={index}\n quantity={countTickets}\n />\n )}\n {release.product && (\n <ProductVariantsDialog\n eventProduct={release.product}\n openDialog={!!openVariantDialog}\n callback={openVariantDialog === 'increase' ? increaseQuantity : addRelease}\n onClose={() => setOpenVariantDialog(null)}\n selectedQuantityByVariant={getSelectedQuantityByVariant(products, tickets)}\n eventId={eventId}\n canAddOnlyOneAtATime\n />\n )}\n </Stack>\n </Box>\n );\n};\n\nexport default ReleaseWithMerchandise;\n"],"names":["useGlobal","useState","useFormContext","useWatch","useCallback","Box","Stack","Typography","fCurrency","ReleaseDescription","TicketQuantityControl","ReleaseExtraFields","ProductVariantsDialog","getSelectedQuantityByVariant"],"mappings":"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"}
@@ -30,7 +30,6 @@ const Shipping = ({ event }) => {
30
30
  });
31
31
  const flatProducts = React.useMemo(() => Object.values(products).flat(), [products]);
32
32
  const shippingMethodId = watch('shipping.shippingMethodId');
33
- const branchId = watch('shipping.branchId');
34
33
  const [displayBranchName, setDisplayBranchName] = React.useState(null);
35
34
  const [firstRender, setFirstRender] = React.useState(true);
36
35
  const filteredShippingMethods = React.useMemo(() => shippingMethods?.filter((shippingMethod) => !flatProducts?.find((product) => product.excludedShippingMethodIds?.includes(shippingMethod?.id)) &&
@@ -50,9 +49,20 @@ const Shipping = ({ event }) => {
50
49
  setDisplayBranchName(null);
51
50
  }
52
51
  };
52
+ const openPacketaWidget = () => {
53
+ const interval = setInterval(() => {
54
+ if (window.Packeta && window.Packeta.Widget) {
55
+ clearInterval(interval);
56
+ window.Packeta.Widget.pick(options?.packetaApiKey, onSelectBranch, {
57
+ language: lang,
58
+ });
59
+ }
60
+ }, 100);
61
+ };
53
62
  const handleChangeBranch = () => {
54
63
  setValue('shipping.branchId', null);
55
64
  setDisplayBranchName(null);
65
+ openPacketaWidget();
56
66
  };
57
67
  React.useEffect(() => {
58
68
  if (firstRender && filteredShippingMethods.length === 1) {
@@ -64,19 +74,7 @@ const Shipping = ({ event }) => {
64
74
  const selectedShippingMethod = shippingMethods.find((method) => method.id === Number(shippingMethodId));
65
75
  if (selectedShippingMethod) {
66
76
  setValue('shipping.price', selectedShippingMethod.price);
67
- if (selectedShippingMethod.type === shippingMethod.ShippingTypes.PACKETA) {
68
- if (!branchId) {
69
- const interval = setInterval(() => {
70
- if (window.Packeta && window.Packeta.Widget) {
71
- clearInterval(interval);
72
- window.Packeta.Widget.pick(options?.packetaApiKey, onSelectBranch, {
73
- language: lang,
74
- });
75
- }
76
- }, 100);
77
- }
78
- }
79
- else {
77
+ if (selectedShippingMethod.type !== shippingMethod.ShippingTypes.PACKETA) {
80
78
  setValue('shipping.branchId', null);
81
79
  setDisplayBranchName(null);
82
80
  }
@@ -84,26 +82,34 @@ const Shipping = ({ event }) => {
84
82
  else {
85
83
  setValue('shipping.price', 0);
86
84
  }
87
- }, [shippingMethodId, shippingMethods, branchId]);
85
+ }, [shippingMethodId, shippingMethods]);
88
86
  return (React.createElement(React.Fragment, null,
89
87
  React.createElement(ScriptLoader.default, null),
90
88
  React.createElement("div", null, isLoading ? (React.createElement(ShippingSkeleton.default, null)) : (React.createElement(React.Fragment, null, filteredShippingMethods.length === 0 ? (React.createElement(material.Typography, { variant: "h4", color: "error" }, t('event.tickets.stepper.5.error'))) : (React.createElement(React.Fragment, null,
91
89
  React.createElement(reactHookForm.Controller, { name: "shipping.shippingMethodId", control: control, render: ({ field, fieldState: { error } }) => (React.createElement(material.FormControl, { component: "fieldset", sx: { width: '100%' } },
92
- React.createElement(material.RadioGroup, { ...field }, filteredShippingMethods.map((shippingMethod$1) => (React.createElement(style.ShippingMethodItem, { key: shippingMethod$1.id, active: Number(shippingMethodId) === shippingMethod$1.id },
90
+ React.createElement(material.RadioGroup, { ...field, onChange: (event, value) => {
91
+ field.onChange(event);
92
+ const selectedShippingMethod = filteredShippingMethods.find((method) => method.id === Number(value));
93
+ if (selectedShippingMethod?.type === shippingMethod.ShippingTypes.PACKETA) {
94
+ openPacketaWidget();
95
+ }
96
+ } }, filteredShippingMethods.map((shippingMethod$1) => (React.createElement(style.ShippingMethodItem, { key: shippingMethod$1.id, active: Number(shippingMethodId) === shippingMethod$1.id, hasError: !!error, sx: {
97
+ '& .MuiFormControlLabel-labelPlacementEnd': {
98
+ mr: 0,
99
+ width: '100%',
100
+ },
101
+ } },
93
102
  React.createElement(material.FormControlLabel, { value: shippingMethod$1.id, control: React.createElement(material.Radio, null), label: React.createElement(material.Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", width: "100%" },
94
- React.createElement(material.Stack, { direction: "row", alignItems: "center" },
95
- React.createElement(material.Box, { sx: {
96
- marginRight: 2,
97
- } },
103
+ React.createElement(material.Stack, { direction: "column" },
104
+ React.createElement(material.Stack, { direction: "row", alignItems: "center", spacing: 1 },
98
105
  React.createElement(material.Typography, { sx: { lineHeight: 1.2 } }, t(`shipping_method.types.${shippingMethod$1.type}`)),
99
- displayBranchName &&
100
- shippingMethod$1.type === shippingMethod.ShippingTypes.PACKETA &&
101
- shippingMethod$1.id === Number(shippingMethodId) && (React.createElement(material.Typography, { variant: "caption", sx: { lineHeight: 1 } }, displayBranchName))),
102
- paymentImages[shippingMethod$1.type]),
106
+ paymentImages[shippingMethod$1.type]),
107
+ displayBranchName &&
108
+ shippingMethod$1.type === shippingMethod.ShippingTypes.PACKETA &&
109
+ shippingMethod$1.id === Number(shippingMethodId) && (React.createElement(material.Typography, { variant: "caption", sx: { lineHeight: 1 } }, displayBranchName))),
103
110
  shippingMethod$1.type === shippingMethod.ShippingTypes.PACKETA &&
104
- shippingMethod$1.id === Number(shippingMethodId) &&
105
- branchId && (React.createElement(material.Box, null,
106
- React.createElement(material.Button, { onClick: handleChangeBranch, variant: "outlined", size: "small" }, t('change'))))), sx: {
111
+ shippingMethod$1.id === Number(shippingMethodId) && (React.createElement(material.Box, null,
112
+ React.createElement(material.Button, { onClick: handleChangeBranch, variant: "outlined", size: "small", sx: { px: 1, whiteSpace: 'nowrap' } }, t('event.tickets.shipping.choose_address'))))), sx: {
107
113
  '&:not(:last-of-type)': {
108
114
  mb: 0,
109
115
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Shipping.js","sources":["../../../src/form/Shipping.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport useEventShippingMethods from '@hooks/data/useEventShippingMethods';\nimport { IEvent } from '@utils/types/event.type';\nimport ShippingSkeleton from '@form/shipping/ShippingSkeleton';\nimport {\n Box,\n Button,\n FormControl,\n FormControlLabel,\n FormHelperText,\n Radio,\n RadioGroup,\n Stack,\n Typography,\n} from '@mui/material';\nimport { ShippingMethodItem } from '@form/style';\nimport { Iconify } from '@components/iconify';\nimport { Controller, useFormContext, useWatch } from 'react-hook-form';\nimport { ITicketForm, ITicketFormTicket } from '@utils/types/ticket.type';\nimport { ShippingTypes } from '@utils/data/shipping-method';\nimport useGlobal from '@hooks/useGlobal';\nimport ScriptLoader from '@form/ScriptLoader';\nimport { IEventProductForm } from '@utils/types/product.type';\n\ninterface Props {\n event: IEvent;\n}\n\nconst Shipping: React.FC<Props> = ({ event }) => {\n const { t, lang, options } = useGlobal();\n const { data: shippingMethods, isLoading } = useEventShippingMethods(event.id, {\n currency: event.currency,\n });\n const { control, watch, setValue } = useFormContext<ITicketForm>();\n const tickets: Record<string, ITicketFormTicket[]> = useWatch({\n name: 'tickets',\n defaultValue: {},\n });\n const flatTickets: ITicketFormTicket[] = useMemo(() => Object.values(tickets).flat(), [tickets]);\n const products: Record<string, IEventProductForm[]> = useWatch({\n name: 'products',\n defaultValue: {},\n });\n const flatProducts: IEventProductForm[] = useMemo(\n () => Object.values(products).flat(),\n [products]\n );\n const shippingMethodId = watch('shipping.shippingMethodId');\n const branchId = watch('shipping.branchId');\n const [displayBranchName, setDisplayBranchName] = useState<string | null>(null);\n const [firstRender, setFirstRender] = useState<boolean>(true);\n const filteredShippingMethods = useMemo(\n () =>\n shippingMethods?.filter(\n (shippingMethod) =>\n !flatProducts?.find((product) =>\n product.excludedShippingMethodIds?.includes(shippingMethod?.id)\n ) &&\n !flatTickets.find((ticket) =>\n ticket.products.find((product) =>\n product.excludedShippingMethodIds?.includes(shippingMethod?.id)\n )\n )\n ),\n [shippingMethods, shippingMethodId, flatTickets, flatProducts]\n );\n\n const paymentImages = {\n [ShippingTypes.PACKETA]: (\n <Iconify icon=\"arcticons:packeta\" color=\"rgb(186,27,2)\" width={32} height={32} />\n ),\n [ShippingTypes.PICK_UP]: <Iconify icon=\"flowbite:store-solid\" width={32} height={32} />,\n };\n\n const onSelectBranch = (branch: any) => {\n if (branch) {\n setValue('shipping.branchId', branch.id);\n setDisplayBranchName(branch.name);\n } else {\n setValue('shipping.shippingMethodId', null);\n setValue('shipping.branchId', null);\n setDisplayBranchName(null);\n }\n };\n\n const handleChangeBranch = () => {\n setValue('shipping.branchId', null);\n setDisplayBranchName(null);\n };\n\n useEffect(() => {\n if (firstRender && filteredShippingMethods.length === 1) {\n setValue('shipping.shippingMethodId', filteredShippingMethods[0].id);\n setFirstRender(false);\n }\n }, [firstRender, filteredShippingMethods]);\n\n useEffect(() => {\n const selectedShippingMethod = shippingMethods.find(\n (method) => method.id === Number(shippingMethodId)\n );\n\n if (selectedShippingMethod) {\n setValue('shipping.price', selectedShippingMethod.price);\n\n if (selectedShippingMethod.type === ShippingTypes.PACKETA) {\n if (!branchId) {\n const interval = setInterval(() => {\n if (window.Packeta && window.Packeta.Widget) {\n clearInterval(interval);\n window.Packeta.Widget.pick(options?.packetaApiKey, onSelectBranch, {\n language: lang,\n });\n }\n }, 100);\n }\n } else {\n setValue('shipping.branchId', null);\n setDisplayBranchName(null);\n }\n } else {\n setValue('shipping.price', 0);\n }\n }, [shippingMethodId, shippingMethods, branchId]);\n\n return (\n <>\n <ScriptLoader />\n <div>\n {isLoading ? (\n <ShippingSkeleton />\n ) : (\n <>\n {filteredShippingMethods.length === 0 ? (\n <Typography variant=\"h4\" color=\"error\">\n {t('event.tickets.stepper.5.error')}\n </Typography>\n ) : (\n <>\n <Controller\n name=\"shipping.shippingMethodId\"\n control={control}\n render={({ field, fieldState: { error } }) => (\n <FormControl component=\"fieldset\" sx={{ width: '100%' }}>\n <RadioGroup {...field}>\n {filteredShippingMethods.map((shippingMethod) => (\n <ShippingMethodItem\n key={shippingMethod.id}\n active={Number(shippingMethodId) === shippingMethod.id}\n >\n <FormControlLabel\n value={shippingMethod.id}\n control={<Radio />}\n label={\n <Stack\n direction=\"row\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n width=\"100%\"\n >\n <Stack direction=\"row\" alignItems=\"center\">\n <Box\n sx={{\n marginRight: 2,\n }}\n >\n <Typography sx={{ lineHeight: 1.2 }}>\n {t(`shipping_method.types.${shippingMethod.type}`)}\n </Typography>\n {displayBranchName &&\n shippingMethod.type === ShippingTypes.PACKETA &&\n shippingMethod.id === Number(shippingMethodId) && (\n <Typography variant=\"caption\" sx={{ lineHeight: 1 }}>\n {displayBranchName}\n </Typography>\n )}\n </Box>\n {paymentImages[shippingMethod.type]}\n </Stack>\n {shippingMethod.type === ShippingTypes.PACKETA &&\n shippingMethod.id === Number(shippingMethodId) &&\n branchId && (\n <Box>\n <Button\n onClick={handleChangeBranch}\n variant=\"outlined\"\n size=\"small\"\n >\n {t('change')}\n </Button>\n </Box>\n )}\n </Stack>\n }\n sx={{\n '&:not(:last-of-type)': {\n mb: 0,\n },\n '& .MuiFormControlLabel-label': {\n width: '100%',\n mr: 0,\n },\n }}\n />\n </ShippingMethodItem>\n ))}\n </RadioGroup>\n\n {!!error && (\n <FormHelperText error={!!error} sx={{ mx: 0 }}>\n {error?.message}\n </FormHelperText>\n )}\n </FormControl>\n )}\n />\n </>\n )}\n </>\n )}\n </div>\n </>\n );\n};\n\nexport default Shipping;\n"],"names":["useGlobal","useEventShippingMethods","useFormContext","useWatch","useMemo","useState","ShippingTypes","Iconify","useEffect","ScriptLoader","ShippingSkeleton","Typography","Controller","FormControl","RadioGroup","shippingMethod","ShippingMethodItem","FormControlLabel","Radio","Stack","Box","Button","FormHelperText"],"mappings":"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"}
1
+ {"version":3,"file":"Shipping.js","sources":["../../../src/form/Shipping.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport useEventShippingMethods from '@hooks/data/useEventShippingMethods';\nimport { IEvent } from '@utils/types/event.type';\nimport ShippingSkeleton from '@form/shipping/ShippingSkeleton';\nimport {\n Box,\n Button,\n FormControl,\n FormControlLabel,\n FormHelperText,\n Radio,\n RadioGroup,\n Stack,\n Typography,\n} from '@mui/material';\nimport { ShippingMethodItem } from '@form/style';\nimport { Iconify } from '@components/iconify';\nimport { Controller, useFormContext, useWatch } from 'react-hook-form';\nimport { ITicketForm, ITicketFormTicket } from '@utils/types/ticket.type';\nimport { ShippingTypes } from '@utils/data/shipping-method';\nimport useGlobal from '@hooks/useGlobal';\nimport ScriptLoader from '@form/ScriptLoader';\nimport { IEventProductForm } from '@utils/types/product.type';\n\ninterface Props {\n event: IEvent;\n}\n\nconst Shipping: React.FC<Props> = ({ event }) => {\n const { t, lang, options } = useGlobal();\n const { data: shippingMethods, isLoading } = useEventShippingMethods(event.id, {\n currency: event.currency,\n });\n const { control, watch, setValue } = useFormContext<ITicketForm>();\n const tickets: Record<string, ITicketFormTicket[]> = useWatch({\n name: 'tickets',\n defaultValue: {},\n });\n const flatTickets: ITicketFormTicket[] = useMemo(() => Object.values(tickets).flat(), [tickets]);\n const products: Record<string, IEventProductForm[]> = useWatch({\n name: 'products',\n defaultValue: {},\n });\n const flatProducts: IEventProductForm[] = useMemo(\n () => Object.values(products).flat(),\n [products]\n );\n const shippingMethodId = watch('shipping.shippingMethodId');\n const [displayBranchName, setDisplayBranchName] = useState<string | null>(null);\n const [firstRender, setFirstRender] = useState<boolean>(true);\n const filteredShippingMethods = useMemo(\n () =>\n shippingMethods?.filter(\n (shippingMethod) =>\n !flatProducts?.find((product) =>\n product.excludedShippingMethodIds?.includes(shippingMethod?.id)\n ) &&\n !flatTickets.find((ticket) =>\n ticket.products.find((product) =>\n product.excludedShippingMethodIds?.includes(shippingMethod?.id)\n )\n )\n ),\n [shippingMethods, shippingMethodId, flatTickets, flatProducts]\n );\n\n const paymentImages = {\n [ShippingTypes.PACKETA]: (\n <Iconify icon=\"arcticons:packeta\" color=\"rgb(186,27,2)\" width={32} height={32} />\n ),\n [ShippingTypes.PICK_UP]: <Iconify icon=\"flowbite:store-solid\" width={32} height={32} />,\n };\n\n const onSelectBranch = (branch: any) => {\n if (branch) {\n setValue('shipping.branchId', branch.id);\n setDisplayBranchName(branch.name);\n } else {\n setValue('shipping.shippingMethodId', null);\n setValue('shipping.branchId', null);\n setDisplayBranchName(null);\n }\n };\n\n const openPacketaWidget = () => {\n const interval = setInterval(() => {\n if (window.Packeta && window.Packeta.Widget) {\n clearInterval(interval);\n window.Packeta.Widget.pick(options?.packetaApiKey, onSelectBranch, {\n language: lang,\n });\n }\n }, 100);\n };\n\n const handleChangeBranch = () => {\n setValue('shipping.branchId', null);\n setDisplayBranchName(null);\n openPacketaWidget();\n };\n\n useEffect(() => {\n if (firstRender && filteredShippingMethods.length === 1) {\n setValue('shipping.shippingMethodId', filteredShippingMethods[0].id);\n setFirstRender(false);\n }\n }, [firstRender, filteredShippingMethods]);\n\n useEffect(() => {\n const selectedShippingMethod = shippingMethods.find(\n (method) => method.id === Number(shippingMethodId)\n );\n\n if (selectedShippingMethod) {\n setValue('shipping.price', selectedShippingMethod.price);\n\n if (selectedShippingMethod.type !== ShippingTypes.PACKETA) {\n setValue('shipping.branchId', null);\n setDisplayBranchName(null);\n }\n } else {\n setValue('shipping.price', 0);\n }\n }, [shippingMethodId, shippingMethods]);\n\n return (\n <>\n <ScriptLoader />\n <div>\n {isLoading ? (\n <ShippingSkeleton />\n ) : (\n <>\n {filteredShippingMethods.length === 0 ? (\n <Typography variant=\"h4\" color=\"error\">\n {t('event.tickets.stepper.5.error')}\n </Typography>\n ) : (\n <>\n <Controller\n name=\"shipping.shippingMethodId\"\n control={control}\n render={({ field, fieldState: { error } }) => (\n <FormControl component=\"fieldset\" sx={{ width: '100%' }}>\n <RadioGroup\n {...field}\n onChange={(event, value) => {\n field.onChange(event);\n const selectedShippingMethod = filteredShippingMethods.find(\n (method) => method.id === Number(value)\n );\n\n if (selectedShippingMethod?.type === ShippingTypes.PACKETA) {\n openPacketaWidget();\n }\n }}\n >\n {filteredShippingMethods.map((shippingMethod) => (\n <ShippingMethodItem\n key={shippingMethod.id}\n active={Number(shippingMethodId) === shippingMethod.id}\n hasError={!!error}\n sx={{\n '& .MuiFormControlLabel-labelPlacementEnd': {\n mr: 0,\n width: '100%',\n },\n }}\n >\n <FormControlLabel\n value={shippingMethod.id}\n control={<Radio />}\n label={\n <Stack\n direction=\"row\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n width=\"100%\"\n >\n <Stack direction=\"column\">\n <Stack direction=\"row\" alignItems=\"center\" spacing={1}>\n <Typography sx={{ lineHeight: 1.2 }}>\n {t(`shipping_method.types.${shippingMethod.type}`)}\n </Typography>\n {paymentImages[shippingMethod.type]}\n </Stack>\n {displayBranchName &&\n shippingMethod.type === ShippingTypes.PACKETA &&\n shippingMethod.id === Number(shippingMethodId) && (\n <Typography variant=\"caption\" sx={{ lineHeight: 1 }}>\n {displayBranchName}\n </Typography>\n )}\n </Stack>\n {shippingMethod.type === ShippingTypes.PACKETA &&\n shippingMethod.id === Number(shippingMethodId) && (\n <Box>\n <Button\n onClick={handleChangeBranch}\n variant=\"outlined\"\n size=\"small\"\n sx={{ px: 1, whiteSpace: 'nowrap' }}\n >\n {t('event.tickets.shipping.choose_address')}\n </Button>\n </Box>\n )}\n </Stack>\n }\n sx={{\n '&:not(:last-of-type)': {\n mb: 0,\n },\n '& .MuiFormControlLabel-label': {\n width: '100%',\n mr: 0,\n },\n }}\n />\n </ShippingMethodItem>\n ))}\n </RadioGroup>\n\n {!!error && (\n <FormHelperText error={!!error} sx={{ mx: 0 }}>\n {error?.message}\n </FormHelperText>\n )}\n </FormControl>\n )}\n />\n </>\n )}\n </>\n )}\n </div>\n </>\n );\n};\n\nexport default Shipping;\n"],"names":["useGlobal","useEventShippingMethods","useFormContext","useWatch","useMemo","useState","ShippingTypes","Iconify","useEffect","ScriptLoader","ShippingSkeleton","Typography","Controller","FormControl","RadioGroup","shippingMethod","ShippingMethodItem","FormControlLabel","Radio","Stack","Box","Button","FormHelperText"],"mappings":"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"}