summit-registration-lite 2.0.19 → 2.0.22

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/dist/index.js DELETED
@@ -1,2720 +0,0 @@
1
- (function webpackUniversalModuleDefinition(root, factory) {
2
- if(typeof exports === 'object' && typeof module === 'object')
3
- module.exports = factory();
4
- else if(typeof define === 'function' && define.amd)
5
- define("summit-registration-lite", [], factory);
6
- else if(typeof exports === 'object')
7
- exports["summit-registration-lite"] = factory();
8
- else
9
- root["summit-registration-lite"] = factory();
10
- })(this, function() {
11
- return /******/ (() => { // webpackBootstrap
12
- /******/ "use strict";
13
- /******/ // The require scope
14
- /******/ var __webpack_require__ = {};
15
- /******/
16
- /************************************************************************/
17
- /******/ /* webpack/runtime/compat get default export */
18
- /******/ (() => {
19
- /******/ // getDefaultExport function for compatibility with non-harmony modules
20
- /******/ __webpack_require__.n = (module) => {
21
- /******/ var getter = module && module.__esModule ?
22
- /******/ () => (module['default']) :
23
- /******/ () => (module);
24
- /******/ __webpack_require__.d(getter, { a: getter });
25
- /******/ return getter;
26
- /******/ };
27
- /******/ })();
28
- /******/
29
- /******/ /* webpack/runtime/define property getters */
30
- /******/ (() => {
31
- /******/ // define getter functions for harmony exports
32
- /******/ __webpack_require__.d = (exports, definition) => {
33
- /******/ for(var key in definition) {
34
- /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
35
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
36
- /******/ }
37
- /******/ }
38
- /******/ };
39
- /******/ })();
40
- /******/
41
- /******/ /* webpack/runtime/hasOwnProperty shorthand */
42
- /******/ (() => {
43
- /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
44
- /******/ })();
45
- /******/
46
- /******/ /* webpack/runtime/make namespace object */
47
- /******/ (() => {
48
- /******/ // define __esModule on exports
49
- /******/ __webpack_require__.r = (exports) => {
50
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
51
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
52
- /******/ }
53
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
54
- /******/ };
55
- /******/ })();
56
- /******/
57
- /************************************************************************/
58
- var __webpack_exports__ = {};
59
- // ESM COMPAT FLAG
60
- __webpack_require__.r(__webpack_exports__);
61
-
62
- // EXPORTS
63
- __webpack_require__.d(__webpack_exports__, {
64
- "default": () => (/* binding */ summit_registration_lite)
65
- });
66
-
67
- ;// CONCATENATED MODULE: external "react"
68
- const external_react_namespaceObject = require("react");
69
- var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_namespaceObject);
70
- ;// CONCATENATED MODULE: external "react-redux"
71
- const external_react_redux_namespaceObject = require("react-redux");
72
- ;// CONCATENATED MODULE: external "redux"
73
- const external_redux_namespaceObject = require("redux");
74
- ;// CONCATENATED MODULE: external "redux-thunk"
75
- const external_redux_thunk_namespaceObject = require("redux-thunk");
76
- var external_redux_thunk_default = /*#__PURE__*/__webpack_require__.n(external_redux_thunk_namespaceObject);
77
- ;// CONCATENATED MODULE: external "redux-persist"
78
- const external_redux_persist_namespaceObject = require("redux-persist");
79
- ;// CONCATENATED MODULE: external "redux-persist/es/storage"
80
- const storage_namespaceObject = require("redux-persist/es/storage");
81
- var storage_default = /*#__PURE__*/__webpack_require__.n(storage_namespaceObject);
82
- ;// CONCATENATED MODULE: external "openstack-uicore-foundation/lib/utils/actions"
83
- const actions_namespaceObject = require("openstack-uicore-foundation/lib/utils/actions");
84
- ;// CONCATENATED MODULE: external "sweetalert2"
85
- const external_sweetalert2_namespaceObject = require("sweetalert2");
86
- var external_sweetalert2_default = /*#__PURE__*/__webpack_require__.n(external_sweetalert2_namespaceObject);
87
- ;// CONCATENATED MODULE: ./src/utils/payment-providers/lawpay-provider.js
88
- function _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; }
89
-
90
-
91
-
92
-
93
-
94
- class LawPayProvider {
95
- constructor({
96
- reservation,
97
- summitId,
98
- userProfile,
99
- access_token,
100
- apiBaseUrl,
101
- dispatch: _dispatch
102
- }) {
103
- _defineProperty(this, "payTicket", ({
104
- token
105
- }) => async dispatch => {
106
- var _this$userProfile, _this$userProfile2, _this$userProfile3, _this$userProfile4;
107
-
108
- // Pay using affinity lawpay
109
- const errorHandler = (err, res) => (dispatch, state) => {
110
- let code = err.status;
111
-
112
- switch (code) {
113
- case 404:
114
- {
115
- let msg = res.body.message;
116
- external_sweetalert2_default().fire("Validation Error", msg, "warning");
117
- }
118
- break;
119
-
120
- case 500:
121
- {
122
- let msg = res.body.message;
123
- external_sweetalert2_default().fire("Validation Error", msg, "warning");
124
- }
125
- break;
126
-
127
- default:
128
- (0,actions_namespaceObject.authErrorHandler)(err, res)(dispatch, state);
129
- break;
130
- }
131
- };
132
-
133
- let params = {
134
- access_token: this.access_token,
135
- expand: 'tickets,' + 'tickets.owner,' + 'tickets.owner.extra_questions,' + 'tickets.badge,' + 'tickets.badge.type,' + 'tickets.badge.type.access_levels,' + 'tickets.badge.type.features,' + 'tickets.ticket_type,' + 'tickets.ticket_type.taxes'
136
- };
137
- let normalizedEntity = {
138
- billing_address_1: token.address1 || '',
139
- billing_address_2: ((_this$userProfile = this.userProfile) === null || _this$userProfile === void 0 ? void 0 : _this$userProfile.address2) || '',
140
- billing_address_zip_code: token.postal_code,
141
- billing_address_city: ((_this$userProfile2 = this.userProfile) === null || _this$userProfile2 === void 0 ? void 0 : _this$userProfile2.locality) || '',
142
- billing_address_state: ((_this$userProfile3 = this.userProfile) === null || _this$userProfile3 === void 0 ? void 0 : _this$userProfile3.region) || '',
143
- billing_address_country: ((_this$userProfile4 = this.userProfile) === null || _this$userProfile4 === void 0 ? void 0 : _this$userProfile4.country) || '',
144
- payment_method_id: token.id
145
- };
146
- this.dispatch(startWidgetLoading());
147
-
148
- if (this.reservation.amount > 0) {
149
- return (0,actions_namespaceObject.putRequest)(null, (0,actions_namespaceObject.createAction)(PAY_RESERVATION), `${this.apiBaseUrl}/api/v1/summits/${this.summitId}/orders/${this.reservation.hash}/checkout`, normalizedEntity, errorHandler // entity
150
- )(params)(this.dispatch).then(payload => {
151
- this.dispatch(stopWidgetLoading());
152
- this.dispatch((0,actions_namespaceObject.createAction)(CLEAR_RESERVATION)({}));
153
- this.dispatch(changeStep(3));
154
- return payload;
155
- }).catch(e => {
156
- this.dispatch(removeReservedTicket());
157
- this.dispatch(changeStep(1));
158
- this.dispatch(stopWidgetLoading());
159
- return e;
160
- }); // The payment has succeeded. Display a success message.
161
- } else {
162
- // FREE TICKET
163
- return (0,actions_namespaceObject.putRequest)(null, (0,actions_namespaceObject.createAction)(PAY_RESERVATION), `${this.apiBaseUrl}/api/v1/summits/${this.summitId}/orders/${this.reservation.hash}/checkout`, normalizedEntity, errorHandler // entity
164
- )(params)(this.dispatch).then(payload => {
165
- this.dispatch(stopWidgetLoading());
166
- this.dispatch((0,actions_namespaceObject.createAction)(CLEAR_RESERVATION)({}));
167
- this.dispatch(changeStep(3));
168
- return payload;
169
- }).catch(e => {
170
- this.dispatch(removeReservedTicket());
171
- this.dispatch(changeStep(1));
172
- this.dispatch(stopWidgetLoading());
173
- return e;
174
- }); // The payment has succeeded. Display a success message.
175
- }
176
- });
177
-
178
- this.reservation = reservation;
179
- this.summitId = summitId;
180
- this.userProfile = userProfile;
181
- this.access_token = access_token;
182
- this.apiBaseUrl = apiBaseUrl;
183
- this.dispatch = _dispatch;
184
- }
185
-
186
- }
187
- ;// CONCATENATED MODULE: ./src/utils/payment-providers/stripe-provider.js
188
- function stripe_provider_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; }
189
-
190
-
191
-
192
-
193
-
194
- class StripeProvider {
195
- constructor({
196
- reservation,
197
- summitId,
198
- userProfile,
199
- access_token,
200
- apiBaseUrl,
201
- dispatch: _dispatch
202
- }) {
203
- stripe_provider_defineProperty(this, "payTicket", ({
204
- token = null,
205
- stripe = null,
206
- zipCode = null
207
- }) => async dispatch => {
208
- var _this$userProfile, _this$userProfile2, _this$userProfile3, _this$userProfile4, _this$userProfile5;
209
-
210
- const errorHandler = (err, res) => (dispatch, state) => {
211
- let code = err.status;
212
-
213
- switch (code) {
214
- case 404:
215
- {
216
- let msg = res.body.message;
217
- external_sweetalert2_default().fire("Validation Error", msg, "warning");
218
- }
219
- break;
220
-
221
- case 500:
222
- {
223
- let msg = res.body.message;
224
- external_sweetalert2_default().fire("Validation Error", msg, "warning");
225
- }
226
- break;
227
-
228
- default:
229
- (0,actions_namespaceObject.authErrorHandler)(err, res)(dispatch, state);
230
- break;
231
- }
232
- };
233
-
234
- let params = {
235
- access_token: this.access_token,
236
- expand: 'tickets,' + 'tickets.owner,' + 'tickets.owner.extra_questions,' + 'tickets.badge,' + 'tickets.badge.type,' + 'tickets.badge.type.access_levels,' + 'tickets.badge.type.features,' + 'tickets.ticket_type,' + 'tickets.ticket_type.taxes'
237
- };
238
- let normalizedEntity = {
239
- billing_address_1: ((_this$userProfile = this.userProfile) === null || _this$userProfile === void 0 ? void 0 : _this$userProfile.address1) || '',
240
- billing_address_2: ((_this$userProfile2 = this.userProfile) === null || _this$userProfile2 === void 0 ? void 0 : _this$userProfile2.address2) || '',
241
- billing_address_zip_code: zipCode,
242
- billing_address_city: ((_this$userProfile3 = this.userProfile) === null || _this$userProfile3 === void 0 ? void 0 : _this$userProfile3.locality) || '',
243
- billing_address_state: ((_this$userProfile4 = this.userProfile) === null || _this$userProfile4 === void 0 ? void 0 : _this$userProfile4.region) || '',
244
- billing_address_country: ((_this$userProfile5 = this.userProfile) === null || _this$userProfile5 === void 0 ? void 0 : _this$userProfile5.country) || ''
245
- };
246
- dispatch(startWidgetLoading());
247
-
248
- if (this.reservation.amount > 0) {
249
- const {
250
- id
251
- } = token;
252
- stripe.confirmCardPayment(this.reservation.payment_gateway_client_token, {
253
- payment_method: {
254
- card: {
255
- token: id
256
- }
257
- }
258
- }).then(result => {
259
- if (result.error) {
260
- // Reserve error.message in your UI.
261
- external_sweetalert2_default().fire(result.error.message, "Please retry purchase.", "warning");
262
- this.dispatch(changeStep(1));
263
- this.dispatch(removeReservedTicket());
264
- this.dispatch(stopWidgetLoading());
265
- } else {
266
- return (0,actions_namespaceObject.putRequest)(null, (0,actions_namespaceObject.createAction)(PAY_RESERVATION), `${this.apiBaseUrl}/api/v1/summits/${this.summitId}/orders/${this.reservation.hash}/checkout`, normalizedEntity, errorHandler // entity
267
- )(params)(this.dispatch).then(payload => {
268
- this.dispatch(stopWidgetLoading());
269
- this.dispatch((0,actions_namespaceObject.createAction)(CLEAR_RESERVATION)({}));
270
- this.dispatch(changeStep(3));
271
- return payload;
272
- }).catch(e => {
273
- this.dispatch(stopWidgetLoading());
274
- return e;
275
- }); // The payment has succeeded. Display a success message.
276
- }
277
- }).catch(e => {
278
- this.dispatch(removeReservedTicket());
279
- this.dispatch(changeStep(1));
280
- this.dispatch(stopWidgetLoading());
281
- return e;
282
- });
283
- } else {
284
- // FREE TICKET
285
- return (0,actions_namespaceObject.putRequest)(null, (0,actions_namespaceObject.createAction)(PAY_RESERVATION), `${this.apiBaseUrl}/api/v1/summits/${this.summitId}/orders/${this.reservation.hash}/checkout`, normalizedEntity, errorHandler // entity
286
- )(params)(this.dispatch).then(payload => {
287
- this.dispatch(stopWidgetLoading());
288
- this.dispatch((0,actions_namespaceObject.createAction)(CLEAR_RESERVATION)({}));
289
- this.dispatch(changeStep(3));
290
- return payload;
291
- }).catch(e => {
292
- this.dispatch(removeReservedTicket());
293
- this.dispatch(changeStep(1));
294
- this.dispatch(stopWidgetLoading());
295
- return e;
296
- }); // The payment has succeeded. Display a success message.
297
- }
298
- });
299
-
300
- this.reservation = reservation;
301
- this.summitId = summitId;
302
- this.userProfile = userProfile;
303
- this.access_token = access_token;
304
- this.apiBaseUrl = apiBaseUrl;
305
- this.dispatch = _dispatch;
306
- }
307
-
308
- }
309
- ;// CONCATENATED MODULE: ./src/utils/payment-providers/payment-provider-factory.js
310
- function 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; }
311
-
312
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { payment_provider_factory_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
313
-
314
- function payment_provider_factory_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; }
315
-
316
-
317
-
318
- class PaymentProviderFactory {}
319
-
320
- payment_provider_factory_defineProperty(PaymentProviderFactory, "build", (provider, params = {}) => {
321
- let currentProvider = null;
322
-
323
- switch (provider) {
324
- case 'LawPay':
325
- {
326
- currentProvider = new LawPayProvider(_objectSpread({}, params));
327
- break;
328
- }
329
-
330
- case 'Stripe':
331
- {
332
- currentProvider = new StripeProvider(_objectSpread({}, params));
333
- break;
334
- }
335
- }
336
-
337
- return currentProvider;
338
- });
339
- ;// CONCATENATED MODULE: ./src/actions.js
340
- function actions_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; }
341
-
342
- function actions_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? actions_ownKeys(Object(source), !0).forEach(function (key) { actions_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : actions_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
343
-
344
- function actions_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; }
345
-
346
- /**
347
- * Copyright 2020 OpenStack Foundation
348
- * Licensed under the Apache License, Version 2.0 (the "License");
349
- * you may not use this file except in compliance with the License.
350
- * You may obtain a copy of the License at
351
- * http://www.apache.org/licenses/LICENSE-2.0
352
- * Unless required by applicable law or agreed to in writing, software
353
- * distributed under the License is distributed on an "AS IS" BASIS,
354
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
355
- * See the License for the specific language governing permissions and
356
- * limitations under the License.
357
- **/
358
-
359
-
360
-
361
-
362
- const START_WIDGET_LOADING = 'START_WIDGET_LOADING';
363
- const STOP_WIDGET_LOADING = 'STOP_WIDGET_LOADING';
364
- const LOAD_INITIAL_VARS = 'LOAD_INITIAL_VARS';
365
- const CHANGE_STEP = 'CHANGE_STEP';
366
- const GET_TICKET_TYPES = 'GET_TICKET_TYPES';
367
- const GET_TAX_TYPES = 'GET_TAX_TYPES';
368
- const CREATE_RESERVATION = 'CREATE_RESERVATION';
369
- const CREATE_RESERVATION_SUCCESS = 'CREATE_RESERVATION_SUCCESS';
370
- const CREATE_RESERVATION_ERROR = 'CREATE_RESERVATION_ERROR';
371
- const DELETE_RESERVATION = 'DELETE_RESERVATION';
372
- const DELETE_RESERVATION_SUCCESS = 'DELETE_RESERVATION_SUCCESS';
373
- const DELETE_RESERVATION_ERROR = 'DELETE_RESERVATION_ERROR';
374
- const PAY_RESERVATION = 'PAY_RESERVATION';
375
- const CLEAR_RESERVATION = 'CLEAR_RESERVATION';
376
- const SET_PASSWORDLESS_LOGIN = 'SET_PASSWORDLESS_LOGIN';
377
- const SET_PASSWORDLESS_LENGTH = 'SET_PASSWORDLESS_LENGTH';
378
- const SET_PASSWORDLESS_ERROR = 'SET_PASSWORDLESS_ERROR';
379
- const GO_TO_LOGIN = 'GO_TO_LOGIN';
380
- const startWidgetLoading = (0,actions_namespaceObject.createAction)(START_WIDGET_LOADING);
381
- const stopWidgetLoading = (0,actions_namespaceObject.createAction)(STOP_WIDGET_LOADING);
382
- const loadSession = settings => dispatch => {
383
- dispatch((0,actions_namespaceObject.createAction)(LOAD_INITIAL_VARS)(settings));
384
- };
385
- /*********************************************************************************/
386
-
387
- /* TICKETS */
388
-
389
- /*********************************************************************************/
390
- // api/v1/summits/{id}/ticket-types
391
- // api/v1/summits/{id}/tax-types
392
-
393
- const getTicketTypes = summitId => async (dispatch, getState, {
394
- apiBaseUrl,
395
- getAccessToken
396
- }) => {
397
- try {
398
- const accessToken = await getAccessToken();
399
- let params = {
400
- expand: 'badge_type,badge_type.access_levels,badge_type.badge_features',
401
- access_token: accessToken
402
- };
403
- dispatch(startWidgetLoading());
404
- 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(() => {
405
- dispatch(stopWidgetLoading());
406
- });
407
- } catch (e) {
408
- return Promise.reject();
409
- }
410
- };
411
- const getTaxesTypes = summitId => async (dispatch, getState, {
412
- apiBaseUrl,
413
- getAccessToken
414
- }) => {
415
- try {
416
- const accessToken = await getAccessToken();
417
- let params = {
418
- access_token: accessToken
419
- };
420
- dispatch(startWidgetLoading());
421
- 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(() => {
422
- dispatch(stopWidgetLoading());
423
- });
424
- } catch (e) {
425
- return Promise.reject();
426
- }
427
- };
428
- const reserveTicket = ({
429
- personalInformation,
430
- ticket,
431
- ticketQuantity
432
- }, {
433
- onError
434
- }) => async (dispatch, getState, {
435
- apiBaseUrl,
436
- getAccessToken
437
- }) => {
438
- const {
439
- registrationLiteState: {
440
- settings: {
441
- summitId
442
- }
443
- }
444
- } = getState();
445
- let {
446
- firstName,
447
- lastName,
448
- email,
449
- company,
450
- promoCode
451
- } = personalInformation;
452
- dispatch(startWidgetLoading());
453
- const access_token = await getAccessToken();
454
- const tickets = [...Array(ticketQuantity)].map(() => ({
455
- type_id: ticket.id,
456
- promo_code: promoCode || null
457
- })); // Only set the attendee for the first ticket.
458
-
459
- tickets[0].attendee_first_name = firstName;
460
- tickets[0].attendee_last_name = lastName;
461
- tickets[0].attendee_email = email;
462
- let params = {
463
- access_token,
464
- expand: 'tickets,tickets.owner,tickets.ticket_type,tickets.ticket_type.taxes'
465
- };
466
- const normalizedEntity = normalizeReservation({
467
- owner_email: email,
468
- owner_first_name: firstName,
469
- owner_last_name: lastName,
470
- owner_company: company,
471
- tickets
472
- });
473
-
474
- const errorHandler = (err, res) => (dispatch, state) => {
475
- if (res && res.statusCode === 412 && onError) return onError(err, res);
476
-
477
- if (res && res.statusCode === 404) {
478
- const msg = res.body.message;
479
- external_sweetalert2_default().fire("Validation Error", msg, "warning");
480
- return;
481
- }
482
-
483
- if (res && res.statusCode === 500) {
484
- const msg = res.body.message;
485
- external_sweetalert2_default().fire("Server Error", msg, "error");
486
- return;
487
- }
488
-
489
- return (0,actions_namespaceObject.authErrorHandler)(err, res)(dispatch, state);
490
- };
491
-
492
- 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
493
- )(params)(dispatch).then(payload => {
494
- dispatch(stopWidgetLoading());
495
- payload.response.promo_code = promoCode || null;
496
-
497
- if (!payload.response.amount) {
498
- dispatch(payTicket(null, null, getAccessToken));
499
- return payload;
500
- } else {
501
- dispatch(changeStep(2));
502
- return payload;
503
- }
504
- }).catch(e => {
505
- dispatch((0,actions_namespaceObject.createAction)(CREATE_RESERVATION_ERROR)(e));
506
- dispatch(stopWidgetLoading());
507
- return e;
508
- });
509
- };
510
- const removeReservedTicket = () => async (dispatch, getState, {
511
- apiBaseUrl,
512
- getAccessToken
513
- }) => {
514
- let {
515
- registrationLiteState: {
516
- settings: {
517
- summitId
518
- },
519
- reservation: {
520
- hash
521
- }
522
- }
523
- } = getState();
524
- const access_token = await getAccessToken();
525
- let params = {
526
- access_token,
527
- expand: 'tickets,tickets.owner'
528
- };
529
- dispatch(startWidgetLoading());
530
- 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
531
- )(params)(dispatch).then(payload => {
532
- dispatch(stopWidgetLoading());
533
- dispatch(changeStep(1));
534
- return payload;
535
- }).catch(e => {
536
- dispatch((0,actions_namespaceObject.createAction)(DELETE_RESERVATION_ERROR)(e));
537
- dispatch(changeStep(1));
538
- dispatch(stopWidgetLoading());
539
- return e;
540
- });
541
- };
542
- const payTicketWithProvider = (provider, params = {}) => async (dispatch, getState, {
543
- apiBaseUrl,
544
- getAccessToken
545
- }) => {
546
- let {
547
- registrationLiteState: {
548
- settings: {
549
- summitId,
550
- userProfile
551
- },
552
- reservation
553
- }
554
- } = getState();
555
- const access_token = await getAccessToken();
556
- dispatch(startWidgetLoading());
557
- const currentProvider = PaymentProviderFactory.build(provider, {
558
- reservation,
559
- summitId,
560
- userProfile,
561
- access_token,
562
- apiBaseUrl,
563
- dispatch
564
- });
565
- return dispatch(currentProvider.payTicket(actions_objectSpread({}, params)));
566
- };
567
- const changeStep = step => (dispatch, getState) => {
568
- dispatch(startWidgetLoading());
569
- dispatch((0,actions_namespaceObject.createAction)(CHANGE_STEP)(step));
570
- dispatch(stopWidgetLoading());
571
- };
572
- const goToLogin = () => (dispatch, getState) => {
573
- dispatch((0,actions_namespaceObject.createAction)(GO_TO_LOGIN)());
574
- };
575
- const getLoginCode = (email, getPasswordlessCode) => async (dispatch, getState) => {
576
- dispatch((0,actions_namespaceObject.createAction)(SET_PASSWORDLESS_LOGIN)(email));
577
- return new Promise((resolve, reject) => {
578
- getPasswordlessCode(email).then(res => {
579
- dispatch((0,actions_namespaceObject.createAction)(SET_PASSWORDLESS_LENGTH)(res.response));
580
- resolve(res);
581
- }, err => {
582
- reject(err);
583
- });
584
- });
585
- };
586
- const passwordlessLogin = (code, loginWithCode) => async (dispatch, getState) => {
587
- const {
588
- registrationLiteState: {
589
- passwordless: {
590
- email
591
- }
592
- }
593
- } = getState();
594
- return new Promise((resolve, reject) => {
595
- loginWithCode(code, email).then(res => {
596
- if (res) {
597
- dispatch((0,actions_namespaceObject.createAction)(SET_PASSWORDLESS_ERROR)());
598
- }
599
-
600
- resolve(res);
601
- }, err => {
602
- reject(err);
603
- });
604
- });
605
- };
606
- const isInPersonTicketType = ticketType => {
607
- /** check is the current order has or not IN_PERSON tickets types **/
608
- if (ticketType.hasOwnProperty("badge_type")) {
609
- let badgeType = ticketType.badge_type;
610
- return badgeType.access_levels.some(al => {
611
- return al.name == 'IN_PERSON';
612
- });
613
- }
614
-
615
- return false;
616
- };
617
-
618
- const normalizeReservation = entity => {
619
- const normalizedEntity = actions_objectSpread({}, entity);
620
-
621
- if (!entity.owner_company.id) {
622
- normalizedEntity['owner_company'] = entity.owner_company.name;
623
- } else {
624
- delete normalizedEntity['owner_company'];
625
- normalizedEntity['owner_company_id'] = entity.owner_company.id;
626
- }
627
-
628
- return normalizedEntity;
629
- };
630
- ;// CONCATENATED MODULE: ./src/reducer.js
631
- function reducer_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; }
632
-
633
- function reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? reducer_ownKeys(Object(source), !0).forEach(function (key) { reducer_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
634
-
635
- function reducer_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; }
636
-
637
- /**
638
- * Copyright 2020 OpenStack Foundation
639
- * Licensed under the Apache License, Version 2.0 (the "License");
640
- * you may not use this file except in compliance with the License.
641
- * You may obtain a copy of the License at
642
- * http://www.apache.org/licenses/LICENSE-2.0
643
- * Unless required by applicable law or agreed to in writing, software
644
- * distributed under the License is distributed on an "AS IS" BASIS,
645
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
646
- * See the License for the specific language governing permissions and
647
- * limitations under the License.
648
- **/
649
-
650
- const DEFAULT_STATE = {
651
- reservation: null,
652
- checkout: null,
653
- step: 0,
654
- widgetLoading: false,
655
- passwordless: {
656
- email: null,
657
- otp_length: 0,
658
- code_sent: false,
659
- error: false
660
- },
661
- ticketTypes: [],
662
- taxTypes: [],
663
- settings: {
664
- apiBaseUrl: null,
665
- summitId: null,
666
- marketingData: null,
667
- userProfile: null
668
- }
669
- };
670
-
671
- const RegistrationLiteReducer = (state = DEFAULT_STATE, action) => {
672
- const {
673
- type,
674
- payload
675
- } = action;
676
-
677
- switch (type) {
678
- case START_WIDGET_LOADING:
679
- {
680
- return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
681
- widgetLoading: true
682
- });
683
- }
684
-
685
- case STOP_WIDGET_LOADING:
686
- {
687
- return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
688
- widgetLoading: false
689
- });
690
- }
691
-
692
- case LOAD_INITIAL_VARS:
693
- const {
694
- marketingData,
695
- summitData,
696
- apiBaseUrl,
697
- profileData
698
- } = payload;
699
- Object.keys(marketingData).forEach(setting => {
700
- if (getComputedStyle(document.documentElement).getPropertyValue(`--${setting}`)) {
701
- document.documentElement.style.setProperty(`--${setting}`, marketingData[setting]);
702
- document.documentElement.style.setProperty(`--${setting}50`, `${marketingData[setting]}50`);
703
- }
704
- });
705
- return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
706
- reservation: null,
707
- checkout: null,
708
- passwordless: reducer_objectSpread({}, DEFAULT_STATE.passwordless),
709
- settings: reducer_objectSpread(reducer_objectSpread({}, DEFAULT_STATE.settings), {}, {
710
- marketingData: marketingData,
711
- summitId: summitData.id,
712
- userProfile: profileData,
713
- apiBaseUrl: apiBaseUrl
714
- })
715
- });
716
-
717
- case CHANGE_STEP:
718
- {
719
- return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
720
- step: payload
721
- });
722
- }
723
-
724
- case GET_TICKET_TYPES:
725
- {
726
- return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
727
- ticketTypes: payload.response.data
728
- });
729
- }
730
-
731
- case GET_TAX_TYPES:
732
- {
733
- return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
734
- taxTypes: payload.response.data
735
- });
736
- }
737
-
738
- case GO_TO_LOGIN:
739
- {
740
- return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
741
- passwordless: reducer_objectSpread(reducer_objectSpread({}, state.passwordless), {}, {
742
- code_sent: false,
743
- error: false
744
- })
745
- });
746
- }
747
-
748
- case SET_PASSWORDLESS_LOGIN:
749
- {
750
- return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
751
- passwordless: reducer_objectSpread(reducer_objectSpread({}, state.passwordless), {}, {
752
- email: payload,
753
- error: false
754
- })
755
- });
756
- }
757
-
758
- case SET_PASSWORDLESS_LENGTH:
759
- {
760
- const {
761
- otp_length
762
- } = payload;
763
- return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
764
- passwordless: reducer_objectSpread(reducer_objectSpread({}, state.passwordless), {}, {
765
- otp_length,
766
- code_sent: true,
767
- error: false
768
- })
769
- });
770
- }
771
-
772
- case SET_PASSWORDLESS_ERROR:
773
- {
774
- return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
775
- passwordless: reducer_objectSpread(reducer_objectSpread({}, state.passwordless), {}, {
776
- error: true
777
- })
778
- });
779
- }
780
-
781
- case CREATE_RESERVATION_SUCCESS:
782
- {
783
- const reservation = payload.response;
784
- return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
785
- reservation
786
- });
787
- }
788
-
789
- case DELETE_RESERVATION_SUCCESS:
790
- return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
791
- reservation: null
792
- });
793
-
794
- case CLEAR_RESERVATION:
795
- {
796
- return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
797
- reservation: null
798
- });
799
- }
800
-
801
- case PAY_RESERVATION:
802
- {
803
- return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
804
- checkout: payload.response,
805
- reservation: null,
806
- userProfile: null
807
- });
808
- }
809
-
810
- default:
811
- {
812
- return state;
813
- }
814
- }
815
- };
816
-
817
- /* harmony default export */ const reducer = (RegistrationLiteReducer);
818
- ;// CONCATENATED MODULE: ./src/store.js
819
- /**
820
- * Copyright 2019
821
- * Licensed under the Apache License, Version 2.0 (the "License");
822
- * you may not use this file except in compliance with the License.
823
- * You may obtain a copy of the License at
824
- * http://www.apache.org/licenses/LICENSE-2.0
825
- * Unless required by applicable law or agreed to in writing, software
826
- * distributed under the License is distributed on an "AS IS" BASIS,
827
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
828
- * See the License for the specific language governing permissions and
829
- * limitations under the License.
830
- **/
831
-
832
-
833
-
834
- // default: localStorage if web, AsyncStorage if react-native
835
-
836
-
837
- let store, persistor;
838
- const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || external_redux_namespaceObject.compose;
839
- const getStore = (clientId, apiBaseUrl, getAccessToken) => {
840
- if (store) return store;
841
- const config = {
842
- key: `root_registration_lite_${clientId}`,
843
- storage: (storage_default()),
844
- blacklist: ['ticketTypes', 'taxTypes'] // do not persist these keys
845
-
846
- };
847
- const reducers = (0,external_redux_persist_namespaceObject.persistCombineReducers)(config, {
848
- registrationLiteState: reducer
849
- });
850
- store = (0,external_redux_namespaceObject.createStore)(reducers, composeEnhancers((0,external_redux_namespaceObject.applyMiddleware)(external_redux_thunk_default().withExtraArgument({
851
- apiBaseUrl: apiBaseUrl,
852
- getAccessToken: getAccessToken
853
- }))));
854
- return store;
855
- };
856
- const getPersistor = () => {
857
- if (persistor) return persistor;
858
-
859
- const onRehydrateComplete = () => {};
860
-
861
- persistor = (0,external_redux_persist_namespaceObject.persistStore)(store, null, onRehydrateComplete);
862
- return persistor;
863
- };
864
- ;// CONCATENATED MODULE: external "redux-persist/integration/react"
865
- const react_namespaceObject = require("redux-persist/integration/react");
866
- ;// CONCATENATED MODULE: external "react-spring"
867
- const external_react_spring_namespaceObject = require("react-spring");
868
- ;// CONCATENATED MODULE: external "react-use"
869
- const external_react_use_namespaceObject = require("react-use");
870
- ;// CONCATENATED MODULE: external "openstack-uicore-foundation/lib/components/ajaxloader"
871
- const ajaxloader_namespaceObject = require("openstack-uicore-foundation/lib/components/ajaxloader");
872
- var ajaxloader_default = /*#__PURE__*/__webpack_require__.n(ajaxloader_namespaceObject);
873
- ;// CONCATENATED MODULE: ./src/styles/general.module.scss
874
- // extracted by mini-css-extract-plugin
875
- /* harmony default export */ const general_module = ({"modal":"modal___G3Cmq","outerWrapper":"outerWrapper___OWXyi","innerWrapper":"innerWrapper___mIrBF","title":"title___Tbvkl"});
876
- ;// CONCATENATED MODULE: ./src/components/login/index.module.scss
877
- // extracted by mini-css-extract-plugin
878
- /* harmony default export */ const index_module = ({"loginWrapper":"loginWrapper___sxUEn","innerWrapper":"innerWrapper___GQRkq","button":"button___QMZPu","loginCode":"loginCode___dDBup","input":"input___QR9sA"});
879
- ;// CONCATENATED MODULE: ./src/components/login/index.js
880
- /**
881
- * Copyright 2020 OpenStack Foundation
882
- * Licensed under the Apache License, Version 2.0 (the "License");
883
- * you may not use this file except in compliance with the License.
884
- * You may obtain a copy of the License at
885
- * http://www.apache.org/licenses/LICENSE-2.0
886
- * Unless required by applicable law or agreed to in writing, software
887
- * distributed under the License is distributed on an "AS IS" BASIS,
888
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
889
- * See the License for the specific language governing permissions and
890
- * limitations under the License.
891
- **/
892
-
893
-
894
-
895
- const LoginComponent = ({
896
- options,
897
- login,
898
- allowsNativeAuth,
899
- allowsOtpAuthlogin,
900
- getLoginCode,
901
- getPasswordlessCode
902
- }) => {
903
- const [email, setEmail] = (0,external_react_namespaceObject.useState)('');
904
- const [emailError, setEmailError] = (0,external_react_namespaceObject.useState)();
905
-
906
- const isValidEmail = email => {
907
- const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
908
- return re.test(String(email).toLowerCase());
909
- };
910
-
911
- const loginCode = () => {
912
- let isValid = isValidEmail(email);
913
- setEmailError(!isValid);
914
-
915
- if (isValid) {
916
- getLoginCode(email, getPasswordlessCode);
917
- }
918
- };
919
-
920
- return /*#__PURE__*/external_react_default().createElement("div", {
921
- className: `${index_module.loginWrapper} step-wrapper`
922
- }, /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("div", {
923
- className: `${index_module.innerWrapper}`
924
- }, /*#__PURE__*/external_react_default().createElement("div", {
925
- className: index_module.loginCode
926
- }, "Enter your email to begin registration:", /*#__PURE__*/external_react_default().createElement("div", {
927
- className: index_module.input
928
- }, /*#__PURE__*/external_react_default().createElement("input", {
929
- placeholder: "youremail@example.com",
930
- value: email,
931
- onChange: e => setEmail(e.target.value),
932
- onKeyPress: ev => ev.key === 'Enter' ? loginCode() : null,
933
- "data-testid": "email-input"
934
- }), /*#__PURE__*/external_react_default().createElement("button", {
935
- onClick: () => loginCode(),
936
- "data-testid": "email-button"
937
- }, ">"), /*#__PURE__*/external_react_default().createElement("br", null)), emailError && /*#__PURE__*/external_react_default().createElement("span", {
938
- "data-testid": "email-error"
939
- }, "Please enter a valid email address")), /*#__PURE__*/external_react_default().createElement("span", null, "Or you may login with one of the following:"), options.map((o, index) => {
940
- return o.provider_param ? /*#__PURE__*/external_react_default().createElement("div", {
941
- className: `${index_module.button}`,
942
- key: `provider-${o.provider_param}`,
943
- "data-testid": "login-button",
944
- style: {
945
- color: o.button_border_color ? o.button_border_color : '#ffffff',
946
- border: `thin solid ${o.button_border_color ? o.button_border_color : o.button_color}`,
947
- backgroundColor: o.button_color,
948
- backgroundImage: o.provider_logo ? `url(${o.provider_logo})` : 'none',
949
- backgroundSize: o.provider_logo_size ? o.provider_logo_size : ''
950
- },
951
- onClick: () => login(o.provider_param)
952
- }, o.provider_label) : allowsNativeAuth ? /*#__PURE__*/external_react_default().createElement("div", {
953
- className: `${index_module.button}`,
954
- key: `provider-fnid`,
955
- "data-testid": "login-button",
956
- style: {
957
- color: o.button_border_color ? o.button_border_color : '#ffffff',
958
- border: `thin solid ${o.button_border_color ? o.button_border_color : o.button_color}`,
959
- backgroundColor: o.button_color,
960
- backgroundImage: o.provider_logo ? `url(${o.provider_logo})` : 'none',
961
- backgroundSize: o.provider_logo_size ? o.provider_logo_size : ''
962
- },
963
- onClick: () => login(o.provider_param)
964
- }, o.provider_label) : null;
965
- }), allowsOtpAuthlogin && /*#__PURE__*/external_react_default().createElement("div", {
966
- className: index_module.loginCode
967
- }, "or get a login code emailed to you", /*#__PURE__*/external_react_default().createElement("div", {
968
- className: index_module.input
969
- }, /*#__PURE__*/external_react_default().createElement("input", {
970
- placeholder: "youremail@example.com",
971
- value: email,
972
- onChange: e => setEmail(e.target.value),
973
- onKeyPress: ev => ev.key === 'Enter' ? loginCode() : null,
974
- "data-testid": "email-input"
975
- }), /*#__PURE__*/external_react_default().createElement("button", {
976
- onClick: () => loginCode(),
977
- "data-testid": "email-button"
978
- }, ">"), /*#__PURE__*/external_react_default().createElement("br", null)), emailError && /*#__PURE__*/external_react_default().createElement("span", {
979
- "data-testid": "email-error"
980
- }, "Please enter a valid email adress")))));
981
- };
982
-
983
- /* harmony default export */ const login = (LoginComponent);
984
- ;// CONCATENATED MODULE: external "prop-types"
985
- const external_prop_types_namespaceObject = require("prop-types");
986
- ;// CONCATENATED MODULE: ./src/components/payment/index.module.scss
987
- // extracted by mini-css-extract-plugin
988
- /* harmony default export */ const payment_index_module = ({"title":"title___LksVm","form":"form___v5GIx","fieldWrapper":"fieldWrapper___Eoe61"});
989
- ;// CONCATENATED MODULE: external "openstack-uicore-foundation/lib/components"
990
- const components_namespaceObject = require("openstack-uicore-foundation/lib/components");
991
- ;// CONCATENATED MODULE: external "openstack-uicore-foundation/lib/utils/methods"
992
- const methods_namespaceObject = require("openstack-uicore-foundation/lib/utils/methods");
993
- ;// CONCATENATED MODULE: ./src/components/lawpay-form/index.module.scss
994
- // extracted by mini-css-extract-plugin
995
- /* harmony default export */ const lawpay_form_index_module = ({"form":"form___zXb7s","fieldWrapper":"fieldWrapper___G4Wqw","inputWrapper":"inputWrapper___Yz5zB","fieldRow":"fieldRow___NfZdJ","lawpayWrapper":"lawpayWrapper___hpUBf","dateWrapper":"dateWrapper___XDfqs","dropdown":"dropdown___l3_bk","fieldError":"fieldError___Igq3U"});
996
- ;// CONCATENATED MODULE: ./src/components/lawpay-form/index.js
997
- function lawpay_form_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; }
998
-
999
- function lawpay_form_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? lawpay_form_ownKeys(Object(source), !0).forEach(function (key) { lawpay_form_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : lawpay_form_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1000
-
1001
- function lawpay_form_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; }
1002
-
1003
- /**
1004
- * Copyright 2022 OpenStack Foundation
1005
- * Licensed under the Apache License, Version 2.0 (the "License");
1006
- * you may not use this file except in compliance with the License.
1007
- * You may obtain a copy of the License at
1008
- * http://www.apache.org/licenses/LICENSE-2.0
1009
- * Unless required by applicable law or agreed to in writing, software
1010
- * distributed under the License is distributed on an "AS IS" BASIS,
1011
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1012
- * See the License for the specific language governing permissions and
1013
- * limitations under the License.
1014
- **/
1015
-
1016
-
1017
-
1018
-
1019
-
1020
-
1021
-
1022
- const LawPayForm = ({
1023
- reservation,
1024
- payTicket,
1025
- userProfile,
1026
- marketingData,
1027
- providerKey,
1028
- provider,
1029
- timestamp
1030
- }) => {
1031
- const [hostedFields, setHostedFields] = (0,external_react_namespaceObject.useState)(null);
1032
- const [lawPayFields, setLawPayFields] = (0,external_react_namespaceObject.useState)({
1033
- exp_month: '',
1034
- exp_year: '',
1035
- postal_code: userProfile.postal_code || '',
1036
- address1: userProfile.address1 || ''
1037
- });
1038
- const [lawPayErrors, setLawPayErrors] = (0,external_react_namespaceObject.useState)({
1039
- exp_month: '',
1040
- exp_year: '',
1041
- postal_code: '',
1042
- credit_card_number: '',
1043
- cvv: '',
1044
- address1: ''
1045
- });
1046
- const style = {
1047
- color: marketingData.color_text_dark,
1048
- "font-size": '16px',
1049
- "font-weight": 'inherit',
1050
- '::placeholder': {
1051
- color: marketingData.color_text_input_hints
1052
- }
1053
- };
1054
- const hostedFieldsConfiguration = {
1055
- publicKey: `${providerKey}`,
1056
- fields: [{
1057
- selector: "#my_credit_card_field_id",
1058
- input: {
1059
- type: "credit_card_number",
1060
- placeholder: "Credit Card Number",
1061
- css: style
1062
- }
1063
- }, {
1064
- selector: "#my_cvv_field_id",
1065
- input: {
1066
- type: "cvv",
1067
- placeholder: "CCV",
1068
- css: style
1069
- }
1070
- }]
1071
- };
1072
-
1073
- const hostedFieldsCallBack = state => {
1074
- let fieldErrors = {};
1075
- state.fields.map(f => {
1076
- if (f.focus && f.error !== 'Input field is empty') fieldErrors = lawpay_form_objectSpread(lawpay_form_objectSpread({}, fieldErrors), {}, {
1077
- [f.type]: f.error
1078
- });
1079
- });
1080
- setLawPayErrors(lawpay_form_objectSpread(lawpay_form_objectSpread({}, lawPayErrors), fieldErrors));
1081
- };
1082
-
1083
- (0,external_react_namespaceObject.useEffect)(() => {
1084
- if (window.AffiniPay && !hostedFields) {
1085
- setHostedFields(window.AffiniPay.HostedFields.initializeFields(hostedFieldsConfiguration, hostedFieldsCallBack));
1086
- }
1087
- }, [reservation]);
1088
-
1089
- const onExpireChange = ev => {
1090
- setLawPayFields(lawpay_form_objectSpread(lawpay_form_objectSpread({}, lawPayFields), {}, {
1091
- [ev.target.id]: ev.target.value
1092
- }));
1093
- };
1094
-
1095
- const formHasErrors = () => {
1096
- let errors = {};
1097
- Object.keys(lawPayFields).map(key => {
1098
- if (!lawPayFields[key] || lawPayFields[key] === '') {
1099
- errors = lawpay_form_objectSpread(lawpay_form_objectSpread({}, errors), {}, {
1100
- [key]: 'This field is required.'
1101
- });
1102
- }
1103
- });
1104
- setLawPayErrors(lawpay_form_objectSpread(lawpay_form_objectSpread({}, lawPayErrors), errors));
1105
- return Object.keys(errors).length > 0;
1106
- };
1107
-
1108
- const onSubmit = async event => {
1109
- event.preventDefault();
1110
-
1111
- if (!hostedFields) {
1112
- // Affinity Pay has not loaded yet. Make sure to disable
1113
- // form submission until Affinity Pay has loaded.
1114
- return;
1115
- }
1116
-
1117
- if (!formHasErrors()) {
1118
- try {
1119
- const token = await hostedFields.getPaymentToken({
1120
- "postal_code": lawPayFields.postal_code,
1121
- "address1": lawPayFields.address1,
1122
- "exp_year": lawPayFields.exp_year,
1123
- "exp_month": lawPayFields.exp_month,
1124
- "email": userProfile.email,
1125
- "name": `${reservation.owner_first_name} ${reservation.owner_last_name}`,
1126
- "reference": `summit_${reservation.summit_id}_order_${reservation.id}`
1127
- });
1128
- payTicket(provider, {
1129
- token
1130
- });
1131
- } catch (error) {
1132
- external_sweetalert2_default().fire("Payment error", error.message, "warning");
1133
- }
1134
- }
1135
- };
1136
-
1137
- const ddl_month = [{
1138
- label: '1 - January',
1139
- value: '01'
1140
- }, {
1141
- label: '2 - February',
1142
- value: '02'
1143
- }, {
1144
- label: '3 - March',
1145
- value: '03'
1146
- }, {
1147
- label: '4 - April',
1148
- value: '04'
1149
- }, {
1150
- label: '5 - May',
1151
- value: '05'
1152
- }, {
1153
- label: '6 - June',
1154
- value: '06'
1155
- }, {
1156
- label: '7 - July',
1157
- value: '07'
1158
- }, {
1159
- label: '8 - August',
1160
- value: '08'
1161
- }, {
1162
- label: '9 - September',
1163
- value: '09'
1164
- }, {
1165
- label: '10 - October',
1166
- value: '10'
1167
- }, {
1168
- label: '11 - November',
1169
- value: '11'
1170
- }, {
1171
- label: '12 - December',
1172
- value: '12'
1173
- }];
1174
- const current_year = (0,methods_namespaceObject.epochToMomentTimeZone)(timestamp, 'utc').year();
1175
- const year_ddl = Array.from({
1176
- length: 15
1177
- }, (_, i) => {
1178
- return {
1179
- label: `${current_year + i}`,
1180
- value: `${current_year + i}`
1181
- };
1182
- });
1183
- return /*#__PURE__*/external_react_default().createElement("form", {
1184
- className: lawpay_form_index_module.form,
1185
- id: "payment-form",
1186
- onSubmit: onSubmit
1187
- }, /*#__PURE__*/external_react_default().createElement("div", {
1188
- className: lawpay_form_index_module.fieldWrapper
1189
- }, /*#__PURE__*/external_react_default().createElement("div", {
1190
- className: lawpay_form_index_module.inputWrapper
1191
- }, /*#__PURE__*/external_react_default().createElement("div", {
1192
- id: "my_credit_card_field_id",
1193
- className: lawpay_form_index_module.lawpayWrapper
1194
- }), /*#__PURE__*/external_react_default().createElement("i", {
1195
- className: "fa fa-credit-card"
1196
- })), lawPayErrors.credit_card_number && /*#__PURE__*/external_react_default().createElement("div", {
1197
- className: lawpay_form_index_module.fieldError
1198
- }, lawPayErrors.credit_card_number)), /*#__PURE__*/external_react_default().createElement("div", {
1199
- className: lawpay_form_index_module.fieldWrapper
1200
- }, /*#__PURE__*/external_react_default().createElement("div", {
1201
- className: lawpay_form_index_module.dateWrapper
1202
- }, /*#__PURE__*/external_react_default().createElement("div", null, /*#__PURE__*/external_react_default().createElement(components_namespaceObject.Dropdown, {
1203
- className: lawpay_form_index_module.dropdown,
1204
- placeholder: "Month",
1205
- onChange: onExpireChange,
1206
- id: "exp_month",
1207
- options: ddl_month
1208
- }), lawPayErrors.exp_month && /*#__PURE__*/external_react_default().createElement("div", {
1209
- className: lawpay_form_index_module.fieldError
1210
- }, lawPayErrors.exp_month)), /*#__PURE__*/external_react_default().createElement("div", null, /*#__PURE__*/external_react_default().createElement(components_namespaceObject.Dropdown, {
1211
- className: lawpay_form_index_module.dropdown,
1212
- placeholder: "Year",
1213
- onChange: onExpireChange,
1214
- id: "exp_year",
1215
- options: year_ddl
1216
- }), lawPayErrors.exp_year && /*#__PURE__*/external_react_default().createElement("div", {
1217
- className: lawpay_form_index_module.fieldError
1218
- }, lawPayErrors.exp_year)))), /*#__PURE__*/external_react_default().createElement("div", {
1219
- className: lawpay_form_index_module.fieldWrapper
1220
- }, /*#__PURE__*/external_react_default().createElement("div", {
1221
- className: lawpay_form_index_module.fieldRow
1222
- }, /*#__PURE__*/external_react_default().createElement("div", {
1223
- className: lawpay_form_index_module.inputWrapper
1224
- }, /*#__PURE__*/external_react_default().createElement("div", {
1225
- id: "my_cvv_field_id",
1226
- className: lawpay_form_index_module.lawpayWrapper
1227
- })), /*#__PURE__*/external_react_default().createElement("div", {
1228
- className: lawpay_form_index_module.inputWrapper
1229
- }, /*#__PURE__*/external_react_default().createElement("input", {
1230
- type: "text",
1231
- name: "postal_code",
1232
- placeholder: "ZIP Code *",
1233
- value: lawPayFields.postal_code,
1234
- onChange: e => setLawPayFields(lawpay_form_objectSpread(lawpay_form_objectSpread({}, lawPayFields), {}, {
1235
- postal_code: e.target.value
1236
- }))
1237
- }))), /*#__PURE__*/external_react_default().createElement("div", {
1238
- className: lawpay_form_index_module.fieldRow
1239
- }, lawPayErrors.cvv && /*#__PURE__*/external_react_default().createElement("div", {
1240
- className: lawpay_form_index_module.fieldError
1241
- }, lawPayErrors.cvv), lawPayErrors.postal_code && /*#__PURE__*/external_react_default().createElement("div", {
1242
- className: lawpay_form_index_module.fieldError
1243
- }, lawPayErrors.postal_code))), /*#__PURE__*/external_react_default().createElement("div", {
1244
- className: lawpay_form_index_module.fieldWrapper
1245
- }, /*#__PURE__*/external_react_default().createElement("div", {
1246
- className: lawpay_form_index_module.inputWrapper
1247
- }, /*#__PURE__*/external_react_default().createElement("input", {
1248
- type: "text",
1249
- name: "address1",
1250
- placeholder: "Address *",
1251
- value: lawPayFields.address1,
1252
- onChange: e => setLawPayFields(lawpay_form_objectSpread(lawpay_form_objectSpread({}, lawPayFields), {}, {
1253
- address1: e.target.value
1254
- }))
1255
- })), lawPayErrors.address1 && /*#__PURE__*/external_react_default().createElement("div", {
1256
- className: lawpay_form_index_module.fieldError
1257
- }, lawPayErrors.address1)));
1258
- };
1259
-
1260
- const mapStateToProps = ({
1261
- registrationLiteState
1262
- }) => ({
1263
- marketingData: registrationLiteState.settings.marketingData
1264
- });
1265
-
1266
- /* harmony default export */ const lawpay_form = ((0,external_react_redux_namespaceObject.connect)(mapStateToProps, null)(LawPayForm));
1267
- ;// CONCATENATED MODULE: external "@stripe/stripe-js"
1268
- const stripe_js_namespaceObject = require("@stripe/stripe-js");
1269
- ;// CONCATENATED MODULE: external "@stripe/react-stripe-js"
1270
- const react_stripe_js_namespaceObject = require("@stripe/react-stripe-js");
1271
- ;// CONCATENATED MODULE: external "react-hook-form"
1272
- const external_react_hook_form_namespaceObject = require("react-hook-form");
1273
- ;// CONCATENATED MODULE: external "lodash/merge"
1274
- const merge_namespaceObject = require("lodash/merge");
1275
- var merge_default = /*#__PURE__*/__webpack_require__.n(merge_namespaceObject);
1276
- ;// CONCATENATED MODULE: ./src/components/stripe-form/index.module.scss
1277
- // extracted by mini-css-extract-plugin
1278
- /* harmony default export */ const stripe_form_index_module = ({"form":"form___DoT3x","fieldWrapper":"fieldWrapper___wa1Ks","inputWrapper":"inputWrapper___CbXhF","fieldError":"fieldError___QrMYW"});
1279
- ;// CONCATENATED MODULE: ./src/components/stripe-form/index.js
1280
- 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); }
1281
-
1282
- /**
1283
- * Copyright 2020 OpenStack Foundation
1284
- * Licensed under the Apache License, Version 2.0 (the "License");
1285
- * you may not use this file except in compliance with the License.
1286
- * You may obtain a copy of the License at
1287
- * http://www.apache.org/licenses/LICENSE-2.0
1288
- * Unless required by applicable law or agreed to in writing, software
1289
- * distributed under the License is distributed on an "AS IS" BASIS,
1290
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1291
- * See the License for the specific language governing permissions and
1292
- * limitations under the License.
1293
- **/
1294
-
1295
-
1296
-
1297
-
1298
-
1299
-
1300
-
1301
- const stripeErrorCodeMap = {
1302
- 'incomplete_number': {
1303
- field: 'cardNumber',
1304
- message: 'This field is required.'
1305
- },
1306
- 'incorrect_number': {
1307
- field: 'cardNumber'
1308
- },
1309
- 'invalid_number': {
1310
- field: 'cardNumber'
1311
- },
1312
- 'card_declined': {
1313
- field: 'cardNumber'
1314
- },
1315
- 'incomplete_cvc': {
1316
- field: 'cardCvc',
1317
- message: 'This field is required.'
1318
- },
1319
- 'incorrect_cvc': {
1320
- field: 'cardCvc'
1321
- },
1322
- 'invalid_cvc': {
1323
- field: 'cardCvc'
1324
- },
1325
- 'incomplete_expiry': {
1326
- field: 'cardExpiry',
1327
- message: 'This field is required.'
1328
- },
1329
- 'invalid_expiry_month': {
1330
- field: 'cardExpiry'
1331
- },
1332
- 'invalid_expiry_year': {
1333
- field: 'cardExpiry'
1334
- },
1335
- 'expired_card': {
1336
- field: 'cardExpiry'
1337
- }
1338
- };
1339
-
1340
- const StripeForm = ({
1341
- reservation,
1342
- payTicket,
1343
- userProfile,
1344
- marketingData,
1345
- stripeOptions,
1346
- provider
1347
- }) => {
1348
- const stripe = (0,react_stripe_js_namespaceObject.useStripe)();
1349
- const elements = (0,react_stripe_js_namespaceObject.useElements)();
1350
- const [stripeErrors, setStripeErrors] = (0,external_react_namespaceObject.useState)({});
1351
- const {
1352
- register,
1353
- handleSubmit,
1354
- formState: {
1355
- errors
1356
- }
1357
- } = (0,external_react_hook_form_namespaceObject.useForm)();
1358
- const stripeStyle = merge_default()({}, {
1359
- base: {
1360
- // Add your base input styles here. For example: #d4e5f4
1361
- color: marketingData.color_text_dark,
1362
- fontSize: '16px',
1363
- //fontFamily: 'inherit',
1364
- backgroundColor: '#ffffff',
1365
- '::placeholder': {
1366
- color: marketingData.color_text_input_hints
1367
- }
1368
- },
1369
- invalid: {
1370
- color: '#e5424d',
1371
- ':focus': {
1372
- color: '#3486cd'
1373
- }
1374
- }
1375
- }, stripeOptions === null || stripeOptions === void 0 ? void 0 : stripeOptions.style);
1376
-
1377
- const onSubmit = async data => {
1378
- setStripeErrors({});
1379
-
1380
- if (!stripe) {
1381
- // Stripe.js has not loaded yet. Make sure to disable
1382
- // form submission until Stripe.js has loaded.
1383
- return;
1384
- }
1385
-
1386
- const cardElement = elements.getElement(react_stripe_js_namespaceObject.CardNumberElement); // @see https://stripe.com/docs/js/tokens_sources/create_token?type=cardElement
1387
-
1388
- const {
1389
- error,
1390
- token
1391
- } = await stripe.createToken(cardElement, {
1392
- name: `${reservation.owner_first_name} ${reservation.owner_last_name}`,
1393
- address_line1: userProfile.address1 || '',
1394
- address_line2: userProfile.address2 || '',
1395
- address_city: userProfile.locality || '',
1396
- address_state: userProfile.region || '',
1397
- address_zip: data.zipCode,
1398
- address_country: userProfile.country || '',
1399
- email: userProfile.email
1400
- });
1401
-
1402
- if (token) {
1403
- payTicket(provider, {
1404
- token,
1405
- stripe,
1406
- zipCode: data.zipCode
1407
- });
1408
- } else if (error) {
1409
- if (stripeErrorCodeMap[error.code]) {
1410
- setStripeErrors({
1411
- [stripeErrorCodeMap[error.code].field]: stripeErrorCodeMap[error.code].message || error.message
1412
- });
1413
- } else {
1414
- external_sweetalert2_default().fire("Payment error", error.message, "warning");
1415
- }
1416
- }
1417
- };
1418
-
1419
- return /*#__PURE__*/external_react_default().createElement("form", {
1420
- className: stripe_form_index_module.form,
1421
- id: "payment-form",
1422
- onSubmit: handleSubmit(onSubmit)
1423
- }, /*#__PURE__*/external_react_default().createElement("div", {
1424
- className: stripe_form_index_module.fieldWrapper
1425
- }, /*#__PURE__*/external_react_default().createElement("div", {
1426
- className: stripe_form_index_module.inputWrapper
1427
- }, /*#__PURE__*/external_react_default().createElement(react_stripe_js_namespaceObject.CardNumberElement, {
1428
- options: {
1429
- style: stripeStyle,
1430
- placeholder: '1234 1234 1234 1234 *'
1431
- }
1432
- }), /*#__PURE__*/external_react_default().createElement("i", {
1433
- className: "fa fa-credit-card"
1434
- })), stripeErrors.cardNumber && /*#__PURE__*/external_react_default().createElement("div", {
1435
- className: stripe_form_index_module.fieldError
1436
- }, stripeErrors.cardNumber)), /*#__PURE__*/external_react_default().createElement("div", {
1437
- className: stripe_form_index_module.fieldWrapper
1438
- }, /*#__PURE__*/external_react_default().createElement("div", {
1439
- className: stripe_form_index_module.inputWrapper
1440
- }, /*#__PURE__*/external_react_default().createElement(react_stripe_js_namespaceObject.CardExpiryElement, {
1441
- options: {
1442
- style: stripeStyle,
1443
- placeholder: 'MM / YY *'
1444
- }
1445
- })), stripeErrors.cardExpiry && /*#__PURE__*/external_react_default().createElement("div", {
1446
- className: stripe_form_index_module.fieldError
1447
- }, stripeErrors.cardExpiry)), /*#__PURE__*/external_react_default().createElement("div", {
1448
- className: stripe_form_index_module.fieldWrapper
1449
- }, /*#__PURE__*/external_react_default().createElement("div", {
1450
- className: stripe_form_index_module.inputWrapper
1451
- }, /*#__PURE__*/external_react_default().createElement(react_stripe_js_namespaceObject.CardCvcElement, {
1452
- options: {
1453
- style: stripeStyle,
1454
- placeholder: 'CVC *'
1455
- }
1456
- })), stripeErrors.cardCvc && /*#__PURE__*/external_react_default().createElement("div", {
1457
- className: stripe_form_index_module.fieldError
1458
- }, stripeErrors.cardCvc)), /*#__PURE__*/external_react_default().createElement("div", {
1459
- className: stripe_form_index_module.fieldWrapper
1460
- }, /*#__PURE__*/external_react_default().createElement("div", {
1461
- className: stripe_form_index_module.inputWrapper
1462
- }, /*#__PURE__*/external_react_default().createElement("input", _extends({
1463
- type: "text",
1464
- placeholder: "ZIP Code *",
1465
- onChange: e => setZipCode(e.target.value)
1466
- }, register("zipCode", {
1467
- required: true
1468
- })))), errors.zipCode && /*#__PURE__*/external_react_default().createElement("div", {
1469
- className: stripe_form_index_module.fieldError
1470
- }, "This field is required.")));
1471
- };
1472
-
1473
- const stripe_form_mapStateToProps = ({
1474
- registrationLiteState
1475
- }) => ({
1476
- marketingData: registrationLiteState.settings.marketingData
1477
- });
1478
-
1479
- /* harmony default export */ const stripe_form = ((0,external_react_redux_namespaceObject.connect)(stripe_form_mapStateToProps, null)(StripeForm));
1480
- ;// CONCATENATED MODULE: ./src/components/stripe-component/index.js
1481
- /**
1482
- * Copyright 2020 OpenStack Foundation
1483
- * Licensed under the Apache License, Version 2.0 (the "License");
1484
- * you may not use this file except in compliance with the License.
1485
- * You may obtain a copy of the License at
1486
- * http://www.apache.org/licenses/LICENSE-2.0
1487
- * Unless required by applicable law or agreed to in writing, software
1488
- * distributed under the License is distributed on an "AS IS" BASIS,
1489
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1490
- * See the License for the specific language governing permissions and
1491
- * limitations under the License.
1492
- **/
1493
-
1494
-
1495
-
1496
-
1497
-
1498
-
1499
- const stripe_component_StripeProvider = ({
1500
- userProfile,
1501
- reservation,
1502
- payTicket,
1503
- providerKey,
1504
- provider,
1505
- stripeOptions
1506
- }) => {
1507
- const stripePromise = (0,external_react_namespaceObject.useMemo)(() => (0,stripe_js_namespaceObject.loadStripe)(providerKey), [providerKey]);
1508
- const options = {
1509
- fonts: stripeOptions === null || stripeOptions === void 0 ? void 0 : stripeOptions.fonts
1510
- };
1511
- return /*#__PURE__*/external_react_default().createElement(react_stripe_js_namespaceObject.Elements, {
1512
- options: options,
1513
- stripe: stripePromise
1514
- }, /*#__PURE__*/external_react_default().createElement(stripe_form, {
1515
- reservation: reservation,
1516
- payTicket: payTicket,
1517
- userProfile: userProfile,
1518
- stripeOptions: stripeOptions,
1519
- provider: provider
1520
- }));
1521
- };
1522
-
1523
- /* harmony default export */ const stripe_component = (stripe_component_StripeProvider);
1524
- ;// CONCATENATED MODULE: external "react-helmet"
1525
- const external_react_helmet_namespaceObject = require("react-helmet");
1526
- ;// CONCATENATED MODULE: ./src/components/payment/index.js
1527
- function payment_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; }
1528
-
1529
- function payment_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? payment_ownKeys(Object(source), !0).forEach(function (key) { payment_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : payment_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1530
-
1531
- function payment_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; }
1532
-
1533
- /**
1534
- * Copyright 2020 OpenStack Foundation
1535
- * Licensed under the Apache License, Version 2.0 (the "License");
1536
- * you may not use this file except in compliance with the License.
1537
- * You may obtain a copy of the License at
1538
- * http://www.apache.org/licenses/LICENSE-2.0
1539
- * Unless required by applicable law or agreed to in writing, software
1540
- * distributed under the License is distributed on an "AS IS" BASIS,
1541
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1542
- * See the License for the specific language governing permissions and
1543
- * limitations under the License.
1544
- **/
1545
-
1546
-
1547
-
1548
-
1549
-
1550
-
1551
-
1552
-
1553
-
1554
- const PaymentComponent = ({
1555
- isActive,
1556
- userProfile,
1557
- reservation,
1558
- payTicket,
1559
- providerKey,
1560
- provider,
1561
- stripeOptions,
1562
- timestamp
1563
- }) => {
1564
- const [ref, {
1565
- height
1566
- }] = (0,external_react_use_namespaceObject.useMeasure)();
1567
- const toggleAnimation = (0,external_react_spring_namespaceObject.useSpring)({
1568
- config: payment_objectSpread({
1569
- bounce: 0
1570
- }, external_react_spring_namespaceObject.config.stiff),
1571
- from: {
1572
- opacity: 0,
1573
- height: 0
1574
- },
1575
- to: {
1576
- opacity: 1,
1577
- height: isActive ? height + 10 : 0,
1578
- marginBottom: isActive ? 5 : 0
1579
- }
1580
- });
1581
- return /*#__PURE__*/external_react_default().createElement("div", {
1582
- className: `${payment_index_module.outerWrapper} step-wrapper`
1583
- }, /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("div", {
1584
- className: `${payment_index_module.innerWrapper}`
1585
- }, /*#__PURE__*/external_react_default().createElement("div", {
1586
- className: payment_index_module.title
1587
- }, /*#__PURE__*/external_react_default().createElement("span", null, "Payment")), /*#__PURE__*/external_react_default().createElement(external_react_spring_namespaceObject.animated.div, {
1588
- style: payment_objectSpread({
1589
- overflow: `${isActive ? '' : 'hidden'}`
1590
- }, toggleAnimation)
1591
- }, /*#__PURE__*/external_react_default().createElement("div", {
1592
- ref: ref
1593
- }, provider === 'Stripe' && /*#__PURE__*/external_react_default().createElement(stripe_component, {
1594
- provider: provider,
1595
- providerKey: providerKey,
1596
- reservation: reservation,
1597
- payTicket: payTicket,
1598
- userProfile: userProfile,
1599
- stripeOptions: stripeOptions
1600
- }), provider === 'LawPay' && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement(external_react_helmet_namespaceObject.Helmet, null, /*#__PURE__*/external_react_default().createElement("script", {
1601
- src: "https://cdn.affinipay.com/hostedfields/1.1.1/fieldGen_1.1.1.js"
1602
- })), /*#__PURE__*/external_react_default().createElement(lawpay_form, {
1603
- provider: provider,
1604
- reservation: reservation,
1605
- payTicket: payTicket,
1606
- userProfile: userProfile,
1607
- providerKey: providerKey,
1608
- timestamp: timestamp
1609
- })))))));
1610
- };
1611
-
1612
- /* harmony default export */ const payment = (PaymentComponent);
1613
- ;// CONCATENATED MODULE: external "react-tooltip"
1614
- const external_react_tooltip_namespaceObject = require("react-tooltip");
1615
- var external_react_tooltip_default = /*#__PURE__*/__webpack_require__.n(external_react_tooltip_namespaceObject);
1616
- ;// CONCATENATED MODULE: ./src/helpers/capitalizeFirstLetter.js
1617
- const capitalizeFirstLetter = string => string.charAt(0).toUpperCase() + string.slice(1);
1618
- ;// CONCATENATED MODULE: ./src/helpers/formatErrorMessage.js
1619
-
1620
- const formatErrorMessage = string => {
1621
- const errorMessage = capitalizeFirstLetter(string);
1622
- return `${errorMessage}${errorMessage.endsWith('.') ? '' : '.'}`;
1623
- };
1624
- ;// CONCATENATED MODULE: ./src/components/personal-information/index.module.scss
1625
- // extracted by mini-css-extract-plugin
1626
- /* harmony default export */ const personal_information_index_module = ({"title":"title___ECoNz","form":"form___lDFka","fieldWrapper":"fieldWrapper___Mi_nL","inputWrapper":"inputWrapper___PEQFR","readOnly":"readOnly___WRazF","fieldError":"fieldError___ksJVe","companies":"companies___kmGFB","moreInfo":"moreInfo___cQYdZ","moreInfoTooltip":"moreInfoTooltip___lslgT","ticketQuantityNotice":"ticketQuantityNotice___L6gis","formErrors":"formErrors___dQQMe"});
1627
- ;// CONCATENATED MODULE: ./src/components/personal-information/index.js
1628
- function personal_information_extends() { personal_information_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 personal_information_extends.apply(this, arguments); }
1629
-
1630
- function personal_information_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; }
1631
-
1632
- function personal_information_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? personal_information_ownKeys(Object(source), !0).forEach(function (key) { personal_information_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : personal_information_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1633
-
1634
- function personal_information_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; }
1635
-
1636
- /**
1637
- * Copyright 2020 OpenStack Foundation
1638
- * Licensed under the Apache License, Version 2.0 (the "License");
1639
- * you may not use this file except in compliance with the License.
1640
- * You may obtain a copy of the License at
1641
- * http://www.apache.org/licenses/LICENSE-2.0
1642
- * Unless required by applicable law or agreed to in writing, software
1643
- * distributed under the License is distributed on an "AS IS" BASIS,
1644
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1645
- * See the License for the specific language governing permissions and
1646
- * limitations under the License.
1647
- **/
1648
-
1649
-
1650
-
1651
-
1652
-
1653
-
1654
-
1655
-
1656
-
1657
- const PersonalInfoComponent = ({
1658
- isActive,
1659
- changeForm,
1660
- reservation,
1661
- userProfile,
1662
- summitId,
1663
- handleCompanyError,
1664
- formValues,
1665
- formErrors
1666
- }) => {
1667
- var _errors$email, _errors$email2;
1668
-
1669
- const [personalInfo, setPersonalInfo] = (0,external_react_namespaceObject.useState)({
1670
- firstName: userProfile.given_name || '',
1671
- lastName: userProfile.family_name || '',
1672
- email: userProfile.email || '',
1673
- company: {
1674
- id: null,
1675
- name: ''
1676
- },
1677
- promoCode: ''
1678
- });
1679
- const [companyError, setCompanyError] = (0,external_react_namespaceObject.useState)(false);
1680
- const {
1681
- register,
1682
- handleSubmit,
1683
- formState: {
1684
- errors
1685
- }
1686
- } = (0,external_react_hook_form_namespaceObject.useForm)();
1687
- (0,external_react_namespaceObject.useEffect)(() => {
1688
- if (reservation) {
1689
- setPersonalInfo({
1690
- firstName: reservation.owner_first_name ? reservation.owner_first_name : personalInfo.firstName,
1691
- lastName: reservation.owner_last_name ? reservation.owner_last_name : personalInfo.lastName,
1692
- email: reservation.owner_email ? reservation.owner_email : personalInfo.email,
1693
- company: {
1694
- id: null,
1695
- name: reservation.owner_company ? reservation.owner_company : personalInfo.company
1696
- }
1697
- });
1698
- }
1699
- }, []);
1700
-
1701
- const onCompanyChange = ev => {
1702
- const newCompany = ev.target.value;
1703
- setCompanyError(false);
1704
- setPersonalInfo(personal_information_objectSpread(personal_information_objectSpread({}, personalInfo), {}, {
1705
- company: newCompany
1706
- }));
1707
- };
1708
-
1709
- const onSubmit = data => {
1710
- if (!personalInfo.company.name) {
1711
- setCompanyError(true);
1712
- return;
1713
- }
1714
-
1715
- setPersonalInfo(personal_information_objectSpread(personal_information_objectSpread({}, personalInfo), data));
1716
- changeForm(personal_information_objectSpread(personal_information_objectSpread({}, personalInfo), data));
1717
- };
1718
-
1719
- const [ref, {
1720
- height
1721
- }] = (0,external_react_use_namespaceObject.useMeasure)();
1722
- const toggleAnimation = (0,external_react_spring_namespaceObject.useSpring)({
1723
- config: personal_information_objectSpread({
1724
- bounce: 0
1725
- }, external_react_spring_namespaceObject.config.stiff),
1726
- from: {
1727
- opacity: 0,
1728
- height: 0
1729
- },
1730
- to: {
1731
- opacity: 1,
1732
- height: isActive ? height + 10 : 0
1733
- }
1734
- });
1735
- const customStyles = {
1736
- menuList: provided => personal_information_objectSpread(personal_information_objectSpread({}, provided), {}, {
1737
- maxHeight: 120
1738
- })
1739
- };
1740
- return /*#__PURE__*/external_react_default().createElement("div", {
1741
- className: `${personal_information_index_module.outerWrapper} step-wrapper`
1742
- }, /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("div", {
1743
- className: `${personal_information_index_module.innerWrapper}`
1744
- }, /*#__PURE__*/external_react_default().createElement("div", {
1745
- className: personal_information_index_module.title
1746
- }, /*#__PURE__*/external_react_default().createElement("span", null, "Personal Information"), !isActive && /*#__PURE__*/external_react_default().createElement("div", {
1747
- "data-testid": "personal-info"
1748
- }, /*#__PURE__*/external_react_default().createElement("span", null, `${personalInfo.firstName} ${personalInfo.lastName} ${personalInfo.company.name ? `- ${personalInfo.company.name}` : ''}`), /*#__PURE__*/external_react_default().createElement("br", null), /*#__PURE__*/external_react_default().createElement("span", null, personalInfo.email))), /*#__PURE__*/external_react_default().createElement(external_react_spring_namespaceObject.animated.div, {
1749
- style: personal_information_objectSpread({
1750
- overflow: `${isActive ? '' : 'hidden'}`
1751
- }, toggleAnimation)
1752
- }, /*#__PURE__*/external_react_default().createElement("div", {
1753
- ref: ref
1754
- }, formValues.ticketQuantity > 1 && /*#__PURE__*/external_react_default().createElement("div", {
1755
- className: `${personal_information_index_module.ticketQuantityNotice} alert alert-info`
1756
- }, "Please note that 1 ticket from this order will be automatically assigned to you; the rest will remain unassigned, with the option to re-assign all tickets after purchase."), /*#__PURE__*/external_react_default().createElement("form", {
1757
- id: "personal-info-form",
1758
- onSubmit: handleSubmit(onSubmit),
1759
- className: personal_information_index_module.form,
1760
- "data-testid": "personal-form"
1761
- }, /*#__PURE__*/external_react_default().createElement("div", {
1762
- className: personal_information_index_module.fieldWrapper
1763
- }, /*#__PURE__*/external_react_default().createElement("div", {
1764
- className: personal_information_index_module.inputWrapper
1765
- }, /*#__PURE__*/external_react_default().createElement("input", personal_information_extends({
1766
- type: "text",
1767
- placeholder: "First name *",
1768
- defaultValue: personalInfo.firstName || ''
1769
- }, register("firstName", {
1770
- required: true,
1771
- maxLength: 80
1772
- }), {
1773
- "data-testid": "first-name"
1774
- }))), errors.firstName && /*#__PURE__*/external_react_default().createElement("div", {
1775
- className: personal_information_index_module.fieldError,
1776
- "data-testid": "first-name-error"
1777
- }, "This field is required.")), /*#__PURE__*/external_react_default().createElement("div", {
1778
- className: personal_information_index_module.fieldWrapper
1779
- }, /*#__PURE__*/external_react_default().createElement("div", {
1780
- className: personal_information_index_module.inputWrapper
1781
- }, /*#__PURE__*/external_react_default().createElement("input", personal_information_extends({
1782
- type: "text",
1783
- placeholder: "Last name *",
1784
- defaultValue: personalInfo.lastName || ''
1785
- }, register("lastName", {
1786
- required: true,
1787
- maxLength: 100
1788
- }), {
1789
- "data-testid": "last-name"
1790
- }))), errors.lastName && /*#__PURE__*/external_react_default().createElement("div", {
1791
- className: personal_information_index_module.fieldError,
1792
- "data-testid": "last-name-error"
1793
- }, "This field is required.")), /*#__PURE__*/external_react_default().createElement("div", {
1794
- className: personal_information_index_module.fieldWrapper
1795
- }, /*#__PURE__*/external_react_default().createElement("div", {
1796
- className: personal_information_index_module.inputWrapper
1797
- }, /*#__PURE__*/external_react_default().createElement("input", personal_information_extends({
1798
- type: "text",
1799
- placeholder: "Email *",
1800
- className: personal_information_index_module.readOnly,
1801
- readOnly: true,
1802
- defaultValue: personalInfo.email || ''
1803
- }, register("email", {
1804
- required: true,
1805
- pattern: /^\S+@\S+$/i
1806
- }), {
1807
- "data-testid": "email"
1808
- }))), ((_errors$email = errors.email) === null || _errors$email === void 0 ? void 0 : _errors$email.type) === 'required' && /*#__PURE__*/external_react_default().createElement("div", {
1809
- className: personal_information_index_module.fieldError,
1810
- "data-testid": "email-error-required"
1811
- }, "This field is required."), ((_errors$email2 = errors.email) === null || _errors$email2 === void 0 ? void 0 : _errors$email2.type) === 'pattern' && /*#__PURE__*/external_react_default().createElement("div", {
1812
- className: personal_information_index_module.fieldError,
1813
- "data-testid": "email-error-invalid"
1814
- }, "The email is invalid.")), /*#__PURE__*/external_react_default().createElement("div", {
1815
- className: personal_information_index_module.fieldWrapper
1816
- }, /*#__PURE__*/external_react_default().createElement("div", {
1817
- className: personal_information_index_module.companies
1818
- }, /*#__PURE__*/external_react_default().createElement(components_namespaceObject.RegistrationCompanyInput, {
1819
- id: "company",
1820
- styles: customStyles,
1821
- summitId: summitId,
1822
- onChange: onCompanyChange,
1823
- onError: handleCompanyError,
1824
- value: personalInfo.company
1825
- }), companyError && /*#__PURE__*/external_react_default().createElement("div", {
1826
- className: personal_information_index_module.fieldError,
1827
- "data-testid": "company-error"
1828
- }, "This field is required."))), /*#__PURE__*/external_react_default().createElement("div", {
1829
- className: personal_information_index_module.fieldWrapper
1830
- }, /*#__PURE__*/external_react_default().createElement("div", {
1831
- className: personal_information_index_module.inputWrapper
1832
- }, /*#__PURE__*/external_react_default().createElement("input", personal_information_extends({
1833
- type: "text",
1834
- placeholder: "Promo Code"
1835
- }, register("promoCode")))))), /*#__PURE__*/external_react_default().createElement("a", {
1836
- className: personal_information_index_module.moreInfo,
1837
- "data-tip": true,
1838
- "data-for": "promo-code-info"
1839
- }, /*#__PURE__*/external_react_default().createElement("i", {
1840
- className: "glyphicon glyphicon-info-sign",
1841
- "aria-hidden": "true"
1842
- }), ` `, "Have multiple promo codes?"), /*#__PURE__*/external_react_default().createElement((external_react_tooltip_default()), {
1843
- id: "promo-code-info"
1844
- }, /*#__PURE__*/external_react_default().createElement("div", {
1845
- className: personal_information_index_module.moreInfoTooltip
1846
- }, "Promo code will be applied to all tickets in this order. If you wish to utilize more than one promo code, simply place another order after you complete this registration order. Only one promo code can be applied per order.")), formErrors.length > 0 && /*#__PURE__*/external_react_default().createElement("div", {
1847
- className: `${personal_information_index_module.formErrors} alert alert-danger`
1848
- }, formErrors.map((error, index) => /*#__PURE__*/external_react_default().createElement("div", {
1849
- key: index
1850
- }, formatErrorMessage(error)))))))));
1851
- };
1852
-
1853
- /* harmony default export */ const personal_information = (PersonalInfoComponent);
1854
- ;// CONCATENATED MODULE: external "openstack-uicore-foundation/lib/components/raw-html"
1855
- const raw_html_namespaceObject = require("openstack-uicore-foundation/lib/components/raw-html");
1856
- var raw_html_default = /*#__PURE__*/__webpack_require__.n(raw_html_namespaceObject);
1857
- ;// CONCATENATED MODULE: ./src/components/ticket-type/index.module.scss
1858
- // extracted by mini-css-extract-plugin
1859
- /* 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"});
1860
- ;// CONCATENATED MODULE: ./src/helpers/getTicketMaxQuantity.js
1861
- 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;
1862
- ;// CONCATENATED MODULE: ./src/components/ticket-dropdown/index.module.scss
1863
- // extracted by mini-css-extract-plugin
1864
- /* harmony default export */ const ticket_dropdown_index_module = ({"placeholder":"placeholder___pcdCn","inPersonDisclaimer":"inPersonDisclaimer___z_DzO","dropdown":"dropdown___mfbPG","soldOut":"soldOut___rBLC0"});
1865
- ;// CONCATENATED MODULE: ./src/components/ticket-dropdown/index.js
1866
- /**
1867
- * Copyright 2020 OpenStack Foundation
1868
- * Licensed under the Apache License, Version 2.0 (the "License");
1869
- * you may not use this file except in compliance with the License.
1870
- * You may obtain a copy of the License at
1871
- * http://www.apache.org/licenses/LICENSE-2.0
1872
- * Unless required by applicable law or agreed to in writing, software
1873
- * distributed under the License is distributed on an "AS IS" BASIS,
1874
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1875
- * See the License for the specific language governing permissions and
1876
- * limitations under the License.
1877
- **/
1878
-
1879
-
1880
-
1881
-
1882
-
1883
- const TicketDropdownComponent = ({
1884
- selectedTicket,
1885
- ticketTypes,
1886
- onTicketSelect
1887
- }) => {
1888
- const [active, setActive] = (0,external_react_namespaceObject.useState)(false);
1889
-
1890
- const ticketSelect = ticket => {
1891
- onTicketSelect(ticket);
1892
- setActive(!active);
1893
- };
1894
-
1895
- const date = new Date();
1896
- let now_utc = Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds()) / 1000;
1897
- return /*#__PURE__*/external_react_default().createElement("div", {
1898
- className: `${ticket_dropdown_index_module.outerWrapper}`
1899
- }, /*#__PURE__*/external_react_default().createElement("div", {
1900
- className: ticket_dropdown_index_module.placeholder,
1901
- onClick: () => setActive(!active),
1902
- "data-testid": "ticket-dropdown"
1903
- }, selectedTicket ? /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("span", {
1904
- "data-testid": "selected-ticket"
1905
- }, `${selectedTicket.name} - $${selectedTicket.cost} ${selectedTicket.currency}`), /*#__PURE__*/external_react_default().createElement("i", {
1906
- className: "fa fa-chevron-down"
1907
- })) : /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("span", {
1908
- "data-testid": "no-ticket"
1909
- }, "Select a ticket"), /*#__PURE__*/external_react_default().createElement("i", {
1910
- className: "fa fa-chevron-down"
1911
- }))), active && /*#__PURE__*/external_react_default().createElement("div", {
1912
- className: ticket_dropdown_index_module.dropdown,
1913
- "data-testid": "ticket-list"
1914
- }, ticketTypes.map(t => {
1915
- const maxQuantity = getTicketMaxQuantity(t);
1916
- const isTicketSoldOut = maxQuantity < 1;
1917
-
1918
- if (t.sales_start_date === null && t.sales_end_date === null || now_utc >= t.sales_start_date && now_utc <= t.sales_end_date) {
1919
- return /*#__PURE__*/external_react_default().createElement("div", {
1920
- key: t.id,
1921
- className: isTicketSoldOut ? ticket_dropdown_index_module.soldOut : '',
1922
- onClick: () => {
1923
- if (isTicketSoldOut) return;
1924
- ticketSelect(t);
1925
- }
1926
- }, 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"));
1927
- }
1928
- })));
1929
- };
1930
-
1931
- /* harmony default export */ const ticket_dropdown = (TicketDropdownComponent);
1932
- ;// CONCATENATED MODULE: ./src/helpers/formatCurrency.js
1933
- const _excluded = ["locale"];
1934
-
1935
- 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; }
1936
-
1937
- 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; }
1938
-
1939
- 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; }
1940
-
1941
- 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; }
1942
-
1943
- 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; }
1944
-
1945
- const formatCurrency = (value, _ref) => {
1946
- let {
1947
- locale = 'en-US'
1948
- } = _ref,
1949
- options = _objectWithoutProperties(_ref, _excluded);
1950
-
1951
- const defaultOptions = {
1952
- currency: 'USD',
1953
- minimumFractionDigits: 0,
1954
- maximumFractionDigits: 0
1955
- };
1956
- const formatter = new Intl.NumberFormat(locale, formatCurrency_objectSpread(formatCurrency_objectSpread({
1957
- style: 'currency'
1958
- }, defaultOptions), options));
1959
- return formatter.format(value);
1960
- };
1961
- ;// CONCATENATED MODULE: ./src/components/ticket-type/index.js
1962
- 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; }
1963
-
1964
- function ticket_type_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ticket_type_ownKeys(Object(source), !0).forEach(function (key) { ticket_type_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ticket_type_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1965
-
1966
- function ticket_type_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; }
1967
-
1968
- /**
1969
- * Copyright 2020 OpenStack Foundation
1970
- * Licensed under the Apache License, Version 2.0 (the "License");
1971
- * you may not use this file except in compliance with the License.
1972
- * You may obtain a copy of the License at
1973
- * http://www.apache.org/licenses/LICENSE-2.0
1974
- * Unless required by applicable law or agreed to in writing, software
1975
- * distributed under the License is distributed on an "AS IS" BASIS,
1976
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1977
- * See the License for the specific language governing permissions and
1978
- * limitations under the License.
1979
- **/
1980
-
1981
-
1982
-
1983
-
1984
-
1985
-
1986
-
1987
-
1988
-
1989
-
1990
-
1991
- const TicketTypeComponent = ({
1992
- ticketTypes,
1993
- isActive,
1994
- changeForm,
1995
- reservation,
1996
- inPersonDisclaimer
1997
- }) => {
1998
- const [ticket, setTicket] = (0,external_react_namespaceObject.useState)(null);
1999
- const [quantity, setQuantity] = (0,external_react_namespaceObject.useState)(1);
2000
- const minQuantity = 1;
2001
- const maxQuantity = getTicketMaxQuantity(ticket);
2002
- const [ref, {
2003
- height
2004
- }] = (0,external_react_use_namespaceObject.useMeasure)();
2005
- const toggleAnimation = (0,external_react_spring_namespaceObject.useSpring)({
2006
- config: ticket_type_objectSpread({
2007
- bounce: 0
2008
- }, external_react_spring_namespaceObject.config.stiff),
2009
- from: {
2010
- opacity: 0,
2011
- height: 0
2012
- },
2013
- to: {
2014
- opacity: 1,
2015
- height: isActive ? height + 10 : 0
2016
- }
2017
- });
2018
- (0,external_react_namespaceObject.useEffect)(() => {
2019
- var _reservation$tickets;
2020
-
2021
- if (reservation && ((_reservation$tickets = reservation.tickets) === null || _reservation$tickets === void 0 ? void 0 : _reservation$tickets.length) > 0) {
2022
- setTicket(ticketTypes.find(t => t.id === reservation.tickets[0].ticket_type_id));
2023
- }
2024
- }, []);
2025
- (0,external_react_namespaceObject.useEffect)(() => {
2026
- changeForm({
2027
- ticketType: ticket,
2028
- ticketQuantity: quantity
2029
- });
2030
- }, [ticket, quantity]);
2031
-
2032
- const handleTicketChange = t => {
2033
- setTicket(t);
2034
- setQuantity(minQuantity);
2035
- };
2036
-
2037
- const incrementQuantity = () => setQuantity(quantity + 1);
2038
-
2039
- const decrementQuantity = () => setQuantity(quantity - 1);
2040
-
2041
- return /*#__PURE__*/external_react_default().createElement("div", {
2042
- className: `${ticket_type_index_module.outerWrapper} step-wrapper`
2043
- }, /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("div", {
2044
- className: ticket_type_index_module.innerWrapper
2045
- }, /*#__PURE__*/external_react_default().createElement("div", {
2046
- className: ticket_type_index_module.title
2047
- }, /*#__PURE__*/external_react_default().createElement("span", null, "Ticket"), /*#__PURE__*/external_react_default().createElement("div", {
2048
- className: ticket_type_index_module.summary
2049
- }, /*#__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", {
2050
- className: ticket_type_index_module.crossOut
2051
- }, formatCurrency(ticket.cost * quantity, {
2052
- currency: ticket.currency
2053
- })), ` `, /*#__PURE__*/external_react_default().createElement("span", {
2054
- className: ticket_type_index_module.discount
2055
- }, formatCurrency(reservation.raw_amount - reservation.discount_amount, {
2056
- currency: ticket.currency
2057
- })), ` `), !(reservation !== null && reservation !== void 0 && reservation.discount_amount) && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, formatCurrency(ticket.cost * quantity, {
2058
- currency: ticket.currency
2059
- }), ` `), ticket.currency, !isActive && (reservation === null || reservation === void 0 ? void 0 : reservation.discount_amount) > 0 && /*#__PURE__*/external_react_default().createElement("span", {
2060
- className: ticket_type_index_module.promo
2061
- }, "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, {
2062
- style: ticket_type_objectSpread({
2063
- overflow: 'hidden'
2064
- }, toggleAnimation)
2065
- }, /*#__PURE__*/external_react_default().createElement("div", {
2066
- ref: ref
2067
- }, /*#__PURE__*/external_react_default().createElement("div", {
2068
- className: ticket_type_index_module.form
2069
- }, /*#__PURE__*/external_react_default().createElement("div", {
2070
- className: ticket_type_index_module.dropdown
2071
- }, /*#__PURE__*/external_react_default().createElement(ticket_dropdown, {
2072
- selectedTicket: ticket,
2073
- ticketTypes: ticketTypes,
2074
- onTicketSelect: handleTicketChange
2075
- })), ticket && /*#__PURE__*/external_react_default().createElement("div", {
2076
- className: ticket_type_index_module.quantity
2077
- }, /*#__PURE__*/external_react_default().createElement("div", {
2078
- className: "input-group"
2079
- }, /*#__PURE__*/external_react_default().createElement("span", {
2080
- className: "input-group-btn"
2081
- }, /*#__PURE__*/external_react_default().createElement("button", {
2082
- "aria-label": "remove a ticket",
2083
- className: "btn btn-default",
2084
- onClick: decrementQuantity,
2085
- disabled: maxQuantity === 0 || quantity === minQuantity
2086
- }, /*#__PURE__*/external_react_default().createElement("i", {
2087
- className: "fa fa-minus"
2088
- }))), /*#__PURE__*/external_react_default().createElement("input", {
2089
- className: "form-control",
2090
- "aria-label": "ticket quanity",
2091
- name: "ticket_quantity",
2092
- type: "text",
2093
- value: quantity,
2094
- readOnly: true,
2095
- disabled: maxQuantity === 0
2096
- }), /*#__PURE__*/external_react_default().createElement("span", {
2097
- className: "input-group-btn"
2098
- }, /*#__PURE__*/external_react_default().createElement("button", {
2099
- "aria-label": "add a ticket",
2100
- className: "btn btn-default",
2101
- onClick: incrementQuantity,
2102
- disabled: maxQuantity === 0 || quantity >= maxQuantity
2103
- }, /*#__PURE__*/external_react_default().createElement("i", {
2104
- className: "glyphicon glyphicon-plus"
2105
- })))))), /*#__PURE__*/external_react_default().createElement("a", {
2106
- className: ticket_type_index_module.moreInfo,
2107
- "data-tip": true,
2108
- "data-for": "ticket-quantity-info"
2109
- }, /*#__PURE__*/external_react_default().createElement("i", {
2110
- className: "glyphicon glyphicon-info-sign",
2111
- "aria-hidden": "true"
2112
- }), ` `, "Need multiple ticket types?"), /*#__PURE__*/external_react_default().createElement((external_react_tooltip_default()), {
2113
- id: "ticket-quantity-info"
2114
- }, /*#__PURE__*/external_react_default().createElement("div", {
2115
- className: ticket_type_index_module.moreInfoTooltip
2116
- }, "To purchase more than one ticket type, simply place another order after this registration order is complete. Only one ticket type can be chosen per order.")))), inPersonDisclaimer && ticket && isInPersonTicketType(ticket) && /*#__PURE__*/external_react_default().createElement("div", {
2117
- className: ticket_type_index_module.inPersonDisclaimer
2118
- }, /*#__PURE__*/external_react_default().createElement((raw_html_default()), null, inPersonDisclaimer)))));
2119
- };
2120
-
2121
- /* harmony default export */ const ticket_type = (TicketTypeComponent);
2122
- ;// CONCATENATED MODULE: ./src/components/button-bar/index.module.scss
2123
- // extracted by mini-css-extract-plugin
2124
- /* harmony default export */ const button_bar_index_module = ({"button":"button___MZBIY","outerWrapper":"outerWrapper___XRnaq","innerWrapper":"innerWrapper___LFsOH","registration":"registration___jdf6T","actions":"actions___Gsf0y"});
2125
- ;// CONCATENATED MODULE: ./src/components/button-bar/index.js
2126
- /**
2127
- * Copyright 2020 OpenStack Foundation
2128
- * Licensed under the Apache License, Version 2.0 (the "License");
2129
- * you may not use this file except in compliance with the License.
2130
- * You may obtain a copy of the License at
2131
- * http://www.apache.org/licenses/LICENSE-2.0
2132
- * Unless required by applicable law or agreed to in writing, software
2133
- * distributed under the License is distributed on an "AS IS" BASIS,
2134
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2135
- * See the License for the specific language governing permissions and
2136
- * limitations under the License.
2137
- **/
2138
-
2139
-
2140
-
2141
-
2142
- const ButtonBarComponent = ({
2143
- step,
2144
- changeStep,
2145
- formValues,
2146
- removeReservedTicket,
2147
- inPersonDisclaimer
2148
- }) => {
2149
- const {
2150
- ticketType
2151
- } = formValues || {};
2152
- const nextButtonText = inPersonDisclaimer && ticketType && isInPersonTicketType(ticketType) ? 'Accept' : 'Next';
2153
- return /*#__PURE__*/external_react_default().createElement("div", {
2154
- className: `${button_bar_index_module.outerWrapper}`
2155
- }, step !== 3 && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("div", {
2156
- className: `${button_bar_index_module.innerWrapper}`
2157
- }, /*#__PURE__*/external_react_default().createElement("div", {
2158
- className: button_bar_index_module.required
2159
- }, step !== 0 && /*#__PURE__*/external_react_default().createElement("span", null, "* Required fields ", /*#__PURE__*/external_react_default().createElement("br", null), " ")), /*#__PURE__*/external_react_default().createElement("div", {
2160
- className: button_bar_index_module.actions
2161
- }, step !== 0 && step !== 2 && /*#__PURE__*/external_react_default().createElement("button", {
2162
- className: `${button_bar_index_module.button} button`,
2163
- onClick: () => changeStep(step - 1)
2164
- }, "< Back"), step !== 0 && step === 2 && /*#__PURE__*/external_react_default().createElement("button", {
2165
- className: `${button_bar_index_module.button} button`,
2166
- onClick: () => removeReservedTicket()
2167
- }, "< Back"), step === 0 && /*#__PURE__*/external_react_default().createElement("button", {
2168
- disabled: !ticketType,
2169
- className: `${button_bar_index_module.button} button`,
2170
- onClick: () => changeStep(step + 1)
2171
- }, nextButtonText), step === 1 && (ticketType === null || ticketType === void 0 ? void 0 : ticketType.cost) === 0 && /*#__PURE__*/external_react_default().createElement("button", {
2172
- className: `${button_bar_index_module.button} button`,
2173
- type: "submit",
2174
- form: "personal-info-form"
2175
- }, "Get Ticket"), step === 1 && (ticketType === null || ticketType === void 0 ? void 0 : ticketType.cost) > 0 && /*#__PURE__*/external_react_default().createElement("button", {
2176
- className: `${button_bar_index_module.button} button`,
2177
- type: "submit",
2178
- form: "personal-info-form"
2179
- }, "Next"), step === 2 && /*#__PURE__*/external_react_default().createElement("button", {
2180
- className: `${button_bar_index_module.button} button`,
2181
- type: "submit",
2182
- form: "payment-form"
2183
- }, "Pay Now")))));
2184
- };
2185
-
2186
- /* harmony default export */ const button_bar = (ButtonBarComponent);
2187
- ;// CONCATENATED MODULE: ./src/components/purchase-complete/index.module.scss
2188
- // extracted by mini-css-extract-plugin
2189
- /* 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"});
2190
- ;// CONCATENATED MODULE: ./src/components/purchase-complete/index.js
2191
- /**
2192
- * Copyright 2020 OpenStack Foundation
2193
- * Licensed under the Apache License, Version 2.0 (the "License");
2194
- * you may not use this file except in compliance with the License.
2195
- * You may obtain a copy of the License at
2196
- * http://www.apache.org/licenses/LICENSE-2.0
2197
- * Unless required by applicable law or agreed to in writing, software
2198
- * distributed under the License is distributed on an "AS IS" BASIS,
2199
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2200
- * See the License for the specific language governing permissions and
2201
- * limitations under the License.
2202
- **/
2203
-
2204
-
2205
-
2206
-
2207
- const PurchaseComplete = ({
2208
- checkout,
2209
- onPurchaseComplete,
2210
- goToExtraQuestions,
2211
- goToEvent,
2212
- summit,
2213
- supportEmail = "support@fntech.com"
2214
- }) => {
2215
- (0,external_react_namespaceObject.useEffect)(() => {
2216
- onPurchaseComplete(checkout);
2217
- }, []);
2218
- const date = new Date();
2219
- let now_utc = Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds()) / 1000;
2220
- const isActive = summit.start_date < now_utc && summit.end_date > now_utc;
2221
- const startDateFormatted = {
2222
- date: (0,methods_namespaceObject.epochToMomentTimeZone)(summit.start_date, summit.time_zone_id).format('MMMM D'),
2223
- time: (0,methods_namespaceObject.epochToMomentTimeZone)(summit.start_date, summit.time_zone_id).format('HH:mm')
2224
- };
2225
-
2226
- const needExtraQuestions = () => {
2227
- return summit.order_extra_questions.some(q => q.mandatory === true) ? true : false;
2228
- };
2229
-
2230
- return /*#__PURE__*/external_react_default().createElement("div", {
2231
- className: purchase_complete_index_module.wrapper
2232
- }, /*#__PURE__*/external_react_default().createElement("div", {
2233
- className: purchase_complete_index_module.circle
2234
- }, /*#__PURE__*/external_react_default().createElement("i", {
2235
- className: "fa fa-ticket"
2236
- })), /*#__PURE__*/external_react_default().createElement("span", {
2237
- className: purchase_complete_index_module.complete
2238
- }, "Your order is complete"), isActive ? needExtraQuestions() ? /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("span", null, "This ticket requires additional details. ", /*#__PURE__*/external_react_default().createElement("br", null)), /*#__PURE__*/external_react_default().createElement("button", {
2239
- className: `${purchase_complete_index_module.button} button`,
2240
- onClick: () => goToExtraQuestions()
2241
- }, "Finish now")) : /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("button", {
2242
- className: `${purchase_complete_index_module.button} button`,
2243
- onClick: () => goToEvent()
2244
- }, "Access event now")) : /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("span", null, "The event will start on ", startDateFormatted.date, " at ", startDateFormatted.time, " ", summit.time_zone_label, " ", /*#__PURE__*/external_react_default().createElement("br", null), "This ticket requires additional details."), /*#__PURE__*/external_react_default().createElement("div", {
2245
- className: purchase_complete_index_module.actions
2246
- }, /*#__PURE__*/external_react_default().createElement("button", {
2247
- className: `${purchase_complete_index_module.button} button`,
2248
- onClick: () => goToExtraQuestions()
2249
- }, "Finish Now"))), /*#__PURE__*/external_react_default().createElement("span", {
2250
- className: purchase_complete_index_module.footer
2251
- }, "For further assistance, please email ", /*#__PURE__*/external_react_default().createElement("a", {
2252
- href: `mailto:${supportEmail}`
2253
- }, supportEmail)));
2254
- };
2255
-
2256
- /* harmony default export */ const purchase_complete = (PurchaseComplete);
2257
- ;// CONCATENATED MODULE: external "react-otp-input"
2258
- const external_react_otp_input_namespaceObject = require("react-otp-input");
2259
- var external_react_otp_input_default = /*#__PURE__*/__webpack_require__.n(external_react_otp_input_namespaceObject);
2260
- ;// CONCATENATED MODULE: ./src/components/login-passwordless/index.module.scss
2261
- // extracted by mini-css-extract-plugin
2262
- /* harmony default export */ const login_passwordless_index_module = ({"passwordlessWrapper":"passwordlessWrapper___BRQ_s","innerWrapper":"innerWrapper___nRLDi","digits":"digits___Vu5iy","codeInput":"codeInput___LnTZe","error":"error___wZflZ","verify":"verify___IBgMl","button":"button___nBhtQ","link":"link___f6fDT","resend":"resend___Nma1U"});
2263
- ;// CONCATENATED MODULE: ./src/components/login-passwordless/index.js
2264
- /**
2265
- * Copyright 2020 OpenStack Foundation
2266
- * Licensed under the Apache License, Version 2.0 (the "License");
2267
- * you may not use this file except in compliance with the License.
2268
- * You may obtain a copy of the License at
2269
- * http://www.apache.org/licenses/LICENSE-2.0
2270
- * Unless required by applicable law or agreed to in writing, software
2271
- * distributed under the License is distributed on an "AS IS" BASIS,
2272
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2273
- * See the License for the specific language governing permissions and
2274
- * limitations under the License.
2275
- **/
2276
-
2277
-
2278
-
2279
-
2280
-
2281
- const PasswordlessLoginComponent = ({
2282
- email,
2283
- codeLength,
2284
- passwordlessLogin,
2285
- loginWithCode,
2286
- codeError,
2287
- goToLogin,
2288
- getLoginCode,
2289
- getPasswordlessCode
2290
- }) => {
2291
- const [otpCode, setOtpCode] = (0,external_react_namespaceObject.useState)('');
2292
- const [otpError, setOtpError] = (0,external_react_namespaceObject.useState)(false);
2293
-
2294
- const tryPasswordlessLogin = code => {
2295
- if (code.length === codeLength) {
2296
- setOtpError(false);
2297
- passwordlessLogin(otpCode, loginWithCode);
2298
- } else {
2299
- setOtpError(true);
2300
- }
2301
- };
2302
-
2303
- const resendCode = () => {
2304
- getLoginCode(email, getPasswordlessCode);
2305
- };
2306
-
2307
- return /*#__PURE__*/external_react_default().createElement("div", {
2308
- className: `${login_passwordless_index_module.passwordlessWrapper} step-wrapper`
2309
- }, /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("div", {
2310
- className: `${login_passwordless_index_module.innerWrapper}`
2311
- }, /*#__PURE__*/external_react_default().createElement("span", null, "We sent your single-use login code to ", /*#__PURE__*/external_react_default().createElement("br", null), /*#__PURE__*/external_react_default().createElement("span", {
2312
- "data-testid": "email"
2313
- }, email), /*#__PURE__*/external_react_default().createElement("br", null), /*#__PURE__*/external_react_default().createElement("span", {
2314
- className: login_passwordless_index_module.digits,
2315
- "data-testid": "code-digits"
2316
- }, "Add the ", codeLength, " digit code below")), /*#__PURE__*/external_react_default().createElement("div", {
2317
- className: login_passwordless_index_module.codeInput
2318
- }, /*#__PURE__*/external_react_default().createElement((external_react_otp_input_default()), {
2319
- value: otpCode,
2320
- onChange: code => setOtpCode(code),
2321
- numInputs: codeLength,
2322
- shouldAutoFocus: true,
2323
- hasErrored: otpError || codeError,
2324
- errorStyle: {
2325
- border: '1px solid #e5424d'
2326
- },
2327
- "data-testid": "otp-input"
2328
- })), codeError && /*#__PURE__*/external_react_default().createElement("span", {
2329
- className: login_passwordless_index_module.error,
2330
- "data-testid": "error"
2331
- }, "The code you entered it's incorrect. ", /*#__PURE__*/external_react_default().createElement("br", null), " Please try again."), /*#__PURE__*/external_react_default().createElement("div", {
2332
- className: login_passwordless_index_module.verify
2333
- }, /*#__PURE__*/external_react_default().createElement("div", {
2334
- className: `${login_passwordless_index_module.button} button`,
2335
- onClick: () => tryPasswordlessLogin(otpCode),
2336
- "data-testid": "verify"
2337
- }, "Verify Email"), /*#__PURE__*/external_react_default().createElement("b", null, "or go back and ", /*#__PURE__*/external_react_default().createElement("span", {
2338
- className: login_passwordless_index_module.link,
2339
- onClick: () => goToLogin(),
2340
- "data-testid": "go-back"
2341
- }, "try another way")))), /*#__PURE__*/external_react_default().createElement("div", {
2342
- className: login_passwordless_index_module.resend
2343
- }, "Didn\u2019t receive it? Check your spam/junk folder, or ", /*#__PURE__*/external_react_default().createElement("span", {
2344
- className: login_passwordless_index_module.link,
2345
- onClick: () => resendCode(),
2346
- "data-testid": "resend"
2347
- }, "resend email"), " now.")));
2348
- };
2349
-
2350
- /* harmony default export */ const login_passwordless = (PasswordlessLoginComponent);
2351
- ;// CONCATENATED MODULE: ./src/components/ticket-owned/index.module.scss
2352
- // extracted by mini-css-extract-plugin
2353
- /* harmony default export */ const ticket_owned_index_module = ({"ticketOwnedWrapper":"ticketOwnedWrapper___nhkDY","alert":"alert___c49oP"});
2354
- ;// CONCATENATED MODULE: ./src/components/ticket-owned/index.js
2355
- /**
2356
- * Copyright 2020 OpenStack Foundation
2357
- * Licensed under the Apache License, Version 2.0 (the "License");
2358
- * you may not use this file except in compliance with the License.
2359
- * You may obtain a copy of the License at
2360
- * http://www.apache.org/licenses/LICENSE-2.0
2361
- * Unless required by applicable law or agreed to in writing, software
2362
- * distributed under the License is distributed on an "AS IS" BASIS,
2363
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2364
- * See the License for the specific language governing permissions and
2365
- * limitations under the License.
2366
- **/
2367
-
2368
-
2369
-
2370
- const TicketOwnedComponent = ({
2371
- ownedTickets,
2372
- ticketTypes
2373
- }) => {
2374
- const ownedTicketsString = (0,external_react_namespaceObject.useMemo)(() => ownedTickets.reduce((acc, ownedTicket) => {
2375
- const ticketType = ticketTypes.find(type => type.id === ownedTicket.type_id);
2376
- if (!ticketType) return acc;
2377
- return `${acc}${acc ? ', ' : ''}${ownedTicket.qty} ${ticketType.name}${!ticketType.name.toLowerCase().endsWith('ticket') ? ' ticket' : ''}${ownedTicket.qty > 1 ? 's' : ''}`;
2378
- }, ''), [ownedTickets, ticketTypes]);
2379
- return /*#__PURE__*/external_react_default().createElement("div", {
2380
- className: ticket_owned_index_module.ticketOwnedWrapper
2381
- }, /*#__PURE__*/external_react_default().createElement("div", {
2382
- className: `${ticket_owned_index_module.alert} alert alert-warning`,
2383
- role: "alert"
2384
- }, "You have already ordered ", ownedTicketsString, ". If you would like to order more tickets, please do so below."));
2385
- };
2386
-
2387
- /* harmony default export */ const ticket_owned = (TicketOwnedComponent);
2388
- ;// CONCATENATED MODULE: ./src/components/registration-lite.js
2389
- const registration_lite_excluded = ["loadSession", "setMarketingSettings", "changeStep", "removeReservedTicket", "reserveTicket", "payTicketWithProvider", "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", "stripeOptions"];
2390
-
2391
- 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; }
2392
-
2393
- function registration_lite_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? registration_lite_ownKeys(Object(source), !0).forEach(function (key) { registration_lite_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : registration_lite_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2394
-
2395
- 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; }
2396
-
2397
- 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; }
2398
-
2399
- 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; }
2400
-
2401
- /**
2402
- * Copyright 2020 OpenStack Foundation
2403
- * Licensed under the Apache License, Version 2.0 (the "License");
2404
- * you may not use this file except in compliance with the License.
2405
- * You may obtain a copy of the License at
2406
- * http://www.apache.org/licenses/LICENSE-2.0
2407
- * Unless required by applicable law or agreed to in writing, software
2408
- * distributed under the License is distributed on an "AS IS" BASIS,
2409
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2410
- * See the License for the specific language governing permissions and
2411
- * limitations under the License.
2412
- **/
2413
-
2414
-
2415
-
2416
-
2417
-
2418
-
2419
-
2420
-
2421
-
2422
-
2423
-
2424
-
2425
-
2426
-
2427
-
2428
-
2429
-
2430
- const RegistrationLite = _ref => {
2431
- var _formValues$ticketTyp, _formValues$ticketTyp2;
2432
-
2433
- let {
2434
- loadSession,
2435
- setMarketingSettings,
2436
- changeStep,
2437
- removeReservedTicket,
2438
- reserveTicket,
2439
- payTicketWithProvider,
2440
- onPurchaseComplete,
2441
- getTicketTypes,
2442
- getTaxesTypes,
2443
- getLoginCode,
2444
- passwordlessLogin,
2445
- goToLogin,
2446
- loginOptions,
2447
- allowsNativeAuth,
2448
- allowsOtpAuth,
2449
- reservation,
2450
- checkout,
2451
- ticketTypes,
2452
- taxTypes,
2453
- step,
2454
- passwordlessCodeSent,
2455
- passwordlessEmail,
2456
- passwordlessCode,
2457
- getPasswordlessCode,
2458
- passwordlessCodeError,
2459
- loginWithCode,
2460
- goToExtraQuestions,
2461
- goToEvent,
2462
- goToRegistration,
2463
- profileData,
2464
- summitData,
2465
- supportEmail,
2466
- ticketOwned,
2467
- ownedTickets,
2468
- widgetLoading,
2469
- loading,
2470
- inPersonDisclaimer,
2471
- userProfile,
2472
- handleCompanyError,
2473
- stripeOptions
2474
- } = _ref,
2475
- rest = registration_lite_objectWithoutProperties(_ref, registration_lite_excluded);
2476
-
2477
- const [registrationForm, setRegistrationForm] = (0,external_react_namespaceObject.useState)({
2478
- values: {
2479
- ticketType: null,
2480
- ticketQuantity: 1,
2481
- personalInformation: null,
2482
- paymentInformation: null
2483
- },
2484
- errors: []
2485
- });
2486
- const {
2487
- values: formValues,
2488
- errors: formErrors
2489
- } = registrationForm;
2490
-
2491
- const setFormValues = values => setRegistrationForm(registration_lite_objectSpread(registration_lite_objectSpread({}, registrationForm), {}, {
2492
- values
2493
- }));
2494
-
2495
- const setFormErrors = errors => setRegistrationForm(registration_lite_objectSpread(registration_lite_objectSpread({}, registrationForm), {}, {
2496
- errors
2497
- }));
2498
-
2499
- let publicKey = null;
2500
- let provider = '';
2501
-
2502
- for (let profile of summitData.payment_profiles) {
2503
- if (profile.application_type === 'Registration') {
2504
- publicKey = profile.test_mode_enabled ? profile.test_publishable_key : profile.live_publishable_key;
2505
- provider = profile.provider;
2506
- break;
2507
- }
2508
- }
2509
-
2510
- (0,external_react_namespaceObject.useEffect)(() => {
2511
- loadSession(registration_lite_objectSpread(registration_lite_objectSpread({}, rest), {}, {
2512
- summitData,
2513
- profileData
2514
- }));
2515
-
2516
- if (!profileData) {
2517
- changeStep(0);
2518
- }
2519
- }, [profileData]);
2520
- (0,external_react_namespaceObject.useEffect)(() => {
2521
- if (summitData && profileData) {
2522
- getTicketTypes(summitData.id).then(() => getTaxesTypes(summitData.id));
2523
- }
2524
- }, [summitData, profileData]);
2525
- (0,external_react_namespaceObject.useEffect)(() => {
2526
- if (step === 1 && formValues !== null && formValues !== void 0 && formValues.ticketType && formValues !== null && formValues !== void 0 && formValues.personalInformation) {
2527
- reserveTicket({
2528
- personalInformation: formValues === null || formValues === void 0 ? void 0 : formValues.personalInformation,
2529
- ticket: formValues === null || formValues === void 0 ? void 0 : formValues.ticketType,
2530
- ticketQuantity: formValues === null || formValues === void 0 ? void 0 : formValues.ticketQuantity
2531
- }, {
2532
- onError: (err, res) => setFormErrors(res.body.errors)
2533
- });
2534
- }
2535
-
2536
- if (step > 0 && !(formValues !== null && formValues !== void 0 && formValues.ticketType)) {
2537
- changeStep(0);
2538
- }
2539
- }, [formValues]);
2540
- (0,external_react_namespaceObject.useEffect)(() => {
2541
- setFormErrors([]);
2542
- }, [step]);
2543
- const [ref, {
2544
- height
2545
- }] = (0,external_react_use_namespaceObject.useMeasure)();
2546
- const toggleAnimation = (0,external_react_spring_namespaceObject.useSpring)({
2547
- config: registration_lite_objectSpread({
2548
- bounce: 0
2549
- }, external_react_spring_namespaceObject.config.stiff),
2550
- to: {
2551
- 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,
2552
- 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
2553
- }
2554
- });
2555
-
2556
- const handleCloseClick = () => {
2557
- // Reset the step when closed to avoid unexpected behavior from `useEffect`s w/in other steps.
2558
- // (i.e., recalling `onPurchaseComplete` after a user completes one order, closes the window, and then reopens the registration widget)
2559
- changeStep(0);
2560
- rest.closeWidget();
2561
- };
2562
-
2563
- return /*#__PURE__*/external_react_default().createElement("div", {
2564
- id: `${general_module.modal}`,
2565
- className: "modal is-active"
2566
- }, /*#__PURE__*/external_react_default().createElement("div", {
2567
- className: "modal-background"
2568
- }), /*#__PURE__*/external_react_default().createElement("div", {
2569
- className: `${general_module.modal} modal-content`
2570
- }, /*#__PURE__*/external_react_default().createElement((ajaxloader_default()), {
2571
- relative: true,
2572
- color: '#ffffff',
2573
- show: widgetLoading || loading,
2574
- size: 80
2575
- }), /*#__PURE__*/external_react_default().createElement("div", {
2576
- className: `${general_module.outerWrapper} summit-registration-lite`
2577
- }, /*#__PURE__*/external_react_default().createElement("div", {
2578
- className: general_module.innerWrapper
2579
- }, /*#__PURE__*/external_react_default().createElement("div", {
2580
- className: general_module.title
2581
- }, /*#__PURE__*/external_react_default().createElement("span", null, summitData.name), /*#__PURE__*/external_react_default().createElement("i", {
2582
- className: "fa fa-close",
2583
- "aria-label": "close",
2584
- onClick: handleCloseClick
2585
- })), /*#__PURE__*/external_react_default().createElement("div", {
2586
- className: general_module.stepsWrapper
2587
- }, !profileData && !passwordlessCodeSent && /*#__PURE__*/external_react_default().createElement(login, {
2588
- options: loginOptions,
2589
- allowsNativeAuth: allowsNativeAuth,
2590
- allowsOtpAuth: allowsOtpAuth,
2591
- login: provider => rest.authUser(provider),
2592
- getLoginCode: getLoginCode,
2593
- getPasswordlessCode: getPasswordlessCode
2594
- }), !profileData && passwordlessCodeSent && /*#__PURE__*/external_react_default().createElement(login_passwordless, {
2595
- codeLength: passwordlessCode,
2596
- email: passwordlessEmail,
2597
- passwordlessLogin: passwordlessLogin,
2598
- loginWithCode: loginWithCode,
2599
- codeError: passwordlessCodeError,
2600
- goToLogin: goToLogin,
2601
- getLoginCode: getLoginCode,
2602
- getPasswordlessCode: getPasswordlessCode
2603
- }), profileData && step !== 3 && ticketTypes.length > 0 && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, ticketOwned && /*#__PURE__*/external_react_default().createElement(ticket_owned, {
2604
- ownedTickets: ownedTickets,
2605
- ticketTypes: ticketTypes
2606
- }), /*#__PURE__*/external_react_default().createElement(ticket_type, {
2607
- ticketTypes: ticketTypes,
2608
- inPersonDisclaimer: inPersonDisclaimer,
2609
- taxTypes: taxTypes,
2610
- reservation: reservation,
2611
- isActive: step === 0,
2612
- changeForm: ticketForm => setFormValues(registration_lite_objectSpread(registration_lite_objectSpread({}, formValues), ticketForm))
2613
- }), /*#__PURE__*/external_react_default().createElement(personal_information, {
2614
- isActive: step === 1,
2615
- reservation: reservation,
2616
- userProfile: profileData,
2617
- summitId: summitData.id,
2618
- changeForm: personalInformation => setFormValues(registration_lite_objectSpread(registration_lite_objectSpread({}, formValues), {}, {
2619
- personalInformation
2620
- })),
2621
- handleCompanyError: handleCompanyError,
2622
- formValues: formValues,
2623
- formErrors: formErrors
2624
- }), /*#__PURE__*/external_react_default().createElement(external_react_spring_namespaceObject.animated.div, {
2625
- style: registration_lite_objectSpread({}, toggleAnimation)
2626
- }, /*#__PURE__*/external_react_default().createElement("div", {
2627
- ref: ref
2628
- }, /*#__PURE__*/external_react_default().createElement(payment, {
2629
- isActive: step === 2,
2630
- reservation: reservation,
2631
- payTicket: payTicketWithProvider,
2632
- userProfile: profileData,
2633
- timestamp: summitData.timestamp,
2634
- provider: provider,
2635
- providerKey: publicKey,
2636
- stripeOptions: stripeOptions
2637
- })))), profileData && step === 3 && /*#__PURE__*/external_react_default().createElement(purchase_complete, {
2638
- checkout: checkout,
2639
- summit: summitData,
2640
- onPurchaseComplete: onPurchaseComplete,
2641
- supportEmail: supportEmail,
2642
- goToEvent: goToEvent,
2643
- goToExtraQuestions: goToExtraQuestions
2644
- })), profileData && step !== 3 && /*#__PURE__*/external_react_default().createElement(button_bar, {
2645
- step: step,
2646
- inPersonDisclaimer: inPersonDisclaimer,
2647
- formValues: formValues,
2648
- removeReservedTicket: removeReservedTicket,
2649
- changeStep: changeStep
2650
- })))));
2651
- };
2652
-
2653
- const registration_lite_mapStateToProps = ({
2654
- registrationLiteState
2655
- }) => ({
2656
- widgetLoading: registrationLiteState.widgetLoading,
2657
- reservation: registrationLiteState.reservation,
2658
- userProfile: registrationLiteState.settings.userProfile,
2659
- checkout: registrationLiteState.checkout,
2660
- ticketTypes: registrationLiteState.ticketTypes,
2661
- taxTypes: registrationLiteState.taxTypes,
2662
- step: registrationLiteState.step,
2663
- passwordlessEmail: registrationLiteState.passwordless.email,
2664
- passwordlessCode: registrationLiteState.passwordless.otp_length,
2665
- passwordlessCodeSent: registrationLiteState.passwordless.code_sent,
2666
- passwordlessCodeError: registrationLiteState.passwordless.error
2667
- });
2668
-
2669
- /* harmony default export */ const registration_lite = ((0,external_react_redux_namespaceObject.connect)(registration_lite_mapStateToProps, {
2670
- loadSession: loadSession,
2671
- changeStep: changeStep,
2672
- reserveTicket: reserveTicket,
2673
- removeReservedTicket: removeReservedTicket,
2674
- payTicketWithProvider: payTicketWithProvider,
2675
- getTicketTypes: getTicketTypes,
2676
- getTaxesTypes: getTaxesTypes,
2677
- getLoginCode: getLoginCode,
2678
- passwordlessLogin: passwordlessLogin,
2679
- goToLogin: goToLogin
2680
- })(RegistrationLite));
2681
- ;// CONCATENATED MODULE: ./src/summit-registration-lite.js
2682
- /**
2683
- * Copyright 2017 OpenStack Foundation
2684
- * Licensed under the Apache License, Version 2.0 (the "License");
2685
- * you may not use this file except in compliance with the License.
2686
- * You may obtain a copy of the License at
2687
- * http://www.apache.org/licenses/LICENSE-2.0
2688
- * Unless required by applicable law or agreed to in writing, software
2689
- * distributed under the License is distributed on an "AS IS" BASIS,
2690
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2691
- * See the License for the specific language governing permissions and
2692
- * limitations under the License.
2693
- **/
2694
-
2695
-
2696
-
2697
-
2698
-
2699
-
2700
- class RegistrationLiteWidget extends (external_react_default()).PureComponent {
2701
- constructor(props) {
2702
- super(props);
2703
- this.store = getStore(props.clientId, props.apiBaseUrl, props.getAccessToken);
2704
- }
2705
-
2706
- render() {
2707
- return /*#__PURE__*/external_react_default().createElement(external_react_redux_namespaceObject.Provider, {
2708
- store: this.store
2709
- }, /*#__PURE__*/external_react_default().createElement(react_namespaceObject.PersistGate, {
2710
- persistor: getPersistor()
2711
- }, /*#__PURE__*/external_react_default().createElement(registration_lite, this.props)));
2712
- }
2713
-
2714
- }
2715
-
2716
- /* harmony default export */ const summit_registration_lite = (RegistrationLiteWidget);
2717
- /******/ return __webpack_exports__;
2718
- /******/ })()
2719
- ;
2720
- });