summit-registration-lite 2.0.1 → 2.0.4

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/.editorconfig ADDED
@@ -0,0 +1,40 @@
1
+ # http://editorConfig.org
2
+
3
+ root = true
4
+
5
+ [*]
6
+ charset = utf-8
7
+ end_of_line = lf
8
+ indent_style = space
9
+ insert_final_newline = true
10
+ tab_width = 4
11
+ trim_trailing_whitespace = true
12
+
13
+ [{*.css,*.scss}]
14
+ indent_size = 2
15
+
16
+ [{*.js,*.jsx,*.tsx,*.ts,*.mjs}]
17
+ indent_size = 4
18
+
19
+ [*.json]
20
+ indent_size = 2
21
+
22
+ [*.md,*.mdx]
23
+ indent_size = 4
24
+ trim_trailing_whitespace = false
25
+
26
+ [*.mdx]
27
+ indent_size = 2
28
+ trim_trailing_whitespace = false
29
+
30
+ [.*rc]
31
+ indent_size = 2
32
+
33
+ [*.{yml,yaml}]
34
+ indent_size = 2
35
+
36
+ [Makefile]
37
+ indent_style = tab
38
+
39
+ [Dockerfile]
40
+ indent_size = 2
package/.nvmrc CHANGED
@@ -1 +1 @@
1
- v14.19.1
1
+ 14.19.1
package/.prettierrc ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "semi": true,
3
+ "tabWidth": 2,
4
+ "singleQuote": true,
5
+ "arrowParens": "avoid"
6
+ }
package/dist/index.css CHANGED
@@ -6,13 +6,13 @@
6
6
 
7
7
  .title___LksVm{font-weight:bold;cursor:pointer}.form___v5GIx{display:flex;flex-wrap:wrap;justify-content:space-between;margin:10px 0}.form___v5GIx div.fieldWrapper___Eoe61{width:48%;border-radius:5px;background-color:#e6f3ff;border:1px solid #3fa2f7;height:36px;padding:5px;display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.form___v5GIx div.fieldWrapper___Eoe61:first-of-type{width:100%}.form___v5GIx div.fieldWrapper___Eoe61 input{width:100%;background-color:transparent;border:none}.form___v5GIx div.fieldWrapper___Eoe61 input:focus-visible{outline:none}.form___v5GIx div.fieldWrapper___Eoe61 i{position:relative;padding-right:5px}.form___v5GIx div.fieldWrapper___Eoe61>div{width:100%;padding-left:5px}.form___v5GIx div.fieldWrapper___Eoe61>div:first-of-type{width:95%}.form___v5GIx input{width:48%;border-radius:5px;border:1px solid #3fa2f7;color:#3486cd;font-size:16px;background-color:#e6f3ff;height:36px;padding:5px;display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;font-weight:bold}.form___v5GIx input::placeholder{color:#3486cd}
8
8
 
9
- .form___DoT3x{display:flex;flex-wrap:wrap;justify-content:space-between;margin:10px 0}.form___DoT3x div.fieldWrapper___wa1Ks{display:flex;width:48%;border-radius:5px;border:1px solid var(--color_primary);height:36px;padding:5px;display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.form___DoT3x div.fieldWrapper___wa1Ks:first-of-type{width:100%}.form___DoT3x div.fieldWrapper___wa1Ks:last-of-type{flex-direction:column}.form___DoT3x div.fieldWrapper___wa1Ks input{width:100%;background-color:transparent;border:none}.form___DoT3x div.fieldWrapper___wa1Ks input:focus-visible{outline:none}.form___DoT3x div.fieldWrapper___wa1Ks i{position:relative;padding-right:5px}.form___DoT3x div.fieldWrapper___wa1Ks>div{width:100%;padding-left:5px}.form___DoT3x div.fieldWrapper___wa1Ks>div:first-of-type{width:95%}.form___DoT3x div.fieldWrapper___wa1Ks span{display:inline-block;color:#e5424d;font-size:14px;align-self:flex-start}.form___DoT3x input{width:48%;border-radius:5px;color:#3486cd;font-size:16px;height:36px;padding:5px;display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.form___DoT3x input::placeholder{color:var(--color_text_input_hints);font-size:16px}
9
+ .form___DoT3x{display:flex;flex-wrap:wrap;justify-content:space-between;margin:10px 0}.form___DoT3x div.fieldWrapper___wa1Ks{display:flex;width:48%;border-radius:5px;border:1px solid var(--color_primary);height:36px;padding:5px;display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.form___DoT3x div.fieldWrapper___wa1Ks:first-of-type{width:100%}.form___DoT3x div.fieldWrapper___wa1Ks:last-of-type{flex-direction:column}.form___DoT3x div.fieldWrapper___wa1Ks input{width:100%;background-color:transparent;border:none;padding:0}.form___DoT3x div.fieldWrapper___wa1Ks input:focus-visible{outline:none}.form___DoT3x div.fieldWrapper___wa1Ks i{position:relative;padding-right:5px}.form___DoT3x div.fieldWrapper___wa1Ks>div{width:100%;padding-left:5px}.form___DoT3x div.fieldWrapper___wa1Ks>div:first-of-type{width:95%}.form___DoT3x div.fieldWrapper___wa1Ks span{display:inline-block;color:#e5424d;font-size:14px;align-self:flex-start}.form___DoT3x input{width:48%;border-radius:5px;color:#3486cd;font-size:16px;height:36px;padding:5px;display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.form___DoT3x input::placeholder{color:var(--color_text_input_hints);font-size:16px}
10
10
 
11
- .title___ECoNz{font-weight:bold;cursor:pointer;display:flex;justify-content:space-between}.title___ECoNz div{font-weight:normal}.form___lDFka{display:flex;flex-wrap:wrap;justify-content:space-between;margin:10px 0}.form___lDFka>div{width:48%}.form___lDFka>div input{width:100%;border-radius:5px;border:1px solid var(--color_primary);height:36px;padding:5px;display:flex;justify-content:space-between;align-items:center;font-size:15px}.form___lDFka>div input::placeholder{color:var(--color_text_input_hints)}.form___lDFka>div .readOnly___WRazF{opacity:0.6;cursor:default}.form___lDFka>div span{display:inline-block;color:#e5424d}.form___lDFka>div>:last-child{margin-bottom:5px}.form___lDFka .companies___kmGFB{width:48%}.form___lDFka .companies___kmGFB>div{position:relative;width:100%;border-radius:5px;display:flex;justify-content:space-between;align-items:center;font-size:15px}.form___lDFka .companies___kmGFB>div::placeholder{color:var(--color_text_input_hints)}.form___lDFka .companies___kmGFB>div>div{height:100%;width:100%}.form___lDFka .companies___kmGFB>div>div>div{height:36px;padding:0px;border:1px solid var(--color_primary)}.form___lDFka .companies___kmGFB>div>div>div>div{height:36px}.form___lDFka .companies___kmGFB>div input{padding:5px;border:1px solid var(--color_primary);padding-right:0px !important;background-color:transparent}.form___lDFka .companies___kmGFB>div i{right:10px !important}
11
+ .title___ECoNz{font-weight:bold;cursor:pointer;display:flex;justify-content:space-between}.title___ECoNz div{font-weight:normal}.form___lDFka{display:flex;flex-wrap:wrap;justify-content:space-between;margin:10px 0 0}.form___lDFka>div{width:48%}.form___lDFka>div input{width:100%;border-radius:5px;border:1px solid var(--color_primary);height:36px;padding:5px;display:flex;justify-content:space-between;align-items:center;font-size:15px}.form___lDFka>div input::placeholder{color:var(--color_text_input_hints)}.form___lDFka>div .readOnly___WRazF{opacity:0.6;cursor:default}.form___lDFka>div span{display:inline-block;color:#e5424d}.form___lDFka>div>:last-child{margin-bottom:5px}.form___lDFka .companies___kmGFB{width:48%}.form___lDFka .companies___kmGFB>div{position:relative;width:100%;border-radius:5px;display:flex;justify-content:space-between;align-items:center;font-size:15px}.form___lDFka .companies___kmGFB>div::placeholder{color:var(--color_text_input_hints)}.form___lDFka .companies___kmGFB>div>div{height:100%;width:100%}.form___lDFka .companies___kmGFB>div>div>div{height:36px;padding:0px;border:1px solid var(--color_primary)}.form___lDFka .companies___kmGFB>div>div>div>div{height:36px}.form___lDFka .companies___kmGFB>div input{padding:5px;border:1px solid var(--color_primary);padding-right:0px !important;background-color:transparent}.form___lDFka .companies___kmGFB>div i{right:10px !important}.moreInfo___cQYdZ{display:inline-block;margin-top:10px}.moreInfoTooltip___lslgT{max-width:280px}.formErrors___dQQMe{margin-top:10px}.formErrors___dQQMe div+div{margin-top:10px}
12
12
 
13
- .title___DNZyl{font-weight:bold;cursor:pointer;display:flex;justify-content:space-between}.summary___quWdZ{text-align:right}.crossOut___QZ7dy{text-decoration:line-through}.discount___sEK_Q{color:green}.promo___F8lPO{font-weight:bold;display:flex;justify-content:flex-end}.dropdown____HWg0{margin-top:5px}.inPersonDisclaimer___PXGTz{margin-top:15px}
13
+ .title___DNZyl{font-weight:bold;cursor:pointer;display:flex;justify-content:space-between}.summary___quWdZ{text-align:right}.crossOut___QZ7dy{text-decoration:line-through}.discount___sEK_Q{color:green}.promo___F8lPO{font-weight:bold;display:flex;justify-content:flex-end}.form___aoo7w{display:flex;gap:10px;margin-top:10px}.dropdown____HWg0{flex:1 1 auto}.quantity___SIEQZ{flex-shrink:0}.quantity___SIEQZ input,.quantity___SIEQZ button{height:36px;text-align:center;border:1px solid var(--color_primary)}.quantity___SIEQZ input{padding:0 8px;width:48px !important}.quantity___SIEQZ input,.quantity___SIEQZ input:read-only{color:inherit;background-color:#fff;border:1px solid var(--color_primary)}.quantity___SIEQZ button{display:flex;align-items:center}.quantity___SIEQZ button:disabled,.quantity___SIEQZ button:disabled:hover{opacity:0.65;background:#dedede;border-color:#bebebe}.soldOut___Hatfr{height:36px;padding:0 16px;line-height:34px;font-weight:700px;background:#dedede;border:solid 1px #bebebe;border-radius:5px;opacity:0.65;font-weight:700;flex-shrink:0}.moreInfo___LmwOe{display:inline-block;margin-top:10px}.moreInfoTooltip___nOBf1{max-width:280px}.inPersonDisclaimer___PXGTz{margin-top:15px}
14
14
 
15
- .placeholder___pcdCn{border-radius:5px;width:100%;border:1px solid var(--color_primary);background-color:var(--color_primary50);padding:5px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;margin:10px 0}.placeholder___pcdCn i{padding:2px 5px;border-left:1px solid var(--color_primary)}.inPersonDisclaimer___z_DzO{padding:4px}.dropdown___mfbPG{margin-top:10px;border-radius:5px;width:100%;border:1px solid var(--color_primary);cursor:pointer}.dropdown___mfbPG div{padding:5px}.dropdown___mfbPG div:hover{background-color:var(--color_primary);color:#fff}
15
+ .placeholder___pcdCn{border-radius:5px;width:100%;border:1px solid var(--color_primary);background-color:var(--color_primary50);padding:5px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;height:36px}.placeholder___pcdCn i{padding:2px 5px;border-left:1px solid var(--color_primary)}.inPersonDisclaimer___z_DzO{padding:4px}.dropdown___mfbPG{margin-top:10px;border-radius:5px;width:100%;border:1px solid var(--color_primary);cursor:pointer}.dropdown___mfbPG div{padding:5px}.dropdown___mfbPG div:hover{background-color:var(--color_primary);color:#fff}.soldOut___rBLC0,.soldOut___rBLC0:hover,.soldOut___rBLC0:focus{color:inherit !important;background-color:#dedede !important;opacity:0.65;cursor:not-allowed}
16
16
 
17
17
  .button___MZBIY{background-color:var(--color_secondary_contrast) !important;color:#fff !important;border:none !important;font-weight:bold !important;font-size:1em !important;cursor:pointer !important}.button___MZBIY[disabled]{background-color:var(--color_secondary_contrast) !important}.button___MZBIY:hover{color:#fff !important}.button___MZBIY:active,.button___MZBIY:focus{color:#fff !important}.outerWrapper___XRnaq{padding:10px 0px 10px 10px;margin:10px}.outerWrapper___XRnaq .innerWrapper___LFsOH{display:flex;justify-content:space-between;align-items:center}.outerWrapper___XRnaq .innerWrapper___LFsOH span{font-size:14px}.outerWrapper___XRnaq .innerWrapper___LFsOH .registration___jdf6T{cursor:pointer;color:var(--color_primary);text-decoration:underline}.outerWrapper___XRnaq .innerWrapper___LFsOH .actions___Gsf0y{display:flex}.outerWrapper___XRnaq .innerWrapper___LFsOH .actions___Gsf0y button{margin-left:10px}
18
18
 
@@ -20,5 +20,5 @@
20
20
 
21
21
  .passwordlessWrapper___BRQ_s{height:400px;display:flex;justify-content:center;align-items:center;flex-direction:column}.passwordlessWrapper___BRQ_s .innerWrapper___nRLDi{text-align:center;font-weight:bold;height:100%;width:300px;display:flex;flex-direction:column;justify-content:center}.passwordlessWrapper___BRQ_s .innerWrapper___nRLDi .digits___Vu5iy{margin-top:15px;display:inline-block}.passwordlessWrapper___BRQ_s .innerWrapper___nRLDi .codeInput___LnTZe{margin-top:20px;display:flex;justify-content:center}.passwordlessWrapper___BRQ_s .innerWrapper___nRLDi .codeInput___LnTZe input{height:56px;width:56px;font-size:42px;background-color:var(--color_primary50);border:1px solid var(--color_primary);border-radius:5px;padding:5px;display:inline-flex;text-transform:uppercase;text-align:center;margin:0 5px}.passwordlessWrapper___BRQ_s .innerWrapper___nRLDi .error___wZflZ{margin-top:10px;color:#e5424d;font-size:14px}.passwordlessWrapper___BRQ_s .innerWrapper___nRLDi .verify___IBgMl{margin-top:20px}.passwordlessWrapper___BRQ_s .innerWrapper___nRLDi .verify___IBgMl .button___nBhtQ{padding:10px 30px;font-weight:normal;justify-content:center;margin:5px 0;border-radius:5px;cursor:pointer;background-color:var(--color_secondary_contrast);color:#FFFFFF;width:100%;font-size:1em}.passwordlessWrapper___BRQ_s .innerWrapper___nRLDi .verify___IBgMl .link___f6fDT{color:var(--color_primary);text-decoration:underline;cursor:pointer}.passwordlessWrapper___BRQ_s .resend___Nma1U{margin:auto 0 0 0;font-weight:normal;font-size:14px}.passwordlessWrapper___BRQ_s .resend___Nma1U span{color:var(--color_primary);text-decoration:underline;cursor:pointer}
22
22
 
23
- .wrapper___wkhQp{height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:15px 0;padding:15px 0;border-radius:5px;border:1px solid lightgray;text-align:center}.wrapper___wkhQp .circle___EPP1b{margin-bottom:30px;background-color:var(--color_primary50);border-radius:50px;border:1px solid var(--color_primary);padding:10px}.wrapper___wkhQp .circle___EPP1b i{font-size:36px;color:var(--color_primary)}.wrapper___wkhQp .complete___m8wZz{font-weight:bold;font-size:20px}.wrapper___wkhQp a{color:var(--color_primary);text-decoration:underline}
23
+ .ticketOwnedWrapper___nhkDY{margin:10px}.alert___c49oP{margin:0 !important}
24
24
 
package/dist/index.js CHANGED
@@ -81,8 +81,6 @@ const storage_namespaceObject = require("redux-persist/es/storage");
81
81
  var storage_default = /*#__PURE__*/__webpack_require__.n(storage_namespaceObject);
82
82
  ;// CONCATENATED MODULE: external "openstack-uicore-foundation/lib/utils/actions"
83
83
  const actions_namespaceObject = require("openstack-uicore-foundation/lib/utils/actions");
84
- ;// CONCATENATED MODULE: external "openstack-uicore-foundation/lib/utils/methods"
85
- const methods_namespaceObject = require("openstack-uicore-foundation/lib/utils/methods");
86
84
  ;// CONCATENATED MODULE: external "sweetalert2"
87
85
  const external_sweetalert2_namespaceObject = require("sweetalert2");
88
86
  var external_sweetalert2_default = /*#__PURE__*/__webpack_require__.n(external_sweetalert2_namespaceObject);
@@ -136,8 +134,8 @@ const loadSession = settings => dispatch => {
136
134
  /* TICKETS */
137
135
 
138
136
  /*********************************************************************************/
139
- // api/v1/summits/{id}/ticket-types
140
- // api/v1/summits/{id}/tax-types
137
+ // api/v1/summits/{id}/ticket-types
138
+ // api/v1/summits/{id}/tax-types
141
139
 
142
140
  const getTicketTypes = summitId => async (dispatch, getState, {
143
141
  apiBaseUrl,
@@ -150,7 +148,7 @@ const getTicketTypes = summitId => async (dispatch, getState, {
150
148
  access_token: accessToken
151
149
  };
152
150
  dispatch(startWidgetLoading());
153
- return (0,actions_namespaceObject.getRequest)(null, (0,actions_namespaceObject.createAction)(GET_TICKET_TYPES), `${apiBaseUrl}/api/v1/summits/${summitId}/ticket-types`, methods_namespaceObject.authErrorHandler)(params)(dispatch).then(() => {
151
+ return (0,actions_namespaceObject.getRequest)(null, (0,actions_namespaceObject.createAction)(GET_TICKET_TYPES), `${apiBaseUrl}/api/v1/summits/${summitId}/ticket-types`, actions_namespaceObject.authErrorHandler)(params)(dispatch).then(() => {
154
152
  dispatch(stopWidgetLoading());
155
153
  });
156
154
  } catch (e) {
@@ -167,14 +165,20 @@ const getTaxesTypes = summitId => async (dispatch, getState, {
167
165
  access_token: accessToken
168
166
  };
169
167
  dispatch(startWidgetLoading());
170
- return (0,actions_namespaceObject.getRequest)(null, (0,actions_namespaceObject.createAction)(GET_TAX_TYPES), `${apiBaseUrl}/api/v1/summits/${summitId}/tax-types`, methods_namespaceObject.authErrorHandler)(params)(dispatch).then(() => {
168
+ return (0,actions_namespaceObject.getRequest)(null, (0,actions_namespaceObject.createAction)(GET_TAX_TYPES), `${apiBaseUrl}/api/v1/summits/${summitId}/tax-types`, actions_namespaceObject.authErrorHandler)(params)(dispatch).then(() => {
171
169
  dispatch(stopWidgetLoading());
172
170
  });
173
171
  } catch (e) {
174
172
  return Promise.reject();
175
173
  }
176
174
  };
177
- const reserveTicket = (personalInformation, ticket) => async (dispatch, getState, {
175
+ const reserveTicket = ({
176
+ personalInformation,
177
+ ticket,
178
+ ticketQuantity
179
+ }, {
180
+ onError
181
+ }) => async (dispatch, getState, {
178
182
  apiBaseUrl,
179
183
  getAccessToken
180
184
  }) => {
@@ -194,24 +198,31 @@ const reserveTicket = (personalInformation, ticket) => async (dispatch, getState
194
198
  } = personalInformation;
195
199
  dispatch(startWidgetLoading());
196
200
  const access_token = await getAccessToken();
201
+ const tickets = [...Array(ticketQuantity)].map(() => ({
202
+ type_id: ticket.id,
203
+ promo_code: promoCode || null,
204
+ attendee_first_name: firstName,
205
+ attendee_last_name: lastName,
206
+ attendee_email: email
207
+ }));
197
208
  let params = {
198
209
  access_token,
199
210
  expand: 'tickets,tickets.owner,tickets.ticket_type,tickets.ticket_type.taxes'
200
211
  };
201
- let normalizedEntity = normalizeReservation({
212
+ const normalizedEntity = normalizeReservation({
202
213
  owner_email: email,
203
214
  owner_first_name: firstName,
204
215
  owner_last_name: lastName,
205
216
  owner_company: company,
206
- tickets: [{
207
- type_id: ticket.id,
208
- promo_code: promoCode || null,
209
- attendee_first_name: firstName,
210
- attendee_last_name: lastName,
211
- attendee_email: email
212
- }]
217
+ tickets
213
218
  });
214
- return (0,actions_namespaceObject.postRequest)((0,actions_namespaceObject.createAction)(CREATE_RESERVATION), (0,actions_namespaceObject.createAction)(CREATE_RESERVATION_SUCCESS), `${apiBaseUrl}/api/v1/summits/${summitId}/orders/reserve`, normalizedEntity, methods_namespaceObject.authErrorHandler // entity
219
+
220
+ const errorHandler = (err, res) => (dispatch, state) => {
221
+ if (res && res.statusCode === 412 && onError) return onError(err, res);
222
+ return (0,actions_namespaceObject.authErrorHandler)(err, res);
223
+ };
224
+
225
+ return (0,actions_namespaceObject.postRequest)((0,actions_namespaceObject.createAction)(CREATE_RESERVATION), (0,actions_namespaceObject.createAction)(CREATE_RESERVATION_SUCCESS), `${apiBaseUrl}/api/v1/summits/${summitId}/orders/reserve`, normalizedEntity, errorHandler // entity
215
226
  )(params)(dispatch).then(payload => {
216
227
  dispatch(stopWidgetLoading());
217
228
  payload.response.promo_code = promoCode || null;
@@ -249,7 +260,7 @@ const removeReservedTicket = () => async (dispatch, getState, {
249
260
  expand: 'tickets,tickets.owner'
250
261
  };
251
262
  dispatch(startWidgetLoading());
252
- return (0,actions_namespaceObject.deleteRequest)((0,actions_namespaceObject.createAction)(DELETE_RESERVATION), (0,actions_namespaceObject.createAction)(DELETE_RESERVATION_SUCCESS), `${apiBaseUrl}/api/v1/summits/${summitId}/orders/${hash}`, {}, methods_namespaceObject.authErrorHandler // entity
263
+ return (0,actions_namespaceObject.deleteRequest)((0,actions_namespaceObject.createAction)(DELETE_RESERVATION), (0,actions_namespaceObject.createAction)(DELETE_RESERVATION_SUCCESS), `${apiBaseUrl}/api/v1/summits/${summitId}/orders/${hash}`, {}, actions_namespaceObject.authErrorHandler // entity
253
264
  )(params)(dispatch).then(payload => {
254
265
  dispatch(stopWidgetLoading());
255
266
  dispatch(changeStep(1));
@@ -301,13 +312,13 @@ const payTicket = (token = null, stripe = null, zipCode = null) => async (dispat
301
312
  }
302
313
  }).then(result => {
303
314
  if (result.error) {
304
- // Reserve error.message in your UI.
315
+ // Reserve error.message in your UI.
305
316
  external_sweetalert2_default().fire(result.error.message, "Please retry purchase.", "warning");
306
317
  dispatch(changeStep(1));
307
318
  dispatch(removeReservedTicket());
308
319
  dispatch(stopWidgetLoading());
309
320
  } else {
310
- return (0,actions_namespaceObject.putRequest)(null, (0,actions_namespaceObject.createAction)(PAY_RESERVATION), `${apiBaseUrl}/api/v1/summits/${summitId}/orders/${reservation.hash}/checkout`, normalizedEntity, methods_namespaceObject.authErrorHandler // entity
321
+ return (0,actions_namespaceObject.putRequest)(null, (0,actions_namespaceObject.createAction)(PAY_RESERVATION), `${apiBaseUrl}/api/v1/summits/${summitId}/orders/${reservation.hash}/checkout`, normalizedEntity, actions_namespaceObject.authErrorHandler // entity
311
322
  )(params)(dispatch).then(payload => {
312
323
  dispatch(stopWidgetLoading());
313
324
  dispatch((0,actions_namespaceObject.createAction)(CLEAR_RESERVATION)({}));
@@ -326,7 +337,7 @@ const payTicket = (token = null, stripe = null, zipCode = null) => async (dispat
326
337
  });
327
338
  } else {
328
339
  // FREE TICKET
329
- return (0,actions_namespaceObject.putRequest)(null, (0,actions_namespaceObject.createAction)(PAY_RESERVATION), `${apiBaseUrl}/api/v1/summits/${summitId}/orders/${reservation.hash}/checkout`, normalizedEntity, methods_namespaceObject.authErrorHandler // entity
340
+ return (0,actions_namespaceObject.putRequest)(null, (0,actions_namespaceObject.createAction)(PAY_RESERVATION), `${apiBaseUrl}/api/v1/summits/${summitId}/orders/${reservation.hash}/checkout`, normalizedEntity, actions_namespaceObject.authErrorHandler // entity
330
341
  )(params)(dispatch).then(payload => {
331
342
  dispatch(stopWidgetLoading());
332
343
  dispatch((0,actions_namespaceObject.createAction)(CLEAR_RESERVATION)({}));
@@ -672,6 +683,7 @@ const stripe_js_namespaceObject = require("@stripe/stripe-js");
672
683
 
673
684
  const LoginComponent = ({
674
685
  options,
686
+ login,
675
687
  allowsNativeAuth,
676
688
  allowsOtpAuthlogin,
677
689
  getLoginCode,
@@ -713,7 +725,7 @@ const LoginComponent = ({
713
725
  "data-testid": "email-button"
714
726
  }, ">"), /*#__PURE__*/external_react_default().createElement("br", null)), emailError && /*#__PURE__*/external_react_default().createElement("span", {
715
727
  "data-testid": "email-error"
716
- }, "Please enter a valid email adress")), /*#__PURE__*/external_react_default().createElement("span", null, "Or you may signup or login with a social provider:"), options.map((o, index) => {
728
+ }, "Please enter a valid email address")), /*#__PURE__*/external_react_default().createElement("span", null, "Or you may signup or login with a social provider:"), options.map((o, index) => {
717
729
  return o.provider_param ? /*#__PURE__*/external_react_default().createElement("div", {
718
730
  className: `${index_module.button}`,
719
731
  key: `provider-${o.provider_param}`,
@@ -759,7 +771,7 @@ const LoginComponent = ({
759
771
  }, "Please enter a valid email adress")))));
760
772
  };
761
773
 
762
- /* harmony default export */ const components_login = (LoginComponent);
774
+ /* harmony default export */ const login = (LoginComponent);
763
775
  ;// CONCATENATED MODULE: external "prop-types"
764
776
  const external_prop_types_namespaceObject = require("prop-types");
765
777
  ;// CONCATENATED MODULE: external "@stripe/react-stripe-js"
@@ -977,9 +989,20 @@ const PaymentComponent = ({
977
989
  const components_namespaceObject = require("openstack-uicore-foundation/lib/components");
978
990
  ;// CONCATENATED MODULE: external "react-hook-form"
979
991
  const external_react_hook_form_namespaceObject = require("react-hook-form");
992
+ ;// CONCATENATED MODULE: external "react-tooltip"
993
+ const external_react_tooltip_namespaceObject = require("react-tooltip");
994
+ var external_react_tooltip_default = /*#__PURE__*/__webpack_require__.n(external_react_tooltip_namespaceObject);
995
+ ;// CONCATENATED MODULE: ./src/helpers/capitalizeFirstLetter.js
996
+ const capitalizeFirstLetter = string => string.charAt(0).toUpperCase() + string.slice(1);
997
+ ;// CONCATENATED MODULE: ./src/helpers/formatErrorMessage.js
998
+
999
+ const formatErrorMessage = string => {
1000
+ const errorMessage = capitalizeFirstLetter(string);
1001
+ return `${errorMessage}${errorMessage.endsWith('.') ? '' : '.'}`;
1002
+ };
980
1003
  ;// CONCATENATED MODULE: ./src/components/personal-information/index.module.scss
981
1004
  // extracted by mini-css-extract-plugin
982
- /* harmony default export */ const personal_information_index_module = ({"title":"title___ECoNz","form":"form___lDFka","readOnly":"readOnly___WRazF","companies":"companies___kmGFB"});
1005
+ /* harmony default export */ const personal_information_index_module = ({"title":"title___ECoNz","form":"form___lDFka","readOnly":"readOnly___WRazF","companies":"companies___kmGFB","moreInfo":"moreInfo___cQYdZ","moreInfoTooltip":"moreInfoTooltip___lslgT","formErrors":"formErrors___dQQMe"});
983
1006
  ;// CONCATENATED MODULE: ./src/components/personal-information/index.js
984
1007
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
985
1008
 
@@ -1009,13 +1032,16 @@ function personal_information_defineProperty(obj, key, value) { if (key in obj)
1009
1032
 
1010
1033
 
1011
1034
 
1035
+
1036
+
1012
1037
  const PersonalInfoComponent = ({
1013
1038
  isActive,
1014
1039
  changeForm,
1015
1040
  reservation,
1016
1041
  userProfile,
1017
1042
  summitId,
1018
- handleCompanyError
1043
+ handleCompanyError,
1044
+ formErrors
1019
1045
  }) => {
1020
1046
  var _errors$email, _errors$email2;
1021
1047
 
@@ -1082,8 +1108,7 @@ const PersonalInfoComponent = ({
1082
1108
  },
1083
1109
  to: {
1084
1110
  opacity: 1,
1085
- height: isActive ? height + 10 : 0,
1086
- marginBottom: isActive ? 5 : 0
1111
+ height: isActive ? height + 10 : 0
1087
1112
  }
1088
1113
  });
1089
1114
  return /*#__PURE__*/external_react_default().createElement("div", {
@@ -1155,7 +1180,22 @@ const PersonalInfoComponent = ({
1155
1180
  }, "This field is required")), /*#__PURE__*/external_react_default().createElement("div", null, /*#__PURE__*/external_react_default().createElement("input", _extends({
1156
1181
  type: "text",
1157
1182
  placeholder: "Promo Code"
1158
- }, register("promoCode"))))))))));
1183
+ }, register("promoCode"))))), /*#__PURE__*/external_react_default().createElement("a", {
1184
+ className: personal_information_index_module.moreInfo,
1185
+ "data-tip": true,
1186
+ "data-for": "promo-code-info"
1187
+ }, /*#__PURE__*/external_react_default().createElement("i", {
1188
+ className: "glyphicon glyphicon-info-sign",
1189
+ "aria-hidden": "true"
1190
+ }), ` `, "Have multiple promo codes?"), /*#__PURE__*/external_react_default().createElement((external_react_tooltip_default()), {
1191
+ id: "promo-code-info"
1192
+ }, /*#__PURE__*/external_react_default().createElement("div", {
1193
+ className: personal_information_index_module.moreInfoTooltip
1194
+ }, "In order to use multiple promo codes, you may place a new registration order with the new promo code after you complete this order. This promo code will be applied to all tickets in this order.")), formErrors.length > 0 && /*#__PURE__*/external_react_default().createElement("div", {
1195
+ className: `${personal_information_index_module.formErrors} alert alert-danger`
1196
+ }, formErrors.map((error, index) => /*#__PURE__*/external_react_default().createElement("div", {
1197
+ key: index
1198
+ }, formatErrorMessage(error)))))))));
1159
1199
  };
1160
1200
 
1161
1201
  /* harmony default export */ const personal_information = (PersonalInfoComponent);
@@ -1164,10 +1204,12 @@ const raw_html_namespaceObject = require("openstack-uicore-foundation/lib/compon
1164
1204
  var raw_html_default = /*#__PURE__*/__webpack_require__.n(raw_html_namespaceObject);
1165
1205
  ;// CONCATENATED MODULE: ./src/components/ticket-type/index.module.scss
1166
1206
  // extracted by mini-css-extract-plugin
1167
- /* harmony default export */ const ticket_type_index_module = ({"title":"title___DNZyl","summary":"summary___quWdZ","crossOut":"crossOut___QZ7dy","discount":"discount___sEK_Q","promo":"promo___F8lPO","dropdown":"dropdown____HWg0","inPersonDisclaimer":"inPersonDisclaimer___PXGTz"});
1207
+ /* harmony default export */ const ticket_type_index_module = ({"title":"title___DNZyl","summary":"summary___quWdZ","crossOut":"crossOut___QZ7dy","discount":"discount___sEK_Q","promo":"promo___F8lPO","form":"form___aoo7w","dropdown":"dropdown____HWg0","quantity":"quantity___SIEQZ","soldOut":"soldOut___Hatfr","moreInfo":"moreInfo___LmwOe","moreInfoTooltip":"moreInfoTooltip___nOBf1","inPersonDisclaimer":"inPersonDisclaimer___PXGTz"});
1208
+ ;// CONCATENATED MODULE: ./src/helpers/getTicketMaxQuantity.js
1209
+ const getTicketMaxQuantity = ticket => ticket ? Math.min((ticket.quantity_2_sell || Number.MAX_SAFE_INTEGER) - ticket.quantity_sold, ticket.max_quantity_per_order || Number.MAX_SAFE_INTEGER) : 0;
1168
1210
  ;// CONCATENATED MODULE: ./src/components/ticket-dropdown/index.module.scss
1169
1211
  // extracted by mini-css-extract-plugin
1170
- /* harmony default export */ const ticket_dropdown_index_module = ({"placeholder":"placeholder___pcdCn","inPersonDisclaimer":"inPersonDisclaimer___z_DzO","dropdown":"dropdown___mfbPG"});
1212
+ /* harmony default export */ const ticket_dropdown_index_module = ({"placeholder":"placeholder___pcdCn","inPersonDisclaimer":"inPersonDisclaimer___z_DzO","dropdown":"dropdown___mfbPG","soldOut":"soldOut___rBLC0"});
1171
1213
  ;// CONCATENATED MODULE: ./src/components/ticket-dropdown/index.js
1172
1214
  /**
1173
1215
  * Copyright 2020 OpenStack Foundation
@@ -1185,6 +1227,7 @@ var raw_html_default = /*#__PURE__*/__webpack_require__.n(raw_html_namespaceObje
1185
1227
 
1186
1228
 
1187
1229
 
1230
+
1188
1231
  const TicketDropdownComponent = ({
1189
1232
  selectedTicket,
1190
1233
  ticketTypes,
@@ -1217,16 +1260,52 @@ const TicketDropdownComponent = ({
1217
1260
  className: ticket_dropdown_index_module.dropdown,
1218
1261
  "data-testid": "ticket-list"
1219
1262
  }, ticketTypes.map(t => {
1220
- if (t.quantity_2_sell - t.quantity_sold > 0 && (t.sales_start_date === null && t.sales_end_date === null || now_utc >= t.sales_start_date && now_utc <= t.sales_end_date)) {
1263
+ const maxQuantity = getTicketMaxQuantity(t);
1264
+ const isTicketSoldOut = maxQuantity < 1;
1265
+
1266
+ if (t.sales_start_date === null && t.sales_end_date === null || now_utc >= t.sales_start_date && now_utc <= t.sales_end_date) {
1221
1267
  return /*#__PURE__*/external_react_default().createElement("div", {
1222
1268
  key: t.id,
1223
- onClick: () => ticketSelect(t)
1224
- }, `${t.name} - $${t.cost} ${t.currency}`);
1269
+ className: isTicketSoldOut ? ticket_dropdown_index_module.soldOut : '',
1270
+ onClick: () => {
1271
+ if (isTicketSoldOut) return;
1272
+ ticketSelect(t);
1273
+ }
1274
+ }, t.name, " -", ` `, !isTicketSoldOut && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, "$", t.cost, " ", t.currency), isTicketSoldOut && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, "Sold Out"));
1225
1275
  }
1226
1276
  })));
1227
1277
  };
1228
1278
 
1229
1279
  /* harmony default export */ const ticket_dropdown = (TicketDropdownComponent);
1280
+ ;// CONCATENATED MODULE: ./src/helpers/formatCurrency.js
1281
+ const _excluded = ["locale"];
1282
+
1283
+ function formatCurrency_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1284
+
1285
+ function formatCurrency_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? formatCurrency_ownKeys(Object(source), !0).forEach(function (key) { formatCurrency_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : formatCurrency_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1286
+
1287
+ function formatCurrency_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
1288
+
1289
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
1290
+
1291
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
1292
+
1293
+ const formatCurrency = (value, _ref) => {
1294
+ let {
1295
+ locale = 'en-US'
1296
+ } = _ref,
1297
+ options = _objectWithoutProperties(_ref, _excluded);
1298
+
1299
+ const defaultOptions = {
1300
+ currency: 'USD',
1301
+ minimumFractionDigits: 0,
1302
+ maximumFractionDigits: 0
1303
+ };
1304
+ const formatter = new Intl.NumberFormat(locale, formatCurrency_objectSpread(formatCurrency_objectSpread({
1305
+ style: 'currency'
1306
+ }, defaultOptions), options));
1307
+ return formatter.format(value);
1308
+ };
1230
1309
  ;// CONCATENATED MODULE: ./src/components/ticket-type/index.js
1231
1310
  function ticket_type_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1232
1311
 
@@ -1254,15 +1333,20 @@ function ticket_type_defineProperty(obj, key, value) { if (key in obj) { Object.
1254
1333
 
1255
1334
 
1256
1335
 
1336
+
1337
+
1338
+
1257
1339
  const TicketTypeComponent = ({
1258
1340
  ticketTypes,
1259
- taxTypes,
1260
1341
  isActive,
1261
1342
  changeForm,
1262
1343
  reservation,
1263
1344
  inPersonDisclaimer
1264
1345
  }) => {
1265
1346
  const [ticket, setTicket] = (0,external_react_namespaceObject.useState)(null);
1347
+ const [quantity, setQuantity] = (0,external_react_namespaceObject.useState)(1);
1348
+ const minQuantity = 1;
1349
+ const maxQuantity = getTicketMaxQuantity(ticket);
1266
1350
  const [ref, {
1267
1351
  height
1268
1352
  }] = (0,external_react_use_namespaceObject.useMeasure)();
@@ -1276,8 +1360,7 @@ const TicketTypeComponent = ({
1276
1360
  },
1277
1361
  to: {
1278
1362
  opacity: 1,
1279
- height: isActive ? height + 10 : 0,
1280
- marginBottom: isActive ? 5 : 0
1363
+ height: isActive ? height + 10 : 0
1281
1364
  }
1282
1365
  });
1283
1366
  (0,external_react_namespaceObject.useEffect)(() => {
@@ -1288,39 +1371,97 @@ const TicketTypeComponent = ({
1288
1371
  }
1289
1372
  }, []);
1290
1373
  (0,external_react_namespaceObject.useEffect)(() => {
1291
- changeForm(ticket);
1292
- }, [ticket]);
1374
+ changeForm({
1375
+ ticketType: ticket,
1376
+ ticketQuantity: quantity
1377
+ });
1378
+ }, [ticket, quantity]);
1293
1379
 
1294
- const ticketSelect = t => {
1380
+ const handleTicketChange = t => {
1295
1381
  setTicket(t);
1382
+ setQuantity(minQuantity);
1296
1383
  };
1297
1384
 
1385
+ const incrementQuantity = () => setQuantity(quantity + 1);
1386
+
1387
+ const decrementQuantity = () => setQuantity(quantity - 1);
1388
+
1298
1389
  return /*#__PURE__*/external_react_default().createElement("div", {
1299
1390
  className: `${ticket_type_index_module.outerWrapper} step-wrapper`
1300
1391
  }, /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("div", {
1301
- className: `${ticket_type_index_module.innerWrapper}`
1392
+ className: ticket_type_index_module.innerWrapper
1302
1393
  }, /*#__PURE__*/external_react_default().createElement("div", {
1303
1394
  className: ticket_type_index_module.title
1304
- }, /*#__PURE__*/external_react_default().createElement("span", null, "Ticket "), /*#__PURE__*/external_react_default().createElement("div", {
1395
+ }, /*#__PURE__*/external_react_default().createElement("span", null, "Ticket"), /*#__PURE__*/external_react_default().createElement("div", {
1305
1396
  className: ticket_type_index_module.summary
1306
- }, !isActive && (reservation === null || reservation === void 0 ? void 0 : reservation.discount_amount) > 0 ? /*#__PURE__*/external_react_default().createElement("span", null, ticket && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, ticket.name, " \xA0", /*#__PURE__*/external_react_default().createElement("span", {
1397
+ }, /*#__PURE__*/external_react_default().createElement("span", null, ticket && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, ticket.name, ` `, "(", quantity, "):", ` `, !isActive && (reservation === null || reservation === void 0 ? void 0 : reservation.discount_amount) > 0 && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("span", {
1307
1398
  className: ticket_type_index_module.crossOut
1308
- }, "$", ticket.cost, " \xA0"), /*#__PURE__*/external_react_default().createElement("span", {
1399
+ }, formatCurrency(ticket.cost * quantity, {
1400
+ currency: ticket.currency
1401
+ })), ` `, /*#__PURE__*/external_react_default().createElement("span", {
1309
1402
  className: ticket_type_index_module.discount
1310
- }, "$", reservation.raw_amount - reservation.discount_amount), ticket.currency), /*#__PURE__*/external_react_default().createElement("span", {
1403
+ }, formatCurrency(reservation.raw_amount - reservation.discount_amount, {
1404
+ currency: ticket.currency
1405
+ })), ` `), !(reservation !== null && reservation !== void 0 && reservation.discount_amount) && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, formatCurrency(ticket.cost * quantity, {
1406
+ currency: ticket.currency
1407
+ }), ` `), ticket.currency, !isActive && (reservation === null || reservation === void 0 ? void 0 : reservation.discount_amount) > 0 && /*#__PURE__*/external_react_default().createElement("span", {
1311
1408
  className: ticket_type_index_module.promo
1312
- }, "Promo code applied")) : /*#__PURE__*/external_react_default().createElement("span", null, ticket ? `${ticket.name}: $${ticket.cost} ${ticket.currency}` : 'No ticket selected'), !isActive && (reservation === null || reservation === void 0 ? void 0 : reservation.taxes_amount) > 0 && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("br", null), /*#__PURE__*/external_react_default().createElement("span", null, "Taxes: $", reservation === null || reservation === void 0 ? void 0 : reservation.taxes_amount, " ", ticket === null || ticket === void 0 ? void 0 : ticket.currency)))), /*#__PURE__*/external_react_default().createElement(external_react_spring_namespaceObject.animated.div, {
1409
+ }, "Promo code applied"), !isActive && (reservation === null || reservation === void 0 ? void 0 : reservation.taxes_amount) > 0 && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("br", null), "Taxes: $", reservation === null || reservation === void 0 ? void 0 : reservation.taxes_amount, " ", ticket === null || ticket === void 0 ? void 0 : ticket.currency)), !ticket && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, "No ticket selected")))), /*#__PURE__*/external_react_default().createElement(external_react_spring_namespaceObject.animated.div, {
1313
1410
  style: ticket_type_objectSpread({
1314
1411
  overflow: 'hidden'
1315
1412
  }, toggleAnimation)
1316
1413
  }, /*#__PURE__*/external_react_default().createElement("div", {
1317
- ref: ref,
1414
+ ref: ref
1415
+ }, /*#__PURE__*/external_react_default().createElement("div", {
1416
+ className: ticket_type_index_module.form
1417
+ }, /*#__PURE__*/external_react_default().createElement("div", {
1318
1418
  className: ticket_type_index_module.dropdown
1319
1419
  }, /*#__PURE__*/external_react_default().createElement(ticket_dropdown, {
1320
1420
  selectedTicket: ticket,
1321
1421
  ticketTypes: ticketTypes,
1322
- onTicketSelect: t => ticketSelect(t)
1323
- }))), inPersonDisclaimer && ticket && isInPersonTicketType(ticket) && /*#__PURE__*/external_react_default().createElement("div", {
1422
+ onTicketSelect: handleTicketChange
1423
+ })), ticket && /*#__PURE__*/external_react_default().createElement("div", {
1424
+ className: ticket_type_index_module.quantity
1425
+ }, /*#__PURE__*/external_react_default().createElement("div", {
1426
+ className: "input-group"
1427
+ }, /*#__PURE__*/external_react_default().createElement("span", {
1428
+ className: "input-group-btn"
1429
+ }, /*#__PURE__*/external_react_default().createElement("button", {
1430
+ "aria-label": "remove a ticket",
1431
+ className: "btn btn-default",
1432
+ onClick: decrementQuantity,
1433
+ disabled: maxQuantity === 0 || quantity === minQuantity
1434
+ }, /*#__PURE__*/external_react_default().createElement("i", {
1435
+ className: "fa fa-minus"
1436
+ }))), /*#__PURE__*/external_react_default().createElement("input", {
1437
+ className: "form-control",
1438
+ "aria-label": "ticket quanity",
1439
+ name: "ticket_quantity",
1440
+ type: "text",
1441
+ value: quantity,
1442
+ readOnly: true,
1443
+ disabled: maxQuantity === 0
1444
+ }), /*#__PURE__*/external_react_default().createElement("span", {
1445
+ className: "input-group-btn"
1446
+ }, /*#__PURE__*/external_react_default().createElement("button", {
1447
+ "aria-label": "add a ticket",
1448
+ className: "btn btn-default",
1449
+ onClick: incrementQuantity,
1450
+ disabled: maxQuantity === 0 || quantity >= maxQuantity
1451
+ }, /*#__PURE__*/external_react_default().createElement("i", {
1452
+ className: "glyphicon glyphicon-plus"
1453
+ })))))), /*#__PURE__*/external_react_default().createElement("a", {
1454
+ className: ticket_type_index_module.moreInfo,
1455
+ "data-tip": true,
1456
+ "data-for": "ticket-quantity-info"
1457
+ }, /*#__PURE__*/external_react_default().createElement("i", {
1458
+ className: "glyphicon glyphicon-info-sign",
1459
+ "aria-hidden": "true"
1460
+ }), ` `, "Need multiple ticket types?"), /*#__PURE__*/external_react_default().createElement((external_react_tooltip_default()), {
1461
+ id: "ticket-quantity-info"
1462
+ }, /*#__PURE__*/external_react_default().createElement("div", {
1463
+ className: ticket_type_index_module.moreInfoTooltip
1464
+ }, "In order to select multiple tickets of a different type, you may place a new registration order after you complete this order.")))), inPersonDisclaimer && ticket && isInPersonTicketType(ticket) && /*#__PURE__*/external_react_default().createElement("div", {
1324
1465
  className: ticket_type_index_module.inPersonDisclaimer
1325
1466
  }, /*#__PURE__*/external_react_default().createElement((raw_html_default()), null, inPersonDisclaimer)))));
1326
1467
  };
@@ -1349,24 +1490,21 @@ const TicketTypeComponent = ({
1349
1490
  const ButtonBarComponent = ({
1350
1491
  step,
1351
1492
  changeStep,
1352
- registrationForm,
1493
+ formValues,
1353
1494
  removeReservedTicket,
1354
- inPersonDisclaimer,
1355
- goToRegistration
1495
+ inPersonDisclaimer
1356
1496
  }) => {
1357
- var _registrationForm$tic, _registrationForm$tic2;
1358
-
1359
- const nextButtonText = inPersonDisclaimer && registrationForm !== null && registrationForm !== void 0 && registrationForm.ticketType && isInPersonTicketType(registrationForm.ticketType) ? 'Accept' : 'Next';
1497
+ const {
1498
+ ticketType
1499
+ } = formValues || {};
1500
+ const nextButtonText = inPersonDisclaimer && ticketType && isInPersonTicketType(ticketType) ? 'Accept' : 'Next';
1360
1501
  return /*#__PURE__*/external_react_default().createElement("div", {
1361
1502
  className: `${button_bar_index_module.outerWrapper}`
1362
1503
  }, step !== 3 && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("div", {
1363
1504
  className: `${button_bar_index_module.innerWrapper}`
1364
1505
  }, /*#__PURE__*/external_react_default().createElement("div", {
1365
1506
  className: button_bar_index_module.required
1366
- }, step !== 0 && /*#__PURE__*/external_react_default().createElement("span", null, "* Required fields ", /*#__PURE__*/external_react_default().createElement("br", null), " "), /*#__PURE__*/external_react_default().createElement("span", {
1367
- className: button_bar_index_module.registration,
1368
- onClick: () => goToRegistration()
1369
- }, "Need multiple tickets?")), /*#__PURE__*/external_react_default().createElement("div", {
1507
+ }, step !== 0 && /*#__PURE__*/external_react_default().createElement("span", null, "* Required fields ", /*#__PURE__*/external_react_default().createElement("br", null), " ")), /*#__PURE__*/external_react_default().createElement("div", {
1370
1508
  className: button_bar_index_module.actions
1371
1509
  }, step !== 0 && step !== 2 && /*#__PURE__*/external_react_default().createElement("button", {
1372
1510
  className: `${button_bar_index_module.button} button`,
@@ -1375,14 +1513,14 @@ const ButtonBarComponent = ({
1375
1513
  className: `${button_bar_index_module.button} button`,
1376
1514
  onClick: () => removeReservedTicket()
1377
1515
  }, "< Back"), step === 0 && /*#__PURE__*/external_react_default().createElement("button", {
1378
- disabled: !registrationForm.ticketType,
1516
+ disabled: !ticketType,
1379
1517
  className: `${button_bar_index_module.button} button`,
1380
1518
  onClick: () => changeStep(step + 1)
1381
- }, nextButtonText), step === 1 && ((_registrationForm$tic = registrationForm.ticketType) === null || _registrationForm$tic === void 0 ? void 0 : _registrationForm$tic.cost) === 0 && /*#__PURE__*/external_react_default().createElement("button", {
1519
+ }, nextButtonText), step === 1 && (ticketType === null || ticketType === void 0 ? void 0 : ticketType.cost) === 0 && /*#__PURE__*/external_react_default().createElement("button", {
1382
1520
  className: `${button_bar_index_module.button} button`,
1383
1521
  type: "submit",
1384
1522
  form: "personal-info-form"
1385
- }, "Get Ticket"), step === 1 && ((_registrationForm$tic2 = registrationForm.ticketType) === null || _registrationForm$tic2 === void 0 ? void 0 : _registrationForm$tic2.cost) > 0 && /*#__PURE__*/external_react_default().createElement("button", {
1523
+ }, "Get Ticket"), step === 1 && (ticketType === null || ticketType === void 0 ? void 0 : ticketType.cost) > 0 && /*#__PURE__*/external_react_default().createElement("button", {
1386
1524
  className: `${button_bar_index_module.button} button`,
1387
1525
  type: "submit",
1388
1526
  form: "personal-info-form"
@@ -1397,6 +1535,8 @@ const ButtonBarComponent = ({
1397
1535
  ;// CONCATENATED MODULE: ./src/components/purchase-complete/index.module.scss
1398
1536
  // extracted by mini-css-extract-plugin
1399
1537
  /* harmony default export */ const purchase_complete_index_module = ({"button":"button___XMN8a","wrapper":"wrapper___Jd5Xg","circle":"circle___lcN86","complete":"complete___HAHzl","actions":"actions___jJdPX","footer":"footer___FL9TW"});
1538
+ ;// CONCATENATED MODULE: external "openstack-uicore-foundation/lib/utils/methods"
1539
+ const methods_namespaceObject = require("openstack-uicore-foundation/lib/utils/methods");
1400
1540
  ;// CONCATENATED MODULE: ./src/components/purchase-complete/index.js
1401
1541
  /**
1402
1542
  * Copyright 2020 OpenStack Foundation
@@ -1563,7 +1703,7 @@ const PasswordlessLoginComponent = ({
1563
1703
  /* harmony default export */ const login_passwordless = (PasswordlessLoginComponent);
1564
1704
  ;// CONCATENATED MODULE: ./src/components/ticket-owned/index.module.scss
1565
1705
  // extracted by mini-css-extract-plugin
1566
- /* harmony default export */ const ticket_owned_index_module = ({"wrapper":"wrapper___wkhQp","circle":"circle___EPP1b","complete":"complete___m8wZz"});
1706
+ /* harmony default export */ const ticket_owned_index_module = ({"ticketOwnedWrapper":"ticketOwnedWrapper___nhkDY","alert":"alert___c49oP"});
1567
1707
  ;// CONCATENATED MODULE: ./src/components/ticket-owned/index.js
1568
1708
  /**
1569
1709
  * Copyright 2020 OpenStack Foundation
@@ -1581,26 +1721,25 @@ const PasswordlessLoginComponent = ({
1581
1721
 
1582
1722
 
1583
1723
  const TicketOwnedComponent = ({
1584
- goToRegistration
1724
+ ownedTickets,
1725
+ ticketTypes
1585
1726
  }) => {
1727
+ const ownedTicketsString = (0,external_react_namespaceObject.useMemo)(() => ownedTickets.reduce((acc, ownedTicket) => {
1728
+ const ticketType = ticketTypes.find(type => type.id === ownedTicket.type_id);
1729
+ if (!ticketType) return acc;
1730
+ return `${acc}${acc ? ', ' : ''}${ownedTicket.qty} ${ticketType.name}${!ticketType.name.toLowerCase().endsWith('ticket') ? ' ticket' : ''}${ownedTicket.qty > 1 ? 's' : ''}`;
1731
+ }, ''), [ownedTickets, ticketTypes]);
1586
1732
  return /*#__PURE__*/external_react_default().createElement("div", {
1587
- className: `${ticket_owned_index_module.wrapper}`
1588
- }, /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("div", {
1589
- className: ticket_owned_index_module.circle
1590
- }, /*#__PURE__*/external_react_default().createElement("i", {
1591
- className: "fa fa-ticket"
1592
- })), /*#__PURE__*/external_react_default().createElement("span", {
1593
- className: ticket_owned_index_module.complete
1594
- }, "Our records show you have a ticket(s) to this event."), /*#__PURE__*/external_react_default().createElement("span", {
1595
- className: ticket_owned_index_module.complete
1596
- }, "If you would like to purchase more, ", /*#__PURE__*/external_react_default().createElement("a", {
1597
- onClick: () => goToRegistration()
1598
- }, "click here"), ".")));
1733
+ className: ticket_owned_index_module.ticketOwnedWrapper
1734
+ }, /*#__PURE__*/external_react_default().createElement("div", {
1735
+ className: `${ticket_owned_index_module.alert} alert alert-warning`,
1736
+ role: "alert"
1737
+ }, "You have already ordered ", ownedTicketsString, ". If you would like to order more tickets, please do so below."));
1599
1738
  };
1600
1739
 
1601
1740
  /* harmony default export */ const ticket_owned = (TicketOwnedComponent);
1602
1741
  ;// CONCATENATED MODULE: ./src/components/registration-lite.js
1603
- const _excluded = ["loadSession", "setMarketingSettings", "changeStep", "removeReservedTicket", "reserveTicket", "payTicket", "onPurchaseComplete", "getTicketTypes", "getTaxesTypes", "getLoginCode", "passwordlessLogin", "goToLogin", "loginOptions", "allowsNativeAuth", "allowsOtpAuth", "reservation", "checkout", "ticketTypes", "taxTypes", "step", "passwordlessCodeSent", "passwordlessEmail", "passwordlessCode", "getPasswordlessCode", "passwordlessCodeError", "loginWithCode", "goToExtraQuestions", "goToEvent", "goToRegistration", "profileData", "summitData", "supportEmail", "ticketOwned", "widgetLoading", "loading", "inPersonDisclaimer", "userProfile", "handleCompanyError"];
1742
+ const registration_lite_excluded = ["loadSession", "setMarketingSettings", "changeStep", "removeReservedTicket", "reserveTicket", "payTicket", "onPurchaseComplete", "getTicketTypes", "getTaxesTypes", "getLoginCode", "passwordlessLogin", "goToLogin", "loginOptions", "allowsNativeAuth", "allowsOtpAuth", "reservation", "checkout", "ticketTypes", "taxTypes", "step", "passwordlessCodeSent", "passwordlessEmail", "passwordlessCode", "getPasswordlessCode", "passwordlessCodeError", "loginWithCode", "goToExtraQuestions", "goToEvent", "goToRegistration", "profileData", "summitData", "supportEmail", "ticketOwned", "ownedTickets", "widgetLoading", "loading", "inPersonDisclaimer", "userProfile", "handleCompanyError"];
1604
1743
 
1605
1744
  function registration_lite_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1606
1745
 
@@ -1608,9 +1747,9 @@ function registration_lite_objectSpread(target) { for (var i = 1; i < arguments.
1608
1747
 
1609
1748
  function registration_lite_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
1610
1749
 
1611
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
1750
+ function registration_lite_objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = registration_lite_objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
1612
1751
 
1613
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
1752
+ function registration_lite_objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
1614
1753
 
1615
1754
  /**
1616
1755
  * Copyright 2020 OpenStack Foundation
@@ -1643,7 +1782,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
1643
1782
 
1644
1783
 
1645
1784
  const RegistrationLite = _ref => {
1646
- var _registrationForm$tic, _registrationForm$tic2;
1785
+ var _formValues$ticketTyp, _formValues$ticketTyp2;
1647
1786
 
1648
1787
  let {
1649
1788
  loadSession,
@@ -1679,19 +1818,37 @@ const RegistrationLite = _ref => {
1679
1818
  summitData,
1680
1819
  supportEmail,
1681
1820
  ticketOwned,
1821
+ ownedTickets,
1682
1822
  widgetLoading,
1683
1823
  loading,
1684
1824
  inPersonDisclaimer,
1685
1825
  userProfile,
1686
1826
  handleCompanyError
1687
1827
  } = _ref,
1688
- rest = _objectWithoutProperties(_ref, _excluded);
1828
+ rest = registration_lite_objectWithoutProperties(_ref, registration_lite_excluded);
1689
1829
 
1690
1830
  const [registrationForm, setRegistrationForm] = (0,external_react_namespaceObject.useState)({
1691
- ticketType: null,
1692
- personalInformation: null,
1693
- paymentInformation: null
1831
+ values: {
1832
+ ticketType: null,
1833
+ ticketQuantity: 1,
1834
+ personalInformation: null,
1835
+ paymentInformation: null
1836
+ },
1837
+ errors: []
1694
1838
  });
1839
+ const {
1840
+ values: formValues,
1841
+ errors: formErrors
1842
+ } = registrationForm;
1843
+
1844
+ const setFormValues = values => setRegistrationForm(registration_lite_objectSpread(registration_lite_objectSpread({}, registrationForm), {}, {
1845
+ values
1846
+ }));
1847
+
1848
+ const setFormErrors = errors => setRegistrationForm(registration_lite_objectSpread(registration_lite_objectSpread({}, registrationForm), {}, {
1849
+ errors
1850
+ }));
1851
+
1695
1852
  let publicKey = null;
1696
1853
 
1697
1854
  for (let profile of summitData.payment_profiles) {
@@ -1702,11 +1859,6 @@ const RegistrationLite = _ref => {
1702
1859
  }
1703
1860
 
1704
1861
  const stripePromise = (0,external_react_namespaceObject.useMemo)(() => (0,stripe_js_namespaceObject.loadStripe)(publicKey), [publicKey]);
1705
-
1706
- const ticketReservation = () => {
1707
- reserveTicket(registrationForm.personalInformation, registrationForm.ticketType);
1708
- };
1709
-
1710
1862
  (0,external_react_namespaceObject.useEffect)(() => {
1711
1863
  loadSession(registration_lite_objectSpread(registration_lite_objectSpread({}, rest), {}, {
1712
1864
  summitData,
@@ -1723,14 +1875,23 @@ const RegistrationLite = _ref => {
1723
1875
  }
1724
1876
  }, [summitData, profileData]);
1725
1877
  (0,external_react_namespaceObject.useEffect)(() => {
1726
- if (step === 1 && registrationForm.ticketType && registrationForm.personalInformation) {
1727
- ticketReservation();
1878
+ if (step === 1 && formValues !== null && formValues !== void 0 && formValues.ticketType && formValues !== null && formValues !== void 0 && formValues.personalInformation) {
1879
+ reserveTicket({
1880
+ personalInformation: formValues === null || formValues === void 0 ? void 0 : formValues.personalInformation,
1881
+ ticket: formValues === null || formValues === void 0 ? void 0 : formValues.ticketType,
1882
+ ticketQuantity: formValues === null || formValues === void 0 ? void 0 : formValues.ticketQuantity
1883
+ }, {
1884
+ onError: (err, res) => setFormErrors(res.body.errors)
1885
+ });
1728
1886
  }
1729
1887
 
1730
- if (step > 0 && !registrationForm.ticketType) {
1888
+ if (step > 0 && !(formValues !== null && formValues !== void 0 && formValues.ticketType)) {
1731
1889
  changeStep(0);
1732
1890
  }
1733
- }, [registrationForm]);
1891
+ }, [formValues]);
1892
+ (0,external_react_namespaceObject.useEffect)(() => {
1893
+ setFormErrors([]);
1894
+ }, [step]);
1734
1895
  const [ref, {
1735
1896
  height
1736
1897
  }] = (0,external_react_use_namespaceObject.useMeasure)();
@@ -1739,10 +1900,18 @@ const RegistrationLite = _ref => {
1739
1900
  bounce: 0
1740
1901
  }, external_react_spring_namespaceObject.config.stiff),
1741
1902
  to: {
1742
- opacity: ((_registrationForm$tic = registrationForm.ticketType) === null || _registrationForm$tic === void 0 ? void 0 : _registrationForm$tic.cost) === 0 ? 0 : 1,
1743
- height: ((_registrationForm$tic2 = registrationForm.ticketType) === null || _registrationForm$tic2 === void 0 ? void 0 : _registrationForm$tic2.cost) === 0 ? 0 : height
1903
+ opacity: (formValues === null || formValues === void 0 ? void 0 : (_formValues$ticketTyp = formValues.ticketType) === null || _formValues$ticketTyp === void 0 ? void 0 : _formValues$ticketTyp.cost) === 0 ? 0 : 1,
1904
+ height: (formValues === null || formValues === void 0 ? void 0 : (_formValues$ticketTyp2 = formValues.ticketType) === null || _formValues$ticketTyp2 === void 0 ? void 0 : _formValues$ticketTyp2.cost) === 0 ? 0 : height
1744
1905
  }
1745
1906
  });
1907
+
1908
+ const handleCloseClick = () => {
1909
+ // Reset the step when closed to avoid unexpected behavior from `useEffect`s w/in other steps.
1910
+ // (i.e., recalling `onPurchaseComplete` after a user completes one order, closes the window, and then reopens the registration widget)
1911
+ changeStep(0);
1912
+ rest.closeWidget();
1913
+ };
1914
+
1746
1915
  return /*#__PURE__*/external_react_default().createElement("div", {
1747
1916
  id: "modal",
1748
1917
  className: "modal is-active"
@@ -1757,21 +1926,17 @@ const RegistrationLite = _ref => {
1757
1926
  size: 80
1758
1927
  }), /*#__PURE__*/external_react_default().createElement("div", {
1759
1928
  className: `${general_module.outerWrapper} summit-registration-lite`
1760
- }, /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("div", {
1761
- className: `${general_module.innerWrapper}`
1929
+ }, /*#__PURE__*/external_react_default().createElement("div", {
1930
+ className: general_module.innerWrapper
1762
1931
  }, /*#__PURE__*/external_react_default().createElement("div", {
1763
1932
  className: general_module.title
1764
1933
  }, /*#__PURE__*/external_react_default().createElement("span", null, summitData.name), /*#__PURE__*/external_react_default().createElement("i", {
1765
1934
  className: "fa fa-close",
1766
1935
  "aria-label": "close",
1767
- onClick: () => rest.closeWidget()
1768
- })), ticketOwned && /*#__PURE__*/external_react_default().createElement("div", {
1769
- className: general_module.stepsWrapper
1770
- }, /*#__PURE__*/external_react_default().createElement(ticket_owned, {
1771
- goToRegistration: goToRegistration
1772
- })), !ticketOwned && /*#__PURE__*/external_react_default().createElement("div", {
1936
+ onClick: handleCloseClick
1937
+ })), /*#__PURE__*/external_react_default().createElement("div", {
1773
1938
  className: general_module.stepsWrapper
1774
- }, !profileData && !passwordlessCodeSent && /*#__PURE__*/external_react_default().createElement(components_login, {
1939
+ }, !profileData && !passwordlessCodeSent && /*#__PURE__*/external_react_default().createElement(login, {
1775
1940
  options: loginOptions,
1776
1941
  allowsNativeAuth: allowsNativeAuth,
1777
1942
  allowsOtpAuth: allowsOtpAuth,
@@ -1787,24 +1952,26 @@ const RegistrationLite = _ref => {
1787
1952
  goToLogin: goToLogin,
1788
1953
  getLoginCode: getLoginCode,
1789
1954
  getPasswordlessCode: getPasswordlessCode
1790
- }), profileData && step !== 3 && ticketTypes.length > 0 && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement(ticket_type, {
1955
+ }), profileData && step !== 3 && ticketTypes.length > 0 && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, ticketOwned && /*#__PURE__*/external_react_default().createElement(ticket_owned, {
1956
+ ownedTickets: ownedTickets,
1957
+ ticketTypes: ticketTypes
1958
+ }), /*#__PURE__*/external_react_default().createElement(ticket_type, {
1791
1959
  ticketTypes: ticketTypes,
1792
1960
  inPersonDisclaimer: inPersonDisclaimer,
1793
1961
  taxTypes: taxTypes,
1794
1962
  reservation: reservation,
1795
1963
  isActive: step === 0,
1796
- changeForm: t => setRegistrationForm(registration_lite_objectSpread(registration_lite_objectSpread({}, registrationForm), {}, {
1797
- ticketType: t
1798
- }))
1964
+ changeForm: ticketForm => setFormValues(registration_lite_objectSpread(registration_lite_objectSpread({}, formValues), ticketForm))
1799
1965
  }), /*#__PURE__*/external_react_default().createElement(personal_information, {
1800
1966
  isActive: step === 1,
1801
1967
  reservation: reservation,
1802
1968
  userProfile: profileData,
1803
1969
  summitId: summitData.id,
1804
- changeForm: personalForm => setRegistrationForm(registration_lite_objectSpread(registration_lite_objectSpread({}, registrationForm), {}, {
1805
- personalInformation: personalForm
1970
+ changeForm: personalInformation => setFormValues(registration_lite_objectSpread(registration_lite_objectSpread({}, formValues), {}, {
1971
+ personalInformation
1806
1972
  })),
1807
- handleCompanyError: handleCompanyError
1973
+ handleCompanyError: handleCompanyError,
1974
+ formErrors: formErrors
1808
1975
  }), /*#__PURE__*/external_react_default().createElement(external_react_spring_namespaceObject.animated.div, {
1809
1976
  style: registration_lite_objectSpread({}, toggleAnimation)
1810
1977
  }, /*#__PURE__*/external_react_default().createElement("div", {
@@ -1822,14 +1989,13 @@ const RegistrationLite = _ref => {
1822
1989
  supportEmail: supportEmail,
1823
1990
  goToEvent: goToEvent,
1824
1991
  goToExtraQuestions: goToExtraQuestions
1825
- })), profileData && !ticketOwned && step !== 3 && /*#__PURE__*/external_react_default().createElement(button_bar, {
1992
+ })), profileData && step !== 3 && /*#__PURE__*/external_react_default().createElement(button_bar, {
1826
1993
  step: step,
1827
1994
  inPersonDisclaimer: inPersonDisclaimer,
1828
- registrationForm: registrationForm,
1829
- goToRegistration: goToRegistration,
1995
+ formValues: formValues,
1830
1996
  removeReservedTicket: removeReservedTicket,
1831
1997
  changeStep: changeStep
1832
- }))))));
1998
+ })))));
1833
1999
  };
1834
2000
 
1835
2001
  const registration_lite_mapStateToProps = ({
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "summit-registration-lite",
3
- "version": "2.0.1",
3
+ "version": "2.0.4",
4
4
  "description": "Summit Registration Lite",
5
5
  "main": "index.js",
6
6
  "scripts": {
7
+ "clean": "find . -name \"dist\" -type d -prune -exec rm -rf '{}' + & find . -name \"node_modules\" -type d -prune -exec rm -rf '{}' + && yarn",
7
8
  "build-dev": "./node_modules/.bin/webpack --config webpack.dev.js",
8
9
  "build": "./node_modules/.bin/webpack --config webpack.prod.js",
9
10
  "serve": "webpack-dev-server --open --port=8888 --https --config webpack.dev.js",