tf-checkout-react 1.3.35 → 1.3.37-beta
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/{src/components → dist}/.DS_Store +0 -0
- package/dist/components/common/{SelectField.d.ts → NativeSelectFeild/index.d.ts} +1 -1
- package/dist/components/common/SelectField/index.d.ts +18 -0
- package/dist/components/common/index.d.ts +2 -1
- package/dist/components/ticketsContainer/TicketsSection.d.ts +2 -1
- package/dist/components/waitingList/index.d.ts +2 -1
- package/dist/tf-checkout-react.cjs.development.js +97 -14
- package/dist/tf-checkout-react.cjs.development.js.map +1 -1
- package/dist/tf-checkout-react.cjs.production.min.js +1 -1
- package/dist/tf-checkout-react.cjs.production.min.js.map +1 -1
- package/dist/tf-checkout-react.esm.js +97 -14
- package/dist/tf-checkout-react.esm.js.map +1 -1
- package/dist/validators/index.d.ts +2 -1
- package/package.json +1 -1
- package/src/.DS_Store +0 -0
- package/src/assets/.DS_Store +0 -0
- package/src/components/addonsContainer/AddonComponent.tsx +2 -2
- package/src/components/billing-info-container/index.tsx +5 -1
- package/src/components/common/{SelectField.tsx → NativeSelectFeild/index.tsx} +1 -1
- package/src/components/common/SelectField/index.tsx +82 -0
- package/src/components/common/index.tsx +2 -1
- package/src/components/ticketsContainer/TicketsSection.tsx +31 -11
- package/src/components/ticketsContainer/index.tsx +2 -1
- package/src/components/waitingList/index.tsx +3 -2
- package/src/env.ts +2 -2
- package/src/normalizers/index.ts +8 -5
- package/src/validators/index.ts +25 -5
- package/src/components/common/dist/PhoneNumberField.js +0 -96
|
Binary file
|
|
@@ -17,5 +17,5 @@ export interface ISelectField {
|
|
|
17
17
|
interface IOtherProps {
|
|
18
18
|
[key: string]: any;
|
|
19
19
|
}
|
|
20
|
-
export declare const
|
|
20
|
+
export declare const NativeSelectField: ({ label, type, field, selectOptions, form: { touched, errors, setFieldValue }, theme, onChange, }: ISelectField & IOtherProps) => JSX.Element;
|
|
21
21
|
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { SelectChangeEvent } from '@mui/material/Select';
|
|
3
|
+
import { FieldInputProps, FormikProps } from 'formik';
|
|
4
|
+
interface ISelectOption {
|
|
5
|
+
id: string | number;
|
|
6
|
+
name: string | number;
|
|
7
|
+
value: string | number;
|
|
8
|
+
}
|
|
9
|
+
interface ISelectField {
|
|
10
|
+
field: FieldInputProps<any>;
|
|
11
|
+
form: FormikProps<any>;
|
|
12
|
+
options: ISelectOption[];
|
|
13
|
+
label?: string;
|
|
14
|
+
isMultiple?: boolean;
|
|
15
|
+
onChange?: (e: SelectChangeEvent<string[]>) => void;
|
|
16
|
+
}
|
|
17
|
+
declare function SelectField({ label, isMultiple, field, form: { errors, setFieldValue }, options, onChange, }: ISelectField): JSX.Element;
|
|
18
|
+
export { SelectField };
|
|
@@ -3,5 +3,6 @@ export { CustomField } from './CustomField';
|
|
|
3
3
|
export { FormikPhoneNumberField } from './FormikPhoneNumberField';
|
|
4
4
|
export { PhoneNumberField } from './PhoneNumberField';
|
|
5
5
|
export { Loader } from './Loader';
|
|
6
|
-
export {
|
|
6
|
+
export { NativeSelectField } from './NativeSelectFeild';
|
|
7
7
|
export { RadioGroupField } from './RadioGroupField';
|
|
8
|
+
export { SelectField } from './SelectField';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import './style.css';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
3
|
interface ITicketsSectionProps {
|
|
4
|
+
event: any;
|
|
4
5
|
ticketsList: any;
|
|
5
6
|
selectedTickets: any;
|
|
6
7
|
handleTicketSelect: any;
|
|
@@ -8,5 +9,5 @@ interface ITicketsSectionProps {
|
|
|
8
9
|
ticketsHeaderComponent?: ReactNode;
|
|
9
10
|
hideTicketsHeader: boolean;
|
|
10
11
|
}
|
|
11
|
-
export declare const TicketsSection: ({ ticketsList, selectedTickets, handleTicketSelect, sortBySoldOut, ticketsHeaderComponent, hideTicketsHeader }: ITicketsSectionProps) => JSX.Element;
|
|
12
|
+
export declare const TicketsSection: ({ event, ticketsList, selectedTickets, handleTicketSelect, sortBySoldOut, ticketsHeaderComponent, hideTicketsHeader, }: ITicketsSectionProps) => JSX.Element;
|
|
12
13
|
export {};
|
|
@@ -3,6 +3,7 @@ import './style.css';
|
|
|
3
3
|
interface WaitingListProps {
|
|
4
4
|
tickets: any;
|
|
5
5
|
eventId: number;
|
|
6
|
+
defaultMaxQuantity: number;
|
|
6
7
|
}
|
|
7
|
-
declare const WaitingList: ({ tickets, eventId }: WaitingListProps) => JSX.Element;
|
|
8
|
+
declare const WaitingList: ({ tickets, eventId, defaultMaxQuantity }: WaitingListProps) => JSX.Element;
|
|
8
9
|
export default WaitingList;
|
|
@@ -40,6 +40,9 @@ var FormHelperText = _interopDefault(require('@mui/material/FormHelperText'));
|
|
|
40
40
|
var FormLabel = _interopDefault(require('@mui/material/FormLabel'));
|
|
41
41
|
var Radio = _interopDefault(require('@mui/material/Radio'));
|
|
42
42
|
var RadioGroup = _interopDefault(require('@mui/material/RadioGroup'));
|
|
43
|
+
var ListItemText = _interopDefault(require('@mui/material/ListItemText'));
|
|
44
|
+
var MenuItem = _interopDefault(require('@mui/material/MenuItem'));
|
|
45
|
+
var OutlinedInput = _interopDefault(require('@mui/material/OutlinedInput'));
|
|
43
46
|
var Yup = require('yup');
|
|
44
47
|
var Box = _interopDefault(require('@mui/material/Box'));
|
|
45
48
|
var Modal = _interopDefault(require('@mui/material/Modal'));
|
|
@@ -59,7 +62,6 @@ var _some = _interopDefault(require('lodash/some'));
|
|
|
59
62
|
var Button$1 = _interopDefault(require('react-bootstrap/Button'));
|
|
60
63
|
var moment = _interopDefault(require('moment-timezone'));
|
|
61
64
|
var _sortBy = _interopDefault(require('lodash/sortBy'));
|
|
62
|
-
var MenuItem = _interopDefault(require('@mui/material/MenuItem'));
|
|
63
65
|
var Autocomplete = _interopDefault(require('@mui/material/Autocomplete'));
|
|
64
66
|
var Paper = _interopDefault(require('@mui/material/Paper'));
|
|
65
67
|
var Table = _interopDefault(require('@mui/material/Table'));
|
|
@@ -1620,10 +1622,24 @@ var combineValidators = function combineValidators() {
|
|
|
1620
1622
|
}
|
|
1621
1623
|
};
|
|
1622
1624
|
};
|
|
1625
|
+
function isFalsy(item) {
|
|
1626
|
+
try {
|
|
1627
|
+
if (!item || // handles most, like false, 0, null, etc
|
|
1628
|
+
typeof item == 'object' && Object.keys(item).length === 0 && // for empty objects, like {}, []
|
|
1629
|
+
!(typeof item.addEventListener == 'function') // omit webpage elements
|
|
1630
|
+
) {
|
|
1631
|
+
return true;
|
|
1632
|
+
}
|
|
1633
|
+
} catch (err) {
|
|
1634
|
+
return true;
|
|
1635
|
+
}
|
|
1636
|
+
|
|
1637
|
+
return false;
|
|
1638
|
+
}
|
|
1623
1639
|
var requiredValidator = function requiredValidator(value, message) {
|
|
1624
1640
|
var errorMessage = '';
|
|
1625
1641
|
|
|
1626
|
-
if (
|
|
1642
|
+
if (isFalsy(value)) {
|
|
1627
1643
|
errorMessage = message || 'Required';
|
|
1628
1644
|
}
|
|
1629
1645
|
|
|
@@ -1951,7 +1967,7 @@ function Loader() {
|
|
|
1951
1967
|
}, React__default.createElement(CircularProgress, null));
|
|
1952
1968
|
}
|
|
1953
1969
|
|
|
1954
|
-
var
|
|
1970
|
+
var NativeSelectField = function NativeSelectField(_ref) {
|
|
1955
1971
|
var label = _ref.label,
|
|
1956
1972
|
_ref$type = _ref.type,
|
|
1957
1973
|
type = _ref$type === void 0 ? 'text' : _ref$type,
|
|
@@ -2052,6 +2068,62 @@ var RadioGroupField = function RadioGroupField(_ref) {
|
|
|
2052
2068
|
})));
|
|
2053
2069
|
};
|
|
2054
2070
|
|
|
2071
|
+
function SelectField(_ref) {
|
|
2072
|
+
var label = _ref.label,
|
|
2073
|
+
isMultiple = _ref.isMultiple,
|
|
2074
|
+
field = _ref.field,
|
|
2075
|
+
_ref$form = _ref.form,
|
|
2076
|
+
errors = _ref$form.errors,
|
|
2077
|
+
setFieldValue = _ref$form.setFieldValue,
|
|
2078
|
+
options = _ref.options,
|
|
2079
|
+
_ref$onChange = _ref.onChange,
|
|
2080
|
+
onChange = _ref$onChange === void 0 ? _identity : _ref$onChange;
|
|
2081
|
+
var name = field.name,
|
|
2082
|
+
value = field.value;
|
|
2083
|
+
var selectId = "select-field-" + name;
|
|
2084
|
+
|
|
2085
|
+
var error = _get(errors, name);
|
|
2086
|
+
|
|
2087
|
+
var handleChange = function handleChange(event) {
|
|
2088
|
+
var value = event.target.value;
|
|
2089
|
+
setFieldValue(name, value);
|
|
2090
|
+
onChange(event);
|
|
2091
|
+
};
|
|
2092
|
+
|
|
2093
|
+
return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.FormControl, {
|
|
2094
|
+
fullWidth: true,
|
|
2095
|
+
error: Boolean(error)
|
|
2096
|
+
}, label && React__default.createElement(material.InputLabel, {
|
|
2097
|
+
id: selectId
|
|
2098
|
+
}, label), React__default.createElement(Select, {
|
|
2099
|
+
id: name,
|
|
2100
|
+
labelId: selectId,
|
|
2101
|
+
multiple: isMultiple,
|
|
2102
|
+
value: value,
|
|
2103
|
+
onChange: handleChange,
|
|
2104
|
+
input: React__default.createElement(OutlinedInput, {
|
|
2105
|
+
label: label
|
|
2106
|
+
}),
|
|
2107
|
+
renderValue: function renderValue(selected) {
|
|
2108
|
+
return isMultiple ? selected.join(', ') : selected;
|
|
2109
|
+
},
|
|
2110
|
+
sx: {
|
|
2111
|
+
textAlign: 'start'
|
|
2112
|
+
}
|
|
2113
|
+
}, options.map(function (option) {
|
|
2114
|
+
return React__default.createElement(MenuItem, {
|
|
2115
|
+
key: option.name,
|
|
2116
|
+
value: option.value
|
|
2117
|
+
}, isMultiple && React__default.createElement(Checkbox, {
|
|
2118
|
+
checked: value.indexOf(option.value) > -1
|
|
2119
|
+
}), React__default.createElement(ListItemText, {
|
|
2120
|
+
primary: option.name
|
|
2121
|
+
}));
|
|
2122
|
+
})), error ? React__default.createElement(FormHelperText, {
|
|
2123
|
+
error: true
|
|
2124
|
+
}, error) : null));
|
|
2125
|
+
}
|
|
2126
|
+
|
|
2055
2127
|
var SnackbarAlert = function SnackbarAlert(_ref) {
|
|
2056
2128
|
var isOpen = _ref.isOpen,
|
|
2057
2129
|
message = _ref.message,
|
|
@@ -3815,7 +3887,7 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
|
|
|
3815
3887
|
validate: getValidateFunctions(element, states, props.values, props.errors),
|
|
3816
3888
|
setFieldValue: props.setFieldValue,
|
|
3817
3889
|
onBlur: props.handleBlur,
|
|
3818
|
-
component: element.type === 'checkbox' ? CheckboxField : element.type === 'select' ?
|
|
3890
|
+
component: element.type === 'checkbox' ? CheckboxField : element.type === 'select' ? NativeSelectField : element.type === 'phone' ? PhoneNumberField : element.type === 'date' ? DatePickerField : element.type === 'radio' ? RadioGroupField : element.type === 'select_multi' ? SelectField : CustomField,
|
|
3819
3891
|
selectOptions: element.name === 'country' ? _map(countries, function (item) {
|
|
3820
3892
|
return {
|
|
3821
3893
|
value: item.id,
|
|
@@ -3934,7 +4006,7 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
|
|
|
3934
4006
|
});
|
|
3935
4007
|
|
|
3936
4008
|
var currencyNormalizerCreator = function currencyNormalizerCreator(value, currency) {
|
|
3937
|
-
return !value ? '' :
|
|
4009
|
+
return !value ? '' : getCurrencySymbolByCurrency(currency) + " " + value;
|
|
3938
4010
|
};
|
|
3939
4011
|
var createFixedFloatNormalizer = function createFixedFloatNormalizer(fixedValue) {
|
|
3940
4012
|
return function (value) {
|
|
@@ -5201,7 +5273,9 @@ var generateQuantity = function generateQuantity(n) {
|
|
|
5201
5273
|
var WaitingList = function WaitingList(_ref) {
|
|
5202
5274
|
var _ref$tickets = _ref.tickets,
|
|
5203
5275
|
tickets = _ref$tickets === void 0 ? {} : _ref$tickets,
|
|
5204
|
-
eventId = _ref.eventId
|
|
5276
|
+
eventId = _ref.eventId,
|
|
5277
|
+
_ref$defaultMaxQuanti = _ref.defaultMaxQuantity,
|
|
5278
|
+
defaultMaxQuantity = _ref$defaultMaxQuanti === void 0 ? 10 : _ref$defaultMaxQuanti;
|
|
5205
5279
|
var isWindowDefined = typeof window !== 'undefined';
|
|
5206
5280
|
var userData = isWindowDefined && window.localStorage.getItem('user_data') ? JSON.parse(window.localStorage.getItem('user_data') || '') : {};
|
|
5207
5281
|
|
|
@@ -5310,7 +5384,7 @@ var WaitingList = function WaitingList(_ref) {
|
|
|
5310
5384
|
label: 'Quantity Requested',
|
|
5311
5385
|
value: '',
|
|
5312
5386
|
disabled: true
|
|
5313
|
-
}].concat(generateQuantity(10))
|
|
5387
|
+
}].concat(generateQuantity(defaultMaxQuantity != null ? defaultMaxQuantity : 10))
|
|
5314
5388
|
}))), React__default.createElement("div", {
|
|
5315
5389
|
className: "field-item"
|
|
5316
5390
|
}, React__default.createElement(formik.Field, {
|
|
@@ -5576,12 +5650,17 @@ var TicketRow = function TicketRow(_ref) {
|
|
|
5576
5650
|
};
|
|
5577
5651
|
|
|
5578
5652
|
var TicketsSection = function TicketsSection(_ref) {
|
|
5579
|
-
var
|
|
5653
|
+
var _ref$event = _ref.event,
|
|
5654
|
+
event = _ref$event === void 0 ? {
|
|
5655
|
+
currency: {}
|
|
5656
|
+
} : _ref$event,
|
|
5657
|
+
ticketsList = _ref.ticketsList,
|
|
5580
5658
|
selectedTickets = _ref.selectedTickets,
|
|
5581
5659
|
handleTicketSelect = _ref.handleTicketSelect,
|
|
5582
5660
|
sortBySoldOut = _ref.sortBySoldOut,
|
|
5583
5661
|
ticketsHeaderComponent = _ref.ticketsHeaderComponent,
|
|
5584
5662
|
hideTicketsHeader = _ref.hideTicketsHeader;
|
|
5663
|
+
var currency = event.currency.currency;
|
|
5585
5664
|
var sortedTicketsList = sortBySoldOut ? _sortBy(_sortBy(ticketsList, 'sortOrder'), 'soldOut') : _sortBy(ticketsList, 'sortOrder');
|
|
5586
5665
|
var showGroup = !!sortedTicketsList.find(function (ticket) {
|
|
5587
5666
|
return ticket.groupName;
|
|
@@ -5589,6 +5668,8 @@ var TicketsSection = function TicketsSection(_ref) {
|
|
|
5589
5668
|
return React__default.createElement(React__default.Fragment, null, !hideTicketsHeader && ticketsHeaderComponent, sortedTicketsList.map(function (ticket, i, arr) {
|
|
5590
5669
|
var _arr;
|
|
5591
5670
|
|
|
5671
|
+
var ticketPrice = currencyNormalizerCreator((+ticket.price).toFixed(2), currency);
|
|
5672
|
+
var ticketOldPrice = currencyNormalizerCreator((+ticket.oldPrice).toFixed(2), currency);
|
|
5592
5673
|
var isSoldOut = ticket.sold_out || !ticket.displayTicket || ticket.soldOut;
|
|
5593
5674
|
|
|
5594
5675
|
var ticketSelect = function ticketSelect(event) {
|
|
@@ -5603,12 +5684,12 @@ var TicketsSection = function TicketsSection(_ref) {
|
|
|
5603
5684
|
}
|
|
5604
5685
|
|
|
5605
5686
|
var ticketIsFree = +ticket.price === 0;
|
|
5606
|
-
var
|
|
5687
|
+
var ticketPriceElem = isSoldOut ? 'SOLD OUT' : ticketIsFree ? 'FREE' : ticketPrice;
|
|
5607
5688
|
var isNewGroupTicket = (ticket == null ? void 0 : ticket.groupName) !== ((_arr = arr[i - 1]) == null ? void 0 : _arr.groupName);
|
|
5608
5689
|
return React__default.createElement(React__default.Fragment, {
|
|
5609
5690
|
key: ticket.id || ticket.name
|
|
5610
5691
|
}, showGroup && isNewGroupTicket ? React__default.createElement("div", {
|
|
5611
|
-
className:
|
|
5692
|
+
className: "event-detail__tier group-title"
|
|
5612
5693
|
}, ticket.groupName || '') : null, React__default.createElement("div", {
|
|
5613
5694
|
className: "event-detail__tier " + (isSoldOut ? 'disabled' : '')
|
|
5614
5695
|
}, React__default.createElement("div", {
|
|
@@ -5619,9 +5700,9 @@ var TicketsSection = function TicketsSection(_ref) {
|
|
|
5619
5700
|
className: "event-detail__tier-price"
|
|
5620
5701
|
}, ticketIsDiscounted && React__default.createElement("p", {
|
|
5621
5702
|
className: "old-price"
|
|
5622
|
-
},
|
|
5703
|
+
}, ticketOldPrice), React__default.createElement("p", {
|
|
5623
5704
|
className: isSoldOut ? 'sold-out' : ''
|
|
5624
|
-
},
|
|
5705
|
+
}, ticketPriceElem), !isSoldOut && !ticketIsFree && React__default.createElement("p", {
|
|
5625
5706
|
className: "fees"
|
|
5626
5707
|
}, ticket.feeIncluded ? '(incl. Fees)' : '(excl. Fees)')), React__default.createElement("div", {
|
|
5627
5708
|
className: "event-detail__tier-state",
|
|
@@ -6269,6 +6350,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
|
|
|
6269
6350
|
}, error), isLoading ? React__default.createElement(Loader, null) : React__default.createElement("div", {
|
|
6270
6351
|
ref: ticketsContainerRef
|
|
6271
6352
|
}, !isSalesClosed && React__default.createElement(TicketsSection, {
|
|
6353
|
+
event: event,
|
|
6272
6354
|
ticketsList: tickets,
|
|
6273
6355
|
selectedTickets: selectedTickets,
|
|
6274
6356
|
handleTicketSelect: handleTicketSelect,
|
|
@@ -6288,7 +6370,8 @@ var TicketsContainer = function TicketsContainer(_ref) {
|
|
|
6288
6370
|
isLoggedIn: isLoggedIn
|
|
6289
6371
|
}) : null, showWaitingList && event.salesStarted && !hideWaitingList && React__default.createElement(WaitingList, {
|
|
6290
6372
|
tickets: tickets,
|
|
6291
|
-
eventId: eventId
|
|
6373
|
+
eventId: eventId,
|
|
6374
|
+
defaultMaxQuantity: event.waitingListMaxQuantity
|
|
6292
6375
|
}), codeIsLoading ? React__default.createElement(Loader, null) : isSalesClosed ? null : showAccessCodeSection ? React__default.createElement(AccessCodeSection, {
|
|
6293
6376
|
code: code,
|
|
6294
6377
|
setCode: setCode,
|
|
@@ -7624,7 +7707,7 @@ var AddonComponent = function AddonComponent(_ref) {
|
|
|
7624
7707
|
}, React__default.createElement(formik.Field, {
|
|
7625
7708
|
name: id,
|
|
7626
7709
|
selectOptions: selectOptions,
|
|
7627
|
-
component:
|
|
7710
|
+
component: NativeSelectField,
|
|
7628
7711
|
onChange: function onChange(e) {
|
|
7629
7712
|
var value = e.target.value;
|
|
7630
7713
|
handleAddonChange(id, value);
|