@eventlook/sdk 1.4.46-beta.7 → 1.4.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/.claude/settings.local.json +9 -0
  2. package/dist/cjs/components/Image.js +29 -14
  3. package/dist/cjs/components/Image.js.map +1 -1
  4. package/dist/cjs/components/hook-form/FormProvider.js +2 -2
  5. package/dist/cjs/components/hook-form/FormProvider.js.map +1 -1
  6. package/dist/cjs/form/ChildEventDialog.js +3 -3
  7. package/dist/cjs/form/ChildEventDialog.js.map +1 -1
  8. package/dist/cjs/form/ContactPerson.js +1 -1
  9. package/dist/cjs/form/ContactPerson.js.map +1 -1
  10. package/dist/cjs/form/Payment.js +2 -2
  11. package/dist/cjs/form/Payment.js.map +1 -1
  12. package/dist/cjs/form/PaymentOverviewBox.js +61 -47
  13. package/dist/cjs/form/PaymentOverviewBox.js.map +1 -1
  14. package/dist/cjs/form/PaymentPending.js +4 -1
  15. package/dist/cjs/form/PaymentPending.js.map +1 -1
  16. package/dist/cjs/form/ReleaseWithMerchandise.js +48 -57
  17. package/dist/cjs/form/ReleaseWithMerchandise.js.map +1 -1
  18. package/dist/cjs/form/TicketForm.js +25 -43
  19. package/dist/cjs/form/TicketForm.js.map +1 -1
  20. package/dist/cjs/form/TicketSelection.js +6 -5
  21. package/dist/cjs/form/TicketSelection.js.map +1 -1
  22. package/dist/cjs/form/TicketWithMerchandiseSelection.js +5 -3
  23. package/dist/cjs/form/TicketWithMerchandiseSelection.js.map +1 -1
  24. package/dist/cjs/form/index.js +1 -1
  25. package/dist/cjs/form/index.js.map +1 -1
  26. package/dist/cjs/form/payment/FeeBox.js +16 -4
  27. package/dist/cjs/form/payment/FeeBox.js.map +1 -1
  28. package/dist/cjs/form/payment/PaymentOverviewCheckbox.js +28 -34
  29. package/dist/cjs/form/payment/PaymentOverviewCheckbox.js.map +1 -1
  30. package/dist/cjs/form/product/ProductCard.js +36 -117
  31. package/dist/cjs/form/product/ProductCard.js.map +1 -1
  32. package/dist/cjs/form/product/ProductVariantsDialog.js +96 -158
  33. package/dist/cjs/form/product/ProductVariantsDialog.js.map +1 -1
  34. package/dist/cjs/locales/cs.js +2 -17
  35. package/dist/cjs/locales/cs.js.map +1 -1
  36. package/dist/cjs/locales/en.js +2 -17
  37. package/dist/cjs/locales/en.js.map +1 -1
  38. package/dist/cjs/locales/es.js +1 -16
  39. package/dist/cjs/locales/es.js.map +1 -1
  40. package/dist/cjs/locales/pl.js +1 -16
  41. package/dist/cjs/locales/pl.js.map +1 -1
  42. package/dist/cjs/locales/sk.js +1 -16
  43. package/dist/cjs/locales/sk.js.map +1 -1
  44. package/dist/cjs/locales/uk.js +1 -16
  45. package/dist/cjs/locales/uk.js.map +1 -1
  46. package/dist/cjs/utils/data/global.js +0 -2
  47. package/dist/cjs/utils/data/global.js.map +1 -1
  48. package/dist/esm/components/Image.js +30 -15
  49. package/dist/esm/components/Image.js.map +1 -1
  50. package/dist/esm/components/hook-form/FormProvider.js +2 -2
  51. package/dist/esm/components/hook-form/FormProvider.js.map +1 -1
  52. package/dist/esm/form/ChildEventDialog.js +3 -3
  53. package/dist/esm/form/ChildEventDialog.js.map +1 -1
  54. package/dist/esm/form/ContactPerson.js +1 -1
  55. package/dist/esm/form/ContactPerson.js.map +1 -1
  56. package/dist/esm/form/Payment.js +2 -2
  57. package/dist/esm/form/Payment.js.map +1 -1
  58. package/dist/esm/form/PaymentOverviewBox.js +62 -48
  59. package/dist/esm/form/PaymentOverviewBox.js.map +1 -1
  60. package/dist/esm/form/PaymentPending.js +4 -1
  61. package/dist/esm/form/PaymentPending.js.map +1 -1
  62. package/dist/esm/form/ReleaseWithMerchandise.js +49 -58
  63. package/dist/esm/form/ReleaseWithMerchandise.js.map +1 -1
  64. package/dist/esm/form/TicketForm.js +27 -45
  65. package/dist/esm/form/TicketForm.js.map +1 -1
  66. package/dist/esm/form/TicketSelection.js +6 -5
  67. package/dist/esm/form/TicketSelection.js.map +1 -1
  68. package/dist/esm/form/TicketWithMerchandiseSelection.js +6 -4
  69. package/dist/esm/form/TicketWithMerchandiseSelection.js.map +1 -1
  70. package/dist/esm/form/index.js +1 -1
  71. package/dist/esm/form/index.js.map +1 -1
  72. package/dist/esm/form/payment/FeeBox.js +17 -5
  73. package/dist/esm/form/payment/FeeBox.js.map +1 -1
  74. package/dist/esm/form/payment/PaymentOverviewCheckbox.js +30 -36
  75. package/dist/esm/form/payment/PaymentOverviewCheckbox.js.map +1 -1
  76. package/dist/esm/form/product/ProductCard.js +37 -118
  77. package/dist/esm/form/product/ProductCard.js.map +1 -1
  78. package/dist/esm/form/product/ProductVariantsDialog.js +98 -160
  79. package/dist/esm/form/product/ProductVariantsDialog.js.map +1 -1
  80. package/dist/esm/locales/cs.js +2 -17
  81. package/dist/esm/locales/cs.js.map +1 -1
  82. package/dist/esm/locales/en.js +2 -17
  83. package/dist/esm/locales/en.js.map +1 -1
  84. package/dist/esm/locales/es.js +1 -16
  85. package/dist/esm/locales/es.js.map +1 -1
  86. package/dist/esm/locales/pl.js +1 -16
  87. package/dist/esm/locales/pl.js.map +1 -1
  88. package/dist/esm/locales/sk.js +1 -16
  89. package/dist/esm/locales/sk.js.map +1 -1
  90. package/dist/esm/locales/uk.js +1 -16
  91. package/dist/esm/locales/uk.js.map +1 -1
  92. package/dist/esm/utils/data/global.js +1 -2
  93. package/dist/esm/utils/data/global.js.map +1 -1
  94. package/dist/types/components/Image.d.ts +4 -4
  95. package/dist/types/form/style.d.ts +1 -1
  96. package/package.json +2 -8
  97. package/rollup.config.mjs +0 -2
  98. package/src/components/Image.tsx +48 -27
  99. package/src/components/hook-form/FormProvider.tsx +2 -5
  100. package/src/form/ChildEventDialog.tsx +3 -3
  101. package/src/form/ContactPerson.tsx +1 -1
  102. package/src/form/MerchandiseSelection.tsx +29 -0
  103. package/src/form/Payment.tsx +2 -2
  104. package/src/form/PaymentOverviewBox.tsx +122 -89
  105. package/src/form/PaymentPending.tsx +1 -1
  106. package/src/form/ReleaseWithMerchandise.tsx +230 -0
  107. package/src/form/TicketForm.tsx +25 -63
  108. package/src/form/{tickets/TicketSelection.tsx → TicketSelection.tsx} +128 -24
  109. package/src/form/{tickets/TicketSelectionMap.tsx → TicketSelectionMap.tsx} +1 -9
  110. package/src/form/{tickets/TicketWithMerchandiseSelection.tsx → TicketWithMerchandiseSelection.tsx} +7 -3
  111. package/src/form/index.tsx +1 -3
  112. package/src/form/payment/FeeBox.tsx +31 -4
  113. package/src/form/payment/PaymentOverviewCheckbox.tsx +56 -57
  114. package/src/form/product/ProductCard.tsx +59 -179
  115. package/src/form/product/ProductVariantsDialog.tsx +140 -253
  116. package/src/locales/cs.tsx +2 -17
  117. package/src/locales/en.tsx +2 -17
  118. package/src/locales/es.tsx +1 -16
  119. package/src/locales/pl.tsx +1 -16
  120. package/src/locales/sk.tsx +1 -16
  121. package/src/locales/uk.tsx +1 -16
  122. package/src/utils/data/global.ts +0 -1
  123. package/tsconfig.json +1 -2
  124. package/.env.example +0 -1
  125. package/dist/cjs/_virtual/_commonjsHelpers.js +0 -8
  126. package/dist/cjs/_virtual/_commonjsHelpers.js.map +0 -1
  127. package/dist/cjs/_virtual/index.js +0 -6
  128. package/dist/cjs/_virtual/index.js.map +0 -1
  129. package/dist/cjs/_virtual/index2.js +0 -6
  130. package/dist/cjs/_virtual/index2.js.map +0 -1
  131. package/dist/cjs/_virtual/index3.js +0 -6
  132. package/dist/cjs/_virtual/index3.js.map +0 -1
  133. package/dist/cjs/_virtual/react-is.development.js +0 -6
  134. package/dist/cjs/_virtual/react-is.development.js.map +0 -1
  135. package/dist/cjs/_virtual/react-is.development2.js +0 -6
  136. package/dist/cjs/_virtual/react-is.development2.js.map +0 -1
  137. package/dist/cjs/_virtual/react-is.production.js +0 -6
  138. package/dist/cjs/_virtual/react-is.production.js.map +0 -1
  139. package/dist/cjs/_virtual/react-is.production.min.js +0 -6
  140. package/dist/cjs/_virtual/react-is.production.min.js.map +0 -1
  141. package/dist/cjs/form/PaymentOverviewDrawer.js +0 -149
  142. package/dist/cjs/form/PaymentOverviewDrawer.js.map +0 -1
  143. package/dist/cjs/form/TicketQuantityControl.js +0 -51
  144. package/dist/cjs/form/TicketQuantityControl.js.map +0 -1
  145. package/dist/cjs/form/TicketSelectionMobile.js +0 -98
  146. package/dist/cjs/form/TicketSelectionMobile.js.map +0 -1
  147. package/dist/cjs/form/merchandise/MerchandiseSelection.js +0 -14
  148. package/dist/cjs/form/merchandise/MerchandiseSelection.js.map +0 -1
  149. package/dist/cjs/form/merchandise/MerchandiseSlider.js +0 -40
  150. package/dist/cjs/form/merchandise/MerchandiseSlider.js.map +0 -1
  151. package/dist/cjs/form/merchendise/MerchandiseSelection.js +0 -19
  152. package/dist/cjs/form/merchendise/MerchandiseSelection.js.map +0 -1
  153. package/dist/cjs/form/merchendise/MerchandiseSlider.js +0 -75
  154. package/dist/cjs/form/merchendise/MerchandiseSlider.js.map +0 -1
  155. package/dist/cjs/form/services/index.js +0 -134
  156. package/dist/cjs/form/services/index.js.map +0 -1
  157. package/dist/cjs/form/tickets/ReleaseDescription.js +0 -23
  158. package/dist/cjs/form/tickets/ReleaseDescription.js.map +0 -1
  159. package/dist/cjs/form/tickets/ReleaseWithMerchandise.js +0 -141
  160. package/dist/cjs/form/tickets/ReleaseWithMerchandise.js.map +0 -1
  161. package/dist/cjs/form/tickets/TicketQuantityControl.js +0 -52
  162. package/dist/cjs/form/tickets/TicketQuantityControl.js.map +0 -1
  163. package/dist/cjs/form/tickets/TicketSelection.js +0 -139
  164. package/dist/cjs/form/tickets/TicketSelection.js.map +0 -1
  165. package/dist/cjs/form/tickets/TicketSelectionMap.js +0 -73
  166. package/dist/cjs/form/tickets/TicketSelectionMap.js.map +0 -1
  167. package/dist/cjs/form/tickets/TicketSelectionMobile.js +0 -90
  168. package/dist/cjs/form/tickets/TicketSelectionMobile.js.map +0 -1
  169. package/dist/cjs/form/tickets/TicketWithMerchandiseSelection.js +0 -117
  170. package/dist/cjs/form/tickets/TicketWithMerchandiseSelection.js.map +0 -1
  171. package/dist/esm/_virtual/_commonjsHelpers.js +0 -6
  172. package/dist/esm/_virtual/_commonjsHelpers.js.map +0 -1
  173. package/dist/esm/_virtual/index.js +0 -4
  174. package/dist/esm/_virtual/index.js.map +0 -1
  175. package/dist/esm/_virtual/index2.js +0 -4
  176. package/dist/esm/_virtual/index2.js.map +0 -1
  177. package/dist/esm/_virtual/index3.js +0 -4
  178. package/dist/esm/_virtual/index3.js.map +0 -1
  179. package/dist/esm/_virtual/react-is.development.js +0 -4
  180. package/dist/esm/_virtual/react-is.development.js.map +0 -1
  181. package/dist/esm/_virtual/react-is.development2.js +0 -4
  182. package/dist/esm/_virtual/react-is.development2.js.map +0 -1
  183. package/dist/esm/_virtual/react-is.production.js +0 -4
  184. package/dist/esm/_virtual/react-is.production.js.map +0 -1
  185. package/dist/esm/_virtual/react-is.production.min.js +0 -4
  186. package/dist/esm/_virtual/react-is.production.min.js.map +0 -1
  187. package/dist/esm/form/PaymentOverviewDrawer.js +0 -145
  188. package/dist/esm/form/PaymentOverviewDrawer.js.map +0 -1
  189. package/dist/esm/form/TicketQuantityControl.js +0 -47
  190. package/dist/esm/form/TicketQuantityControl.js.map +0 -1
  191. package/dist/esm/form/TicketSelectionMobile.js +0 -94
  192. package/dist/esm/form/TicketSelectionMobile.js.map +0 -1
  193. package/dist/esm/form/merchandise/MerchandiseSelection.js +0 -10
  194. package/dist/esm/form/merchandise/MerchandiseSelection.js.map +0 -1
  195. package/dist/esm/form/merchandise/MerchandiseSlider.js +0 -36
  196. package/dist/esm/form/merchandise/MerchandiseSlider.js.map +0 -1
  197. package/dist/esm/form/merchendise/MerchandiseSelection.js +0 -15
  198. package/dist/esm/form/merchendise/MerchandiseSelection.js.map +0 -1
  199. package/dist/esm/form/merchendise/MerchandiseSlider.js +0 -71
  200. package/dist/esm/form/merchendise/MerchandiseSlider.js.map +0 -1
  201. package/dist/esm/form/services/index.js +0 -130
  202. package/dist/esm/form/services/index.js.map +0 -1
  203. package/dist/esm/form/tickets/ReleaseDescription.js +0 -19
  204. package/dist/esm/form/tickets/ReleaseDescription.js.map +0 -1
  205. package/dist/esm/form/tickets/ReleaseWithMerchandise.js +0 -137
  206. package/dist/esm/form/tickets/ReleaseWithMerchandise.js.map +0 -1
  207. package/dist/esm/form/tickets/TicketQuantityControl.js +0 -48
  208. package/dist/esm/form/tickets/TicketQuantityControl.js.map +0 -1
  209. package/dist/esm/form/tickets/TicketSelection.js +0 -135
  210. package/dist/esm/form/tickets/TicketSelection.js.map +0 -1
  211. package/dist/esm/form/tickets/TicketSelectionMap.js +0 -69
  212. package/dist/esm/form/tickets/TicketSelectionMap.js.map +0 -1
  213. package/dist/esm/form/tickets/TicketSelectionMobile.js +0 -86
  214. package/dist/esm/form/tickets/TicketSelectionMobile.js.map +0 -1
  215. package/dist/esm/form/tickets/TicketWithMerchandiseSelection.js +0 -113
  216. package/dist/esm/form/tickets/TicketWithMerchandiseSelection.js.map +0 -1
  217. package/dist/types/form/PaymentOverviewDrawer.d.ts +0 -8
  218. package/dist/types/form/merchendise/MerchandiseSelection.d.ts +0 -9
  219. package/dist/types/form/merchendise/MerchandiseSlider.d.ts +0 -10
  220. package/dist/types/form/merchendise/MerchendiseSlider.d.ts +0 -0
  221. package/src/form/PaymentOverviewDrawer.tsx +0 -228
  222. package/src/form/merchandise/MerchandiseSelection.tsx +0 -24
  223. package/src/form/merchandise/MerchandiseSlider.tsx +0 -62
  224. package/src/form/services/index.tsx +0 -263
  225. package/src/form/tickets/ReleaseDescription.tsx +0 -46
  226. package/src/form/tickets/ReleaseWithMerchandise.tsx +0 -239
  227. package/src/form/tickets/TicketQuantityControl.tsx +0 -94
  228. package/src/form/tickets/TicketSelectionMobile.tsx +0 -177
@@ -1,14 +1,22 @@
1
- import React, { useState, useEffect, useMemo } from 'react';
2
- import { Dialog, DialogTitle, DialogContent, Stack, Typography, DialogActions, Box, Button } from '@mui/material';
1
+ import React, { useState, useEffect } from 'react';
2
+ import { Dialog, DialogTitle, DialogContent, Stack, Typography, DialogActions, Button, Badge, IconButton } from '@mui/material';
3
3
  import Image from '../../components/Image.js';
4
4
  import { useWatch } from 'react-hook-form';
5
5
  import { fCurrency } from '../../utils/formatNumber.js';
6
6
  import useGlobal from '../../hooks/useGlobal.js';
7
+ import 'framer-motion';
8
+ import '../../components/animate/IconButtonAnimate.js';
9
+ import '@mui/material/styles';
10
+ import '@mui/material/useMediaQuery';
11
+ import Iconify from '../../components/iconify/Iconify.js';
7
12
 
8
- const ProductVariantsDialog = ({ eventProduct, openDialog, onClose, callback, selectedQuantityByVariant, isOnlyMerchandise, eventId, canAddOnlyOneAtATime, }) => {
13
+ const ProductVariantsDialog = ({ eventProduct, openDialog, onClose, callback, selectedQuantityByVariant, isOnlyMerchandise, eventId, }) => {
9
14
  const { t, lang, options } = useGlobal();
10
15
  const { showSnackbar } = useGlobal();
11
- const [draftQuantities, setDraftQuantities] = useState({});
16
+ const [selectedVariant, setSelectedVariant] = useState(null);
17
+ const [variantPrice, setVariantPrice] = useState(null);
18
+ const [variantQuantity, setVariantQuantity] = useState(1);
19
+ const [isVariantClicked, setIsVariantClicked] = useState(false);
12
20
  const tickets = useWatch({ name: `tickets.${eventId}`, defaultValue: [] });
13
21
  const products = useWatch({ name: `products.${eventId}`, defaultValue: [] });
14
22
  useEffect(() => {
@@ -19,36 +27,38 @@ const ProductVariantsDialog = ({ eventProduct, openDialog, onClose, callback, se
19
27
  }
20
28
  }, [openDialog]);
21
29
  useEffect(() => {
22
- if (openDialog) {
23
- setDraftQuantities(canAddOnlyOneAtATime ? {} : (selectedQuantityByVariant ?? {}));
30
+ if (isVariantClicked) {
31
+ setVariantQuantity(selectedQuantityByVariant &&
32
+ selectedVariant &&
33
+ selectedQuantityByVariant[selectedVariant.eventProductVariantId] !== undefined
34
+ ? selectedQuantityByVariant[selectedVariant.eventProductVariantId]
35
+ : 1);
36
+ setIsVariantClicked(false);
24
37
  }
25
- }, [openDialog, selectedQuantityByVariant, canAddOnlyOneAtATime]);
38
+ }, [selectedVariant, isVariantClicked]);
39
+ const handleOnClick = (variant) => {
40
+ setVariantPrice(variant.priceWithVat);
41
+ setSelectedVariant({
42
+ eventProductVariantId: variant.id,
43
+ productVariantId: variant.productVariant.id,
44
+ quantity: 1,
45
+ price: variant.priceWithVat,
46
+ excludedShippingMethodIds: eventProduct.excludedShippingMethods.map((method) => method.id),
47
+ });
48
+ setIsVariantClicked(true);
49
+ };
26
50
  const handleOnAdd = () => {
27
- const selectedVariants = eventProduct.eventProductVariants
28
- .map((variant) => {
29
- const quantity = draftQuantities[variant.id] ?? 0;
30
- const selectedQty = selectedQuantityByVariant?.[variant.id] ?? 0;
31
- if (quantity <= 0 && selectedQty <= 0)
32
- return null;
33
- return {
34
- eventProductVariantId: variant.id,
35
- productVariantId: variant.productVariant.id,
36
- quantity,
37
- price: variant.priceWithVat,
38
- excludedShippingMethodIds: eventProduct.excludedShippingMethods.map((method) => method.id),
39
- };
40
- })
41
- .filter((variant) => Boolean(variant));
42
- if (selectedVariants.length === 0) {
51
+ if (!selectedVariant) {
43
52
  showSnackbar(t('components.product_variant_dialog.select_variant'), { variant: 'error' });
44
53
  return;
45
54
  }
46
- callback(selectedVariants);
47
- setDraftQuantities({});
55
+ callback(selectedVariant);
56
+ setSelectedVariant(null);
48
57
  onClose?.();
49
58
  };
50
- const getUsedCount = (variant) => {
59
+ const isVariantDisabled = (variant) => {
51
60
  let countUsed = 0;
61
+ let selectedVariantQuantity = 0;
52
62
  for (const product of products) {
53
63
  if (product.productVariantId === variant.productVariant.id) {
54
64
  countUsed += product.quantity;
@@ -59,78 +69,59 @@ const ProductVariantsDialog = ({ eventProduct, openDialog, onClose, callback, se
59
69
  for (const product of ticket.products) {
60
70
  if (product.productVariantId === variant.productVariant.id) {
61
71
  countUsed += product.quantity;
72
+ selectedVariantQuantity = product.quantity;
62
73
  }
63
74
  }
64
75
  }
65
76
  }
66
- return countUsed;
67
- };
68
- const getMaxAvailable = (variant) => {
69
- if (!variant.productVariant.quantity)
70
- return Number.POSITIVE_INFINITY;
71
- return variant.productVariant.quantity - variant.productVariant.sold - getUsedCount(variant);
72
- };
73
- const isVariantDisabled = (variant) => {
74
- if (!variant.productVariant.quantity)
75
- return false;
76
- return getMaxAvailable(variant) <= 0;
77
- };
78
- const handleAddQuantity = (variant) => {
79
- setDraftQuantities((prev) => {
80
- const current = prev[variant.id] ?? 0;
81
- const next = current + 1;
82
- const maxAvailable = getMaxAvailable(variant);
83
- if (next > 10 || next > maxAvailable)
84
- return prev;
85
- if (canAddOnlyOneAtATime) {
86
- // Only allow one variant to be selected
87
- return { [variant.id]: 1 };
88
- }
89
- return { ...prev, [variant.id]: next };
90
- });
77
+ return ((variant.productVariant.quantity &&
78
+ countUsed + variant.productVariant.sold >= variant.productVariant.quantity) ||
79
+ selectedVariantQuantity >= 10);
91
80
  };
92
- const handleRemoveQuantity = (variant) => {
93
- setDraftQuantities((prev) => {
94
- const current = prev[variant.id] ?? 0;
95
- const next = current - 1;
96
- if (next <= 0) {
97
- const rest = { ...prev };
98
- delete rest[variant.id];
99
- return rest;
81
+ const isVariantSoldOut = () => {
82
+ const variant = eventProduct.eventProductVariants.find((product) => product.id === selectedVariant?.eventProductVariantId);
83
+ let countUsed = variantQuantity;
84
+ for (const ticket of tickets) {
85
+ if (ticket.products) {
86
+ for (const product of ticket.products) {
87
+ if (product.productVariantId === variant?.productVariant.id) {
88
+ countUsed += product.quantity;
89
+ }
90
+ }
100
91
  }
101
- if (canAddOnlyOneAtATime) {
102
- // Remove the only variant
103
- return {};
92
+ }
93
+ if (variant && variant.productVariant.quantity) {
94
+ if (variant.productVariant.sold + countUsed >= variant.productVariant.quantity ||
95
+ variantQuantity >= 10) {
96
+ return true;
104
97
  }
105
- return { ...prev, [variant.id]: next };
98
+ }
99
+ return false;
100
+ };
101
+ const handleAddQuantity = () => {
102
+ setVariantQuantity(variantQuantity + 1);
103
+ setSelectedVariant((prevState) => {
104
+ if (!prevState)
105
+ return null;
106
+ return {
107
+ ...prevState,
108
+ quantity: variantQuantity + 1,
109
+ };
106
110
  });
107
111
  };
108
- const handleRemoveProduct = () => {
109
- const variantsToRemove = eventProduct.eventProductVariants
110
- .filter((variant) => (selectedQuantityByVariant?.[variant.id] ?? 0) > 0)
111
- .map((variant) => ({
112
- eventProductVariantId: variant.id,
113
- productVariantId: variant.productVariant.id,
114
- quantity: 0,
115
- price: variant.priceWithVat,
116
- excludedShippingMethodIds: eventProduct.excludedShippingMethods.map((method) => method.id),
117
- }));
118
- if (variantsToRemove.length === 0) {
119
- return;
112
+ const handleRemoveQuantity = () => {
113
+ if (variantQuantity > 0) {
114
+ setVariantQuantity(variantQuantity - 1);
120
115
  }
121
- callback(variantsToRemove);
122
- setDraftQuantities({});
123
- onClose?.();
116
+ setSelectedVariant((prevState) => {
117
+ if (!prevState)
118
+ return null;
119
+ return {
120
+ ...prevState,
121
+ quantity: variantQuantity - 1,
122
+ };
123
+ });
124
124
  };
125
- const hasSelectedVariants = eventProduct.eventProductVariants.some((variant) => (selectedQuantityByVariant?.[variant.id] ?? 0) > 0);
126
- const variantsById = useMemo(() => new Map(eventProduct.eventProductVariants.map((variant) => [variant.id, variant])), [eventProduct.eventProductVariants]);
127
- const totalDraftPrice = useMemo(() => Object.entries(draftQuantities).reduce((total, [variantId, qty]) => {
128
- const variant = variantsById.get(Number(variantId));
129
- if (!variant)
130
- return total;
131
- return total + variant.priceWithVat * qty;
132
- }, 0), [draftQuantities, variantsById]);
133
- const hasDraftSelection = useMemo(() => eventProduct.eventProductVariants.some((variant) => (draftQuantities[variant.id] ?? 0) > 0), [eventProduct.eventProductVariants, draftQuantities]);
134
125
  return (React.createElement(Dialog, { open: openDialog, onClose: () => onClose && onClose(), fullWidth: true, sx: {
135
126
  mx: 'auto',
136
127
  width: {
@@ -143,88 +134,35 @@ const ProductVariantsDialog = ({ eventProduct, openDialog, onClose, callback, se
143
134
  height: options?.isIframe ? 'auto' : '100%',
144
135
  },
145
136
  } },
146
- React.createElement(DialogTitle, { sx: { textAlign: 'center', fontWeight: 700, fontSize: { xs: '1.5rem', sm: '1.5rem' } } }, eventProduct.product.name),
147
- React.createElement(DialogContent, { sx: { pb: 0 } },
137
+ React.createElement(DialogTitle, null),
138
+ React.createElement(DialogContent, null,
148
139
  React.createElement(Stack, { spacing: 1 },
149
- React.createElement(Image, { src: eventProduct.product.previewImage.url, alt: eventProduct.product.name, ratio: "16/9", sx: { borderRadius: 1 } }),
140
+ React.createElement(Image, { src: eventProduct.product.previewImage.url, alt: eventProduct.product.name, ratio: "1/1", sx: { borderRadius: 2 } }),
141
+ React.createElement(Typography, { variant: "h5" }, eventProduct.product.name),
150
142
  React.createElement(Typography, { variant: "body2", color: "primary" },
151
143
  t('form.labels.category'),
152
144
  ": ",
153
145
  eventProduct.product.category.value.text),
154
146
  React.createElement(Typography, { variant: "caption", dangerouslySetInnerHTML: { __html: eventProduct.product.description } }))),
155
147
  React.createElement(DialogActions, { sx: { justifyContent: 'flex-start' } },
156
- React.createElement(Stack, { spacing: 1, width: "100%" },
157
- React.createElement(Stack, { spacing: 1 }, eventProduct.eventProductVariants.map((variant) => {
158
- const draftQty = draftQuantities[variant.id] ?? 0;
159
- const maxAvailable = getMaxAvailable(variant);
160
- const isAddDisabled = isVariantDisabled(variant) || maxAvailable <= 0;
161
- const isAnotherSelected = canAddOnlyOneAtATime &&
162
- Object.keys(draftQuantities).length > 0 &&
163
- !draftQuantities[variant.id];
164
- return (React.createElement(Stack, { key: variant.id, direction: "row", spacing: 1, alignItems: "center", width: "100%" },
165
- React.createElement(Box, { sx: {
166
- minWidth: 64,
167
- maxWidth: 64,
168
- height: 36,
169
- borderRadius: 1,
170
- fontWeight: 700,
171
- border: 1,
172
- borderColor: 'divider',
173
- bgcolor: 'background.paper',
174
- color: 'text.primary',
175
- display: 'flex',
176
- alignItems: 'center',
177
- justifyContent: 'center',
178
- } }, variant.productVariant.value),
179
- draftQty > 0 ? (React.createElement(Box, { sx: {
180
- flex: 1,
181
- display: 'grid',
182
- gridTemplateColumns: canAddOnlyOneAtATime
183
- ? 'repeat(2, minmax(0, 1fr))'
184
- : 'repeat(3, minmax(0, 1fr))',
185
- gap: 1,
186
- alignItems: 'center',
187
- } },
188
- React.createElement(Button, { variant: "outlined", onClick: () => handleRemoveQuantity(variant), disabled: draftQty < 1, sx: {
189
- minWidth: 0,
190
- height: 36,
191
- borderRadius: 1,
192
- fontWeight: 700,
193
- borderColor: 'grey.300',
194
- color: 'text.primary',
195
- } }, "-"),
196
- React.createElement(Typography, { sx: {
197
- minWidth: 0,
198
- height: 36,
199
- borderRadius: 1,
200
- border: 1,
201
- borderColor: 'divider',
202
- boxSizing: 'border-box',
203
- display: 'flex',
204
- alignItems: 'center',
205
- justifyContent: 'center',
206
- textAlign: 'center',
207
- fontWeight: 700,
208
- color: 'text.primary',
209
- } }, draftQty),
210
- !canAddOnlyOneAtATime && (React.createElement(Button, { variant: "contained", onClick: () => handleAddQuantity(variant), disabled: draftQty >= 10 || draftQty >= maxAvailable, sx: { minWidth: 0, height: 36, borderRadius: 1, fontWeight: 700 } }, "+")))) : (React.createElement(Button, { variant: "contained", onClick: () => handleAddQuantity(variant), disabled: isOnlyMerchandise ? false : isAddDisabled || isAnotherSelected, sx: {
211
- flex: 1,
212
- height: 36,
213
- borderRadius: 1,
214
- fontWeight: 700,
215
- textTransform: 'none',
216
- } }, t('add'))),
217
- React.createElement(Typography, { variant: "body1" }, variant.priceWithVat > 0
218
- ? fCurrency(variant.priceWithVat, lang, eventProduct.product.currency)
219
- : t('free'))));
220
- })),
221
- React.createElement(Stack, { direction: "row", spacing: 1, justifyContent: "space-between", alignItems: "center", width: "100%" },
222
- React.createElement(Typography, { variant: "body1" }, t('form.labels.total')),
223
- React.createElement(Typography, { variant: "body1", fontWeight: 600 }, fCurrency(totalDraftPrice, lang, eventProduct.product.currency))),
148
+ React.createElement(Stack, { spacing: 2, width: "100%" },
149
+ React.createElement(Stack, { direction: "row", spacing: 1, flexWrap: "wrap", useFlexGap: true, textAlign: "left" }, eventProduct.eventProductVariants.map((variant) => (React.createElement(Button, { key: variant.id, onClick: () => handleOnClick(variant), variant: variant.id === selectedVariant?.eventProductVariantId ? 'contained' : 'outlined', size: "large", disabled: isOnlyMerchandise ? false : isVariantDisabled(variant) },
150
+ React.createElement(Badge, { color: "primary", badgeContent: selectedQuantityByVariant ? selectedQuantityByVariant[variant.id] : 0, sx: { position: 'unset' } }, variant.productVariant.value))))),
151
+ React.createElement(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", pt: 1 },
152
+ selectedVariant && isOnlyMerchandise && (React.createElement(Stack, { direction: "row", alignItems: "center", spacing: 1 },
153
+ React.createElement(IconButton, { size: "small", color: "primary", onClick: handleRemoveQuantity, disabled: variantQuantity < 1 },
154
+ React.createElement(Iconify, { icon: "eva:minus-fill" })),
155
+ React.createElement(Typography, { color: "grey.500" }, variantQuantity),
156
+ React.createElement(IconButton, { size: "small", color: "primary", onClick: handleAddQuantity, disabled: isVariantSoldOut() },
157
+ React.createElement(Iconify, { icon: "eva:plus-fill" })))),
158
+ React.createElement(Typography, { variant: "h4", textAlign: "right", mt: 0 }, variantPrice !== null
159
+ ? variantPrice > 0
160
+ ? fCurrency(variantPrice, lang, eventProduct.product.currency)
161
+ : t('free')
162
+ : t('unselected'))),
224
163
  React.createElement(Stack, { direction: "row", spacing: 1, justifyContent: "flex-end", width: "100%" },
225
- hasSelectedVariants && !canAddOnlyOneAtATime && (React.createElement(Button, { variant: "outlined", color: "error", onClick: handleRemoveProduct }, t('remove'))),
226
164
  onClose && React.createElement(Button, { onClick: onClose }, t('cancel')),
227
- React.createElement(Button, { variant: "contained", onClick: handleOnAdd, disabled: !hasDraftSelection }, t('confirm')))))));
165
+ React.createElement(Button, { variant: "contained", onClick: handleOnAdd, disabled: !selectedVariant }, t('add')))))));
228
166
  };
229
167
 
230
168
  export { ProductVariantsDialog as default };
@@ -1 +1 @@
1
- {"version":3,"file":"ProductVariantsDialog.js","sources":["../../../../src/form/product/ProductVariantsDialog.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport {\n Box,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Stack,\n Typography,\n} from '@mui/material';\nimport { IEventProduct, IEventProductVariant } from '@utils/types/event-product.type';\nimport Image from '@components/Image';\nimport { useWatch } from 'react-hook-form';\nimport { ITicketFormTicket } from '@utils/types/ticket.type';\nimport { IEventProductForm } from '@utils/types/product.type';\nimport { fCurrency } from '@utils/formatNumber';\nimport useGlobal from '@hooks/useGlobal.ts';\n\ninterface Props {\n eventProduct: IEventProduct;\n eventId: number;\n openDialog: boolean;\n callback: (variants: IEventProductForm[]) => void;\n onClose?: () => void;\n selectedQuantityByVariant?: Record<number, number>;\n isOnlyMerchandise?: boolean;\n canAddOnlyOneAtATime?: boolean;\n}\n\nconst ProductVariantsDialog: React.FC<Props> = ({\n eventProduct,\n openDialog,\n onClose,\n callback,\n selectedQuantityByVariant,\n isOnlyMerchandise,\n eventId,\n canAddOnlyOneAtATime,\n}) => {\n const { t, lang, options } = useGlobal();\n const { showSnackbar } = useGlobal();\n const [draftQuantities, setDraftQuantities] = useState<Record<number, number>>({});\n const tickets: ITicketFormTicket[] = useWatch({ name: `tickets.${eventId}`, defaultValue: [] });\n const products: IEventProductForm[] = useWatch({ name: `products.${eventId}`, defaultValue: [] });\n\n useEffect(() => {\n if (openDialog) {\n const urlParams = new URLSearchParams(new URL(window.location.href).search);\n const elementId = urlParams.get('elementId');\n parent.postMessage({ type: 'eventlookFrameOpenDialog', name: elementId }, '*');\n }\n }, [openDialog]);\n\n useEffect(() => {\n if (openDialog) {\n setDraftQuantities(canAddOnlyOneAtATime ? {} : (selectedQuantityByVariant ?? {}));\n }\n }, [openDialog, selectedQuantityByVariant, canAddOnlyOneAtATime]);\n\n const handleOnAdd = () => {\n const selectedVariants = eventProduct.eventProductVariants\n .map((variant) => {\n const quantity = draftQuantities[variant.id] ?? 0;\n const selectedQty = selectedQuantityByVariant?.[variant.id] ?? 0;\n if (quantity <= 0 && selectedQty <= 0) return null;\n return {\n eventProductVariantId: variant.id,\n productVariantId: variant.productVariant.id,\n quantity,\n price: variant.priceWithVat,\n excludedShippingMethodIds: eventProduct.excludedShippingMethods.map(\n (method) => method.id\n ),\n } as IEventProductForm;\n })\n .filter((variant): variant is IEventProductForm => Boolean(variant));\n\n if (selectedVariants.length === 0) {\n showSnackbar(t('components.product_variant_dialog.select_variant'), { variant: 'error' });\n return;\n }\n\n callback(selectedVariants);\n setDraftQuantities({});\n onClose?.();\n };\n\n const getUsedCount = (variant: IEventProductVariant) => {\n let countUsed = 0;\n\n for (const product of products) {\n if (product.productVariantId === variant.productVariant.id) {\n countUsed += product.quantity;\n }\n }\n\n for (const ticket of tickets) {\n if (ticket.products) {\n for (const product of ticket.products) {\n if (product.productVariantId === variant.productVariant.id) {\n countUsed += product.quantity;\n }\n }\n }\n }\n return countUsed;\n };\n\n const getMaxAvailable = (variant: IEventProductVariant) => {\n if (!variant.productVariant.quantity) return Number.POSITIVE_INFINITY;\n return variant.productVariant.quantity - variant.productVariant.sold - getUsedCount(variant);\n };\n\n const isVariantDisabled = (variant: IEventProductVariant) => {\n if (!variant.productVariant.quantity) return false;\n return getMaxAvailable(variant) <= 0;\n };\n\n const handleAddQuantity = (variant: IEventProductVariant) => {\n setDraftQuantities((prev) => {\n const current = prev[variant.id] ?? 0;\n const next = current + 1;\n const maxAvailable = getMaxAvailable(variant);\n if (next > 10 || next > maxAvailable) return prev;\n if (canAddOnlyOneAtATime) {\n // Only allow one variant to be selected\n return { [variant.id]: 1 };\n }\n return { ...prev, [variant.id]: next };\n });\n };\n\n const handleRemoveQuantity = (variant: IEventProductVariant) => {\n setDraftQuantities((prev) => {\n const current = prev[variant.id] ?? 0;\n const next = current - 1;\n if (next <= 0) {\n const rest = { ...prev };\n delete rest[variant.id];\n return rest;\n }\n if (canAddOnlyOneAtATime) {\n // Remove the only variant\n return {};\n }\n return { ...prev, [variant.id]: next };\n });\n };\n\n const handleRemoveProduct = () => {\n const variantsToRemove = eventProduct.eventProductVariants\n .filter((variant) => (selectedQuantityByVariant?.[variant.id] ?? 0) > 0)\n .map(\n (variant) =>\n ({\n eventProductVariantId: variant.id,\n productVariantId: variant.productVariant.id,\n quantity: 0,\n price: variant.priceWithVat,\n excludedShippingMethodIds: eventProduct.excludedShippingMethods.map(\n (method) => method.id\n ),\n }) as IEventProductForm\n );\n\n if (variantsToRemove.length === 0) {\n return;\n }\n\n callback(variantsToRemove);\n setDraftQuantities({});\n onClose?.();\n };\n\n const hasSelectedVariants = eventProduct.eventProductVariants.some(\n (variant) => (selectedQuantityByVariant?.[variant.id] ?? 0) > 0\n );\n\n const variantsById = useMemo(\n () => new Map(eventProduct.eventProductVariants.map((variant) => [variant.id, variant])),\n [eventProduct.eventProductVariants]\n );\n\n const totalDraftPrice = useMemo(\n () =>\n Object.entries(draftQuantities).reduce((total, [variantId, qty]) => {\n const variant = variantsById.get(Number(variantId));\n if (!variant) return total;\n return total + variant.priceWithVat * qty;\n }, 0),\n [draftQuantities, variantsById]\n );\n\n const hasDraftSelection = useMemo(\n () =>\n eventProduct.eventProductVariants.some((variant) => (draftQuantities[variant.id] ?? 0) > 0),\n [eventProduct.eventProductVariants, draftQuantities]\n );\n\n return (\n <Dialog\n open={openDialog}\n onClose={() => onClose && onClose()}\n fullWidth\n sx={{\n mx: 'auto',\n width: {\n xs: '100%',\n sm: 'calc(100vh - 300px)',\n },\n minWidth: 300,\n maxWidth: 444,\n '& .MuiDialog-container': {\n height: options?.isIframe ? 'auto' : '100%',\n },\n }}\n >\n <DialogTitle\n sx={{ textAlign: 'center', fontWeight: 700, fontSize: { xs: '1.5rem', sm: '1.5rem' } }}\n >\n {eventProduct.product.name}\n </DialogTitle>\n <DialogContent sx={{ pb: 0 }}>\n <Stack spacing={1}>\n <Image\n src={eventProduct.product.previewImage.url}\n alt={eventProduct.product.name}\n ratio=\"16/9\"\n sx={{ borderRadius: 1 }}\n />\n <Typography variant=\"body2\" color=\"primary\">\n {t('form.labels.category')}: {eventProduct.product.category.value.text}\n </Typography>\n <Typography\n variant=\"caption\"\n dangerouslySetInnerHTML={{ __html: eventProduct.product.description }}\n />\n </Stack>\n </DialogContent>\n <DialogActions sx={{ justifyContent: 'flex-start' }}>\n <Stack spacing={1} width=\"100%\">\n <Stack spacing={1}>\n {eventProduct.eventProductVariants.map((variant) => {\n const draftQty = draftQuantities[variant.id] ?? 0;\n const maxAvailable = getMaxAvailable(variant);\n const isAddDisabled = isVariantDisabled(variant) || maxAvailable <= 0;\n const isAnotherSelected =\n canAddOnlyOneAtATime &&\n Object.keys(draftQuantities).length > 0 &&\n !draftQuantities[variant.id];\n return (\n <Stack\n key={variant.id}\n direction=\"row\"\n spacing={1}\n alignItems=\"center\"\n width=\"100%\"\n >\n <Box\n sx={{\n minWidth: 64,\n maxWidth: 64,\n height: 36,\n borderRadius: 1,\n fontWeight: 700,\n border: 1,\n borderColor: 'divider',\n bgcolor: 'background.paper',\n color: 'text.primary',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n {variant.productVariant.value}\n </Box>\n {draftQty > 0 ? (\n <Box\n sx={{\n flex: 1,\n display: 'grid',\n gridTemplateColumns: canAddOnlyOneAtATime\n ? 'repeat(2, minmax(0, 1fr))'\n : 'repeat(3, minmax(0, 1fr))',\n gap: 1,\n alignItems: 'center',\n }}\n >\n <Button\n variant=\"outlined\"\n onClick={() => handleRemoveQuantity(variant)}\n disabled={draftQty < 1}\n sx={{\n minWidth: 0,\n height: 36,\n borderRadius: 1,\n fontWeight: 700,\n borderColor: 'grey.300',\n color: 'text.primary',\n }}\n >\n -\n </Button>\n <Typography\n sx={{\n minWidth: 0,\n height: 36,\n borderRadius: 1,\n border: 1,\n borderColor: 'divider',\n boxSizing: 'border-box',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n fontWeight: 700,\n color: 'text.primary',\n }}\n >\n {draftQty}\n </Typography>\n {!canAddOnlyOneAtATime && (\n <Button\n variant=\"contained\"\n onClick={() => handleAddQuantity(variant)}\n disabled={draftQty >= 10 || draftQty >= maxAvailable}\n sx={{ minWidth: 0, height: 36, borderRadius: 1, fontWeight: 700 }}\n >\n +\n </Button>\n )}\n </Box>\n ) : (\n <Button\n variant=\"contained\"\n onClick={() => handleAddQuantity(variant)}\n disabled={isOnlyMerchandise ? false : isAddDisabled || isAnotherSelected}\n sx={{\n flex: 1,\n height: 36,\n borderRadius: 1,\n fontWeight: 700,\n textTransform: 'none',\n }}\n >\n {t('add')}\n </Button>\n )}\n\n <Typography variant=\"body1\">\n {variant.priceWithVat > 0\n ? fCurrency(variant.priceWithVat, lang, eventProduct.product.currency)\n : t('free')}\n </Typography>\n </Stack>\n );\n })}\n </Stack>\n <Stack\n direction=\"row\"\n spacing={1}\n justifyContent=\"space-between\"\n alignItems=\"center\"\n width=\"100%\"\n >\n <Typography variant=\"body1\">{t('form.labels.total')}</Typography>\n <Typography variant=\"body1\" fontWeight={600}>\n {fCurrency(totalDraftPrice, lang, eventProduct.product.currency)}\n </Typography>\n </Stack>\n <Stack direction=\"row\" spacing={1} justifyContent=\"flex-end\" width=\"100%\">\n {hasSelectedVariants && !canAddOnlyOneAtATime && (\n <Button variant=\"outlined\" color=\"error\" onClick={handleRemoveProduct}>\n {t('remove')}\n </Button>\n )}\n {onClose && <Button onClick={onClose}>{t('cancel')}</Button>}\n <Button variant=\"contained\" onClick={handleOnAdd} disabled={!hasDraftSelection}>\n {t('confirm')}\n </Button>\n </Stack>\n </Stack>\n </DialogActions>\n </Dialog>\n );\n};\n\nexport default ProductVariantsDialog;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProductVariantsDialog.js","sources":["../../../../src/form/product/ProductVariantsDialog.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n Badge,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n IconButton,\n Stack,\n Typography,\n} from '@mui/material';\nimport { IEventProduct, IEventProductVariant } from '@utils/types/event-product.type';\nimport Image from '@components/Image';\nimport { useWatch } from 'react-hook-form';\nimport { ITicketFormTicket } from '@utils/types/ticket.type';\nimport { IEventProductForm } from '@utils/types/product.type';\nimport { fCurrency } from '@utils/formatNumber';\nimport useGlobal from '@hooks/useGlobal.ts';\nimport { Iconify } from '@components';\n\ninterface Props {\n eventProduct: IEventProduct;\n eventId: number;\n openDialog: boolean;\n callback: (variant: IEventProductForm) => void;\n onClose?: () => void;\n selectedQuantityByVariant?: Record<number, number>;\n isOnlyMerchandise?: boolean;\n}\n\nconst ProductVariantsDialog: React.FC<Props> = ({\n eventProduct,\n openDialog,\n onClose,\n callback,\n selectedQuantityByVariant,\n isOnlyMerchandise,\n eventId,\n}) => {\n const { t, lang, options } = useGlobal();\n const { showSnackbar } = useGlobal();\n const [selectedVariant, setSelectedVariant] = useState<IEventProductForm | null>(null);\n const [variantPrice, setVariantPrice] = useState<number | null>(null);\n const [variantQuantity, setVariantQuantity] = useState<number>(1);\n const [isVariantClicked, setIsVariantClicked] = useState(false);\n const tickets: ITicketFormTicket[] = useWatch({ name: `tickets.${eventId}`, defaultValue: [] });\n const products: IEventProductForm[] = useWatch({ name: `products.${eventId}`, defaultValue: [] });\n\n useEffect(() => {\n if (openDialog) {\n const urlParams = new URLSearchParams(new URL(window.location.href).search);\n const elementId = urlParams.get('elementId');\n parent.postMessage({ type: 'eventlookFrameOpenDialog', name: elementId }, '*');\n }\n }, [openDialog]);\n\n useEffect(() => {\n if (isVariantClicked) {\n setVariantQuantity(\n selectedQuantityByVariant &&\n selectedVariant &&\n selectedQuantityByVariant[selectedVariant.eventProductVariantId] !== undefined\n ? selectedQuantityByVariant[selectedVariant.eventProductVariantId]\n : 1\n );\n setIsVariantClicked(false);\n }\n }, [selectedVariant, isVariantClicked]);\n\n const handleOnClick = (variant: IEventProductVariant) => {\n setVariantPrice(variant.priceWithVat);\n setSelectedVariant({\n eventProductVariantId: variant.id,\n productVariantId: variant.productVariant.id,\n quantity: 1,\n price: variant.priceWithVat,\n excludedShippingMethodIds: eventProduct.excludedShippingMethods.map((method) => method.id),\n });\n setIsVariantClicked(true);\n };\n\n const handleOnAdd = () => {\n if (!selectedVariant) {\n showSnackbar(t('components.product_variant_dialog.select_variant'), { variant: 'error' });\n return;\n }\n callback(selectedVariant);\n setSelectedVariant(null);\n onClose?.();\n };\n\n const isVariantDisabled = (variant: IEventProductVariant) => {\n let countUsed = 0;\n let selectedVariantQuantity = 0;\n\n for (const product of products) {\n if (product.productVariantId === variant.productVariant.id) {\n countUsed += product.quantity;\n }\n }\n\n for (const ticket of tickets) {\n if (ticket.products) {\n for (const product of ticket.products) {\n if (product.productVariantId === variant.productVariant.id) {\n countUsed += product.quantity;\n selectedVariantQuantity = product.quantity;\n }\n }\n }\n }\n\n return (\n (variant.productVariant.quantity &&\n countUsed + variant.productVariant.sold >= variant.productVariant.quantity) ||\n selectedVariantQuantity >= 10\n );\n };\n\n const isVariantSoldOut = () => {\n const variant = eventProduct.eventProductVariants.find(\n (product) => product.id === selectedVariant?.eventProductVariantId\n );\n let countUsed = variantQuantity;\n\n for (const ticket of tickets) {\n if (ticket.products) {\n for (const product of ticket.products) {\n if (product.productVariantId === variant?.productVariant.id) {\n countUsed += product.quantity;\n }\n }\n }\n }\n\n if (variant && variant.productVariant.quantity) {\n if (\n variant.productVariant.sold + countUsed >= variant.productVariant.quantity ||\n variantQuantity >= 10\n ) {\n return true;\n }\n }\n return false;\n };\n\n const handleAddQuantity = () => {\n setVariantQuantity(variantQuantity + 1);\n setSelectedVariant((prevState) => {\n if (!prevState) return null;\n return {\n ...prevState,\n quantity: variantQuantity + 1,\n };\n });\n };\n\n const handleRemoveQuantity = () => {\n if (variantQuantity > 0) {\n setVariantQuantity(variantQuantity - 1);\n }\n setSelectedVariant((prevState) => {\n if (!prevState) return null;\n return {\n ...prevState,\n quantity: variantQuantity - 1,\n };\n });\n };\n\n return (\n <Dialog\n open={openDialog}\n onClose={() => onClose && onClose()}\n fullWidth\n sx={{\n mx: 'auto',\n width: {\n xs: '100%',\n sm: 'calc(100vh - 300px)',\n },\n minWidth: 300,\n maxWidth: 444,\n '& .MuiDialog-container': {\n height: options?.isIframe ? 'auto' : '100%',\n },\n }}\n >\n <DialogTitle />\n <DialogContent>\n <Stack spacing={1}>\n <Image\n src={eventProduct.product.previewImage.url}\n alt={eventProduct.product.name}\n ratio=\"1/1\"\n sx={{ borderRadius: 2 }}\n />\n <Typography variant=\"h5\">{eventProduct.product.name}</Typography>\n <Typography variant=\"body2\" color=\"primary\">\n {t('form.labels.category')}: {eventProduct.product.category.value.text}\n </Typography>\n <Typography\n variant=\"caption\"\n dangerouslySetInnerHTML={{ __html: eventProduct.product.description }}\n />\n </Stack>\n </DialogContent>\n <DialogActions sx={{ justifyContent: 'flex-start' }}>\n <Stack spacing={2} width=\"100%\">\n <Stack direction=\"row\" spacing={1} flexWrap=\"wrap\" useFlexGap textAlign=\"left\">\n {eventProduct.eventProductVariants.map((variant) => (\n <Button\n key={variant.id}\n onClick={() => handleOnClick(variant)}\n variant={\n variant.id === selectedVariant?.eventProductVariantId ? 'contained' : 'outlined'\n }\n size=\"large\"\n disabled={isOnlyMerchandise ? false : isVariantDisabled(variant)}\n >\n <Badge\n color=\"primary\"\n badgeContent={\n selectedQuantityByVariant ? selectedQuantityByVariant[variant.id] : 0\n }\n sx={{ position: 'unset' }}\n >\n {variant.productVariant.value}\n </Badge>\n </Button>\n ))}\n </Stack>\n <Stack direction=\"row\" justifyContent=\"space-between\" alignItems=\"center\" pt={1}>\n {selectedVariant && isOnlyMerchandise && (\n <Stack direction=\"row\" alignItems=\"center\" spacing={1}>\n <IconButton\n size=\"small\"\n color=\"primary\"\n onClick={handleRemoveQuantity}\n disabled={variantQuantity < 1}\n >\n <Iconify icon=\"eva:minus-fill\" />\n </IconButton>\n <Typography color=\"grey.500\">{variantQuantity}</Typography>\n <IconButton\n size=\"small\"\n color=\"primary\"\n onClick={handleAddQuantity}\n disabled={isVariantSoldOut()}\n >\n <Iconify icon=\"eva:plus-fill\" />\n </IconButton>\n </Stack>\n )}\n <Typography variant=\"h4\" textAlign=\"right\" mt={0}>\n {variantPrice !== null\n ? variantPrice > 0\n ? fCurrency(variantPrice, lang, eventProduct.product.currency)\n : t('free')\n : t('unselected')}\n </Typography>\n </Stack>\n <Stack direction=\"row\" spacing={1} justifyContent=\"flex-end\" width=\"100%\">\n {onClose && <Button onClick={onClose}>{t('cancel')}</Button>}\n <Button variant=\"contained\" onClick={handleOnAdd} disabled={!selectedVariant}>\n {t('add')}\n </Button>\n </Stack>\n </Stack>\n </DialogActions>\n </Dialog>\n );\n};\n\nexport default ProductVariantsDialog;\n"],"names":[],"mappings":"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"}
@@ -7,8 +7,6 @@ const cs = {
7
7
  add: 'Přidat',
8
8
  confirm: 'Potvrdit',
9
9
  cancel: 'Zrušit',
10
- close: 'Zavřít',
11
- remove: 'Odstranit',
12
10
  pay: 'Zaplatit',
13
11
  change: 'Změnit',
14
12
  free: 'Zdarma',
@@ -41,7 +39,7 @@ const cs = {
41
39
  promo_code: 'Slevový kód',
42
40
  start_date: 'Datum konání',
43
41
  organizer: 'Pořadatel',
44
- total: 'Celkem',
42
+ total: 'Celkem ',
45
43
  with_fee: 'vč. servisního poplatku',
46
44
  service_fee: 'Servisní poplatek',
47
45
  shipping_fee: 'Doprava',
@@ -54,8 +52,6 @@ const cs = {
54
52
  category: 'Kategorie',
55
53
  sms_notification: 'SMS notifikace',
56
54
  open_map: 'Otevřít mapu',
57
- payment_overview_open: 'Otevřít přehled platby',
58
- payment_overview_close: 'Zavřít přehled platby',
59
55
  },
60
56
  validation: {
61
57
  required: 'Toto pole je povinné.',
@@ -106,12 +102,8 @@ const cs = {
106
102
  7: {
107
103
  title: 'Přidružené eventy',
108
104
  },
109
- 8: {
110
- title: 'EventLook služby',
111
- additional_info: 'Více informací ke službám',
112
- },
113
105
  },
114
- terms_and_conditions: 'Souhlasím s <0>Obchodními podmínkami</0> {{termsAndConditionsCompanies}} a <1>Zásady soukromí</1>.',
106
+ terms_and_conditions: 'Odesláním objednávky souhlasím s <0>Obchodními podmínkami</0> {{termsAndConditionsCompanies}} a beru na vědomí <1>Zásady soukromí</1>.',
115
107
  insurance: {
116
108
  label: 'Pojištění vstupenek',
117
109
  per_ticket: 'ks',
@@ -128,13 +120,6 @@ const cs = {
128
120
  price: 'Cena SMS připomenutí termínu akce',
129
121
  },
130
122
  },
131
- merchandise: {
132
- show_sizes: 'Zobrazit velikosti',
133
- show_added: 'Zobrazit přidané',
134
- },
135
- services: {
136
- add_tickets_first: 'Nejdříve prosím přidejte vstupenky',
137
- },
138
123
  order_success: {
139
124
  title: 'Vstupenky byly úspěšně zarezervovány. Teď už zbývá jenom zaplatit.',
140
125
  description: 'Odpočet běží {{countdown}}. Pokud k přesměrování nedojde automaticky, klikněte na tlačítko Zaplatit níže.',
@@ -1 +1 @@
1
- {"version":3,"file":"cs.js","sources":["../../../src/locales/cs.tsx"],"sourcesContent":["const cs = {\n and: 'a',\n choose: 'Vyberte',\n apply: 'Použít',\n buy: 'Zakoupit',\n verify: 'Ověřit',\n add: 'Přidat',\n confirm: 'Potvrdit',\n cancel: 'Zrušit',\n close: 'Zavřít',\n remove: 'Odstranit',\n pay: 'Zaplatit',\n change: 'Změnit',\n free: 'Zdarma',\n back_to_tickets: 'Zpět na vstupenky',\n unselected: 'Nevybráno',\n go_home: 'Přejít na úvodní stránku',\n apple_wallet: 'Stáhnout do Apple Wallet',\n google_wallet: 'Stáhnout do Google Wallet',\n more_info: 'Více informací',\n shipping_method: {\n types: {\n PACKETA: 'Zásilkovna',\n PICK_UP: 'Vyzvednutí na místě',\n },\n },\n form: {\n labels: {\n release_category_price: 'Kategorie vstupenek a cena',\n add_another_release: 'Přidat další kategorii',\n quantity: 'Počet',\n first_name: 'Jméno',\n last_name: 'Příjmení',\n email: 'E-mailová adresa',\n phone: 'Telefon',\n birthdate: 'Datum narození',\n gender: 'Pohlaví',\n male: 'Muž',\n female: 'Žena',\n other: 'Jiné',\n promo_code: 'Slevový kód',\n start_date: 'Datum konání',\n organizer: 'Pořadatel',\n total: 'Celkem',\n with_fee: 'vč. servisního poplatku',\n service_fee: 'Servisní poplatek',\n shipping_fee: 'Doprava',\n ticket_insurance: 'Pojištění vstupenek',\n price_including_service_fee: 'Cena zahrnuje servisní poplatek v hodnotě {{fee}}.',\n price_including_service_fee_percentage:\n 'Cena zahrnuje servisní poplatek v výši {{percentage}} z celkové částky.',\n terms_and_conditions: 'Souhlasím se zpracováním osobních údajů',\n original_price: 'Původní cena',\n ticket: 'Vstupenka',\n category: 'Kategorie',\n sms_notification: 'SMS notifikace',\n open_map: 'Otevřít mapu',\n payment_overview_open: 'Otevřít přehled platby',\n payment_overview_close: 'Zavřít přehled platby',\n },\n validation: {\n required: 'Toto pole je povinné.',\n email: 'E-mail musí být validní E-mailová adresa.',\n phone: 'Telefon není validní.',\n invalid_date: 'Datum není platné.',\n terms_and_conditions: 'Musíte souhlasit s obchodními podmínkami.',\n promo_code_invalid: 'Slevový kód není platný.',\n promo_code_applied: 'Tento slevový kód již byl použit.',\n promo_code_cant_combine: 'Tento slevový kód nelze kombinovat s jinými kódy.',\n min_purchase_not_met: 'Minimální částka nákupu nebyla dosažena: ',\n count_tickets_or_products: 'Musíte vybrat alespoň 1 vstupenku nebo produkt.',\n },\n },\n event: {\n tickets: {\n title: 'Vstupenky',\n error: {\n order: 'Objednávku se nepodařilo dokončit. Zkuste to prosím znovu.',\n },\n stepper: {\n 1: {\n title: 'Výběr vstupenek',\n reserve: 'vstupenky máte zarezervované ještě na {{minutes}}:{{seconds}}',\n quantity_select: 'Nejdříve musíte vybrat kategorii',\n max_ticket_quantity:\n 'Je povoleno zakoupit až 10 vstupenek na jednu osobu, s možností volby z různých kategorií.',\n no_tickets: 'Pro tuto událost nejsou k dispozici žádné vstupenky.',\n select_timeslot: 'Nejdříve musíte vybrat časový slot',\n },\n 2: {\n title: 'Kontaktní osoba',\n },\n 3: {\n title: 'Způsoby platby',\n title_verify: 'Způsoby ověření',\n subtitle: 'Platební metody',\n },\n 4: {\n title: 'Produkty',\n },\n 5: {\n title: 'Způsob dopravy',\n error:\n 'Pro tuto kombinaci produktů nejsou k dispozici žádné způsoby dopravy. Zkuste jinou kombinaci.',\n },\n 6: {\n title: 'Výběr časového slotu',\n },\n 7: {\n title: 'Přidružené eventy',\n },\n 8: {\n title: 'EventLook služby',\n additional_info: 'Více informací ke službám',\n },\n },\n terms_and_conditions:\n 'Souhlasím s <0>Obchodními podmínkami</0> {{termsAndConditionsCompanies}} a <1>Zásady soukromí</1>.',\n insurance: {\n label: 'Pojištění vstupenek',\n per_ticket: 'ks',\n modal: {\n description:\n 'Pojištění vstupenek Vám poskytuje ochranu v případě, že se nebudete moci zúčastnit akce z důvodu nemoci, úrazu nebo jiných nepředvídatelných událostí.',\n coverage:\n 'Pojištění pokrývá: nemoc, úraz, náhlá hospitalizace, karanténa nebo jiné nepředvídatelné události, které Vám zabrání v účasti na akci.',\n price: 'Cena pojištění',\n },\n },\n sms_notification: {\n label: 'SMS připomenutí termínu akce',\n modal: {\n description:\n 'Připomínka akce den předem: SMS vás upozorní na blížící se událost, abyste na ni nezapomněli a stihli se včas připravit.',\n price: 'Cena SMS připomenutí termínu akce',\n },\n },\n merchandise: {\n show_sizes: 'Zobrazit velikosti',\n show_added: 'Zobrazit přidané',\n },\n services: {\n add_tickets_first: 'Nejdříve prosím přidejte vstupenky',\n },\n order_success: {\n title: 'Vstupenky byly úspěšně zarezervovány. Teď už zbývá jenom zaplatit.',\n description:\n 'Odpočet běží {{countdown}}. Pokud k přesměrování nedojde automaticky, klikněte na tlačítko Zaplatit níže.',\n },\n payment_success: {\n loading: 'Zpracováváme platbu. Ještě chvilku strpení... ⏳',\n paid: {\n status: 'Vaše platba byla schválena!',\n title: 'Děkujeme za <br/> Váš nákup!',\n subtitle:\n 'Na E-mail jsme Vám zaslali vstupenky. V případě problémů nás neváhejte kontaktovat.',\n tickets: 'Vaše vstupenky',\n button: 'Stáhnout vstupenku',\n products: 'Vaše produkty',\n },\n unpaid: 'Platba neproběhla',\n unpaid_description: 'Zkuste to prosím znovu kliknutím na tlačítko Zaplatit.',\n },\n payment_pending: 'Kontaktuji poskytovatele bankovních služeb...',\n email_confirmation: {\n title: 'Zkontrolujte prosím Vaši e-mailovou adresu, na kterou Vám zašleme vstupenky.',\n description: '',\n },\n release_countdown: {\n title: 'Předprodej již brzy!',\n countdown:\n '{{days}}d<span>:</span>{{hours}}h<span>:</span>{{minutes}}m<span>:</span>{{seconds}}s',\n },\n },\n },\n components: {\n product_variant_dialog: {\n select_variant: 'Musíte vybrat variantu produktu.',\n },\n },\n};\n\nexport default cs;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cs.js","sources":["../../../src/locales/cs.tsx"],"sourcesContent":["const cs = {\n and: 'a',\n choose: 'Vyberte',\n apply: 'Použít',\n buy: 'Zakoupit',\n verify: 'Ověřit',\n add: 'Přidat',\n confirm: 'Potvrdit',\n cancel: 'Zrušit',\n pay: 'Zaplatit',\n change: 'Změnit',\n free: 'Zdarma',\n back_to_tickets: 'Zpět na vstupenky',\n unselected: 'Nevybráno',\n go_home: 'Přejít na úvodní stránku',\n apple_wallet: 'Stáhnout do Apple Wallet',\n google_wallet: 'Stáhnout do Google Wallet',\n more_info: 'Více informací',\n shipping_method: {\n types: {\n PACKETA: 'Zásilkovna',\n PICK_UP: 'Vyzvednutí na místě',\n },\n },\n form: {\n labels: {\n release_category_price: 'Kategorie vstupenek a cena',\n add_another_release: 'Přidat další kategorii',\n quantity: 'Počet',\n first_name: 'Jméno',\n last_name: 'Příjmení',\n email: 'E-mailová adresa',\n phone: 'Telefon',\n birthdate: 'Datum narození',\n gender: 'Pohlaví',\n male: 'Muž',\n female: 'Žena',\n other: 'Jiné',\n promo_code: 'Slevový kód',\n start_date: 'Datum konání',\n organizer: 'Pořadatel',\n total: 'Celkem ',\n with_fee: 'vč. servisního poplatku',\n service_fee: 'Servisní poplatek',\n shipping_fee: 'Doprava',\n ticket_insurance: 'Pojištění vstupenek',\n price_including_service_fee: 'Cena zahrnuje servisní poplatek v hodnotě {{fee}}.',\n price_including_service_fee_percentage:\n 'Cena zahrnuje servisní poplatek v výši {{percentage}} z celkové částky.',\n terms_and_conditions: 'Souhlasím se zpracováním osobních údajů',\n original_price: 'Původní cena',\n ticket: 'Vstupenka',\n category: 'Kategorie',\n sms_notification: 'SMS notifikace',\n open_map: 'Otevřít mapu',\n },\n validation: {\n required: 'Toto pole je povinné.',\n email: 'E-mail musí být validní E-mailová adresa.',\n phone: 'Telefon není validní.',\n invalid_date: 'Datum není platné.',\n terms_and_conditions: 'Musíte souhlasit s obchodními podmínkami.',\n promo_code_invalid: 'Slevový kód není platný.',\n promo_code_applied: 'Tento slevový kód již byl použit.',\n promo_code_cant_combine: 'Tento slevový kód nelze kombinovat s jinými kódy.',\n min_purchase_not_met: 'Minimální částka nákupu nebyla dosažena: ',\n count_tickets_or_products: 'Musíte vybrat alespoň 1 vstupenku nebo produkt.',\n },\n },\n event: {\n tickets: {\n title: 'Vstupenky',\n error: {\n order: 'Objednávku se nepodařilo dokončit. Zkuste to prosím znovu.',\n },\n stepper: {\n 1: {\n title: 'Výběr vstupenek',\n reserve: 'vstupenky máte zarezervované ještě na {{minutes}}:{{seconds}}',\n quantity_select: 'Nejdříve musíte vybrat kategorii',\n max_ticket_quantity:\n 'Je povoleno zakoupit až 10 vstupenek na jednu osobu, s možností volby z různých kategorií.',\n no_tickets: 'Pro tuto událost nejsou k dispozici žádné vstupenky.',\n select_timeslot: 'Nejdříve musíte vybrat časový slot',\n },\n 2: {\n title: 'Kontaktní osoba',\n },\n 3: {\n title: 'Způsoby platby',\n title_verify: 'Způsoby ověření',\n subtitle: 'Platební metody',\n },\n 4: {\n title: 'Produkty',\n },\n 5: {\n title: 'Způsob dopravy',\n error:\n 'Pro tuto kombinaci produktů nejsou k dispozici žádné způsoby dopravy. Zkuste jinou kombinaci.',\n },\n 6: {\n title: 'Výběr časového slotu',\n },\n 7: {\n title: 'Přidružené eventy',\n },\n },\n terms_and_conditions:\n 'Odesláním objednávky souhlasím s <0>Obchodními podmínkami</0> {{termsAndConditionsCompanies}} a beru na vědomí <1>Zásady soukromí</1>.',\n insurance: {\n label: 'Pojištění vstupenek',\n per_ticket: 'ks',\n modal: {\n description:\n 'Pojištění vstupenek Vám poskytuje ochranu v případě, že se nebudete moci zúčastnit akce z důvodu nemoci, úrazu nebo jiných nepředvídatelných událostí.',\n coverage:\n 'Pojištění pokrývá: nemoc, úraz, náhlá hospitalizace, karanténa nebo jiné nepředvídatelné události, které Vám zabrání v účasti na akci.',\n price: 'Cena pojištění',\n },\n },\n sms_notification: {\n label: 'SMS připomenutí termínu akce',\n modal: {\n description:\n 'Připomínka akce den předem: SMS vás upozorní na blížící se událost, abyste na ni nezapomněli a stihli se včas připravit.',\n price: 'Cena SMS připomenutí termínu akce',\n },\n },\n order_success: {\n title: 'Vstupenky byly úspěšně zarezervovány. Teď už zbývá jenom zaplatit.',\n description:\n 'Odpočet běží {{countdown}}. Pokud k přesměrování nedojde automaticky, klikněte na tlačítko Zaplatit níže.',\n },\n payment_success: {\n loading: 'Zpracováváme platbu. Ještě chvilku strpení... ⏳',\n paid: {\n status: 'Vaše platba byla schválena!',\n title: 'Děkujeme za <br/> Váš nákup!',\n subtitle:\n 'Na E-mail jsme Vám zaslali vstupenky. V případě problémů nás neváhejte kontaktovat.',\n tickets: 'Vaše vstupenky',\n button: 'Stáhnout vstupenku',\n products: 'Vaše produkty',\n },\n unpaid: 'Platba neproběhla',\n unpaid_description: 'Zkuste to prosím znovu kliknutím na tlačítko Zaplatit.',\n },\n payment_pending: 'Kontaktuji poskytovatele bankovních služeb...',\n email_confirmation: {\n title: 'Zkontrolujte prosím Vaši e-mailovou adresu, na kterou Vám zašleme vstupenky.',\n description: '',\n },\n release_countdown: {\n title: 'Předprodej již brzy!',\n countdown:\n '{{days}}d<span>:</span>{{hours}}h<span>:</span>{{minutes}}m<span>:</span>{{seconds}}s',\n },\n },\n },\n components: {\n product_variant_dialog: {\n select_variant: 'Musíte vybrat variantu produktu.',\n },\n },\n};\n\nexport default cs;\n"],"names":[],"mappings":"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"}
@@ -7,8 +7,6 @@ const en = {
7
7
  add: 'Add',
8
8
  confirm: 'Confirm',
9
9
  cancel: 'Cancel',
10
- close: 'Close',
11
- remove: 'Remove',
12
10
  pay: 'Pay',
13
11
  change: 'Change',
14
12
  free: 'Free',
@@ -54,8 +52,6 @@ const en = {
54
52
  category: 'Category',
55
53
  sms_notification: 'SMS notification',
56
54
  open_map: 'Open map',
57
- payment_overview_open: 'Open payment overview',
58
- payment_overview_close: 'Close payment overview',
59
55
  },
60
56
  validation: {
61
57
  required: 'This field is required.',
@@ -106,12 +102,8 @@ const en = {
106
102
  7: {
107
103
  title: 'Associated events',
108
104
  },
109
- 8: {
110
- title: 'EventLook services',
111
- additional_info: 'More information about services',
112
- },
113
105
  },
114
- terms_and_conditions: 'I agree with the <0>Terms and Conditions</0> {{termsAndConditionsCompanies}} and the <1>Privacy Policy</1>.',
106
+ terms_and_conditions: 'By submitting the order, I agree to the <0>Terms and Conditions</0> of {{termsAndConditionsCompanies}} and acknowledge the <1>Privacy Policy</1>.',
115
107
  insurance: {
116
108
  label: 'Ticket insurance',
117
109
  per_ticket: 'pc',
@@ -125,17 +117,10 @@ const en = {
125
117
  sms_notification: {
126
118
  label: 'SMS event reminder',
127
119
  modal: {
128
- description: "Event reminder the day before: SMS will notify you about the upcoming event so you don't forget and have time to prepare.",
120
+ description: 'Event reminder the day before: SMS will notify you about the upcoming event so you don\'t forget and have time to prepare.',
129
121
  price: 'SMS event reminder price',
130
122
  },
131
123
  },
132
- merchandise: {
133
- show_sizes: 'Show sizes',
134
- show_added: 'Show added',
135
- },
136
- services: {
137
- add_tickets_first: 'Please add tickets first',
138
- },
139
124
  order_success: {
140
125
  title: 'Tickets have been successfully reserved. Now you just need to pay.',
141
126
  description: 'The countdown is running {{countdown}}. If you are not redirected automatically, please click the Pay button below.',