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.
Files changed (28) hide show
  1. package/{src/components → dist}/.DS_Store +0 -0
  2. package/dist/components/common/{SelectField.d.ts → NativeSelectFeild/index.d.ts} +1 -1
  3. package/dist/components/common/SelectField/index.d.ts +18 -0
  4. package/dist/components/common/index.d.ts +2 -1
  5. package/dist/components/ticketsContainer/TicketsSection.d.ts +2 -1
  6. package/dist/components/waitingList/index.d.ts +2 -1
  7. package/dist/tf-checkout-react.cjs.development.js +97 -14
  8. package/dist/tf-checkout-react.cjs.development.js.map +1 -1
  9. package/dist/tf-checkout-react.cjs.production.min.js +1 -1
  10. package/dist/tf-checkout-react.cjs.production.min.js.map +1 -1
  11. package/dist/tf-checkout-react.esm.js +97 -14
  12. package/dist/tf-checkout-react.esm.js.map +1 -1
  13. package/dist/validators/index.d.ts +2 -1
  14. package/package.json +1 -1
  15. package/src/.DS_Store +0 -0
  16. package/src/assets/.DS_Store +0 -0
  17. package/src/components/addonsContainer/AddonComponent.tsx +2 -2
  18. package/src/components/billing-info-container/index.tsx +5 -1
  19. package/src/components/common/{SelectField.tsx → NativeSelectFeild/index.tsx} +1 -1
  20. package/src/components/common/SelectField/index.tsx +82 -0
  21. package/src/components/common/index.tsx +2 -1
  22. package/src/components/ticketsContainer/TicketsSection.tsx +31 -11
  23. package/src/components/ticketsContainer/index.tsx +2 -1
  24. package/src/components/waitingList/index.tsx +3 -2
  25. package/src/env.ts +2 -2
  26. package/src/normalizers/index.ts +8 -5
  27. package/src/validators/index.ts +25 -5
  28. package/src/components/common/dist/PhoneNumberField.js +0 -96
@@ -33,6 +33,9 @@ import FormHelperText$1 from '@mui/material/FormHelperText';
33
33
  import FormLabel from '@mui/material/FormLabel';
34
34
  import Radio from '@mui/material/Radio';
35
35
  import RadioGroup from '@mui/material/RadioGroup';
36
+ import ListItemText from '@mui/material/ListItemText';
37
+ import MenuItem from '@mui/material/MenuItem';
38
+ import OutlinedInput from '@mui/material/OutlinedInput';
36
39
  import { object, string, ref, boolean } from 'yup';
37
40
  import Box$1 from '@mui/material/Box';
38
41
  import Modal$1 from '@mui/material/Modal';
@@ -52,7 +55,6 @@ import _some from 'lodash-es/some';
52
55
  import Button$1 from 'react-bootstrap/Button';
53
56
  import moment from 'moment-timezone';
54
57
  import _sortBy from 'lodash-es/sortBy';
55
- import MenuItem from '@mui/material/MenuItem';
56
58
  import Autocomplete from '@mui/material/Autocomplete';
57
59
  import Paper from '@mui/material/Paper';
58
60
  import Table from '@mui/material/Table';
@@ -1613,10 +1615,24 @@ var combineValidators = function combineValidators() {
1613
1615
  }
1614
1616
  };
1615
1617
  };
1618
+ function isFalsy(item) {
1619
+ try {
1620
+ if (!item || // handles most, like false, 0, null, etc
1621
+ typeof item == 'object' && Object.keys(item).length === 0 && // for empty objects, like {}, []
1622
+ !(typeof item.addEventListener == 'function') // omit webpage elements
1623
+ ) {
1624
+ return true;
1625
+ }
1626
+ } catch (err) {
1627
+ return true;
1628
+ }
1629
+
1630
+ return false;
1631
+ }
1616
1632
  var requiredValidator = function requiredValidator(value, message) {
1617
1633
  var errorMessage = '';
1618
1634
 
1619
- if (!value) {
1635
+ if (isFalsy(value)) {
1620
1636
  errorMessage = message || 'Required';
1621
1637
  }
1622
1638
 
@@ -1944,7 +1960,7 @@ function Loader() {
1944
1960
  }, React.createElement(CircularProgress, null));
1945
1961
  }
1946
1962
 
1947
- var SelectField = function SelectField(_ref) {
1963
+ var NativeSelectField = function NativeSelectField(_ref) {
1948
1964
  var label = _ref.label,
1949
1965
  _ref$type = _ref.type,
1950
1966
  type = _ref$type === void 0 ? 'text' : _ref$type,
@@ -2045,6 +2061,62 @@ var RadioGroupField = function RadioGroupField(_ref) {
2045
2061
  })));
2046
2062
  };
2047
2063
 
2064
+ function SelectField(_ref) {
2065
+ var label = _ref.label,
2066
+ isMultiple = _ref.isMultiple,
2067
+ field = _ref.field,
2068
+ _ref$form = _ref.form,
2069
+ errors = _ref$form.errors,
2070
+ setFieldValue = _ref$form.setFieldValue,
2071
+ options = _ref.options,
2072
+ _ref$onChange = _ref.onChange,
2073
+ onChange = _ref$onChange === void 0 ? _identity : _ref$onChange;
2074
+ var name = field.name,
2075
+ value = field.value;
2076
+ var selectId = "select-field-" + name;
2077
+
2078
+ var error = _get(errors, name);
2079
+
2080
+ var handleChange = function handleChange(event) {
2081
+ var value = event.target.value;
2082
+ setFieldValue(name, value);
2083
+ onChange(event);
2084
+ };
2085
+
2086
+ return React.createElement(React.Fragment, null, React.createElement(FormControl, {
2087
+ fullWidth: true,
2088
+ error: Boolean(error)
2089
+ }, label && React.createElement(InputLabel, {
2090
+ id: selectId
2091
+ }, label), React.createElement(Select, {
2092
+ id: name,
2093
+ labelId: selectId,
2094
+ multiple: isMultiple,
2095
+ value: value,
2096
+ onChange: handleChange,
2097
+ input: React.createElement(OutlinedInput, {
2098
+ label: label
2099
+ }),
2100
+ renderValue: function renderValue(selected) {
2101
+ return isMultiple ? selected.join(', ') : selected;
2102
+ },
2103
+ sx: {
2104
+ textAlign: 'start'
2105
+ }
2106
+ }, options.map(function (option) {
2107
+ return React.createElement(MenuItem, {
2108
+ key: option.name,
2109
+ value: option.value
2110
+ }, isMultiple && React.createElement(Checkbox, {
2111
+ checked: value.indexOf(option.value) > -1
2112
+ }), React.createElement(ListItemText, {
2113
+ primary: option.name
2114
+ }));
2115
+ })), error ? React.createElement(FormHelperText$1, {
2116
+ error: true
2117
+ }, error) : null));
2118
+ }
2119
+
2048
2120
  var SnackbarAlert = function SnackbarAlert(_ref) {
2049
2121
  var isOpen = _ref.isOpen,
2050
2122
  message = _ref.message,
@@ -3813,7 +3885,7 @@ var BillingInfoContainer = /*#__PURE__*/React.memo(function (_ref4) {
3813
3885
  validate: getValidateFunctions(element, states, props.values, props.errors),
3814
3886
  setFieldValue: props.setFieldValue,
3815
3887
  onBlur: props.handleBlur,
3816
- component: element.type === 'checkbox' ? CheckboxField : element.type === 'select' ? SelectField : element.type === 'phone' ? PhoneNumberField : element.type === 'date' ? DatePickerField : element.type === 'radio' ? RadioGroupField : CustomField,
3888
+ 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,
3817
3889
  selectOptions: element.name === 'country' ? _map(countries, function (item) {
3818
3890
  return {
3819
3891
  value: item.id,
@@ -3932,7 +4004,7 @@ var BillingInfoContainer = /*#__PURE__*/React.memo(function (_ref4) {
3932
4004
  });
3933
4005
 
3934
4006
  var currencyNormalizerCreator = function currencyNormalizerCreator(value, currency) {
3935
- return !value ? '' : "" + getCurrencySymbolByCurrency(currency) + value;
4007
+ return !value ? '' : getCurrencySymbolByCurrency(currency) + " " + value;
3936
4008
  };
3937
4009
  var createFixedFloatNormalizer = function createFixedFloatNormalizer(fixedValue) {
3938
4010
  return function (value) {
@@ -5199,7 +5271,9 @@ var generateQuantity = function generateQuantity(n) {
5199
5271
  var WaitingList = function WaitingList(_ref) {
5200
5272
  var _ref$tickets = _ref.tickets,
5201
5273
  tickets = _ref$tickets === void 0 ? {} : _ref$tickets,
5202
- eventId = _ref.eventId;
5274
+ eventId = _ref.eventId,
5275
+ _ref$defaultMaxQuanti = _ref.defaultMaxQuantity,
5276
+ defaultMaxQuantity = _ref$defaultMaxQuanti === void 0 ? 10 : _ref$defaultMaxQuanti;
5203
5277
  var isWindowDefined = typeof window !== 'undefined';
5204
5278
  var userData = isWindowDefined && window.localStorage.getItem('user_data') ? JSON.parse(window.localStorage.getItem('user_data') || '') : {};
5205
5279
 
@@ -5308,7 +5382,7 @@ var WaitingList = function WaitingList(_ref) {
5308
5382
  label: 'Quantity Requested',
5309
5383
  value: '',
5310
5384
  disabled: true
5311
- }].concat(generateQuantity(10))
5385
+ }].concat(generateQuantity(defaultMaxQuantity != null ? defaultMaxQuantity : 10))
5312
5386
  }))), React.createElement("div", {
5313
5387
  className: "field-item"
5314
5388
  }, React.createElement(Field, {
@@ -5574,12 +5648,17 @@ var TicketRow = function TicketRow(_ref) {
5574
5648
  };
5575
5649
 
5576
5650
  var TicketsSection = function TicketsSection(_ref) {
5577
- var ticketsList = _ref.ticketsList,
5651
+ var _ref$event = _ref.event,
5652
+ event = _ref$event === void 0 ? {
5653
+ currency: {}
5654
+ } : _ref$event,
5655
+ ticketsList = _ref.ticketsList,
5578
5656
  selectedTickets = _ref.selectedTickets,
5579
5657
  handleTicketSelect = _ref.handleTicketSelect,
5580
5658
  sortBySoldOut = _ref.sortBySoldOut,
5581
5659
  ticketsHeaderComponent = _ref.ticketsHeaderComponent,
5582
5660
  hideTicketsHeader = _ref.hideTicketsHeader;
5661
+ var currency = event.currency.currency;
5583
5662
  var sortedTicketsList = sortBySoldOut ? _sortBy(_sortBy(ticketsList, 'sortOrder'), 'soldOut') : _sortBy(ticketsList, 'sortOrder');
5584
5663
  var showGroup = !!sortedTicketsList.find(function (ticket) {
5585
5664
  return ticket.groupName;
@@ -5587,6 +5666,8 @@ var TicketsSection = function TicketsSection(_ref) {
5587
5666
  return React.createElement(React.Fragment, null, !hideTicketsHeader && ticketsHeaderComponent, sortedTicketsList.map(function (ticket, i, arr) {
5588
5667
  var _arr;
5589
5668
 
5669
+ var ticketPrice = currencyNormalizerCreator((+ticket.price).toFixed(2), currency);
5670
+ var ticketOldPrice = currencyNormalizerCreator((+ticket.oldPrice).toFixed(2), currency);
5590
5671
  var isSoldOut = ticket.sold_out || !ticket.displayTicket || ticket.soldOut;
5591
5672
 
5592
5673
  var ticketSelect = function ticketSelect(event) {
@@ -5601,12 +5682,12 @@ var TicketsSection = function TicketsSection(_ref) {
5601
5682
  }
5602
5683
 
5603
5684
  var ticketIsFree = +ticket.price === 0;
5604
- var ticketPrice = isSoldOut ? 'SOLD OUT' : ticketIsFree ? 'FREE' : "$ " + (+ticket.price).toFixed(2);
5685
+ var ticketPriceElem = isSoldOut ? 'SOLD OUT' : ticketIsFree ? 'FREE' : ticketPrice;
5605
5686
  var isNewGroupTicket = (ticket == null ? void 0 : ticket.groupName) !== ((_arr = arr[i - 1]) == null ? void 0 : _arr.groupName);
5606
5687
  return React.createElement(React.Fragment, {
5607
5688
  key: ticket.id || ticket.name
5608
5689
  }, showGroup && isNewGroupTicket ? React.createElement("div", {
5609
- className: 'event-detail__tier group-title'
5690
+ className: "event-detail__tier group-title"
5610
5691
  }, ticket.groupName || '') : null, React.createElement("div", {
5611
5692
  className: "event-detail__tier " + (isSoldOut ? 'disabled' : '')
5612
5693
  }, React.createElement("div", {
@@ -5617,9 +5698,9 @@ var TicketsSection = function TicketsSection(_ref) {
5617
5698
  className: "event-detail__tier-price"
5618
5699
  }, ticketIsDiscounted && React.createElement("p", {
5619
5700
  className: "old-price"
5620
- }, "$ ", (+ticket.oldPrice).toFixed(2)), React.createElement("p", {
5701
+ }, ticketOldPrice), React.createElement("p", {
5621
5702
  className: isSoldOut ? 'sold-out' : ''
5622
- }, ticketPrice), !isSoldOut && !ticketIsFree && React.createElement("p", {
5703
+ }, ticketPriceElem), !isSoldOut && !ticketIsFree && React.createElement("p", {
5623
5704
  className: "fees"
5624
5705
  }, ticket.feeIncluded ? '(incl. Fees)' : '(excl. Fees)')), React.createElement("div", {
5625
5706
  className: "event-detail__tier-state",
@@ -6267,6 +6348,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
6267
6348
  }, error), isLoading ? React.createElement(Loader, null) : React.createElement("div", {
6268
6349
  ref: ticketsContainerRef
6269
6350
  }, !isSalesClosed && React.createElement(TicketsSection, {
6351
+ event: event,
6270
6352
  ticketsList: tickets,
6271
6353
  selectedTickets: selectedTickets,
6272
6354
  handleTicketSelect: handleTicketSelect,
@@ -6286,7 +6368,8 @@ var TicketsContainer = function TicketsContainer(_ref) {
6286
6368
  isLoggedIn: isLoggedIn
6287
6369
  }) : null, showWaitingList && event.salesStarted && !hideWaitingList && React.createElement(WaitingList, {
6288
6370
  tickets: tickets,
6289
- eventId: eventId
6371
+ eventId: eventId,
6372
+ defaultMaxQuantity: event.waitingListMaxQuantity
6290
6373
  }), codeIsLoading ? React.createElement(Loader, null) : isSalesClosed ? null : showAccessCodeSection ? React.createElement(AccessCodeSection, {
6291
6374
  code: code,
6292
6375
  setCode: setCode,
@@ -7622,7 +7705,7 @@ var AddonComponent = function AddonComponent(_ref) {
7622
7705
  }, React.createElement(Field, {
7623
7706
  name: id,
7624
7707
  selectOptions: selectOptions,
7625
- component: SelectField,
7708
+ component: NativeSelectField,
7626
7709
  onChange: function onChange(e) {
7627
7710
  var value = e.target.value;
7628
7711
  handleAddonChange(id, value);