@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.
- package/.claude/settings.local.json +9 -0
- package/dist/cjs/components/Image.js +29 -14
- package/dist/cjs/components/Image.js.map +1 -1
- package/dist/cjs/components/hook-form/FormProvider.js +2 -2
- package/dist/cjs/components/hook-form/FormProvider.js.map +1 -1
- package/dist/cjs/form/ChildEventDialog.js +3 -3
- package/dist/cjs/form/ChildEventDialog.js.map +1 -1
- package/dist/cjs/form/ContactPerson.js +1 -1
- package/dist/cjs/form/ContactPerson.js.map +1 -1
- package/dist/cjs/form/Payment.js +2 -2
- package/dist/cjs/form/Payment.js.map +1 -1
- package/dist/cjs/form/PaymentOverviewBox.js +61 -47
- package/dist/cjs/form/PaymentOverviewBox.js.map +1 -1
- package/dist/cjs/form/PaymentPending.js +4 -1
- package/dist/cjs/form/PaymentPending.js.map +1 -1
- package/dist/cjs/form/ReleaseWithMerchandise.js +48 -57
- package/dist/cjs/form/ReleaseWithMerchandise.js.map +1 -1
- package/dist/cjs/form/TicketForm.js +25 -43
- package/dist/cjs/form/TicketForm.js.map +1 -1
- package/dist/cjs/form/TicketSelection.js +6 -5
- package/dist/cjs/form/TicketSelection.js.map +1 -1
- package/dist/cjs/form/TicketWithMerchandiseSelection.js +5 -3
- package/dist/cjs/form/TicketWithMerchandiseSelection.js.map +1 -1
- package/dist/cjs/form/index.js +1 -1
- package/dist/cjs/form/index.js.map +1 -1
- package/dist/cjs/form/payment/FeeBox.js +16 -4
- package/dist/cjs/form/payment/FeeBox.js.map +1 -1
- package/dist/cjs/form/payment/PaymentOverviewCheckbox.js +28 -34
- package/dist/cjs/form/payment/PaymentOverviewCheckbox.js.map +1 -1
- package/dist/cjs/form/product/ProductCard.js +36 -117
- package/dist/cjs/form/product/ProductCard.js.map +1 -1
- package/dist/cjs/form/product/ProductVariantsDialog.js +96 -158
- package/dist/cjs/form/product/ProductVariantsDialog.js.map +1 -1
- package/dist/cjs/locales/cs.js +2 -17
- package/dist/cjs/locales/cs.js.map +1 -1
- package/dist/cjs/locales/en.js +2 -17
- package/dist/cjs/locales/en.js.map +1 -1
- package/dist/cjs/locales/es.js +1 -16
- package/dist/cjs/locales/es.js.map +1 -1
- package/dist/cjs/locales/pl.js +1 -16
- package/dist/cjs/locales/pl.js.map +1 -1
- package/dist/cjs/locales/sk.js +1 -16
- package/dist/cjs/locales/sk.js.map +1 -1
- package/dist/cjs/locales/uk.js +1 -16
- package/dist/cjs/locales/uk.js.map +1 -1
- package/dist/cjs/utils/data/global.js +0 -2
- package/dist/cjs/utils/data/global.js.map +1 -1
- package/dist/esm/components/Image.js +30 -15
- package/dist/esm/components/Image.js.map +1 -1
- package/dist/esm/components/hook-form/FormProvider.js +2 -2
- package/dist/esm/components/hook-form/FormProvider.js.map +1 -1
- package/dist/esm/form/ChildEventDialog.js +3 -3
- package/dist/esm/form/ChildEventDialog.js.map +1 -1
- package/dist/esm/form/ContactPerson.js +1 -1
- package/dist/esm/form/ContactPerson.js.map +1 -1
- package/dist/esm/form/Payment.js +2 -2
- package/dist/esm/form/Payment.js.map +1 -1
- package/dist/esm/form/PaymentOverviewBox.js +62 -48
- package/dist/esm/form/PaymentOverviewBox.js.map +1 -1
- package/dist/esm/form/PaymentPending.js +4 -1
- package/dist/esm/form/PaymentPending.js.map +1 -1
- package/dist/esm/form/ReleaseWithMerchandise.js +49 -58
- package/dist/esm/form/ReleaseWithMerchandise.js.map +1 -1
- package/dist/esm/form/TicketForm.js +27 -45
- package/dist/esm/form/TicketForm.js.map +1 -1
- package/dist/esm/form/TicketSelection.js +6 -5
- package/dist/esm/form/TicketSelection.js.map +1 -1
- package/dist/esm/form/TicketWithMerchandiseSelection.js +6 -4
- package/dist/esm/form/TicketWithMerchandiseSelection.js.map +1 -1
- package/dist/esm/form/index.js +1 -1
- package/dist/esm/form/index.js.map +1 -1
- package/dist/esm/form/payment/FeeBox.js +17 -5
- package/dist/esm/form/payment/FeeBox.js.map +1 -1
- package/dist/esm/form/payment/PaymentOverviewCheckbox.js +30 -36
- package/dist/esm/form/payment/PaymentOverviewCheckbox.js.map +1 -1
- package/dist/esm/form/product/ProductCard.js +37 -118
- package/dist/esm/form/product/ProductCard.js.map +1 -1
- package/dist/esm/form/product/ProductVariantsDialog.js +98 -160
- package/dist/esm/form/product/ProductVariantsDialog.js.map +1 -1
- package/dist/esm/locales/cs.js +2 -17
- package/dist/esm/locales/cs.js.map +1 -1
- package/dist/esm/locales/en.js +2 -17
- package/dist/esm/locales/en.js.map +1 -1
- package/dist/esm/locales/es.js +1 -16
- package/dist/esm/locales/es.js.map +1 -1
- package/dist/esm/locales/pl.js +1 -16
- package/dist/esm/locales/pl.js.map +1 -1
- package/dist/esm/locales/sk.js +1 -16
- package/dist/esm/locales/sk.js.map +1 -1
- package/dist/esm/locales/uk.js +1 -16
- package/dist/esm/locales/uk.js.map +1 -1
- package/dist/esm/utils/data/global.js +1 -2
- package/dist/esm/utils/data/global.js.map +1 -1
- package/dist/types/components/Image.d.ts +4 -4
- package/dist/types/form/style.d.ts +1 -1
- package/package.json +2 -8
- package/rollup.config.mjs +0 -2
- package/src/components/Image.tsx +48 -27
- package/src/components/hook-form/FormProvider.tsx +2 -5
- package/src/form/ChildEventDialog.tsx +3 -3
- package/src/form/ContactPerson.tsx +1 -1
- package/src/form/MerchandiseSelection.tsx +29 -0
- package/src/form/Payment.tsx +2 -2
- package/src/form/PaymentOverviewBox.tsx +122 -89
- package/src/form/PaymentPending.tsx +1 -1
- package/src/form/ReleaseWithMerchandise.tsx +230 -0
- package/src/form/TicketForm.tsx +25 -63
- package/src/form/{tickets/TicketSelection.tsx → TicketSelection.tsx} +128 -24
- package/src/form/{tickets/TicketSelectionMap.tsx → TicketSelectionMap.tsx} +1 -9
- package/src/form/{tickets/TicketWithMerchandiseSelection.tsx → TicketWithMerchandiseSelection.tsx} +7 -3
- package/src/form/index.tsx +1 -3
- package/src/form/payment/FeeBox.tsx +31 -4
- package/src/form/payment/PaymentOverviewCheckbox.tsx +56 -57
- package/src/form/product/ProductCard.tsx +59 -179
- package/src/form/product/ProductVariantsDialog.tsx +140 -253
- package/src/locales/cs.tsx +2 -17
- package/src/locales/en.tsx +2 -17
- package/src/locales/es.tsx +1 -16
- package/src/locales/pl.tsx +1 -16
- package/src/locales/sk.tsx +1 -16
- package/src/locales/uk.tsx +1 -16
- package/src/utils/data/global.ts +0 -1
- package/tsconfig.json +1 -2
- package/.env.example +0 -1
- package/dist/cjs/_virtual/_commonjsHelpers.js +0 -8
- package/dist/cjs/_virtual/_commonjsHelpers.js.map +0 -1
- package/dist/cjs/_virtual/index.js +0 -6
- package/dist/cjs/_virtual/index.js.map +0 -1
- package/dist/cjs/_virtual/index2.js +0 -6
- package/dist/cjs/_virtual/index2.js.map +0 -1
- package/dist/cjs/_virtual/index3.js +0 -6
- package/dist/cjs/_virtual/index3.js.map +0 -1
- package/dist/cjs/_virtual/react-is.development.js +0 -6
- package/dist/cjs/_virtual/react-is.development.js.map +0 -1
- package/dist/cjs/_virtual/react-is.development2.js +0 -6
- package/dist/cjs/_virtual/react-is.development2.js.map +0 -1
- package/dist/cjs/_virtual/react-is.production.js +0 -6
- package/dist/cjs/_virtual/react-is.production.js.map +0 -1
- package/dist/cjs/_virtual/react-is.production.min.js +0 -6
- package/dist/cjs/_virtual/react-is.production.min.js.map +0 -1
- package/dist/cjs/form/PaymentOverviewDrawer.js +0 -149
- package/dist/cjs/form/PaymentOverviewDrawer.js.map +0 -1
- package/dist/cjs/form/TicketQuantityControl.js +0 -51
- package/dist/cjs/form/TicketQuantityControl.js.map +0 -1
- package/dist/cjs/form/TicketSelectionMobile.js +0 -98
- package/dist/cjs/form/TicketSelectionMobile.js.map +0 -1
- package/dist/cjs/form/merchandise/MerchandiseSelection.js +0 -14
- package/dist/cjs/form/merchandise/MerchandiseSelection.js.map +0 -1
- package/dist/cjs/form/merchandise/MerchandiseSlider.js +0 -40
- package/dist/cjs/form/merchandise/MerchandiseSlider.js.map +0 -1
- package/dist/cjs/form/merchendise/MerchandiseSelection.js +0 -19
- package/dist/cjs/form/merchendise/MerchandiseSelection.js.map +0 -1
- package/dist/cjs/form/merchendise/MerchandiseSlider.js +0 -75
- package/dist/cjs/form/merchendise/MerchandiseSlider.js.map +0 -1
- package/dist/cjs/form/services/index.js +0 -134
- package/dist/cjs/form/services/index.js.map +0 -1
- package/dist/cjs/form/tickets/ReleaseDescription.js +0 -23
- package/dist/cjs/form/tickets/ReleaseDescription.js.map +0 -1
- package/dist/cjs/form/tickets/ReleaseWithMerchandise.js +0 -141
- package/dist/cjs/form/tickets/ReleaseWithMerchandise.js.map +0 -1
- package/dist/cjs/form/tickets/TicketQuantityControl.js +0 -52
- package/dist/cjs/form/tickets/TicketQuantityControl.js.map +0 -1
- package/dist/cjs/form/tickets/TicketSelection.js +0 -139
- package/dist/cjs/form/tickets/TicketSelection.js.map +0 -1
- package/dist/cjs/form/tickets/TicketSelectionMap.js +0 -73
- package/dist/cjs/form/tickets/TicketSelectionMap.js.map +0 -1
- package/dist/cjs/form/tickets/TicketSelectionMobile.js +0 -90
- package/dist/cjs/form/tickets/TicketSelectionMobile.js.map +0 -1
- package/dist/cjs/form/tickets/TicketWithMerchandiseSelection.js +0 -117
- package/dist/cjs/form/tickets/TicketWithMerchandiseSelection.js.map +0 -1
- package/dist/esm/_virtual/_commonjsHelpers.js +0 -6
- package/dist/esm/_virtual/_commonjsHelpers.js.map +0 -1
- package/dist/esm/_virtual/index.js +0 -4
- package/dist/esm/_virtual/index.js.map +0 -1
- package/dist/esm/_virtual/index2.js +0 -4
- package/dist/esm/_virtual/index2.js.map +0 -1
- package/dist/esm/_virtual/index3.js +0 -4
- package/dist/esm/_virtual/index3.js.map +0 -1
- package/dist/esm/_virtual/react-is.development.js +0 -4
- package/dist/esm/_virtual/react-is.development.js.map +0 -1
- package/dist/esm/_virtual/react-is.development2.js +0 -4
- package/dist/esm/_virtual/react-is.development2.js.map +0 -1
- package/dist/esm/_virtual/react-is.production.js +0 -4
- package/dist/esm/_virtual/react-is.production.js.map +0 -1
- package/dist/esm/_virtual/react-is.production.min.js +0 -4
- package/dist/esm/_virtual/react-is.production.min.js.map +0 -1
- package/dist/esm/form/PaymentOverviewDrawer.js +0 -145
- package/dist/esm/form/PaymentOverviewDrawer.js.map +0 -1
- package/dist/esm/form/TicketQuantityControl.js +0 -47
- package/dist/esm/form/TicketQuantityControl.js.map +0 -1
- package/dist/esm/form/TicketSelectionMobile.js +0 -94
- package/dist/esm/form/TicketSelectionMobile.js.map +0 -1
- package/dist/esm/form/merchandise/MerchandiseSelection.js +0 -10
- package/dist/esm/form/merchandise/MerchandiseSelection.js.map +0 -1
- package/dist/esm/form/merchandise/MerchandiseSlider.js +0 -36
- package/dist/esm/form/merchandise/MerchandiseSlider.js.map +0 -1
- package/dist/esm/form/merchendise/MerchandiseSelection.js +0 -15
- package/dist/esm/form/merchendise/MerchandiseSelection.js.map +0 -1
- package/dist/esm/form/merchendise/MerchandiseSlider.js +0 -71
- package/dist/esm/form/merchendise/MerchandiseSlider.js.map +0 -1
- package/dist/esm/form/services/index.js +0 -130
- package/dist/esm/form/services/index.js.map +0 -1
- package/dist/esm/form/tickets/ReleaseDescription.js +0 -19
- package/dist/esm/form/tickets/ReleaseDescription.js.map +0 -1
- package/dist/esm/form/tickets/ReleaseWithMerchandise.js +0 -137
- package/dist/esm/form/tickets/ReleaseWithMerchandise.js.map +0 -1
- package/dist/esm/form/tickets/TicketQuantityControl.js +0 -48
- package/dist/esm/form/tickets/TicketQuantityControl.js.map +0 -1
- package/dist/esm/form/tickets/TicketSelection.js +0 -135
- package/dist/esm/form/tickets/TicketSelection.js.map +0 -1
- package/dist/esm/form/tickets/TicketSelectionMap.js +0 -69
- package/dist/esm/form/tickets/TicketSelectionMap.js.map +0 -1
- package/dist/esm/form/tickets/TicketSelectionMobile.js +0 -86
- package/dist/esm/form/tickets/TicketSelectionMobile.js.map +0 -1
- package/dist/esm/form/tickets/TicketWithMerchandiseSelection.js +0 -113
- package/dist/esm/form/tickets/TicketWithMerchandiseSelection.js.map +0 -1
- package/dist/types/form/PaymentOverviewDrawer.d.ts +0 -8
- package/dist/types/form/merchendise/MerchandiseSelection.d.ts +0 -9
- package/dist/types/form/merchendise/MerchandiseSlider.d.ts +0 -10
- package/dist/types/form/merchendise/MerchendiseSlider.d.ts +0 -0
- package/src/form/PaymentOverviewDrawer.tsx +0 -228
- package/src/form/merchandise/MerchandiseSelection.tsx +0 -24
- package/src/form/merchandise/MerchandiseSlider.tsx +0 -62
- package/src/form/services/index.tsx +0 -263
- package/src/form/tickets/ReleaseDescription.tsx +0 -46
- package/src/form/tickets/ReleaseWithMerchandise.tsx +0 -239
- package/src/form/tickets/TicketQuantityControl.tsx +0 -94
- package/src/form/tickets/TicketSelectionMobile.tsx +0 -177
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
|
-
var reactLazyLoadImageComponent = require('react-lazy-load-image-component');
|
|
7
6
|
var material = require('@mui/material');
|
|
8
7
|
|
|
9
|
-
function Image({ ratio, disabledEffect = false,
|
|
8
|
+
function Image({ ratio, disabledEffect = false, objectFit = 'cover', sx, src, alt = '', ...other }) {
|
|
9
|
+
const [imgError, setImgError] = React.useState(false);
|
|
10
|
+
const [loaded, setLoaded] = React.useState(false);
|
|
11
|
+
const imgSrc = imgError || !src ? '/assets/img_placeholder.svg' : src;
|
|
10
12
|
if (ratio) {
|
|
11
13
|
return (React.createElement(material.Box, { component: "span", sx: {
|
|
12
14
|
width: 1,
|
|
@@ -15,27 +17,40 @@ function Image({ ratio, disabledEffect = false, effect = 'blur', objectFit = 'co
|
|
|
15
17
|
overflow: 'hidden',
|
|
16
18
|
position: 'relative',
|
|
17
19
|
pt: getRatio(ratio),
|
|
18
|
-
'& .wrapper': {
|
|
19
|
-
top: 0,
|
|
20
|
-
left: 0,
|
|
21
|
-
right: 0,
|
|
22
|
-
bottom: 0,
|
|
23
|
-
lineHeight: 0,
|
|
24
|
-
position: 'absolute',
|
|
25
|
-
backgroundSize: 'cover !important',
|
|
26
|
-
},
|
|
27
20
|
...sx,
|
|
28
21
|
} },
|
|
29
|
-
React.createElement(material.Box, { component:
|
|
22
|
+
React.createElement(material.Box, { component: "img", src: imgSrc, alt: alt, loading: "lazy", decoding: "async", onLoad: () => setLoaded(true), onError: () => {
|
|
23
|
+
if (!imgError)
|
|
24
|
+
setImgError(true);
|
|
25
|
+
}, sx: {
|
|
26
|
+
position: 'absolute',
|
|
27
|
+
top: 0,
|
|
28
|
+
left: 0,
|
|
29
|
+
width: 1,
|
|
30
|
+
height: 1,
|
|
31
|
+
objectFit: 'cover',
|
|
32
|
+
...(disabledEffect
|
|
33
|
+
? {}
|
|
34
|
+
: { opacity: loaded ? 1 : 0, transition: 'opacity 0.3s ease-in-out' }),
|
|
35
|
+
} })));
|
|
30
36
|
}
|
|
31
37
|
return (React.createElement(material.Box, { component: "span", sx: {
|
|
32
38
|
lineHeight: 1,
|
|
33
39
|
display: 'block',
|
|
34
40
|
overflow: 'hidden',
|
|
35
|
-
'& .wrapper': { width: 1, height: 1, backgroundSize: 'cover !important' },
|
|
36
41
|
...sx,
|
|
37
42
|
} },
|
|
38
|
-
React.createElement(material.Box, { component:
|
|
43
|
+
React.createElement(material.Box, { component: "img", src: imgSrc, alt: alt, loading: "lazy", decoding: "async", onLoad: () => setLoaded(true), onError: () => {
|
|
44
|
+
if (!imgError)
|
|
45
|
+
setImgError(true);
|
|
46
|
+
}, sx: {
|
|
47
|
+
width: 1,
|
|
48
|
+
height: 1,
|
|
49
|
+
objectFit,
|
|
50
|
+
...(disabledEffect
|
|
51
|
+
? {}
|
|
52
|
+
: { opacity: loaded ? 1 : 0, transition: 'opacity 0.3s ease-in-out' }),
|
|
53
|
+
}, ...other })));
|
|
39
54
|
}
|
|
40
55
|
// ----------------------------------------------------------------------
|
|
41
56
|
function getRatio(ratio = '1/1') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Image.js","sources":["../../../src/components/Image.tsx"],"sourcesContent":["import React
|
|
1
|
+
{"version":3,"file":"Image.js","sources":["../../../src/components/Image.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Theme } from '@mui/material/styles';\nimport { Box, BoxProps, SxProps } from '@mui/material';\n\n// ----------------------------------------------------------------------\n\nexport type ImageRatio = '4/3' | '3/4' | '6/4' | '4/6' | '16/9' | '9/16' | '21/9' | '9/21' | '1/1';\n\ninterface Props extends BoxProps {\n src?: string;\n alt?: string;\n sx?: SxProps<Theme>;\n ratio?: ImageRatio;\n disabledEffect?: boolean;\n objectFit?: 'cover' | 'contain';\n}\n\nexport default function Image({\n ratio,\n disabledEffect = false,\n objectFit = 'cover',\n sx,\n src,\n alt = '',\n ...other\n}: Props) {\n const [imgError, setImgError] = useState(false);\n const [loaded, setLoaded] = useState(false);\n\n const imgSrc = imgError || !src ? '/assets/img_placeholder.svg' : src;\n\n if (ratio) {\n return (\n <Box\n component=\"span\"\n sx={{\n width: 1,\n lineHeight: 0,\n display: 'block',\n overflow: 'hidden',\n position: 'relative',\n pt: getRatio(ratio),\n ...sx,\n }}\n >\n <Box\n component=\"img\"\n src={imgSrc}\n alt={alt}\n loading=\"lazy\"\n decoding=\"async\"\n onLoad={() => setLoaded(true)}\n onError={() => {\n if (!imgError) setImgError(true);\n }}\n sx={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: 1,\n height: 1,\n objectFit: 'cover',\n ...(disabledEffect\n ? {}\n : { opacity: loaded ? 1 : 0, transition: 'opacity 0.3s ease-in-out' }),\n }}\n />\n </Box>\n );\n }\n\n return (\n <Box\n component=\"span\"\n sx={{\n lineHeight: 1,\n display: 'block',\n overflow: 'hidden',\n ...sx,\n }}\n >\n <Box\n component=\"img\"\n src={imgSrc}\n alt={alt}\n loading=\"lazy\"\n decoding=\"async\"\n onLoad={() => setLoaded(true)}\n onError={() => {\n if (!imgError) setImgError(true);\n }}\n sx={{\n width: 1,\n height: 1,\n objectFit,\n ...(disabledEffect\n ? {}\n : { opacity: loaded ? 1 : 0, transition: 'opacity 0.3s ease-in-out' }),\n }}\n {...other}\n />\n </Box>\n );\n}\n\n// ----------------------------------------------------------------------\n\nfunction getRatio(ratio = '1/1') {\n return {\n '4/3': 'calc(100% / 4 * 3)',\n '3/4': 'calc(100% / 3 * 4)',\n '6/4': 'calc(100% / 6 * 4)',\n '4/6': 'calc(100% / 4 * 6)',\n '16/9': 'calc(100% / 16 * 9)',\n '9/16': 'calc(100% / 9 * 16)',\n '21/9': 'calc(100% / 21 * 9)',\n '9/21': 'calc(100% / 9 * 21)',\n '1/1': '100%',\n }[ratio];\n}\n"],"names":["useState","Box"],"mappings":"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"}
|
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var reactHookForm = require('react-hook-form');
|
|
7
7
|
|
|
8
|
-
function FormProvider({ children, onSubmit, methods
|
|
8
|
+
function FormProvider({ children, onSubmit, methods }) {
|
|
9
9
|
return (React.createElement(reactHookForm.FormProvider, { ...methods },
|
|
10
|
-
React.createElement("form", {
|
|
10
|
+
React.createElement("form", { onSubmit: onSubmit }, children)));
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
exports.default = FormProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormProvider.js","sources":["../../../../src/components/hook-form/FormProvider.tsx"],"sourcesContent":["import React from 'react';\nimport { FormProvider as Form, UseFormReturn } from 'react-hook-form';\n\n// ----------------------------------------------------------------------\n\ntype Props = {\n children: React.ReactNode;\n methods: UseFormReturn<any>;\n onSubmit?: VoidFunction;\n
|
|
1
|
+
{"version":3,"file":"FormProvider.js","sources":["../../../../src/components/hook-form/FormProvider.tsx"],"sourcesContent":["import React from 'react';\nimport { FormProvider as Form, UseFormReturn } from 'react-hook-form';\n\n// ----------------------------------------------------------------------\n\ntype Props = {\n children: React.ReactNode;\n methods: UseFormReturn<any>;\n onSubmit?: VoidFunction;\n};\n\nexport default function FormProvider({ children, onSubmit, methods }: Props) {\n return (\n <Form {...methods}>\n <form onSubmit={onSubmit}>{children}</form>\n </Form>\n );\n}\n"],"names":["Form"],"mappings":";;;;;;;AAWc,SAAU,YAAY,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAS,EAAA;AACzE,IAAA,QACE,KAAA,CAAA,aAAA,CAACA,0BAAI,EAAA,EAAA,GAAK,OAAO,EAAA;QACf,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,QAAQ,EAAE,QAAQ,EAAA,EAAG,QAAQ,CAAQ,CACtC;AAEX;;;;"}
|
|
@@ -5,10 +5,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var useActiveEventProducts = require('../hooks/data/useActiveEventProducts.js');
|
|
6
6
|
var material = require('@mui/material');
|
|
7
7
|
var React = require('react');
|
|
8
|
-
var TicketWithMerchandiseSelection = require('./
|
|
9
|
-
var TicketSelection = require('./
|
|
8
|
+
var TicketWithMerchandiseSelection = require('./TicketWithMerchandiseSelection.js');
|
|
9
|
+
var TicketSelection = require('./TicketSelection.js');
|
|
10
10
|
var useGlobal = require('../hooks/useGlobal.js');
|
|
11
|
-
var MerchandiseSelection = require('./
|
|
11
|
+
var MerchandiseSelection = require('./MerchandiseSelection.js');
|
|
12
12
|
|
|
13
13
|
const ChildEventDialog = ({ event, openDialog, onClose }) => {
|
|
14
14
|
const { t } = useGlobal.default();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChildEventDialog.js","sources":["../../../src/form/ChildEventDialog.tsx"],"sourcesContent":["import useActiveEventProducts from '@hooks/data/useActiveEventProducts';\nimport { Dialog, DialogContent, Stack, Step, StepContent, StepLabel, Stepper } from '@mui/material';\nimport { IEvent } from '@utils/types/event.type';\nimport React from 'react';\nimport TicketWithMerchandiseSelection from './
|
|
1
|
+
{"version":3,"file":"ChildEventDialog.js","sources":["../../../src/form/ChildEventDialog.tsx"],"sourcesContent":["import useActiveEventProducts from '@hooks/data/useActiveEventProducts';\nimport { Dialog, DialogContent, Stack, Step, StepContent, StepLabel, Stepper } from '@mui/material';\nimport { IEvent } from '@utils/types/event.type';\nimport React from 'react';\nimport TicketWithMerchandiseSelection from './TicketWithMerchandiseSelection';\nimport TicketSelection from './TicketSelection';\nimport useGlobal from '@hooks/useGlobal';\nimport MerchandiseSelection from './MerchandiseSelection';\n\ninterface Props {\n event: IEvent;\n openDialog: boolean;\n onClose?: () => void;\n}\n\nconst ChildEventDialog: React.FC<Props> = ({ event, openDialog, onClose }) => {\n const { t } = useGlobal();\n const { data: eventProducts, isLoading } = useActiveEventProducts(event.id);\n\n return (\n <Dialog open={openDialog} onClose={() => onClose && onClose()} fullWidth>\n <DialogContent>\n <Stack spacing={1}>\n <Stepper orientation=\"vertical\">\n <Step active>\n <StepLabel>{t('event.tickets.stepper.1.title')}</StepLabel>\n <StepContent>\n {event.hasMerchandise ? (\n <TicketWithMerchandiseSelection event={event} />\n ) : (\n <TicketSelection event={event} />\n )}\n </StepContent>\n </Step>\n {event.hasMerchandise && eventProducts.length && (\n <Step active>\n <StepLabel>{t('event.tickets.stepper.4.title')}</StepLabel>\n <StepContent>\n <MerchandiseSelection\n eventProducts={eventProducts}\n eventId={event.id}\n isLoading={isLoading}\n />\n </StepContent>\n </Step>\n )}\n </Stepper>\n </Stack>\n </DialogContent>\n </Dialog>\n );\n};\n\nexport default ChildEventDialog;\n"],"names":["useGlobal","useActiveEventProducts","Dialog","DialogContent","Stack","Stepper","Step","StepLabel","StepContent","TicketWithMerchandiseSelection","TicketSelection","MerchandiseSelection"],"mappings":";;;;;;;;;;;;AAeA,MAAM,gBAAgB,GAAoB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,KAAI;AAC3E,IAAA,MAAM,EAAE,CAAC,EAAE,GAAGA,iBAAS,EAAE;AACzB,IAAA,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,GAAGC,8BAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;AAE3E,IAAA,QACE,KAAA,CAAA,aAAA,CAACC,eAAM,IAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,IAAI,OAAO,EAAE,EAAE,SAAS,EAAA,IAAA,EAAA;AACtE,QAAA,KAAA,CAAA,aAAA,CAACC,sBAAa,EAAA,IAAA;AACZ,YAAA,KAAA,CAAA,aAAA,CAACC,cAAK,EAAA,EAAC,OAAO,EAAE,CAAC,EAAA;AACf,gBAAA,KAAA,CAAA,aAAA,CAACC,gBAAO,EAAA,EAAC,WAAW,EAAC,UAAU,EAAA;oBAC7B,KAAA,CAAA,aAAA,CAACC,aAAI,IAAC,MAAM,EAAA,IAAA,EAAA;AACV,wBAAA,KAAA,CAAA,aAAA,CAACC,kBAAS,EAAA,IAAA,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAa;AAC3D,wBAAA,KAAA,CAAA,aAAA,CAACC,oBAAW,EAAA,IAAA,EACT,KAAK,CAAC,cAAc,IACnB,KAAA,CAAA,aAAA,CAACC,sCAA8B,EAAA,EAAC,KAAK,EAAE,KAAK,EAAA,CAAI,KAEhD,KAAA,CAAA,aAAA,CAACC,uBAAe,EAAA,EAAC,KAAK,EAAE,KAAK,EAAA,CAAI,CAClC,CACW,CACT;oBACN,KAAK,CAAC,cAAc,IAAI,aAAa,CAAC,MAAM,KAC3C,KAAA,CAAA,aAAA,CAACJ,aAAI,EAAA,EAAC,MAAM,EAAA,IAAA,EAAA;AACV,wBAAA,KAAA,CAAA,aAAA,CAACC,kBAAS,EAAA,IAAA,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAa;AAC3D,wBAAA,KAAA,CAAA,aAAA,CAACC,oBAAW,EAAA,IAAA;4BACV,KAAA,CAAA,aAAA,CAACG,4BAAoB,EAAA,EACnB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,KAAK,CAAC,EAAE,EACjB,SAAS,EAAE,SAAS,EAAA,CACpB,CACU,CACT,CACR,CACO,CACJ,CACM,CACT;AAEb;;;;"}
|
|
@@ -16,7 +16,7 @@ var useGlobal = require('../hooks/useGlobal.js');
|
|
|
16
16
|
|
|
17
17
|
const ContactPerson = ({ event }) => {
|
|
18
18
|
const { t, content } = useGlobal.default();
|
|
19
|
-
return (React.createElement(material.Grid, { container: true, spacing:
|
|
19
|
+
return (React.createElement(material.Grid, { container: true, spacing: 3 },
|
|
20
20
|
React.createElement(material.Grid, { item: true, xs: 12, md: 6 },
|
|
21
21
|
React.createElement(RHFTextField.default, { name: "firstName", label: t('form.labels.first_name') })),
|
|
22
22
|
React.createElement(material.Grid, { item: true, xs: 12, md: 6 },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContactPerson.js","sources":["../../../src/form/ContactPerson.tsx"],"sourcesContent":["import React from 'react';\nimport { Grid, MenuItem } from '@mui/material';\nimport { RHFSelect, RHFTextField } from '@components/hook-form';\nimport RHFDatePicker from '@components/hook-form/RHFDatePicker';\nimport { Gender } from '@utils/data/gender';\nimport RHFPhone from '@components/hook-form/RHFPhone';\nimport dayjs from 'dayjs';\nimport { IEvent } from '@utils/types/event.type';\nimport { MuiTelInputCountry } from 'mui-tel-input';\nimport ExtraField from '@form/extra-field/ExtraField';\nimport useGlobal from '@hooks/useGlobal.ts';\n\ninterface Props {\n event: IEvent;\n}\n\nconst ContactPerson: React.FC<Props> = ({ event }) => {\n const { t, content } = useGlobal();\n\n return (\n <Grid container spacing={
|
|
1
|
+
{"version":3,"file":"ContactPerson.js","sources":["../../../src/form/ContactPerson.tsx"],"sourcesContent":["import React from 'react';\nimport { Grid, MenuItem } from '@mui/material';\nimport { RHFSelect, RHFTextField } from '@components/hook-form';\nimport RHFDatePicker from '@components/hook-form/RHFDatePicker';\nimport { Gender } from '@utils/data/gender';\nimport RHFPhone from '@components/hook-form/RHFPhone';\nimport dayjs from 'dayjs';\nimport { IEvent } from '@utils/types/event.type';\nimport { MuiTelInputCountry } from 'mui-tel-input';\nimport ExtraField from '@form/extra-field/ExtraField';\nimport useGlobal from '@hooks/useGlobal.ts';\n\ninterface Props {\n event: IEvent;\n}\n\nconst ContactPerson: React.FC<Props> = ({ event }) => {\n const { t, content } = useGlobal();\n\n return (\n <Grid container spacing={3}>\n <Grid item xs={12} md={6}>\n <RHFTextField name=\"firstName\" label={t('form.labels.first_name')} />\n </Grid>\n <Grid item xs={12} md={6}>\n <RHFTextField name=\"lastName\" label={t('form.labels.last_name')} />\n </Grid>\n <Grid item xs={12} md={6}>\n <RHFTextField name=\"email\" label={t('form.labels.email')} />\n </Grid>\n <Grid item xs={12} md={6}>\n <RHFPhone\n name=\"phone\"\n label={t('form.labels.phone')}\n defaultCountry={event.place.countryCode as MuiTelInputCountry}\n />\n </Grid>\n {!content?.form?.disableBirthDate && (\n <Grid item xs={12} md={6}>\n <RHFDatePicker\n name=\"birthdate\"\n label={t('form.labels.birthdate')}\n openTo=\"year\"\n views={['year', 'month', 'day']}\n maxDate={dayjs()}\n />\n </Grid>\n )}\n {!content?.form?.disableGender && (\n <Grid item xs={12} md={6}>\n <RHFSelect name=\"gender\" label={t('form.labels.gender')}>\n <MenuItem value={Gender.MALE}>{t('form.labels.male')}</MenuItem>\n <MenuItem value={Gender.FEMALE}>{t('form.labels.female')}</MenuItem>\n <MenuItem value={Gender.OTHER}>{t('form.labels.other')}</MenuItem>\n </RHFSelect>\n </Grid>\n )}\n {event?.extraFields.map((field, index) => (\n <Grid key={field.id} item xs={12} md={6}>\n <ExtraField extraField={field} name={`extraFields.${index}.value`} />\n </Grid>\n ))}\n </Grid>\n );\n};\n\nexport default ContactPerson;\n"],"names":["useGlobal","Grid","RHFTextField","RHFPhone","RHFDatePicker","RHFSelect","MenuItem","Gender","ExtraField"],"mappings":";;;;;;;;;;;;;;;;AAgBA,MAAM,aAAa,GAAoB,CAAC,EAAE,KAAK,EAAE,KAAI;IACnD,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAGA,iBAAS,EAAE;IAElC,QACE,oBAACC,aAAI,EAAA,EAAC,SAAS,EAAA,IAAA,EAAC,OAAO,EAAE,CAAC,EAAA;QACxB,KAAA,CAAA,aAAA,CAACA,aAAI,EAAA,EAAC,IAAI,EAAA,IAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAA;AACtB,YAAA,KAAA,CAAA,aAAA,CAACC,oBAAY,EAAA,EAAC,IAAI,EAAC,WAAW,EAAC,KAAK,EAAE,CAAC,CAAC,wBAAwB,CAAC,GAAI,CAChE;QACP,KAAA,CAAA,aAAA,CAACD,aAAI,EAAA,EAAC,IAAI,EAAA,IAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAA;AACtB,YAAA,KAAA,CAAA,aAAA,CAACC,oBAAY,EAAA,EAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAE,CAAC,CAAC,uBAAuB,CAAC,GAAI,CAC9D;QACP,KAAA,CAAA,aAAA,CAACD,aAAI,EAAA,EAAC,IAAI,EAAA,IAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAA;AACtB,YAAA,KAAA,CAAA,aAAA,CAACC,oBAAY,EAAA,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,CAAC,CAAC,mBAAmB,CAAC,GAAI,CACvD;QACP,KAAA,CAAA,aAAA,CAACD,aAAI,EAAA,EAAC,IAAI,EAAA,IAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAA;YACtB,KAAA,CAAA,aAAA,CAACE,gBAAQ,IACP,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,CAAC,CAAC,mBAAmB,CAAC,EAC7B,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,WAAiC,EAAA,CAC7D,CACG;AACN,QAAA,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,KAC/B,KAAA,CAAA,aAAA,CAACF,aAAI,EAAA,EAAC,IAAI,QAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAA;AACtB,YAAA,KAAA,CAAA,aAAA,CAACG,qBAAa,EAAA,EACZ,IAAI,EAAC,WAAW,EAChB,KAAK,EAAE,CAAC,CAAC,uBAAuB,CAAC,EACjC,MAAM,EAAC,MAAM,EACb,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAC/B,OAAO,EAAE,KAAK,EAAE,EAAA,CAChB,CACG,CACR;AACA,QAAA,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,KAC5B,KAAA,CAAA,aAAA,CAACH,aAAI,EAAA,EAAC,IAAI,QAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAA;YACtB,KAAA,CAAA,aAAA,CAACI,mBAAS,EAAA,EAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,CAAC,CAAC,oBAAoB,CAAC,EAAA;AACrD,gBAAA,KAAA,CAAA,aAAA,CAACC,iBAAQ,EAAA,EAAC,KAAK,EAAEC,aAAM,CAAC,IAAI,EAAA,EAAG,CAAC,CAAC,kBAAkB,CAAC,CAAY;AAChE,gBAAA,KAAA,CAAA,aAAA,CAACD,iBAAQ,EAAA,EAAC,KAAK,EAAEC,aAAM,CAAC,MAAM,EAAA,EAAG,CAAC,CAAC,oBAAoB,CAAC,CAAY;AACpE,gBAAA,KAAA,CAAA,aAAA,CAACD,iBAAQ,EAAA,EAAC,KAAK,EAAEC,aAAM,CAAC,KAAK,EAAA,EAAG,CAAC,CAAC,mBAAmB,CAAC,CAAY,CACxD,CACP,CACR;AACA,QAAA,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,MACnC,KAAA,CAAA,aAAA,CAACN,aAAI,EAAA,EAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAA,IAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAA;AACrC,YAAA,KAAA,CAAA,aAAA,CAACO,kBAAU,EAAA,EAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA,YAAA,EAAe,KAAK,QAAQ,EAAA,CAAI,CAChE,CACR,CAAC,CACG;AAEX;;;;"}
|
package/dist/cjs/form/Payment.js
CHANGED
|
@@ -177,7 +177,7 @@ const Payment = ({ event }) => {
|
|
|
177
177
|
} }, payment.label[lang]),
|
|
178
178
|
React.createElement(Image.default, { src: payment.image.url, sx: {
|
|
179
179
|
height: '20px',
|
|
180
|
-
'&
|
|
180
|
+
'& img': {
|
|
181
181
|
objectFit: 'contain',
|
|
182
182
|
},
|
|
183
183
|
} })), sx: {
|
|
@@ -199,7 +199,7 @@ const Payment = ({ event }) => {
|
|
|
199
199
|
maxWidth: '70px',
|
|
200
200
|
display: 'inline-block',
|
|
201
201
|
marginRight: 1,
|
|
202
|
-
'&
|
|
202
|
+
'& img': {
|
|
203
203
|
objectFit: 'contain',
|
|
204
204
|
objectPosition: 'left',
|
|
205
205
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Payment.js","sources":["../../../src/form/Payment.tsx"],"sourcesContent":["import React, { KeyboardEvent, useEffect, useMemo, useState } from 'react';\nimport {\n Box,\n Button,\n Divider,\n FormControl,\n FormControlLabel,\n FormHelperText,\n IconButton,\n Radio,\n RadioGroup,\n Stack,\n TextField,\n Typography,\n} from '@mui/material';\nimport useAllowedPaymentMethods from '@hooks/data/useAllowedPaymentMethods';\nimport { Controller, useFormContext, useWatch } from 'react-hook-form';\nimport { PaymentItem, PaymentWrapper, PaymentSwiftWrapper } from '@form/style';\nimport Image from '@components/Image';\nimport Label from '@components/Label';\nimport PaymentSkeleton from '@form/payment/PaymentSkeleton';\nimport { RHFRadioGroup } from '@components/hook-form';\nimport { postPromoCodeApply } from '@modules/promo-code';\nimport { IEvent } from '@utils/types/event.type';\nimport { ITicketForm, ITicketFormTicket } from '@utils/types/ticket.type';\nimport useGlobal from '@hooks/useGlobal.ts';\nimport { IPromoCode } from '@utils/types/promo-code.type';\nimport { PromoCodeTypes } from '@utils/data/promo-code';\nimport { throttle } from 'lodash';\nimport { Iconify } from '@components';\nimport { IEventProductForm } from '@utils/types/product.type';\n\ninterface Props {\n event: IEvent;\n}\n\nconst Payment: React.FC<Props> = ({ event }) => {\n const { t, lang } = useGlobal();\n const { showSnackbar } = useGlobal();\n const { data, isLoading } = useAllowedPaymentMethods(event.currency, event.id);\n const { control, watch, setValue } = useFormContext<ITicketForm>();\n const paymentMethodId = watch('paymentMethodId');\n const paymentMethodOptionId = watch('paymentMethodOptionId');\n const [promoCode, setPromoCode] = useState<string>('');\n const [promoCodeError, setPromoCodeError] = useState<string | null>(null);\n const [combine, setCombine] = useState<boolean>(true);\n const promoCodes: IPromoCode[] = watch('promoCodes');\n const originalPrice: number = watch('originalPrice');\n\n const handleSubmit = throttle(\n async () => {\n if (!promoCode) {\n setPromoCodeError(t('form.validation.required'));\n return;\n }\n\n try {\n if (promoCodes.find((i) => i.code === promoCode)) {\n setPromoCodeError(t('form.validation.promo_code_applied'));\n return;\n }\n if (!combine) {\n setPromoCodeError(t('form.validation.promo_code_cant_combine'));\n return;\n }\n\n const res = await postPromoCodeApply(promoCode, event.id);\n const promo = res.data.data;\n\n if (promo && promo.minPurchaseAmount && promo.minPurchaseAmount > originalPrice) {\n setPromoCodeError(\n t('form.validation.min_purchase_not_met') +\n promo.minPurchaseAmount +\n ' ' +\n event.currency\n );\n return;\n }\n\n if (!promo.combine && promoCodes.length === 0) {\n setCombine(false);\n } else if (!promo.combine) {\n setPromoCodeError(t('form.validation.promo_code_cant_combine'));\n return;\n }\n\n setValue('promoCodes', [...promoCodes, promo]);\n showSnackbar(res.message);\n setPromoCodeError(null);\n setPromoCode('');\n } catch (err) {\n setPromoCodeError(t('form.validation.promo_code_invalid'));\n console.error(err);\n }\n },\n 1000,\n { leading: true, trailing: false } // Allow immediate execution but prevent spam\n );\n\n const removePromoCode = (promoCodeToRemove: string) => {\n const newPromoCodes: IPromoCode[] = promoCodes.filter(\n (promoC) => promoC.code !== promoCodeToRemove\n );\n\n if (!newPromoCodes.find((promoC) => promoC.combine)) setCombine(true);\n\n setValue('promoCodes', newPromoCodes);\n };\n\n const handleKeyDown = async (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n if (promoCode) await handleSubmit();\n }\n };\n\n useEffect(() => {\n if (promoCodes.length === 0) return;\n\n const highest = promoCodes.sort((a, b) => b.minPurchaseAmount - a.minPurchaseAmount)[0]\n .minPurchaseAmount;\n\n if (originalPrice < highest) {\n const newPromoCodes = promoCodes.filter(\n (promoCode) => promoCode.minPurchaseAmount <= originalPrice\n );\n if (newPromoCodes.length === 0) {\n setCombine(true);\n }\n setValue('promoCodes', newPromoCodes);\n }\n }, [originalPrice]);\n\n useEffect(() => {\n if (data) {\n if (!paymentMethodId && !!data.length) {\n setValue('paymentMethodId', data[0].id);\n }\n const selectedPayment =\n data && data?.length && data.find((payment) => payment.id === Number(paymentMethodId));\n if (selectedPayment && !!selectedPayment.options.length && !paymentMethodOptionId) {\n setValue('paymentMethodOptionId', selectedPayment.options[0].id);\n } else if (selectedPayment && !!selectedPayment.options.length && !!paymentMethodOptionId) {\n const existingOption = selectedPayment.options.find(\n (option) => option.id === Number(paymentMethodOptionId)\n );\n if (!existingOption) {\n setValue('paymentMethodOptionId', selectedPayment.options[0].id);\n }\n } else if (selectedPayment && !selectedPayment?.options.length) {\n setValue('paymentMethodOptionId', null);\n }\n }\n }, [data, paymentMethodId, paymentMethodOptionId]);\n\n const tickets: Record<string, ITicketFormTicket[]> = useWatch({\n name: 'tickets',\n defaultValue: {},\n });\n const products: Record<string, IEventProductForm[]> = useWatch({\n name: 'products',\n defaultValue: {},\n });\n const total: number = useWatch({ name: 'total' });\n\n const paymentMethods = useMemo(() => {\n if (!data) return [];\n\n const hasTickets =\n Object.values(tickets)\n .flat()\n .filter((t) => t.quantity).length > 0;\n const hasProducts = Object.values(products).flat().length > 0;\n\n if (total === 0 && (hasTickets || hasProducts)) {\n setValue('isPaymentVerify', true);\n return data.filter((payment) =>\n ['PAYMENT_CARD', 'APPLE_PAY', 'GPAY', 'CLICK_TO_PAY'].includes(payment.type)\n );\n } else {\n setValue('isPaymentVerify', false);\n return data;\n }\n }, [data, total, tickets, products]);\n\n return (\n <Box>\n <Box className=\"payment__promo-code\">\n <Stack direction=\"row\" spacing={2}>\n <TextField\n name=\"promoCode\"\n size=\"small\"\n label={t('form.labels.promo_code')}\n value={promoCode}\n onChange={(e) => setPromoCode(e.target.value)}\n onBlur={(e) => {\n if (!e.target.value.trim()) setPromoCodeError(null);\n }}\n onKeyDown={handleKeyDown}\n error={!!promoCodeError}\n helperText={promoCodeError}\n fullWidth\n />\n <Box>\n <Button\n size=\"large\"\n type=\"button\"\n variant=\"contained\"\n onClick={handleSubmit}\n disabled={!promoCode}\n sx={{ height: 51 }}\n >\n {t('apply')}\n </Button>\n </Box>\n </Stack>\n <Stack paddingTop={3} direction=\"column\" spacing={1}>\n {promoCodes.length > 0 &&\n promoCodes.map((item: IPromoCode) => (\n <Stack\n marginTop={3}\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n spacing={2}\n key={item.code}\n >\n <>\n <Stack direction=\"row\" alignItems=\"center\">\n <Label variant=\"filled\" sx={{ textTransform: 'none', cursor: 'pointer' }}>\n {item.code}\n </Label>\n <Typography variant=\"subtitle2\" sx={{ ml: 1 }}>\n -{' '}\n {item.value +\n `${item.type === PromoCodeTypes.FIXED ? ' ' + event.currency : '%'}`}\n </Typography>\n </Stack>\n <Box>\n <IconButton\n color=\"primary\"\n onClick={() => removePromoCode(item.code)}\n aria-label=\"delete\"\n >\n <Iconify icon=\"carbon:trash-can\" />\n </IconButton>\n </Box>\n </>\n </Stack>\n ))}\n </Stack>\n </Box>\n\n <Typography variant=\"h4\" mt={2}>\n {t('event.tickets.stepper.3.subtitle')}\n </Typography>\n\n {isLoading ? (\n <PaymentSkeleton sx={{ marginTop: 1 }} />\n ) : (\n <PaymentWrapper>\n <Controller\n name=\"paymentMethodId\"\n control={control}\n render={({ field, fieldState: { error } }) => (\n <FormControl component=\"fieldset\">\n <RadioGroup {...field}>\n {paymentMethods.map((payment) => (\n <PaymentItem\n key={payment.type}\n active={!!paymentMethodId && Number(paymentMethodId) === payment.id}\n >\n <FormControlLabel\n value={payment.id}\n control={<Radio />}\n label={\n <Stack direction=\"row\" alignItems=\"center\">\n <Typography\n sx={{\n marginRight: 2,\n }}\n >\n {payment.label[lang]}\n </Typography>\n <Image\n src={payment.image.url}\n sx={{\n height: '20px',\n '& .wrapper img': {\n objectFit: 'contain',\n },\n }}\n />\n </Stack>\n }\n sx={{\n '&:not(:last-of-type)': {\n mb: 0,\n },\n }}\n />\n {!!payment.options.length &&\n !!paymentMethodId &&\n Number(paymentMethodId) === payment.id && (\n <PaymentSwiftWrapper>\n <Divider sx={{ mb: 2 }} />\n <RHFRadioGroup\n name=\"paymentMethodOptionId\"\n row\n options={payment.options\n .filter((item) => !item.label.en.includes('eshop.api.swifts'))\n .map((option) => ({\n label: (\n <Stack direction=\"row\" alignItems=\"center\">\n <Image\n src={option.image.url}\n sx={{\n width: 'auto',\n height: '15px',\n maxWidth: '70px',\n display: 'inline-block',\n marginRight: 1,\n '& .wrapper img': {\n objectFit: 'contain',\n objectPosition: 'left',\n },\n }}\n />\n <Typography variant=\"body2\">{option.label[lang]}</Typography>\n </Stack>\n ),\n value: option.id,\n }))}\n />\n </PaymentSwiftWrapper>\n )}\n </PaymentItem>\n ))}\n </RadioGroup>\n\n {!!error && (\n <FormHelperText error={!!error} sx={{ mx: 0 }}>\n {error?.message}\n </FormHelperText>\n )}\n </FormControl>\n )}\n />\n </PaymentWrapper>\n )}\n </Box>\n );\n};\n\nexport default Payment;\n"],"names":["useGlobal","useAllowedPaymentMethods","useFormContext","promoCode","useState","throttle","postPromoCodeApply","useEffect","useWatch","useMemo","Box","Stack","TextField","Button","Label","Typography","PromoCodeTypes","IconButton","Iconify","PaymentSkeleton","PaymentWrapper","Controller","FormControl","RadioGroup","PaymentItem","FormControlLabel","Radio","Image","PaymentSwiftWrapper","Divider","RHFRadioGroup","FormHelperText"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Payment.js","sources":["../../../src/form/Payment.tsx"],"sourcesContent":["import React, { KeyboardEvent, useEffect, useMemo, useState } from 'react';\nimport {\n Box,\n Button,\n Divider,\n FormControl,\n FormControlLabel,\n FormHelperText,\n IconButton,\n Radio,\n RadioGroup,\n Stack,\n TextField,\n Typography,\n} from '@mui/material';\nimport useAllowedPaymentMethods from '@hooks/data/useAllowedPaymentMethods';\nimport { Controller, useFormContext, useWatch } from 'react-hook-form';\nimport { PaymentItem, PaymentWrapper, PaymentSwiftWrapper } from '@form/style';\nimport Image from '@components/Image';\nimport Label from '@components/Label';\nimport PaymentSkeleton from '@form/payment/PaymentSkeleton';\nimport { RHFRadioGroup } from '@components/hook-form';\nimport { postPromoCodeApply } from '@modules/promo-code';\nimport { IEvent } from '@utils/types/event.type';\nimport { ITicketForm, ITicketFormTicket } from '@utils/types/ticket.type';\nimport useGlobal from '@hooks/useGlobal.ts';\nimport { IPromoCode } from '@utils/types/promo-code.type';\nimport { PromoCodeTypes } from '@utils/data/promo-code';\nimport { throttle } from 'lodash';\nimport { Iconify } from '@components';\nimport { IEventProductForm } from '@utils/types/product.type';\n\ninterface Props {\n event: IEvent;\n}\n\nconst Payment: React.FC<Props> = ({ event }) => {\n const { t, lang } = useGlobal();\n const { showSnackbar } = useGlobal();\n const { data, isLoading } = useAllowedPaymentMethods(event.currency, event.id);\n const { control, watch, setValue } = useFormContext<ITicketForm>();\n const paymentMethodId = watch('paymentMethodId');\n const paymentMethodOptionId = watch('paymentMethodOptionId');\n const [promoCode, setPromoCode] = useState<string>('');\n const [promoCodeError, setPromoCodeError] = useState<string | null>(null);\n const [combine, setCombine] = useState<boolean>(true);\n const promoCodes: IPromoCode[] = watch('promoCodes');\n const originalPrice: number = watch('originalPrice');\n\n const handleSubmit = throttle(\n async () => {\n if (!promoCode) {\n setPromoCodeError(t('form.validation.required'));\n return;\n }\n\n try {\n if (promoCodes.find((i) => i.code === promoCode)) {\n setPromoCodeError(t('form.validation.promo_code_applied'));\n return;\n }\n if (!combine) {\n setPromoCodeError(t('form.validation.promo_code_cant_combine'));\n return;\n }\n\n const res = await postPromoCodeApply(promoCode, event.id);\n const promo = res.data.data;\n\n if (promo && promo.minPurchaseAmount && promo.minPurchaseAmount > originalPrice) {\n setPromoCodeError(\n t('form.validation.min_purchase_not_met') +\n promo.minPurchaseAmount +\n ' ' +\n event.currency\n );\n return;\n }\n\n if (!promo.combine && promoCodes.length === 0) {\n setCombine(false);\n } else if (!promo.combine) {\n setPromoCodeError(t('form.validation.promo_code_cant_combine'));\n return;\n }\n\n setValue('promoCodes', [...promoCodes, promo]);\n showSnackbar(res.message);\n setPromoCodeError(null);\n setPromoCode('');\n } catch (err) {\n setPromoCodeError(t('form.validation.promo_code_invalid'));\n console.error(err);\n }\n },\n 1000,\n { leading: true, trailing: false } // Allow immediate execution but prevent spam\n );\n\n const removePromoCode = (promoCodeToRemove: string) => {\n const newPromoCodes: IPromoCode[] = promoCodes.filter(\n (promoC) => promoC.code !== promoCodeToRemove\n );\n\n if (!newPromoCodes.find((promoC) => promoC.combine)) setCombine(true);\n\n setValue('promoCodes', newPromoCodes);\n };\n\n const handleKeyDown = async (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n if (promoCode) await handleSubmit();\n }\n };\n\n useEffect(() => {\n if (promoCodes.length === 0) return;\n\n const highest = promoCodes.sort((a, b) => b.minPurchaseAmount - a.minPurchaseAmount)[0]\n .minPurchaseAmount;\n\n if (originalPrice < highest) {\n const newPromoCodes = promoCodes.filter(\n (promoCode) => promoCode.minPurchaseAmount <= originalPrice\n );\n if (newPromoCodes.length === 0) {\n setCombine(true);\n }\n setValue('promoCodes', newPromoCodes);\n }\n }, [originalPrice]);\n\n useEffect(() => {\n if (data) {\n if (!paymentMethodId && !!data.length) {\n setValue('paymentMethodId', data[0].id);\n }\n const selectedPayment =\n data && data?.length && data.find((payment) => payment.id === Number(paymentMethodId));\n if (selectedPayment && !!selectedPayment.options.length && !paymentMethodOptionId) {\n setValue('paymentMethodOptionId', selectedPayment.options[0].id);\n } else if (selectedPayment && !!selectedPayment.options.length && !!paymentMethodOptionId) {\n const existingOption = selectedPayment.options.find(\n (option) => option.id === Number(paymentMethodOptionId)\n );\n if (!existingOption) {\n setValue('paymentMethodOptionId', selectedPayment.options[0].id);\n }\n } else if (selectedPayment && !selectedPayment?.options.length) {\n setValue('paymentMethodOptionId', null);\n }\n }\n }, [data, paymentMethodId, paymentMethodOptionId]);\n\n const tickets: Record<string, ITicketFormTicket[]> = useWatch({\n name: 'tickets',\n defaultValue: {},\n });\n const products: Record<string, IEventProductForm[]> = useWatch({\n name: 'products',\n defaultValue: {},\n });\n const total: number = useWatch({ name: 'total' });\n\n const paymentMethods = useMemo(() => {\n if (!data) return [];\n\n const hasTickets =\n Object.values(tickets)\n .flat()\n .filter((t) => t.quantity).length > 0;\n const hasProducts = Object.values(products).flat().length > 0;\n\n if (total === 0 && (hasTickets || hasProducts)) {\n setValue('isPaymentVerify', true);\n return data.filter((payment) =>\n ['PAYMENT_CARD', 'APPLE_PAY', 'GPAY', 'CLICK_TO_PAY'].includes(payment.type)\n );\n } else {\n setValue('isPaymentVerify', false);\n return data;\n }\n }, [data, total, tickets, products]);\n\n return (\n <Box>\n <Box className=\"payment__promo-code\">\n <Stack direction=\"row\" spacing={2}>\n <TextField\n name=\"promoCode\"\n size=\"small\"\n label={t('form.labels.promo_code')}\n value={promoCode}\n onChange={(e) => setPromoCode(e.target.value)}\n onBlur={(e) => {\n if (!e.target.value.trim()) setPromoCodeError(null);\n }}\n onKeyDown={handleKeyDown}\n error={!!promoCodeError}\n helperText={promoCodeError}\n fullWidth\n />\n <Box>\n <Button\n size=\"large\"\n type=\"button\"\n variant=\"contained\"\n onClick={handleSubmit}\n disabled={!promoCode}\n sx={{ height: 51 }}\n >\n {t('apply')}\n </Button>\n </Box>\n </Stack>\n <Stack paddingTop={3} direction=\"column\" spacing={1}>\n {promoCodes.length > 0 &&\n promoCodes.map((item: IPromoCode) => (\n <Stack\n marginTop={3}\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n spacing={2}\n key={item.code}\n >\n <>\n <Stack direction=\"row\" alignItems=\"center\">\n <Label variant=\"filled\" sx={{ textTransform: 'none', cursor: 'pointer' }}>\n {item.code}\n </Label>\n <Typography variant=\"subtitle2\" sx={{ ml: 1 }}>\n -{' '}\n {item.value +\n `${item.type === PromoCodeTypes.FIXED ? ' ' + event.currency : '%'}`}\n </Typography>\n </Stack>\n <Box>\n <IconButton\n color=\"primary\"\n onClick={() => removePromoCode(item.code)}\n aria-label=\"delete\"\n >\n <Iconify icon=\"carbon:trash-can\" />\n </IconButton>\n </Box>\n </>\n </Stack>\n ))}\n </Stack>\n </Box>\n\n <Typography variant=\"h4\" mt={2}>\n {t('event.tickets.stepper.3.subtitle')}\n </Typography>\n\n {isLoading ? (\n <PaymentSkeleton sx={{ marginTop: 1 }} />\n ) : (\n <PaymentWrapper>\n <Controller\n name=\"paymentMethodId\"\n control={control}\n render={({ field, fieldState: { error } }) => (\n <FormControl component=\"fieldset\">\n <RadioGroup {...field}>\n {paymentMethods.map((payment) => (\n <PaymentItem\n key={payment.type}\n active={!!paymentMethodId && Number(paymentMethodId) === payment.id}\n >\n <FormControlLabel\n value={payment.id}\n control={<Radio />}\n label={\n <Stack direction=\"row\" alignItems=\"center\">\n <Typography\n sx={{\n marginRight: 2,\n }}\n >\n {payment.label[lang]}\n </Typography>\n <Image\n src={payment.image.url}\n sx={{\n height: '20px',\n '& img': {\n objectFit: 'contain',\n },\n }}\n />\n </Stack>\n }\n sx={{\n '&:not(:last-of-type)': {\n mb: 0,\n },\n }}\n />\n {!!payment.options.length &&\n !!paymentMethodId &&\n Number(paymentMethodId) === payment.id && (\n <PaymentSwiftWrapper>\n <Divider sx={{ mb: 2 }} />\n <RHFRadioGroup\n name=\"paymentMethodOptionId\"\n row\n options={payment.options\n .filter((item) => !item.label.en.includes('eshop.api.swifts'))\n .map((option) => ({\n label: (\n <Stack direction=\"row\" alignItems=\"center\">\n <Image\n src={option.image.url}\n sx={{\n width: 'auto',\n height: '15px',\n maxWidth: '70px',\n display: 'inline-block',\n marginRight: 1,\n '& img': {\n objectFit: 'contain',\n objectPosition: 'left',\n },\n }}\n />\n <Typography variant=\"body2\">{option.label[lang]}</Typography>\n </Stack>\n ),\n value: option.id,\n }))}\n />\n </PaymentSwiftWrapper>\n )}\n </PaymentItem>\n ))}\n </RadioGroup>\n\n {!!error && (\n <FormHelperText error={!!error} sx={{ mx: 0 }}>\n {error?.message}\n </FormHelperText>\n )}\n </FormControl>\n )}\n />\n </PaymentWrapper>\n )}\n </Box>\n );\n};\n\nexport default Payment;\n"],"names":["useGlobal","useAllowedPaymentMethods","useFormContext","promoCode","useState","throttle","postPromoCodeApply","useEffect","useWatch","useMemo","Box","Stack","TextField","Button","Label","Typography","PromoCodeTypes","IconButton","Iconify","PaymentSkeleton","PaymentWrapper","Controller","FormControl","RadioGroup","PaymentItem","FormControlLabel","Radio","Image","PaymentSwiftWrapper","Divider","RHFRadioGroup","FormHelperText"],"mappings":"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"}
|
|
@@ -29,7 +29,6 @@ var shoppingCart = require('../modules/shopping-cart.js');
|
|
|
29
29
|
var promoCode = require('../utils/data/promo-code.js');
|
|
30
30
|
var useActiveEventProducts = require('../hooks/data/useActiveEventProducts.js');
|
|
31
31
|
var useDebounce = require('../hooks/useDebounce.js');
|
|
32
|
-
var global = require('../utils/data/global.js');
|
|
33
32
|
|
|
34
33
|
const PaymentOverviewBox = ({ event: event$1 }) => {
|
|
35
34
|
const { t, lang, options } = useGlobal.default();
|
|
@@ -40,7 +39,7 @@ const PaymentOverviewBox = ({ event: event$1 }) => {
|
|
|
40
39
|
const [shippingFee, setShippingFee] = React.useState(0);
|
|
41
40
|
const { setValue, watch } = reactHookForm.useFormContext();
|
|
42
41
|
const values = watch();
|
|
43
|
-
const { total, uuid, firstName, lastName, email, gender, birthdate, phone, promoCodes, shipping, totalFee, isPaymentVerify, ticketInsurance, smsNotification, smsNotificationPrice,
|
|
42
|
+
const { total, uuid, firstName, lastName, email, gender, birthdate, phone, promoCodes, shipping, totalFee, isPaymentVerify, ticketInsurance, ticketInsurancePricePerUnit, smsNotification, smsNotificationPrice, } = values;
|
|
44
43
|
const tickets = reactHookForm.useWatch({
|
|
45
44
|
name: 'tickets',
|
|
46
45
|
defaultValue: {},
|
|
@@ -305,25 +304,28 @@ const PaymentOverviewBox = ({ event: event$1 }) => {
|
|
|
305
304
|
console.error('Error calculating cart:', err);
|
|
306
305
|
}
|
|
307
306
|
}, []);
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
307
|
+
const removeProduct = (variant) => {
|
|
308
|
+
const { eventId, variantId } = variant;
|
|
309
|
+
const list = Array.isArray(products[eventId]) ? [...products[eventId]] : [];
|
|
310
|
+
const idx = list.findIndex((p) => Number(p.eventProductVariantId) === Number(variantId));
|
|
311
|
+
if (idx === -1)
|
|
312
|
+
return;
|
|
313
|
+
const item = list[idx];
|
|
314
|
+
if ((item.quantity ?? 0) <= 1) {
|
|
315
|
+
list.splice(idx, 1);
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
list[idx] = { ...item, quantity: (item.quantity ?? 1) - 1 };
|
|
319
|
+
}
|
|
320
|
+
const next = { ...products, [eventId]: list };
|
|
321
|
+
if (list.length === 0) {
|
|
322
|
+
const { [eventId]: _removed, ...rest } = next;
|
|
323
|
+
setValue('products', rest);
|
|
324
|
+
}
|
|
325
|
+
else {
|
|
326
|
+
setValue('products', next);
|
|
327
|
+
}
|
|
328
|
+
};
|
|
327
329
|
return (React.createElement(style.OverviewCard, { id: "overview-card", stickyHeaderTop: options?.stickyHeaderTop || 0 },
|
|
328
330
|
!isMobile && (React.createElement(material.Stack, { className: "overview-card__event-info", p: 2, spacing: 2 },
|
|
329
331
|
React.createElement(material.Typography, { variant: "h6" }, event$1.name),
|
|
@@ -335,7 +337,7 @@ const PaymentOverviewBox = ({ event: event$1 }) => {
|
|
|
335
337
|
React.createElement(TextIconLabel.default, { icon: React.createElement(Iconify.default, { icon: locationIcon, sx: { mr: 0.5, mt: 0.5, width: 18, height: 18, minWidth: 18 } }), value: React.createElement(material.Box, null, place.getPlaceAsString(event$1.place)), sx: { typography: 'body3', color: 'text.secondary', alignItems: 'flex-start' } })))),
|
|
336
338
|
React.createElement(material.Divider, { sx: { borderStyle: 'dashed' } }),
|
|
337
339
|
React.createElement(material.Stack, { direction: { xs: 'column', sm: 'row', md: 'column', lg: 'row' }, spacing: 2, p: 2, divider: React.createElement(material.Divider, { orientation: xs || md ? 'horizontal' : 'vertical', flexItem: true, sx: { borderStyle: 'dashed' } }), sx: {
|
|
338
|
-
backgroundColor: (theme) => theme.palette.
|
|
340
|
+
backgroundColor: (theme) => theme.palette.grey.A100,
|
|
339
341
|
borderRadius: 1,
|
|
340
342
|
} },
|
|
341
343
|
React.createElement(material.Box, { width: { sm: '50%', md: '100%', lg: '50%' } },
|
|
@@ -344,55 +346,67 @@ const PaymentOverviewBox = ({ event: event$1 }) => {
|
|
|
344
346
|
React.createElement(material.Box, { width: { sm: '50%', md: '100%', lg: '50%' } },
|
|
345
347
|
React.createElement(TextIconLabel.default, { icon: React.createElement(Iconify.default, { icon: userIcon, sx: { minWidth: 20, height: 20, mr: 1 } }), value: t('form.labels.organizer'), sx: { color: 'text.secondary' } }),
|
|
346
348
|
React.createElement(material.Typography, { variant: "body2", fontWeight: 700 }, event$1.company.displayName))))),
|
|
347
|
-
React.createElement(material.Stack, { className: "overview-card__order-info", p: 2,
|
|
349
|
+
React.createElement(material.Stack, { className: "overview-card__order-info", p: 2, spacing: 1 },
|
|
348
350
|
!!selectedTickets.length && !isMobile && React.createElement(material.Divider, { sx: { borderStyle: 'dashed' } }),
|
|
349
|
-
!!selectedTickets.length && (React.createElement(material.Stack, { spacing: 0.5 },
|
|
350
|
-
React.createElement(PaymentOverviewCheckbox.default, { checkboxName: "ticketInsurance", label: t('event.tickets.insurance.label'), value: React.createElement(React.Fragment, null,
|
|
351
|
-
ticketInsurance && totalItemCount.totalTickets > 0 ? '' : '+ ',
|
|
352
|
-
formatNumber.fCurrency(ticketInsurancePricePerUnit, lang, event$1.currency),
|
|
353
|
-
" /",
|
|
354
|
-
' ',
|
|
355
|
-
t('event.tickets.insurance.per_ticket')) }),
|
|
356
|
-
React.createElement(PaymentOverviewCheckbox.default, { checkboxName: "smsNotification", label: t('event.tickets.sms_notification.label'), value: React.createElement(React.Fragment, null,
|
|
357
|
-
smsNotification && totalItemCount.totalTickets > 0 ? '' : '+ ',
|
|
358
|
-
formatNumber.fCurrency(smsNotificationPrice, lang, event$1.currency)) }),
|
|
359
|
-
React.createElement(material.Divider, { sx: { borderStyle: 'dashed' } }))),
|
|
360
351
|
selectedTickets.map((ticket, index) => (React.createElement(material.Box, { key: index },
|
|
361
352
|
React.createElement(material.Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", spacing: 2 },
|
|
362
|
-
React.createElement(material.Typography, { variant: "
|
|
353
|
+
React.createElement(material.Typography, { variant: "caption" },
|
|
363
354
|
ticket.quantity,
|
|
364
355
|
"x ",
|
|
365
356
|
ticket.itemName),
|
|
366
|
-
React.createElement(material.Typography, { variant: "
|
|
357
|
+
React.createElement(material.Typography, { variant: "caption" }, formatNumber.fCurrency(price.calculatePriceWithDiscount(ticket.price, promoCodesValues.percent, promoCodesValues.fixedDevidedTickets) * Number(ticket.quantity), lang, event$1.currency))),
|
|
367
358
|
ticket.products.map((product, index2) => (React.createElement(material.Stack, { key: index2, direction: "row", justifyContent: "space-between", alignItems: "center", spacing: 2 },
|
|
368
|
-
React.createElement(material.Typography, { variant: "
|
|
359
|
+
React.createElement(material.Typography, { variant: "caption" },
|
|
369
360
|
"- ",
|
|
370
361
|
product.quantity,
|
|
371
362
|
"x ",
|
|
372
363
|
product.name),
|
|
373
|
-
React.createElement(material.Typography, { variant: "
|
|
364
|
+
React.createElement(material.Typography, { variant: "caption" }, product.price > 0
|
|
374
365
|
? formatNumber.fCurrency(price.calculatePriceWithDiscount(product.price, promoCodesValues.productDiscountPercent, promoCodesValues.fixedDevidedProducts
|
|
375
366
|
? promoCodesValues.fixedDevidedProducts * product.quantity
|
|
376
367
|
: 0), lang, event$1.currency)
|
|
377
368
|
: t('free')))))))),
|
|
378
369
|
selectedVariants.map((variant, index) => (React.createElement(material.Box, { key: index },
|
|
379
370
|
React.createElement(material.Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", spacing: 2 },
|
|
380
|
-
React.createElement(material.Typography, { variant: "
|
|
371
|
+
React.createElement(material.Typography, { variant: "caption" },
|
|
381
372
|
variant.quantity,
|
|
382
373
|
"x ",
|
|
383
374
|
variant.name),
|
|
384
|
-
React.createElement(material.
|
|
385
|
-
|
|
386
|
-
|
|
375
|
+
React.createElement(material.Stack, { direction: "row", spacing: 1, alignItems: "center" },
|
|
376
|
+
React.createElement(material.Typography, { variant: "caption" }, formatNumber.fCurrency(price.calculatePriceWithDiscount(variant.price, promoCodesValues.productDiscountPercent, promoCodesValues.fixedDevidedProducts
|
|
377
|
+
? promoCodesValues.fixedDevidedProducts * variant.quantity
|
|
378
|
+
: 0), lang, event$1.currency)),
|
|
379
|
+
React.createElement(material.IconButton, { onClick: () => removeProduct(variant), color: "primary", size: "small" },
|
|
380
|
+
React.createElement(Iconify.default, { icon: "carbon:trash-can" }))))))),
|
|
387
381
|
!!shippingFee && (React.createElement(material.Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", spacing: 2 },
|
|
388
|
-
React.createElement(material.Typography, { variant: "
|
|
389
|
-
React.createElement(material.Typography, { variant: "
|
|
382
|
+
React.createElement(material.Typography, { variant: "caption" }, t('form.labels.shipping_fee')),
|
|
383
|
+
React.createElement(material.Typography, { variant: "caption" }, formatNumber.fCurrency(shippingFee, lang, event$1.currency)))),
|
|
384
|
+
ticketInsurance && totalItemCount.totalTickets > 0 && (React.createElement(material.Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", spacing: 2 },
|
|
385
|
+
React.createElement(material.Typography, { variant: "caption" }, t('form.labels.ticket_insurance')),
|
|
386
|
+
React.createElement(material.Typography, { variant: "caption" }, formatNumber.fCurrency(values.ticketInsurancePrice, lang, event$1.currency)))),
|
|
387
|
+
smsNotification && totalItemCount.totalTickets > 0 && (React.createElement(material.Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", spacing: 2 },
|
|
388
|
+
React.createElement(material.Typography, { variant: "caption" }, t('form.labels.sms_notification')),
|
|
389
|
+
React.createElement(material.Typography, { variant: "caption" }, formatNumber.fCurrency(values.smsNotificationPrice, lang, event$1.currency)))),
|
|
390
390
|
!!total && !!totalFee && (React.createElement(material.Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", spacing: 2 },
|
|
391
|
-
React.createElement(material.Typography, { variant: "
|
|
392
|
-
React.createElement(material.Typography, { variant: "
|
|
391
|
+
React.createElement(material.Typography, { variant: "caption" }, t('form.labels.service_fee')),
|
|
392
|
+
React.createElement(material.Typography, { variant: "caption" }, getFee))),
|
|
393
393
|
((!!selectedTickets.length && isMobile) || !isMobile) && (React.createElement(material.Divider, { sx: { borderStyle: 'dashed' } })),
|
|
394
|
+
!!selectedTickets.length && (React.createElement(React.Fragment, null,
|
|
395
|
+
React.createElement(PaymentOverviewCheckbox.default, { checkboxName: "smsNotification", label: t('event.tickets.sms_notification.label'), value: React.createElement(React.Fragment, null,
|
|
396
|
+
"+ ",
|
|
397
|
+
formatNumber.fCurrency(smsNotificationPrice, lang, event$1.currency)), modal: {
|
|
398
|
+
title: t('event.tickets.sms_notification.label'),
|
|
399
|
+
description: (React.createElement(React.Fragment, null,
|
|
400
|
+
React.createElement(material.Typography, { variant: "body2", paragraph: true }, t('event.tickets.sms_notification.modal.description')),
|
|
401
|
+
React.createElement(material.Typography, { variant: "body2", sx: { fontWeight: 600 } },
|
|
402
|
+
t('event.tickets.sms_notification.modal.price'),
|
|
403
|
+
":",
|
|
404
|
+
' ',
|
|
405
|
+
formatNumber.fCurrency(smsNotificationPrice, lang, event$1.currency)))),
|
|
406
|
+
} }),
|
|
407
|
+
React.createElement(material.Divider, { sx: { borderStyle: 'dashed' } }))),
|
|
394
408
|
React.createElement(FeeBox.default, { event: event$1 }),
|
|
395
|
-
React.createElement(lab.LoadingButton, { type: "submit",
|
|
409
|
+
React.createElement(lab.LoadingButton, { type: "submit", variant: "contained", size: "large", fullWidth: true }, t(isPaymentVerify ? 'verify' : 'buy')))));
|
|
396
410
|
};
|
|
397
411
|
|
|
398
412
|
exports.default = PaymentOverviewBox;
|