summit-registration-lite 1.0.81 → 1.0.82

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 ADDED
@@ -0,0 +1,2148 @@
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 /******/ (function(modules) { // webpackBootstrap
12
+ /******/ // The module cache
13
+ /******/ var installedModules = {};
14
+ /******/
15
+ /******/ // The require function
16
+ /******/ function __webpack_require__(moduleId) {
17
+ /******/
18
+ /******/ // Check if module is in cache
19
+ /******/ if(installedModules[moduleId]) {
20
+ /******/ return installedModules[moduleId].exports;
21
+ /******/ }
22
+ /******/ // Create a new module (and put it into the cache)
23
+ /******/ var module = installedModules[moduleId] = {
24
+ /******/ i: moduleId,
25
+ /******/ l: false,
26
+ /******/ exports: {}
27
+ /******/ };
28
+ /******/
29
+ /******/ // Execute the module function
30
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
31
+ /******/
32
+ /******/ // Flag the module as loaded
33
+ /******/ module.l = true;
34
+ /******/
35
+ /******/ // Return the exports of the module
36
+ /******/ return module.exports;
37
+ /******/ }
38
+ /******/
39
+ /******/
40
+ /******/ // expose the modules object (__webpack_modules__)
41
+ /******/ __webpack_require__.m = modules;
42
+ /******/
43
+ /******/ // expose the module cache
44
+ /******/ __webpack_require__.c = installedModules;
45
+ /******/
46
+ /******/ // define getter function for harmony exports
47
+ /******/ __webpack_require__.d = function(exports, name, getter) {
48
+ /******/ if(!__webpack_require__.o(exports, name)) {
49
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
50
+ /******/ }
51
+ /******/ };
52
+ /******/
53
+ /******/ // define __esModule on exports
54
+ /******/ __webpack_require__.r = function(exports) {
55
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
56
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
57
+ /******/ }
58
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
59
+ /******/ };
60
+ /******/
61
+ /******/ // create a fake namespace object
62
+ /******/ // mode & 1: value is a module id, require it
63
+ /******/ // mode & 2: merge all properties of value into the ns
64
+ /******/ // mode & 4: return value when already ns object
65
+ /******/ // mode & 8|1: behave like require
66
+ /******/ __webpack_require__.t = function(value, mode) {
67
+ /******/ if(mode & 1) value = __webpack_require__(value);
68
+ /******/ if(mode & 8) return value;
69
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
70
+ /******/ var ns = Object.create(null);
71
+ /******/ __webpack_require__.r(ns);
72
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
73
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
74
+ /******/ return ns;
75
+ /******/ };
76
+ /******/
77
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
78
+ /******/ __webpack_require__.n = function(module) {
79
+ /******/ var getter = module && module.__esModule ?
80
+ /******/ function getDefault() { return module['default']; } :
81
+ /******/ function getModuleExports() { return module; };
82
+ /******/ __webpack_require__.d(getter, 'a', getter);
83
+ /******/ return getter;
84
+ /******/ };
85
+ /******/
86
+ /******/ // Object.prototype.hasOwnProperty.call
87
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
88
+ /******/
89
+ /******/ // __webpack_public_path__
90
+ /******/ __webpack_require__.p = "/dist/";
91
+ /******/
92
+ /******/
93
+ /******/ // Load entry module and return exports
94
+ /******/ return __webpack_require__(__webpack_require__.s = 29);
95
+ /******/ })
96
+ /************************************************************************/
97
+ /******/ ([
98
+ /* 0 */
99
+ /***/ (function(module, exports) {
100
+
101
+ module.exports = require("react");
102
+
103
+ /***/ }),
104
+ /* 1 */
105
+ /***/ (function(module, exports) {
106
+
107
+ module.exports = require("openstack-uicore-foundation/lib/methods");
108
+
109
+ /***/ }),
110
+ /* 2 */
111
+ /***/ (function(module, exports) {
112
+
113
+ module.exports = require("react-spring");
114
+
115
+ /***/ }),
116
+ /* 3 */
117
+ /***/ (function(module, exports, __webpack_require__) {
118
+
119
+ // extracted by mini-css-extract-plugin
120
+ module.exports = {"button":"button___2t2wu","outerWrapper":"outerWrapper___1mTpT","innerWrapper":"innerWrapper___3THAF","registration":"registration___3PmSf","actions":"actions___I9WTO"};
121
+
122
+ /***/ }),
123
+ /* 4 */
124
+ /***/ (function(module, exports, __webpack_require__) {
125
+
126
+ // extracted by mini-css-extract-plugin
127
+ module.exports = {"passwordlessWrapper":"passwordlessWrapper___1p18R","innerWrapper":"innerWrapper___4MdlE","digits":"digits___F0Kcb","codeInput":"codeInput___1xtWR","error":"error___1v7Eo","verify":"verify___1b49k","button":"button___5OMnr","link":"link___3Jnwz","resend":"resend___35Xcu"};
128
+
129
+ /***/ }),
130
+ /* 5 */
131
+ /***/ (function(module, exports, __webpack_require__) {
132
+
133
+ // extracted by mini-css-extract-plugin
134
+ module.exports = {"title":"title___3SYkl","summary":"summary___38fgb","crossOut":"crossOut___2q3QH","discount":"discount___sJ1Bg","promo":"promo___11cRU","dropdown":"dropdown___2F1ra","inPersonDisclaimer":"inPersonDisclaimer___47veY"};
135
+
136
+ /***/ }),
137
+ /* 6 */
138
+ /***/ (function(module, exports, __webpack_require__) {
139
+
140
+ // extracted by mini-css-extract-plugin
141
+ module.exports = {"button":"button___2ecjs","wrapper":"wrapper___3h7RA","circle":"circle___2jWZb","complete":"complete___3RjCF","actions":"actions___2ru3L","footer":"footer___KBj_E"};
142
+
143
+ /***/ }),
144
+ /* 7 */
145
+ /***/ (function(module, exports) {
146
+
147
+ module.exports = require("@stripe/react-stripe-js");
148
+
149
+ /***/ }),
150
+ /* 8 */
151
+ /***/ (function(module, exports, __webpack_require__) {
152
+
153
+ // extracted by mini-css-extract-plugin
154
+ module.exports = {"loginWrapper":"loginWrapper___29UY5","innerWrapper":"innerWrapper___3ls8s","button":"button___XnwyV","loginCode":"loginCode___1tdoI","input":"input___2qKqP"};
155
+
156
+ /***/ }),
157
+ /* 9 */
158
+ /***/ (function(module, exports) {
159
+
160
+ module.exports = require("react-use");
161
+
162
+ /***/ }),
163
+ /* 10 */
164
+ /***/ (function(module, exports, __webpack_require__) {
165
+
166
+ // extracted by mini-css-extract-plugin
167
+ module.exports = {"title":"title___3ZHGA","form":"form___3v5vW","readOnly":"readOnly___GTMgw","companies":"companies___EjHEl"};
168
+
169
+ /***/ }),
170
+ /* 11 */
171
+ /***/ (function(module, exports) {
172
+
173
+ module.exports = require("react-redux");
174
+
175
+ /***/ }),
176
+ /* 12 */
177
+ /***/ (function(module, exports) {
178
+
179
+ module.exports = require("openstack-uicore-foundation/lib/components");
180
+
181
+ /***/ }),
182
+ /* 13 */
183
+ /***/ (function(module, exports, __webpack_require__) {
184
+
185
+ // extracted by mini-css-extract-plugin
186
+ module.exports = {"outerWrapper":"outerWrapper___Ctsl4","innerWrapper":"innerWrapper___HgUWp","title":"title___2V7rZ"};
187
+
188
+ /***/ }),
189
+ /* 14 */
190
+ /***/ (function(module, exports, __webpack_require__) {
191
+
192
+ // extracted by mini-css-extract-plugin
193
+ module.exports = {"form":"form___29UFw","fieldWrapper":"fieldWrapper___16TrJ"};
194
+
195
+ /***/ }),
196
+ /* 15 */
197
+ /***/ (function(module, exports) {
198
+
199
+ module.exports = require("prop-types");
200
+
201
+ /***/ }),
202
+ /* 16 */
203
+ /***/ (function(module, exports, __webpack_require__) {
204
+
205
+ // extracted by mini-css-extract-plugin
206
+ module.exports = {"wrapper":"wrapper___3G9ab","circle":"circle___2EnTU","complete":"complete___P-4ft"};
207
+
208
+ /***/ }),
209
+ /* 17 */
210
+ /***/ (function(module, exports) {
211
+
212
+ module.exports = require("sweetalert2");
213
+
214
+ /***/ }),
215
+ /* 18 */
216
+ /***/ (function(module, exports) {
217
+
218
+ module.exports = require("redux");
219
+
220
+ /***/ }),
221
+ /* 19 */
222
+ /***/ (function(module, exports, __webpack_require__) {
223
+
224
+ // extracted by mini-css-extract-plugin
225
+ module.exports = {"title":"title___3msFT","form":"form___1imhA","fieldWrapper":"fieldWrapper___26upm"};
226
+
227
+ /***/ }),
228
+ /* 20 */
229
+ /***/ (function(module, exports, __webpack_require__) {
230
+
231
+ // extracted by mini-css-extract-plugin
232
+ module.exports = {"placeholder":"placeholder___1AQcO","inPersonDisclaimer":"inPersonDisclaimer___qehRb","dropdown":"dropdown___2BSL8"};
233
+
234
+ /***/ }),
235
+ /* 21 */
236
+ /***/ (function(module, exports) {
237
+
238
+ module.exports = require("redux-persist");
239
+
240
+ /***/ }),
241
+ /* 22 */
242
+ /***/ (function(module, exports) {
243
+
244
+ module.exports = require("redux-thunk");
245
+
246
+ /***/ }),
247
+ /* 23 */
248
+ /***/ (function(module, exports) {
249
+
250
+ module.exports = require("redux-persist/es/storage");
251
+
252
+ /***/ }),
253
+ /* 24 */
254
+ /***/ (function(module, exports) {
255
+
256
+ module.exports = require("redux-persist/integration/react");
257
+
258
+ /***/ }),
259
+ /* 25 */
260
+ /***/ (function(module, exports) {
261
+
262
+ module.exports = require("@stripe/stripe-js");
263
+
264
+ /***/ }),
265
+ /* 26 */
266
+ /***/ (function(module, exports) {
267
+
268
+ module.exports = require("react-hook-form");
269
+
270
+ /***/ }),
271
+ /* 27 */
272
+ /***/ (function(module, exports) {
273
+
274
+ module.exports = require("react-otp-input");
275
+
276
+ /***/ }),
277
+ /* 28 */
278
+ /***/ (function(module, exports, __webpack_require__) {
279
+
280
+ // extracted by mini-css-extract-plugin
281
+
282
+ /***/ }),
283
+ /* 29 */
284
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
285
+
286
+ "use strict";
287
+ // ESM COMPAT FLAG
288
+ __webpack_require__.r(__webpack_exports__);
289
+
290
+ // EXTERNAL MODULE: external "react"
291
+ var external_react_ = __webpack_require__(0);
292
+ var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
293
+
294
+ // EXTERNAL MODULE: external "react-redux"
295
+ var external_react_redux_ = __webpack_require__(11);
296
+
297
+ // EXTERNAL MODULE: external "redux"
298
+ var external_redux_ = __webpack_require__(18);
299
+
300
+ // EXTERNAL MODULE: external "redux-thunk"
301
+ var external_redux_thunk_ = __webpack_require__(22);
302
+ var external_redux_thunk_default = /*#__PURE__*/__webpack_require__.n(external_redux_thunk_);
303
+
304
+ // EXTERNAL MODULE: external "redux-persist"
305
+ var external_redux_persist_ = __webpack_require__(21);
306
+
307
+ // EXTERNAL MODULE: external "redux-persist/es/storage"
308
+ var storage_ = __webpack_require__(23);
309
+ var storage_default = /*#__PURE__*/__webpack_require__.n(storage_);
310
+
311
+ // EXTERNAL MODULE: external "openstack-uicore-foundation/lib/methods"
312
+ var methods_ = __webpack_require__(1);
313
+
314
+ // EXTERNAL MODULE: external "sweetalert2"
315
+ var external_sweetalert2_ = __webpack_require__(17);
316
+ var external_sweetalert2_default = /*#__PURE__*/__webpack_require__.n(external_sweetalert2_);
317
+
318
+ // CONCATENATED MODULE: ./src/actions.js
319
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
320
+
321
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
322
+
323
+ 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; }
324
+
325
+ /**
326
+ * Copyright 2020 OpenStack Foundation
327
+ * Licensed under the Apache License, Version 2.0 (the "License");
328
+ * you may not use this file except in compliance with the License.
329
+ * You may obtain a copy of the License at
330
+ * http://www.apache.org/licenses/LICENSE-2.0
331
+ * Unless required by applicable law or agreed to in writing, software
332
+ * distributed under the License is distributed on an "AS IS" BASIS,
333
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
334
+ * See the License for the specific language governing permissions and
335
+ * limitations under the License.
336
+ **/
337
+
338
+
339
+
340
+ const START_WIDGET_LOADING = 'START_WIDGET_LOADING';
341
+ const STOP_WIDGET_LOADING = 'STOP_WIDGET_LOADING';
342
+ const LOAD_INITIAL_VARS = 'LOAD_INITIAL_VARS';
343
+ const CHANGE_STEP = 'CHANGE_STEP';
344
+ const GET_TICKET_TYPES = 'GET_TICKET_TYPES';
345
+ const GET_TAX_TYPES = 'GET_TAX_TYPES';
346
+ const CREATE_RESERVATION = 'CREATE_RESERVATION';
347
+ const CREATE_RESERVATION_SUCCESS = 'CREATE_RESERVATION_SUCCESS';
348
+ const CREATE_RESERVATION_ERROR = 'CREATE_RESERVATION_ERROR';
349
+ const DELETE_RESERVATION = 'DELETE_RESERVATION';
350
+ const DELETE_RESERVATION_SUCCESS = 'DELETE_RESERVATION_SUCCESS';
351
+ const DELETE_RESERVATION_ERROR = 'DELETE_RESERVATION_ERROR';
352
+ const PAY_RESERVATION = 'PAY_RESERVATION';
353
+ const CLEAR_RESERVATION = 'CLEAR_RESERVATION';
354
+ const SET_PASSWORDLESS_LOGIN = 'SET_PASSWORDLESS_LOGIN';
355
+ const SET_PASSWORDLESS_LENGTH = 'SET_PASSWORDLESS_LENGTH';
356
+ const SET_PASSWORDLESS_ERROR = 'SET_PASSWORDLESS_ERROR';
357
+ const GO_TO_LOGIN = 'GO_TO_LOGIN';
358
+ const startWidgetLoading = Object(methods_["createAction"])(START_WIDGET_LOADING);
359
+ const stopWidgetLoading = Object(methods_["createAction"])(STOP_WIDGET_LOADING);
360
+ const actions_loadSession = settings => dispatch => {
361
+ dispatch(Object(methods_["createAction"])(LOAD_INITIAL_VARS)(settings));
362
+ };
363
+ /*********************************************************************************/
364
+
365
+ /* TICKETS */
366
+
367
+ /*********************************************************************************/
368
+ // api/v1/summits/{id}/ticket-types
369
+ // api/v1/summits/{id}/tax-types
370
+
371
+ const actions_getTicketTypes = summitId => async (dispatch, getState, {
372
+ apiBaseUrl,
373
+ getAccessToken
374
+ }) => {
375
+ try {
376
+ const accessToken = await getAccessToken();
377
+ let params = {
378
+ expand: 'badge_type,badge_type.access_levels,badge_type.badge_features',
379
+ access_token: accessToken
380
+ };
381
+ dispatch(startWidgetLoading());
382
+ return Object(methods_["getRequest"])(null, Object(methods_["createAction"])(GET_TICKET_TYPES), `${apiBaseUrl}/api/v1/summits/${summitId}/ticket-types`, methods_["authErrorHandler"])(params)(dispatch).then(() => {
383
+ dispatch(stopWidgetLoading());
384
+ });
385
+ } catch (e) {
386
+ return Promise.reject();
387
+ }
388
+ };
389
+ const actions_getTaxesTypes = summitId => async (dispatch, getState, {
390
+ apiBaseUrl,
391
+ getAccessToken
392
+ }) => {
393
+ try {
394
+ const accessToken = await getAccessToken();
395
+ let params = {
396
+ access_token: accessToken
397
+ };
398
+ dispatch(startWidgetLoading());
399
+ return Object(methods_["getRequest"])(null, Object(methods_["createAction"])(GET_TAX_TYPES), `${apiBaseUrl}/api/v1/summits/${summitId}/tax-types`, methods_["authErrorHandler"])(params)(dispatch).then(() => {
400
+ dispatch(stopWidgetLoading());
401
+ });
402
+ } catch (e) {
403
+ return Promise.reject();
404
+ }
405
+ };
406
+ const actions_reserveTicket = (personalInformation, ticket) => async (dispatch, getState, {
407
+ apiBaseUrl,
408
+ getAccessToken
409
+ }) => {
410
+ const {
411
+ registrationLiteState: {
412
+ settings: {
413
+ summitId
414
+ }
415
+ }
416
+ } = getState();
417
+ let {
418
+ firstName,
419
+ lastName,
420
+ email,
421
+ company,
422
+ promoCode
423
+ } = personalInformation;
424
+ dispatch(startWidgetLoading());
425
+ const access_token = await getAccessToken();
426
+ let params = {
427
+ access_token,
428
+ expand: 'tickets,tickets.owner,tickets.ticket_type,tickets.ticket_type.taxes'
429
+ };
430
+ let normalizedEntity = normalizeReservation({
431
+ owner_email: email,
432
+ owner_first_name: firstName,
433
+ owner_last_name: lastName,
434
+ owner_company: company,
435
+ tickets: [{
436
+ type_id: ticket.id,
437
+ promo_code: promoCode || null,
438
+ attendee_first_name: firstName,
439
+ attendee_last_name: lastName,
440
+ attendee_email: email
441
+ }]
442
+ });
443
+ return Object(methods_["postRequest"])(Object(methods_["createAction"])(CREATE_RESERVATION), Object(methods_["createAction"])(CREATE_RESERVATION_SUCCESS), `${apiBaseUrl}/api/v1/summits/${summitId}/orders/reserve`, normalizedEntity, methods_["authErrorHandler"] // entity
444
+ )(params)(dispatch).then(payload => {
445
+ dispatch(stopWidgetLoading());
446
+ payload.response.promo_code = promoCode || null;
447
+
448
+ if (!payload.response.payment_gateway_client_token) {
449
+ dispatch(actions_payTicket(null, null, getAccessToken));
450
+ return payload;
451
+ } else {
452
+ dispatch(actions_changeStep(2));
453
+ return payload;
454
+ }
455
+ }).catch(e => {
456
+ dispatch(Object(methods_["createAction"])(CREATE_RESERVATION_ERROR)(e));
457
+ dispatch(stopWidgetLoading());
458
+ return e;
459
+ });
460
+ };
461
+ const actions_removeReservedTicket = () => async (dispatch, getState, {
462
+ apiBaseUrl,
463
+ getAccessToken
464
+ }) => {
465
+ let {
466
+ registrationLiteState: {
467
+ settings: {
468
+ summitId
469
+ },
470
+ reservation: {
471
+ hash
472
+ }
473
+ }
474
+ } = getState();
475
+ const access_token = await getAccessToken();
476
+ let params = {
477
+ access_token,
478
+ expand: 'tickets,tickets.owner'
479
+ };
480
+ dispatch(startWidgetLoading());
481
+ return Object(methods_["deleteRequest"])(Object(methods_["createAction"])(DELETE_RESERVATION), Object(methods_["createAction"])(DELETE_RESERVATION_SUCCESS), `${apiBaseUrl}/api/v1/summits/${summitId}/orders/${hash}`, {}, methods_["authErrorHandler"] // entity
482
+ )(params)(dispatch).then(payload => {
483
+ dispatch(stopWidgetLoading());
484
+ dispatch(actions_changeStep(1));
485
+ return payload;
486
+ }).catch(e => {
487
+ dispatch(Object(methods_["createAction"])(DELETE_RESERVATION_ERROR)(e));
488
+ dispatch(actions_changeStep(1));
489
+ dispatch(stopWidgetLoading());
490
+ return e;
491
+ });
492
+ };
493
+ const actions_payTicket = (token = null, stripe = null, zipCode = null) => async (dispatch, getState, {
494
+ apiBaseUrl,
495
+ getAccessToken
496
+ }) => {
497
+ let {
498
+ registrationLiteState: {
499
+ settings: {
500
+ summitId,
501
+ userProfile
502
+ },
503
+ reservation
504
+ }
505
+ } = getState();
506
+ const access_token = await getAccessToken();
507
+ let params = {
508
+ access_token,
509
+ 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'
510
+ };
511
+ let normalizedEntity = {
512
+ billing_address_1: (userProfile === null || userProfile === void 0 ? void 0 : userProfile.address1) || '',
513
+ billing_address_2: (userProfile === null || userProfile === void 0 ? void 0 : userProfile.address2) || '',
514
+ billing_address_zip_code: zipCode,
515
+ billing_address_city: (userProfile === null || userProfile === void 0 ? void 0 : userProfile.locality) || '',
516
+ billing_address_state: (userProfile === null || userProfile === void 0 ? void 0 : userProfile.region) || '',
517
+ billing_address_country: (userProfile === null || userProfile === void 0 ? void 0 : userProfile.country) || ''
518
+ };
519
+ dispatch(startWidgetLoading());
520
+
521
+ if (reservation.payment_gateway_client_token) {
522
+ const {
523
+ id
524
+ } = token;
525
+ stripe.confirmCardPayment(reservation.payment_gateway_client_token, {
526
+ payment_method: {
527
+ card: {
528
+ token: id
529
+ }
530
+ }
531
+ }).then(result => {
532
+ if (result.error) {
533
+ // Reserve error.message in your UI.
534
+ external_sweetalert2_default.a.fire(result.error.message, "Please retry purchase.", "warning");
535
+ dispatch(actions_changeStep(1));
536
+ dispatch(actions_removeReservedTicket());
537
+ dispatch(stopWidgetLoading());
538
+ } else {
539
+ return Object(methods_["putRequest"])(null, Object(methods_["createAction"])(PAY_RESERVATION), `${apiBaseUrl}/api/v1/summits/${summitId}/orders/${reservation.hash}/checkout`, normalizedEntity, methods_["authErrorHandler"] // entity
540
+ )(params)(dispatch).then(payload => {
541
+ dispatch(stopWidgetLoading());
542
+ dispatch(Object(methods_["createAction"])(CLEAR_RESERVATION)({}));
543
+ dispatch(actions_changeStep(3));
544
+ return payload;
545
+ }).catch(e => {
546
+ dispatch(stopWidgetLoading());
547
+ return e;
548
+ }); // The payment has succeeded. Display a success message.
549
+ }
550
+ }).catch(e => {
551
+ dispatch(actions_removeReservedTicket());
552
+ dispatch(actions_changeStep(1));
553
+ dispatch(stopWidgetLoading());
554
+ return e;
555
+ });
556
+ } else {
557
+ // FREE TICKET
558
+ return Object(methods_["putRequest"])(null, Object(methods_["createAction"])(PAY_RESERVATION), `${apiBaseUrl}/api/v1/summits/${summitId}/orders/${reservation.hash}/checkout`, normalizedEntity, methods_["authErrorHandler"] // entity
559
+ )(params)(dispatch).then(payload => {
560
+ dispatch(stopWidgetLoading());
561
+ dispatch(Object(methods_["createAction"])(CLEAR_RESERVATION)({}));
562
+ dispatch(actions_changeStep(3));
563
+ return payload;
564
+ }).catch(e => {
565
+ dispatch(actions_removeReservedTicket());
566
+ dispatch(actions_changeStep(1));
567
+ dispatch(stopWidgetLoading());
568
+ return e;
569
+ }); // The payment has succeeded. Display a success message.
570
+ }
571
+ };
572
+ const actions_changeStep = step => (dispatch, getState) => {
573
+ dispatch(startWidgetLoading());
574
+ dispatch(Object(methods_["createAction"])(CHANGE_STEP)(step));
575
+ dispatch(stopWidgetLoading());
576
+ };
577
+ const actions_goToLogin = () => (dispatch, getState) => {
578
+ dispatch(Object(methods_["createAction"])(GO_TO_LOGIN)());
579
+ };
580
+ const actions_getLoginCode = (email, getPasswordlessCode) => async (dispatch, getState) => {
581
+ dispatch(Object(methods_["createAction"])(SET_PASSWORDLESS_LOGIN)(email));
582
+ return new Promise((resolve, reject) => {
583
+ getPasswordlessCode(email).then(res => {
584
+ dispatch(Object(methods_["createAction"])(SET_PASSWORDLESS_LENGTH)(res.response));
585
+ resolve(res);
586
+ }, err => {
587
+ reject(err);
588
+ });
589
+ });
590
+ };
591
+ const actions_passwordlessLogin = (code, loginWithCode) => async (dispatch, getState) => {
592
+ const {
593
+ registrationLiteState: {
594
+ passwordless: {
595
+ email
596
+ }
597
+ }
598
+ } = getState();
599
+ return new Promise((resolve, reject) => {
600
+ loginWithCode(code, email).then(res => {
601
+ if (res) {
602
+ dispatch(Object(methods_["createAction"])(SET_PASSWORDLESS_ERROR)());
603
+ }
604
+
605
+ resolve(res);
606
+ }, err => {
607
+ reject(err);
608
+ });
609
+ });
610
+ };
611
+ const isInPersonTicketType = ticketType => {
612
+ /** check is the current order has or not IN_PERSON tickets types **/
613
+ if (ticketType.hasOwnProperty("badge_type")) {
614
+ let badgeType = ticketType.badge_type;
615
+ return badgeType.access_levels.some(al => {
616
+ return al.name == 'IN_PERSON';
617
+ });
618
+ }
619
+
620
+ return false;
621
+ };
622
+
623
+ const normalizeReservation = entity => {
624
+ const normalizedEntity = _objectSpread({}, entity);
625
+
626
+ if (!entity.owner_company.id) {
627
+ normalizedEntity['owner_company'] = entity.owner_company.name;
628
+ } else {
629
+ delete normalizedEntity['owner_company'];
630
+ normalizedEntity['owner_company_id'] = entity.owner_company.id;
631
+ }
632
+
633
+ return normalizedEntity;
634
+ };
635
+ // CONCATENATED MODULE: ./src/reducer.js
636
+ function reducer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
637
+
638
+ function reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { reducer_ownKeys(Object(source), true).forEach(function (key) { reducer_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
639
+
640
+ 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; }
641
+
642
+ /**
643
+ * Copyright 2020 OpenStack Foundation
644
+ * Licensed under the Apache License, Version 2.0 (the "License");
645
+ * you may not use this file except in compliance with the License.
646
+ * You may obtain a copy of the License at
647
+ * http://www.apache.org/licenses/LICENSE-2.0
648
+ * Unless required by applicable law or agreed to in writing, software
649
+ * distributed under the License is distributed on an "AS IS" BASIS,
650
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
651
+ * See the License for the specific language governing permissions and
652
+ * limitations under the License.
653
+ **/
654
+
655
+ const DEFAULT_STATE = {
656
+ reservation: null,
657
+ checkout: null,
658
+ step: 0,
659
+ widgetLoading: false,
660
+ passwordless: {
661
+ email: null,
662
+ otp_length: 0,
663
+ code_sent: false,
664
+ error: false
665
+ },
666
+ ticketTypes: [],
667
+ taxTypes: [],
668
+ settings: {
669
+ apiBaseUrl: null,
670
+ summitId: null,
671
+ marketingData: null,
672
+ userProfile: null
673
+ }
674
+ };
675
+
676
+ const RegistrationLiteReducer = (state = DEFAULT_STATE, action) => {
677
+ const {
678
+ type,
679
+ payload
680
+ } = action;
681
+
682
+ switch (type) {
683
+ case START_WIDGET_LOADING:
684
+ {
685
+ return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
686
+ widgetLoading: true
687
+ });
688
+ }
689
+
690
+ case STOP_WIDGET_LOADING:
691
+ {
692
+ return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
693
+ widgetLoading: false
694
+ });
695
+ }
696
+
697
+ case LOAD_INITIAL_VARS:
698
+ const {
699
+ marketingData,
700
+ summitData,
701
+ apiBaseUrl,
702
+ profileData
703
+ } = payload;
704
+ Object.keys(marketingData).forEach(setting => {
705
+ if (getComputedStyle(document.documentElement).getPropertyValue(`--${setting}`)) {
706
+ document.documentElement.style.setProperty(`--${setting}`, marketingData[setting]);
707
+ document.documentElement.style.setProperty(`--${setting}50`, `${marketingData[setting]}50`);
708
+ }
709
+ });
710
+ return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
711
+ reservation: null,
712
+ checkout: null,
713
+ passwordless: reducer_objectSpread({}, DEFAULT_STATE.passwordless),
714
+ settings: reducer_objectSpread(reducer_objectSpread({}, DEFAULT_STATE.settings), {}, {
715
+ marketingData: marketingData,
716
+ summitId: summitData.id,
717
+ userProfile: profileData,
718
+ apiBaseUrl: apiBaseUrl
719
+ })
720
+ });
721
+
722
+ case CHANGE_STEP:
723
+ {
724
+ return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
725
+ step: payload
726
+ });
727
+ }
728
+
729
+ case GET_TICKET_TYPES:
730
+ {
731
+ return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
732
+ ticketTypes: payload.response.data
733
+ });
734
+ }
735
+
736
+ case GET_TAX_TYPES:
737
+ {
738
+ return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
739
+ taxTypes: payload.response.data
740
+ });
741
+ }
742
+
743
+ case GO_TO_LOGIN:
744
+ {
745
+ return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
746
+ passwordless: reducer_objectSpread(reducer_objectSpread({}, state.passwordless), {}, {
747
+ code_sent: false,
748
+ error: false
749
+ })
750
+ });
751
+ }
752
+
753
+ case SET_PASSWORDLESS_LOGIN:
754
+ {
755
+ return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
756
+ passwordless: reducer_objectSpread(reducer_objectSpread({}, state.passwordless), {}, {
757
+ email: payload,
758
+ error: false
759
+ })
760
+ });
761
+ }
762
+
763
+ case SET_PASSWORDLESS_LENGTH:
764
+ {
765
+ const {
766
+ otp_length
767
+ } = payload;
768
+ return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
769
+ passwordless: reducer_objectSpread(reducer_objectSpread({}, state.passwordless), {}, {
770
+ otp_length,
771
+ code_sent: true,
772
+ error: false
773
+ })
774
+ });
775
+ }
776
+
777
+ case SET_PASSWORDLESS_ERROR:
778
+ {
779
+ return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
780
+ passwordless: reducer_objectSpread(reducer_objectSpread({}, state.passwordless), {}, {
781
+ error: true
782
+ })
783
+ });
784
+ }
785
+
786
+ case CREATE_RESERVATION_SUCCESS:
787
+ {
788
+ const reservation = payload.response;
789
+ return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
790
+ reservation
791
+ });
792
+ }
793
+
794
+ case DELETE_RESERVATION_SUCCESS:
795
+ return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
796
+ reservation: null
797
+ });
798
+
799
+ case CLEAR_RESERVATION:
800
+ {
801
+ return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
802
+ reservation: null
803
+ });
804
+ }
805
+
806
+ case PAY_RESERVATION:
807
+ {
808
+ return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
809
+ checkout: payload.response,
810
+ reservation: null,
811
+ userProfile: null
812
+ });
813
+ }
814
+
815
+ default:
816
+ {
817
+ return state;
818
+ }
819
+ }
820
+ };
821
+
822
+ /* harmony default export */ var reducer = (RegistrationLiteReducer);
823
+ // CONCATENATED MODULE: ./src/store.js
824
+ /**
825
+ * Copyright 2019
826
+ * Licensed under the Apache License, Version 2.0 (the "License");
827
+ * you may not use this file except in compliance with the License.
828
+ * You may obtain a copy of the License at
829
+ * http://www.apache.org/licenses/LICENSE-2.0
830
+ * Unless required by applicable law or agreed to in writing, software
831
+ * distributed under the License is distributed on an "AS IS" BASIS,
832
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
833
+ * See the License for the specific language governing permissions and
834
+ * limitations under the License.
835
+ **/
836
+
837
+
838
+
839
+ // default: localStorage if web, AsyncStorage if react-native
840
+
841
+
842
+ let store, persistor;
843
+ const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || external_redux_["compose"];
844
+ const getStore = (clientId, apiBaseUrl, getAccessToken) => {
845
+ if (store) return store;
846
+ const config = {
847
+ key: `root_registration_lite_${clientId}`,
848
+ storage: storage_default.a,
849
+ blacklist: ['ticketTypes', 'taxTypes'] // do not persist these keys
850
+
851
+ };
852
+ const reducers = Object(external_redux_persist_["persistCombineReducers"])(config, {
853
+ registrationLiteState: reducer
854
+ });
855
+ store = Object(external_redux_["createStore"])(reducers, composeEnhancers(Object(external_redux_["applyMiddleware"])(external_redux_thunk_default.a.withExtraArgument({
856
+ apiBaseUrl: apiBaseUrl,
857
+ getAccessToken: getAccessToken
858
+ }))));
859
+ return store;
860
+ };
861
+ const getPersistor = () => {
862
+ if (persistor) return persistor;
863
+
864
+ const onRehydrateComplete = () => {};
865
+
866
+ persistor = Object(external_redux_persist_["persistStore"])(store, null, onRehydrateComplete);
867
+ return persistor;
868
+ };
869
+ // EXTERNAL MODULE: external "redux-persist/integration/react"
870
+ var react_ = __webpack_require__(24);
871
+
872
+ // EXTERNAL MODULE: external "react-spring"
873
+ var external_react_spring_ = __webpack_require__(2);
874
+
875
+ // EXTERNAL MODULE: external "react-use"
876
+ var external_react_use_ = __webpack_require__(9);
877
+
878
+ // EXTERNAL MODULE: external "openstack-uicore-foundation/lib/components"
879
+ var components_ = __webpack_require__(12);
880
+
881
+ // EXTERNAL MODULE: external "@stripe/stripe-js"
882
+ var stripe_js_ = __webpack_require__(25);
883
+
884
+ // EXTERNAL MODULE: ./src/styles/general.module.scss
885
+ var general_module = __webpack_require__(13);
886
+ var general_module_default = /*#__PURE__*/__webpack_require__.n(general_module);
887
+
888
+ // EXTERNAL MODULE: ./src/styles/styles.scss
889
+ var styles = __webpack_require__(28);
890
+
891
+ // EXTERNAL MODULE: ./src/components/login/index.module.scss
892
+ var index_module = __webpack_require__(8);
893
+ var index_module_default = /*#__PURE__*/__webpack_require__.n(index_module);
894
+
895
+ // CONCATENATED MODULE: ./src/components/login/index.js
896
+ /**
897
+ * Copyright 2020 OpenStack Foundation
898
+ * Licensed under the Apache License, Version 2.0 (the "License");
899
+ * you may not use this file except in compliance with the License.
900
+ * You may obtain a copy of the License at
901
+ * http://www.apache.org/licenses/LICENSE-2.0
902
+ * Unless required by applicable law or agreed to in writing, software
903
+ * distributed under the License is distributed on an "AS IS" BASIS,
904
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
905
+ * See the License for the specific language governing permissions and
906
+ * limitations under the License.
907
+ **/
908
+
909
+
910
+
911
+ const LoginComponent = ({
912
+ options,
913
+ login,
914
+ allowsNativeAuth,
915
+ allowsOtpAuthlogin,
916
+ getLoginCode,
917
+ getPasswordlessCode
918
+ }) => {
919
+ const [email, setEmail] = Object(external_react_["useState"])('');
920
+ const [emailError, setEmailError] = Object(external_react_["useState"])();
921
+
922
+ const isValidEmail = email => {
923
+ 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,}))$/;
924
+ return re.test(String(email).toLowerCase());
925
+ };
926
+
927
+ const loginCode = () => {
928
+ let isValid = isValidEmail(email);
929
+ setEmailError(!isValid);
930
+
931
+ if (isValid) {
932
+ getLoginCode(email, getPasswordlessCode);
933
+ }
934
+ };
935
+
936
+ return /*#__PURE__*/external_react_default.a.createElement("div", {
937
+ className: `${index_module_default.a.loginWrapper} step-wrapper`
938
+ }, /*#__PURE__*/external_react_default.a.createElement(external_react_default.a.Fragment, null, /*#__PURE__*/external_react_default.a.createElement("div", {
939
+ className: `${index_module_default.a.innerWrapper}`
940
+ }, /*#__PURE__*/external_react_default.a.createElement("div", {
941
+ className: index_module_default.a.loginCode
942
+ }, "Enter your email address to login or signup:", /*#__PURE__*/external_react_default.a.createElement("div", {
943
+ className: index_module_default.a.input
944
+ }, /*#__PURE__*/external_react_default.a.createElement("input", {
945
+ placeholder: "youremail@example.com",
946
+ value: email,
947
+ onChange: e => setEmail(e.target.value),
948
+ onKeyPress: ev => ev.key === 'Enter' ? loginCode() : null,
949
+ "data-testid": "email-input"
950
+ }), /*#__PURE__*/external_react_default.a.createElement("button", {
951
+ onClick: () => loginCode(),
952
+ "data-testid": "email-button"
953
+ }, ">"), /*#__PURE__*/external_react_default.a.createElement("br", null)), emailError && /*#__PURE__*/external_react_default.a.createElement("span", {
954
+ "data-testid": "email-error"
955
+ }, "Please enter a valid email adress")), /*#__PURE__*/external_react_default.a.createElement("span", null, "Or you may signup or login with a social provider:"), options.map((o, index) => {
956
+ return o.provider_param ? /*#__PURE__*/external_react_default.a.createElement("div", {
957
+ className: `${index_module_default.a.button}`,
958
+ key: `provider-${o.provider_param}`,
959
+ "data-testid": "login-button",
960
+ style: {
961
+ color: o.button_border_color ? o.button_border_color : '#ffffff',
962
+ border: `thin solid ${o.button_border_color ? o.button_border_color : o.button_color}`,
963
+ backgroundColor: o.button_color,
964
+ backgroundImage: o.provider_logo ? `url(${o.provider_logo})` : 'none',
965
+ backgroundSize: o.provider_logo_size ? o.provider_logo_size : ''
966
+ },
967
+ onClick: () => login(o.provider_param)
968
+ }, o.provider_label) : allowsNativeAuth ? /*#__PURE__*/external_react_default.a.createElement("div", {
969
+ className: `${index_module_default.a.button}`,
970
+ key: `provider-fnid`,
971
+ "data-testid": "login-button",
972
+ style: {
973
+ color: o.button_border_color ? o.button_border_color : '#ffffff',
974
+ border: `thin solid ${o.button_border_color ? o.button_border_color : o.button_color}`,
975
+ backgroundColor: o.button_color,
976
+ backgroundImage: o.provider_logo ? `url(${o.provider_logo})` : 'none',
977
+ backgroundSize: o.provider_logo_size ? o.provider_logo_size : ''
978
+ },
979
+ onClick: () => login(o.provider_param)
980
+ }, o.provider_label) : null;
981
+ }), allowsOtpAuthlogin && /*#__PURE__*/external_react_default.a.createElement("div", {
982
+ className: index_module_default.a.loginCode
983
+ }, "or get a login code emailed to you", /*#__PURE__*/external_react_default.a.createElement("div", {
984
+ className: index_module_default.a.input
985
+ }, /*#__PURE__*/external_react_default.a.createElement("input", {
986
+ placeholder: "youremail@example.com",
987
+ value: email,
988
+ onChange: e => setEmail(e.target.value),
989
+ onKeyPress: ev => ev.key === 'Enter' ? loginCode() : null,
990
+ "data-testid": "email-input"
991
+ }), /*#__PURE__*/external_react_default.a.createElement("button", {
992
+ onClick: () => loginCode(),
993
+ "data-testid": "email-button"
994
+ }, ">"), /*#__PURE__*/external_react_default.a.createElement("br", null)), emailError && /*#__PURE__*/external_react_default.a.createElement("span", {
995
+ "data-testid": "email-error"
996
+ }, "Please enter a valid email adress")))));
997
+ };
998
+
999
+ /* harmony default export */ var components_login = (LoginComponent);
1000
+ // EXTERNAL MODULE: external "prop-types"
1001
+ var external_prop_types_ = __webpack_require__(15);
1002
+
1003
+ // EXTERNAL MODULE: external "@stripe/react-stripe-js"
1004
+ var react_stripe_js_ = __webpack_require__(7);
1005
+
1006
+ // EXTERNAL MODULE: ./src/components/payment/index.module.scss
1007
+ var payment_index_module = __webpack_require__(19);
1008
+ var payment_index_module_default = /*#__PURE__*/__webpack_require__.n(payment_index_module);
1009
+
1010
+ // EXTERNAL MODULE: ./src/components/stripe-form/index.module.scss
1011
+ var stripe_form_index_module = __webpack_require__(14);
1012
+ var stripe_form_index_module_default = /*#__PURE__*/__webpack_require__.n(stripe_form_index_module);
1013
+
1014
+ // CONCATENATED MODULE: ./src/components/stripe-form/index.js
1015
+ /**
1016
+ * Copyright 2020 OpenStack Foundation
1017
+ * Licensed under the Apache License, Version 2.0 (the "License");
1018
+ * you may not use this file except in compliance with the License.
1019
+ * You may obtain a copy of the License at
1020
+ * http://www.apache.org/licenses/LICENSE-2.0
1021
+ * Unless required by applicable law or agreed to in writing, software
1022
+ * distributed under the License is distributed on an "AS IS" BASIS,
1023
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1024
+ * See the License for the specific language governing permissions and
1025
+ * limitations under the License.
1026
+ **/
1027
+
1028
+
1029
+
1030
+
1031
+
1032
+
1033
+ const StripeForm = ({
1034
+ reservation,
1035
+ payTicket,
1036
+ userProfile,
1037
+ marketingData
1038
+ }) => {
1039
+ const stripe = Object(react_stripe_js_["useStripe"])();
1040
+ const elements = Object(react_stripe_js_["useElements"])();
1041
+ const [zipCode, setZipCode] = Object(external_react_["useState"])('');
1042
+ const [zipCodeError, setZipCodeError] = Object(external_react_["useState"])({
1043
+ required: false
1044
+ });
1045
+ const stripeStyle = {
1046
+ base: {
1047
+ // Add your base input styles here. For example: #d4e5f4
1048
+ color: marketingData.color_text_dark,
1049
+ fontSize: '16px',
1050
+ //fontFamily: 'inherit',
1051
+ backgroundColor: '#ffffff',
1052
+ '::placeholder': {
1053
+ color: marketingData.color_text_input_hints
1054
+ }
1055
+ },
1056
+ invalid: {
1057
+ color: '#e5424d',
1058
+ ':focus': {
1059
+ color: '#3486cd'
1060
+ }
1061
+ }
1062
+ };
1063
+
1064
+ const handleSubmit = async event => {
1065
+ event.preventDefault();
1066
+
1067
+ if (!zipCode) {
1068
+ setZipCodeError({
1069
+ required: true
1070
+ });
1071
+ return;
1072
+ } else {
1073
+ setZipCodeError({
1074
+ required: false
1075
+ });
1076
+ }
1077
+
1078
+ if (!stripe) {
1079
+ // Stripe.js has not loaded yet. Make sure to disable
1080
+ // form submission until Stripe.js has loaded.
1081
+ return;
1082
+ }
1083
+
1084
+ const cardElement = elements.getElement(react_stripe_js_["CardNumberElement"]);
1085
+ const {
1086
+ error,
1087
+ token
1088
+ } = await stripe.createToken(cardElement, {
1089
+ name: `${reservation.owner_first_name} ${reservation.owner_last_name}`,
1090
+ address_zip: zipCode,
1091
+ address_country: userProfile.country || ''
1092
+ });
1093
+
1094
+ if (token) {
1095
+ payTicket(token, stripe, zipCode);
1096
+ } else if (error) {
1097
+ external_sweetalert2_default.a.fire("Payment error", "There's an error generating your payment, please retry.", "warning");
1098
+ }
1099
+ };
1100
+
1101
+ return /*#__PURE__*/external_react_default.a.createElement("form", {
1102
+ className: stripe_form_index_module_default.a.form,
1103
+ id: "payment-form",
1104
+ onSubmit: handleSubmit
1105
+ }, /*#__PURE__*/external_react_default.a.createElement("div", {
1106
+ className: stripe_form_index_module_default.a.fieldWrapper
1107
+ }, /*#__PURE__*/external_react_default.a.createElement(react_stripe_js_["CardNumberElement"], {
1108
+ options: {
1109
+ style: stripeStyle
1110
+ }
1111
+ }), /*#__PURE__*/external_react_default.a.createElement("i", {
1112
+ className: "fa fa-credit-card"
1113
+ })), /*#__PURE__*/external_react_default.a.createElement("div", {
1114
+ className: stripe_form_index_module_default.a.fieldWrapper
1115
+ }, /*#__PURE__*/external_react_default.a.createElement(react_stripe_js_["CardExpiryElement"], {
1116
+ options: {
1117
+ style: stripeStyle
1118
+ }
1119
+ })), /*#__PURE__*/external_react_default.a.createElement("div", {
1120
+ className: stripe_form_index_module_default.a.fieldWrapper
1121
+ }, /*#__PURE__*/external_react_default.a.createElement(react_stripe_js_["CardCvcElement"], {
1122
+ options: {
1123
+ style: stripeStyle
1124
+ }
1125
+ })), /*#__PURE__*/external_react_default.a.createElement("div", {
1126
+ className: stripe_form_index_module_default.a.fieldWrapper,
1127
+ style: {
1128
+ marginBottom: `${zipCodeError.required ? '25px' : '0px'}`
1129
+ }
1130
+ }, /*#__PURE__*/external_react_default.a.createElement("input", {
1131
+ placeholder: "Zip Code",
1132
+ value: zipCode,
1133
+ onChange: e => setZipCode(e.target.value)
1134
+ }), zipCodeError.required && /*#__PURE__*/external_react_default.a.createElement("span", null, "This field is required")));
1135
+ };
1136
+
1137
+ const mapStateToProps = ({
1138
+ registrationLiteState
1139
+ }) => ({
1140
+ marketingData: registrationLiteState.settings.marketingData
1141
+ });
1142
+
1143
+ /* harmony default export */ var stripe_form = (Object(external_react_redux_["connect"])(mapStateToProps, null)(StripeForm));
1144
+ // CONCATENATED MODULE: ./src/components/payment/index.js
1145
+ function payment_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
1146
+
1147
+ function payment_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { payment_ownKeys(Object(source), true).forEach(function (key) { payment_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { payment_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1148
+
1149
+ 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; }
1150
+
1151
+ /**
1152
+ * Copyright 2020 OpenStack Foundation
1153
+ * Licensed under the Apache License, Version 2.0 (the "License");
1154
+ * you may not use this file except in compliance with the License.
1155
+ * You may obtain a copy of the License at
1156
+ * http://www.apache.org/licenses/LICENSE-2.0
1157
+ * Unless required by applicable law or agreed to in writing, software
1158
+ * distributed under the License is distributed on an "AS IS" BASIS,
1159
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1160
+ * See the License for the specific language governing permissions and
1161
+ * limitations under the License.
1162
+ **/
1163
+
1164
+
1165
+
1166
+
1167
+
1168
+
1169
+
1170
+
1171
+ const PaymentComponent = ({
1172
+ isActive,
1173
+ userProfile,
1174
+ reservation,
1175
+ payTicket,
1176
+ stripeKey
1177
+ }) => {
1178
+ const [ref, {
1179
+ height
1180
+ }] = Object(external_react_use_["useMeasure"])();
1181
+ const toggleAnimation = Object(external_react_spring_["useSpring"])({
1182
+ config: payment_objectSpread({
1183
+ bounce: 0
1184
+ }, external_react_spring_["config"].stiff),
1185
+ from: {
1186
+ opacity: 0,
1187
+ height: 0
1188
+ },
1189
+ to: {
1190
+ opacity: 1,
1191
+ height: isActive ? height + 10 : 0,
1192
+ marginBottom: isActive ? 5 : 0
1193
+ }
1194
+ });
1195
+ return /*#__PURE__*/external_react_default.a.createElement("div", {
1196
+ className: `${payment_index_module_default.a.outerWrapper} step-wrapper`
1197
+ }, /*#__PURE__*/external_react_default.a.createElement(external_react_default.a.Fragment, null, /*#__PURE__*/external_react_default.a.createElement("div", {
1198
+ className: `${payment_index_module_default.a.innerWrapper}`
1199
+ }, /*#__PURE__*/external_react_default.a.createElement("div", {
1200
+ className: payment_index_module_default.a.title
1201
+ }, /*#__PURE__*/external_react_default.a.createElement("span", null, "Payment")), /*#__PURE__*/external_react_default.a.createElement(external_react_spring_["animated"].div, {
1202
+ style: payment_objectSpread({
1203
+ overflow: 'hidden'
1204
+ }, toggleAnimation)
1205
+ }, /*#__PURE__*/external_react_default.a.createElement("div", {
1206
+ ref: ref
1207
+ }, /*#__PURE__*/external_react_default.a.createElement(react_stripe_js_["Elements"], {
1208
+ stripe: stripeKey
1209
+ }, /*#__PURE__*/external_react_default.a.createElement(stripe_form, {
1210
+ reservation: reservation,
1211
+ payTicket: payTicket,
1212
+ userProfile: userProfile
1213
+ })))))));
1214
+ };
1215
+
1216
+ /* harmony default export */ var payment = (PaymentComponent);
1217
+ // EXTERNAL MODULE: external "react-hook-form"
1218
+ var external_react_hook_form_ = __webpack_require__(26);
1219
+
1220
+ // EXTERNAL MODULE: ./src/components/personal-information/index.module.scss
1221
+ var personal_information_index_module = __webpack_require__(10);
1222
+ var personal_information_index_module_default = /*#__PURE__*/__webpack_require__.n(personal_information_index_module);
1223
+
1224
+ // CONCATENATED MODULE: ./src/components/personal-information/index.js
1225
+ 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); }
1226
+
1227
+ function personal_information_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
1228
+
1229
+ function personal_information_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { personal_information_ownKeys(Object(source), true).forEach(function (key) { personal_information_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { personal_information_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1230
+
1231
+ 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; }
1232
+
1233
+ /**
1234
+ * Copyright 2020 OpenStack Foundation
1235
+ * Licensed under the Apache License, Version 2.0 (the "License");
1236
+ * you may not use this file except in compliance with the License.
1237
+ * You may obtain a copy of the License at
1238
+ * http://www.apache.org/licenses/LICENSE-2.0
1239
+ * Unless required by applicable law or agreed to in writing, software
1240
+ * distributed under the License is distributed on an "AS IS" BASIS,
1241
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1242
+ * See the License for the specific language governing permissions and
1243
+ * limitations under the License.
1244
+ **/
1245
+
1246
+
1247
+
1248
+
1249
+
1250
+
1251
+
1252
+
1253
+ const PersonalInfoComponent = ({
1254
+ isActive,
1255
+ changeForm,
1256
+ reservation,
1257
+ userProfile,
1258
+ summitId,
1259
+ handleCompanyError
1260
+ }) => {
1261
+ var _errors$email, _errors$email2;
1262
+
1263
+ const [personalInfo, setPersonalInfo] = Object(external_react_["useState"])({
1264
+ firstName: userProfile.given_name || '',
1265
+ lastName: userProfile.family_name || '',
1266
+ email: userProfile.email || '',
1267
+ company: {
1268
+ id: null,
1269
+ name: userProfile.company || ''
1270
+ },
1271
+ promoCode: ''
1272
+ });
1273
+ const [companyError, setCompanyError] = Object(external_react_["useState"])(false);
1274
+ const {
1275
+ register,
1276
+ handleSubmit,
1277
+ formState: {
1278
+ errors
1279
+ }
1280
+ } = Object(external_react_hook_form_["useForm"])();
1281
+ Object(external_react_["useEffect"])(() => {
1282
+ if (reservation) {
1283
+ setPersonalInfo({
1284
+ firstName: reservation.owner_first_name ? reservation.owner_first_name : personalInfo.firstName,
1285
+ lastName: reservation.owner_last_name ? reservation.owner_last_name : personalInfo.lastName,
1286
+ email: reservation.owner_email ? reservation.owner_email : personalInfo.email,
1287
+ company: {
1288
+ id: null,
1289
+ name: reservation.owner_company ? reservation.owner_company : personalInfo.company
1290
+ }
1291
+ });
1292
+ }
1293
+ }, []);
1294
+
1295
+ const onCompanyChange = ev => {
1296
+ const newCompany = ev.target.value;
1297
+ setCompanyError(false);
1298
+ setPersonalInfo(personal_information_objectSpread(personal_information_objectSpread({}, personalInfo), {}, {
1299
+ company: newCompany
1300
+ }));
1301
+ };
1302
+
1303
+ const onSubmit = data => {
1304
+ if (!personalInfo.company.name) {
1305
+ setCompanyError(true);
1306
+ return;
1307
+ }
1308
+
1309
+ setPersonalInfo(personal_information_objectSpread(personal_information_objectSpread({}, personalInfo), data));
1310
+ changeForm(personal_information_objectSpread(personal_information_objectSpread({}, personalInfo), data));
1311
+ };
1312
+
1313
+ const [ref, {
1314
+ height
1315
+ }] = Object(external_react_use_["useMeasure"])();
1316
+ const toggleAnimation = Object(external_react_spring_["useSpring"])({
1317
+ config: personal_information_objectSpread({
1318
+ bounce: 0
1319
+ }, external_react_spring_["config"].stiff),
1320
+ from: {
1321
+ opacity: 0,
1322
+ height: 0
1323
+ },
1324
+ to: {
1325
+ opacity: 1,
1326
+ height: isActive ? height + 10 : 0,
1327
+ marginBottom: isActive ? 5 : 0
1328
+ }
1329
+ });
1330
+ return /*#__PURE__*/external_react_default.a.createElement("div", {
1331
+ className: `${personal_information_index_module_default.a.outerWrapper} step-wrapper`
1332
+ }, /*#__PURE__*/external_react_default.a.createElement(external_react_default.a.Fragment, null, /*#__PURE__*/external_react_default.a.createElement("div", {
1333
+ className: `${personal_information_index_module_default.a.innerWrapper}`
1334
+ }, /*#__PURE__*/external_react_default.a.createElement("div", {
1335
+ className: personal_information_index_module_default.a.title
1336
+ }, /*#__PURE__*/external_react_default.a.createElement("span", null, "Personal Information"), !isActive && /*#__PURE__*/external_react_default.a.createElement("div", {
1337
+ "data-testid": "personal-info"
1338
+ }, /*#__PURE__*/external_react_default.a.createElement("span", null, `${personalInfo.firstName} ${personalInfo.lastName} ${personalInfo.company.name ? `- ${personalInfo.company.name}` : ''}`), /*#__PURE__*/external_react_default.a.createElement("br", null), /*#__PURE__*/external_react_default.a.createElement("span", null, personalInfo.email))), /*#__PURE__*/external_react_default.a.createElement(external_react_spring_["animated"].div, {
1339
+ style: personal_information_objectSpread({
1340
+ overflow: 'hidden'
1341
+ }, toggleAnimation)
1342
+ }, /*#__PURE__*/external_react_default.a.createElement("div", {
1343
+ ref: ref
1344
+ }, /*#__PURE__*/external_react_default.a.createElement("form", {
1345
+ id: "personal-info-form",
1346
+ onSubmit: handleSubmit(onSubmit),
1347
+ className: personal_information_index_module_default.a.form,
1348
+ "data-testid": "personal-form"
1349
+ }, /*#__PURE__*/external_react_default.a.createElement("div", null, /*#__PURE__*/external_react_default.a.createElement("input", _extends({
1350
+ type: "text",
1351
+ placeholder: "First name *",
1352
+ defaultValue: personalInfo.firstName || ''
1353
+ }, register("firstName", {
1354
+ required: true,
1355
+ maxLength: 80
1356
+ }), {
1357
+ "data-testid": "first-name"
1358
+ })), errors.firstName && /*#__PURE__*/external_react_default.a.createElement("span", {
1359
+ "data-testid": "first-name-error"
1360
+ }, "This field is required")), /*#__PURE__*/external_react_default.a.createElement("div", null, /*#__PURE__*/external_react_default.a.createElement("input", _extends({
1361
+ type: "text",
1362
+ placeholder: "Last name *",
1363
+ defaultValue: personalInfo.lastName || ''
1364
+ }, register("lastName", {
1365
+ required: true,
1366
+ maxLength: 100
1367
+ }), {
1368
+ "data-testid": "last-name"
1369
+ })), errors.lastName && /*#__PURE__*/external_react_default.a.createElement("span", {
1370
+ "data-testid": "last-name-error"
1371
+ }, "This field is required")), /*#__PURE__*/external_react_default.a.createElement("div", null, /*#__PURE__*/external_react_default.a.createElement("input", _extends({
1372
+ type: "text",
1373
+ placeholder: "Email *",
1374
+ className: personal_information_index_module_default.a.readOnly,
1375
+ readOnly: true,
1376
+ defaultValue: personalInfo.email || ''
1377
+ }, register("email", {
1378
+ required: true,
1379
+ pattern: /^\S+@\S+$/i
1380
+ }), {
1381
+ "data-testid": "email"
1382
+ })), ((_errors$email = errors.email) === null || _errors$email === void 0 ? void 0 : _errors$email.type) === 'required' && /*#__PURE__*/external_react_default.a.createElement("span", {
1383
+ "data-testid": "email-error-required"
1384
+ }, "This field is required"), ((_errors$email2 = errors.email) === null || _errors$email2 === void 0 ? void 0 : _errors$email2.type) === 'pattern' && /*#__PURE__*/external_react_default.a.createElement("span", {
1385
+ "data-testid": "email-error-invalid"
1386
+ }, "The email is invalid")), /*#__PURE__*/external_react_default.a.createElement("div", {
1387
+ className: personal_information_index_module_default.a.companies
1388
+ }, /*#__PURE__*/external_react_default.a.createElement(components_["RegistrationCompanyInput"], {
1389
+ id: "company",
1390
+ summitId: summitId,
1391
+ onChange: onCompanyChange,
1392
+ onError: handleCompanyError,
1393
+ value: personalInfo.company
1394
+ }), companyError && /*#__PURE__*/external_react_default.a.createElement("span", {
1395
+ "data-testid": "company-error"
1396
+ }, "This field is required")), /*#__PURE__*/external_react_default.a.createElement("div", null, /*#__PURE__*/external_react_default.a.createElement("input", _extends({
1397
+ type: "text",
1398
+ placeholder: "Promo Code"
1399
+ }, register("promoCode"))))))))));
1400
+ };
1401
+
1402
+ /* harmony default export */ var personal_information = (PersonalInfoComponent);
1403
+ // EXTERNAL MODULE: ./src/components/ticket-type/index.module.scss
1404
+ var ticket_type_index_module = __webpack_require__(5);
1405
+ var ticket_type_index_module_default = /*#__PURE__*/__webpack_require__.n(ticket_type_index_module);
1406
+
1407
+ // EXTERNAL MODULE: ./src/components/ticket-dropdown/index.module.scss
1408
+ var ticket_dropdown_index_module = __webpack_require__(20);
1409
+ var ticket_dropdown_index_module_default = /*#__PURE__*/__webpack_require__.n(ticket_dropdown_index_module);
1410
+
1411
+ // CONCATENATED MODULE: ./src/components/ticket-dropdown/index.js
1412
+ /**
1413
+ * Copyright 2020 OpenStack Foundation
1414
+ * Licensed under the Apache License, Version 2.0 (the "License");
1415
+ * you may not use this file except in compliance with the License.
1416
+ * You may obtain a copy of the License at
1417
+ * http://www.apache.org/licenses/LICENSE-2.0
1418
+ * Unless required by applicable law or agreed to in writing, software
1419
+ * distributed under the License is distributed on an "AS IS" BASIS,
1420
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1421
+ * See the License for the specific language governing permissions and
1422
+ * limitations under the License.
1423
+ **/
1424
+
1425
+
1426
+
1427
+
1428
+ const TicketDropdownComponent = ({
1429
+ selectedTicket,
1430
+ ticketTypes,
1431
+ onTicketSelect
1432
+ }) => {
1433
+ const [active, setActive] = Object(external_react_["useState"])(false);
1434
+
1435
+ const ticketSelect = ticket => {
1436
+ onTicketSelect(ticket);
1437
+ setActive(!active);
1438
+ };
1439
+
1440
+ const date = new Date();
1441
+ let now_utc = Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds()) / 1000;
1442
+ return /*#__PURE__*/external_react_default.a.createElement("div", {
1443
+ className: `${ticket_dropdown_index_module_default.a.outerWrapper}`
1444
+ }, /*#__PURE__*/external_react_default.a.createElement("div", {
1445
+ className: ticket_dropdown_index_module_default.a.placeholder,
1446
+ onClick: () => setActive(!active),
1447
+ "data-testid": "ticket-dropdown"
1448
+ }, selectedTicket ? /*#__PURE__*/external_react_default.a.createElement(external_react_default.a.Fragment, null, /*#__PURE__*/external_react_default.a.createElement("span", {
1449
+ "data-testid": "selected-ticket"
1450
+ }, `${selectedTicket.name} - $${selectedTicket.cost} ${selectedTicket.currency}`), /*#__PURE__*/external_react_default.a.createElement("i", {
1451
+ className: "fa fa-chevron-down"
1452
+ })) : /*#__PURE__*/external_react_default.a.createElement(external_react_default.a.Fragment, null, /*#__PURE__*/external_react_default.a.createElement("span", {
1453
+ "data-testid": "no-ticket"
1454
+ }, "Select a ticket"), /*#__PURE__*/external_react_default.a.createElement("i", {
1455
+ className: "fa fa-chevron-down"
1456
+ }))), active && /*#__PURE__*/external_react_default.a.createElement("div", {
1457
+ className: ticket_dropdown_index_module_default.a.dropdown,
1458
+ "data-testid": "ticket-list"
1459
+ }, ticketTypes.map(t => {
1460
+ if (t.quantity_2_sell - t.quantity_sold > 0 && (t.sales_start_date === null && t.sales_end_date === null || now_utc >= t.sales_start_date && now_utc <= t.sales_end_date)) {
1461
+ return /*#__PURE__*/external_react_default.a.createElement("div", {
1462
+ key: t.id,
1463
+ onClick: () => ticketSelect(t)
1464
+ }, `${t.name} - $${t.cost} ${t.currency}`);
1465
+ }
1466
+ })));
1467
+ };
1468
+
1469
+ /* harmony default export */ var ticket_dropdown = (TicketDropdownComponent);
1470
+ // CONCATENATED MODULE: ./src/components/ticket-type/index.js
1471
+ function ticket_type_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
1472
+
1473
+ function ticket_type_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ticket_type_ownKeys(Object(source), true).forEach(function (key) { ticket_type_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ticket_type_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1474
+
1475
+ 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; }
1476
+
1477
+ /**
1478
+ * Copyright 2020 OpenStack Foundation
1479
+ * Licensed under the Apache License, Version 2.0 (the "License");
1480
+ * you may not use this file except in compliance with the License.
1481
+ * You may obtain a copy of the License at
1482
+ * http://www.apache.org/licenses/LICENSE-2.0
1483
+ * Unless required by applicable law or agreed to in writing, software
1484
+ * distributed under the License is distributed on an "AS IS" BASIS,
1485
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1486
+ * See the License for the specific language governing permissions and
1487
+ * limitations under the License.
1488
+ **/
1489
+
1490
+
1491
+
1492
+
1493
+
1494
+
1495
+
1496
+
1497
+ const TicketTypeComponent = ({
1498
+ ticketTypes,
1499
+ taxTypes,
1500
+ isActive,
1501
+ changeForm,
1502
+ reservation,
1503
+ inPersonDisclaimer
1504
+ }) => {
1505
+ const [ticket, setTicket] = Object(external_react_["useState"])(null);
1506
+ const [ref, {
1507
+ height
1508
+ }] = Object(external_react_use_["useMeasure"])();
1509
+ const toggleAnimation = Object(external_react_spring_["useSpring"])({
1510
+ config: ticket_type_objectSpread({
1511
+ bounce: 0
1512
+ }, external_react_spring_["config"].stiff),
1513
+ from: {
1514
+ opacity: 0,
1515
+ height: 0
1516
+ },
1517
+ to: {
1518
+ opacity: 1,
1519
+ height: isActive ? height + 10 : 0,
1520
+ marginBottom: isActive ? 5 : 0
1521
+ }
1522
+ });
1523
+ Object(external_react_["useEffect"])(() => {
1524
+ var _reservation$tickets;
1525
+
1526
+ if (reservation && ((_reservation$tickets = reservation.tickets) === null || _reservation$tickets === void 0 ? void 0 : _reservation$tickets.length) > 0) {
1527
+ setTicket(ticketTypes.find(t => t.id === reservation.tickets[0].ticket_type_id));
1528
+ }
1529
+ }, []);
1530
+ Object(external_react_["useEffect"])(() => {
1531
+ changeForm(ticket);
1532
+ }, [ticket]);
1533
+
1534
+ const ticketSelect = t => {
1535
+ setTicket(t);
1536
+ };
1537
+
1538
+ return /*#__PURE__*/external_react_default.a.createElement("div", {
1539
+ className: `${ticket_type_index_module_default.a.outerWrapper} step-wrapper`
1540
+ }, /*#__PURE__*/external_react_default.a.createElement(external_react_default.a.Fragment, null, /*#__PURE__*/external_react_default.a.createElement("div", {
1541
+ className: `${ticket_type_index_module_default.a.innerWrapper}`
1542
+ }, /*#__PURE__*/external_react_default.a.createElement("div", {
1543
+ className: ticket_type_index_module_default.a.title
1544
+ }, /*#__PURE__*/external_react_default.a.createElement("span", null, "Ticket "), /*#__PURE__*/external_react_default.a.createElement("div", {
1545
+ className: ticket_type_index_module_default.a.summary
1546
+ }, !isActive && (reservation === null || reservation === void 0 ? void 0 : reservation.discount_amount) > 0 ? /*#__PURE__*/external_react_default.a.createElement("span", null, ticket && /*#__PURE__*/external_react_default.a.createElement(external_react_default.a.Fragment, null, ticket.name, " \xA0", /*#__PURE__*/external_react_default.a.createElement("span", {
1547
+ className: ticket_type_index_module_default.a.crossOut
1548
+ }, "$", ticket.cost, " \xA0"), /*#__PURE__*/external_react_default.a.createElement("span", {
1549
+ className: ticket_type_index_module_default.a.discount
1550
+ }, "$", reservation.raw_amount - reservation.discount_amount), ticket.currency), /*#__PURE__*/external_react_default.a.createElement("span", {
1551
+ className: ticket_type_index_module_default.a.promo
1552
+ }, "Promo code applied")) : /*#__PURE__*/external_react_default.a.createElement("span", null, ticket ? `${ticket.name}: $${ticket.cost} ${ticket.currency}` : 'No ticket selected'), !isActive && (reservation === null || reservation === void 0 ? void 0 : reservation.taxes_amount) > 0 && /*#__PURE__*/external_react_default.a.createElement(external_react_default.a.Fragment, null, /*#__PURE__*/external_react_default.a.createElement("br", null), /*#__PURE__*/external_react_default.a.createElement("span", null, "Taxes: $", reservation === null || reservation === void 0 ? void 0 : reservation.taxes_amount, " ", ticket === null || ticket === void 0 ? void 0 : ticket.currency)))), /*#__PURE__*/external_react_default.a.createElement(external_react_spring_["animated"].div, {
1553
+ style: ticket_type_objectSpread({
1554
+ overflow: 'hidden'
1555
+ }, toggleAnimation)
1556
+ }, /*#__PURE__*/external_react_default.a.createElement("div", {
1557
+ ref: ref,
1558
+ className: ticket_type_index_module_default.a.dropdown
1559
+ }, /*#__PURE__*/external_react_default.a.createElement(ticket_dropdown, {
1560
+ selectedTicket: ticket,
1561
+ ticketTypes: ticketTypes,
1562
+ onTicketSelect: t => ticketSelect(t)
1563
+ }))), inPersonDisclaimer && ticket && isInPersonTicketType(ticket) && /*#__PURE__*/external_react_default.a.createElement("div", {
1564
+ className: ticket_type_index_module_default.a.inPersonDisclaimer
1565
+ }, /*#__PURE__*/external_react_default.a.createElement(components_["RawHTML"], null, inPersonDisclaimer)))));
1566
+ };
1567
+
1568
+ /* harmony default export */ var ticket_type = (TicketTypeComponent);
1569
+ // EXTERNAL MODULE: ./src/components/button-bar/index.module.scss
1570
+ var button_bar_index_module = __webpack_require__(3);
1571
+ var button_bar_index_module_default = /*#__PURE__*/__webpack_require__.n(button_bar_index_module);
1572
+
1573
+ // CONCATENATED MODULE: ./src/components/button-bar/index.js
1574
+ /**
1575
+ * Copyright 2020 OpenStack Foundation
1576
+ * Licensed under the Apache License, Version 2.0 (the "License");
1577
+ * you may not use this file except in compliance with the License.
1578
+ * You may obtain a copy of the License at
1579
+ * http://www.apache.org/licenses/LICENSE-2.0
1580
+ * Unless required by applicable law or agreed to in writing, software
1581
+ * distributed under the License is distributed on an "AS IS" BASIS,
1582
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1583
+ * See the License for the specific language governing permissions and
1584
+ * limitations under the License.
1585
+ **/
1586
+
1587
+
1588
+
1589
+
1590
+ const ButtonBarComponent = ({
1591
+ step,
1592
+ changeStep,
1593
+ registrationForm,
1594
+ removeReservedTicket,
1595
+ inPersonDisclaimer,
1596
+ goToRegistration
1597
+ }) => {
1598
+ var _registrationForm$tic, _registrationForm$tic2;
1599
+
1600
+ const nextButtonText = inPersonDisclaimer && registrationForm !== null && registrationForm !== void 0 && registrationForm.ticketType && isInPersonTicketType(registrationForm.ticketType) ? 'Accept' : 'Next';
1601
+ return /*#__PURE__*/external_react_default.a.createElement("div", {
1602
+ className: `${button_bar_index_module_default.a.outerWrapper}`
1603
+ }, step !== 3 && /*#__PURE__*/external_react_default.a.createElement(external_react_default.a.Fragment, null, /*#__PURE__*/external_react_default.a.createElement("div", {
1604
+ className: `${button_bar_index_module_default.a.innerWrapper}`
1605
+ }, /*#__PURE__*/external_react_default.a.createElement("div", {
1606
+ className: button_bar_index_module_default.a.required
1607
+ }, step !== 0 && /*#__PURE__*/external_react_default.a.createElement("span", null, "* Required fields ", /*#__PURE__*/external_react_default.a.createElement("br", null), " "), /*#__PURE__*/external_react_default.a.createElement("span", {
1608
+ className: button_bar_index_module_default.a.registration,
1609
+ onClick: () => goToRegistration()
1610
+ }, "Need multiple tickets?")), /*#__PURE__*/external_react_default.a.createElement("div", {
1611
+ className: button_bar_index_module_default.a.actions
1612
+ }, step !== 0 && step !== 2 && /*#__PURE__*/external_react_default.a.createElement("button", {
1613
+ className: `${button_bar_index_module_default.a.button} button`,
1614
+ onClick: () => changeStep(step - 1)
1615
+ }, "< Back"), step !== 0 && step === 2 && /*#__PURE__*/external_react_default.a.createElement("button", {
1616
+ className: `${button_bar_index_module_default.a.button} button`,
1617
+ onClick: () => removeReservedTicket()
1618
+ }, "< Back"), step === 0 && /*#__PURE__*/external_react_default.a.createElement("button", {
1619
+ disabled: !registrationForm.ticketType,
1620
+ className: `${button_bar_index_module_default.a.button} button`,
1621
+ onClick: () => changeStep(step + 1)
1622
+ }, nextButtonText), step === 1 && ((_registrationForm$tic = registrationForm.ticketType) === null || _registrationForm$tic === void 0 ? void 0 : _registrationForm$tic.cost) === 0 && /*#__PURE__*/external_react_default.a.createElement("button", {
1623
+ className: `${button_bar_index_module_default.a.button} button`,
1624
+ type: "submit",
1625
+ form: "personal-info-form"
1626
+ }, "Get Ticket"), step === 1 && ((_registrationForm$tic2 = registrationForm.ticketType) === null || _registrationForm$tic2 === void 0 ? void 0 : _registrationForm$tic2.cost) > 0 && /*#__PURE__*/external_react_default.a.createElement("button", {
1627
+ className: `${button_bar_index_module_default.a.button} button`,
1628
+ type: "submit",
1629
+ form: "personal-info-form"
1630
+ }, "Next"), step === 2 && /*#__PURE__*/external_react_default.a.createElement("button", {
1631
+ className: `${button_bar_index_module_default.a.button} button`,
1632
+ type: "submit",
1633
+ form: "payment-form"
1634
+ }, "Pay Now")))));
1635
+ };
1636
+
1637
+ /* harmony default export */ var button_bar = (ButtonBarComponent);
1638
+ // EXTERNAL MODULE: ./src/components/purchase-complete/index.module.scss
1639
+ var purchase_complete_index_module = __webpack_require__(6);
1640
+ var purchase_complete_index_module_default = /*#__PURE__*/__webpack_require__.n(purchase_complete_index_module);
1641
+
1642
+ // CONCATENATED MODULE: ./src/components/purchase-complete/index.js
1643
+ /**
1644
+ * Copyright 2020 OpenStack Foundation
1645
+ * Licensed under the Apache License, Version 2.0 (the "License");
1646
+ * you may not use this file except in compliance with the License.
1647
+ * You may obtain a copy of the License at
1648
+ * http://www.apache.org/licenses/LICENSE-2.0
1649
+ * Unless required by applicable law or agreed to in writing, software
1650
+ * distributed under the License is distributed on an "AS IS" BASIS,
1651
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1652
+ * See the License for the specific language governing permissions and
1653
+ * limitations under the License.
1654
+ **/
1655
+
1656
+
1657
+
1658
+
1659
+
1660
+ const PurchaseComplete = ({
1661
+ checkout,
1662
+ onPurchaseComplete,
1663
+ goToExtraQuestions,
1664
+ goToEvent,
1665
+ summit,
1666
+ supportEmail = "support@fntech.com"
1667
+ }) => {
1668
+ Object(external_react_["useEffect"])(() => {
1669
+ onPurchaseComplete(checkout);
1670
+ }, []);
1671
+ const date = new Date();
1672
+ let now_utc = Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds()) / 1000;
1673
+ const isActive = summit.start_date < now_utc && summit.end_date > now_utc;
1674
+ const startDateFormatted = {
1675
+ date: Object(methods_["epochToMomentTimeZone"])(summit.start_date, summit.time_zone_id).format('MMMM D'),
1676
+ time: Object(methods_["epochToMomentTimeZone"])(summit.start_date, summit.time_zone_id).format('HH:mm')
1677
+ };
1678
+
1679
+ const needExtraQuestions = () => {
1680
+ return summit.order_extra_questions.some(q => q.mandatory === true) ? true : false;
1681
+ };
1682
+
1683
+ return /*#__PURE__*/external_react_default.a.createElement("div", {
1684
+ className: purchase_complete_index_module_default.a.wrapper
1685
+ }, /*#__PURE__*/external_react_default.a.createElement("div", {
1686
+ className: purchase_complete_index_module_default.a.circle
1687
+ }, /*#__PURE__*/external_react_default.a.createElement("i", {
1688
+ className: "fa fa-ticket"
1689
+ })), /*#__PURE__*/external_react_default.a.createElement("span", {
1690
+ className: purchase_complete_index_module_default.a.complete
1691
+ }, "Your order is complete"), isActive ? needExtraQuestions() ? /*#__PURE__*/external_react_default.a.createElement(external_react_default.a.Fragment, null, /*#__PURE__*/external_react_default.a.createElement("span", null, "This ticket requires additional details. ", /*#__PURE__*/external_react_default.a.createElement("br", null)), /*#__PURE__*/external_react_default.a.createElement("button", {
1692
+ className: `${purchase_complete_index_module_default.a.button} button`,
1693
+ onClick: () => goToExtraQuestions()
1694
+ }, "Finish now")) : /*#__PURE__*/external_react_default.a.createElement(external_react_default.a.Fragment, null, /*#__PURE__*/external_react_default.a.createElement("button", {
1695
+ className: `${purchase_complete_index_module_default.a.button} button`,
1696
+ onClick: () => goToEvent()
1697
+ }, "Access event now")) : /*#__PURE__*/external_react_default.a.createElement(external_react_default.a.Fragment, null, /*#__PURE__*/external_react_default.a.createElement("span", null, "The event will start on ", startDateFormatted.date, " at ", startDateFormatted.time, " ", summit.time_zone_id, " ", /*#__PURE__*/external_react_default.a.createElement("br", null), "This ticket requires additional details."), /*#__PURE__*/external_react_default.a.createElement("div", {
1698
+ className: purchase_complete_index_module_default.a.actions
1699
+ }, /*#__PURE__*/external_react_default.a.createElement("button", {
1700
+ className: `${purchase_complete_index_module_default.a.button} button`,
1701
+ onClick: () => goToExtraQuestions()
1702
+ }, "Finish Now"), /*#__PURE__*/external_react_default.a.createElement("button", {
1703
+ className: `${purchase_complete_index_module_default.a.button} button`,
1704
+ onClick: () => goToEvent()
1705
+ }, "Do this later"))), /*#__PURE__*/external_react_default.a.createElement("span", {
1706
+ className: purchase_complete_index_module_default.a.footer
1707
+ }, "For further assistance, please email ", /*#__PURE__*/external_react_default.a.createElement("a", {
1708
+ href: `mailto:${supportEmail}`
1709
+ }, supportEmail)));
1710
+ };
1711
+
1712
+ /* harmony default export */ var purchase_complete = (PurchaseComplete);
1713
+ // EXTERNAL MODULE: external "react-otp-input"
1714
+ var external_react_otp_input_ = __webpack_require__(27);
1715
+ var external_react_otp_input_default = /*#__PURE__*/__webpack_require__.n(external_react_otp_input_);
1716
+
1717
+ // EXTERNAL MODULE: ./src/components/login-passwordless/index.module.scss
1718
+ var login_passwordless_index_module = __webpack_require__(4);
1719
+ var login_passwordless_index_module_default = /*#__PURE__*/__webpack_require__.n(login_passwordless_index_module);
1720
+
1721
+ // CONCATENATED MODULE: ./src/components/login-passwordless/index.js
1722
+ /**
1723
+ * Copyright 2020 OpenStack Foundation
1724
+ * Licensed under the Apache License, Version 2.0 (the "License");
1725
+ * you may not use this file except in compliance with the License.
1726
+ * You may obtain a copy of the License at
1727
+ * http://www.apache.org/licenses/LICENSE-2.0
1728
+ * Unless required by applicable law or agreed to in writing, software
1729
+ * distributed under the License is distributed on an "AS IS" BASIS,
1730
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1731
+ * See the License for the specific language governing permissions and
1732
+ * limitations under the License.
1733
+ **/
1734
+
1735
+
1736
+
1737
+
1738
+
1739
+ const PasswordlessLoginComponent = ({
1740
+ email,
1741
+ codeLength,
1742
+ passwordlessLogin,
1743
+ loginWithCode,
1744
+ codeError,
1745
+ goToLogin,
1746
+ getLoginCode,
1747
+ getPasswordlessCode
1748
+ }) => {
1749
+ const [otpCode, setOtpCode] = Object(external_react_["useState"])('');
1750
+ const [otpError, setOtpError] = Object(external_react_["useState"])(false);
1751
+
1752
+ const tryPasswordlessLogin = code => {
1753
+ if (code.length === codeLength) {
1754
+ setOtpError(false);
1755
+ passwordlessLogin(otpCode, loginWithCode);
1756
+ } else {
1757
+ setOtpError(true);
1758
+ }
1759
+ };
1760
+
1761
+ const resendCode = () => {
1762
+ getLoginCode(email, getPasswordlessCode);
1763
+ };
1764
+
1765
+ return /*#__PURE__*/external_react_default.a.createElement("div", {
1766
+ className: `${login_passwordless_index_module_default.a.passwordlessWrapper} step-wrapper`
1767
+ }, /*#__PURE__*/external_react_default.a.createElement(external_react_default.a.Fragment, null, /*#__PURE__*/external_react_default.a.createElement("div", {
1768
+ className: `${login_passwordless_index_module_default.a.innerWrapper}`
1769
+ }, /*#__PURE__*/external_react_default.a.createElement("span", null, "We sent your single-use login code to ", /*#__PURE__*/external_react_default.a.createElement("br", null), /*#__PURE__*/external_react_default.a.createElement("span", {
1770
+ "data-testid": "email"
1771
+ }, email), /*#__PURE__*/external_react_default.a.createElement("br", null), /*#__PURE__*/external_react_default.a.createElement("span", {
1772
+ className: login_passwordless_index_module_default.a.digits,
1773
+ "data-testid": "code-digits"
1774
+ }, "Add the ", codeLength, " digit code below")), /*#__PURE__*/external_react_default.a.createElement("div", {
1775
+ className: login_passwordless_index_module_default.a.codeInput
1776
+ }, /*#__PURE__*/external_react_default.a.createElement(external_react_otp_input_default.a, {
1777
+ value: otpCode,
1778
+ onChange: code => setOtpCode(code),
1779
+ numInputs: codeLength,
1780
+ shouldAutoFocus: true,
1781
+ hasErrored: otpError || codeError,
1782
+ errorStyle: {
1783
+ border: '1px solid #e5424d'
1784
+ },
1785
+ "data-testid": "otp-input"
1786
+ })), codeError && /*#__PURE__*/external_react_default.a.createElement("span", {
1787
+ className: login_passwordless_index_module_default.a.error,
1788
+ "data-testid": "error"
1789
+ }, "The code you entered it's incorrect. ", /*#__PURE__*/external_react_default.a.createElement("br", null), " Please try again."), /*#__PURE__*/external_react_default.a.createElement("div", {
1790
+ className: login_passwordless_index_module_default.a.verify
1791
+ }, /*#__PURE__*/external_react_default.a.createElement("div", {
1792
+ className: `${login_passwordless_index_module_default.a.button} button`,
1793
+ onClick: () => tryPasswordlessLogin(otpCode),
1794
+ "data-testid": "verify"
1795
+ }, "Verify"), /*#__PURE__*/external_react_default.a.createElement("b", null, "or go back and ", /*#__PURE__*/external_react_default.a.createElement("span", {
1796
+ className: login_passwordless_index_module_default.a.link,
1797
+ onClick: () => goToLogin(),
1798
+ "data-testid": "go-back"
1799
+ }, "try another way")))), /*#__PURE__*/external_react_default.a.createElement("div", {
1800
+ className: login_passwordless_index_module_default.a.resend
1801
+ }, "Didn\u2019t receive it? Check your spam/junk folder, or ", /*#__PURE__*/external_react_default.a.createElement("span", {
1802
+ className: login_passwordless_index_module_default.a.link,
1803
+ onClick: () => resendCode(),
1804
+ "data-testid": "resend"
1805
+ }, "resend email"), " now.")));
1806
+ };
1807
+
1808
+ /* harmony default export */ var login_passwordless = (PasswordlessLoginComponent);
1809
+ // EXTERNAL MODULE: ./src/components/ticket-owned/index.module.scss
1810
+ var ticket_owned_index_module = __webpack_require__(16);
1811
+ var ticket_owned_index_module_default = /*#__PURE__*/__webpack_require__.n(ticket_owned_index_module);
1812
+
1813
+ // CONCATENATED MODULE: ./src/components/ticket-owned/index.js
1814
+ /**
1815
+ * Copyright 2020 OpenStack Foundation
1816
+ * Licensed under the Apache License, Version 2.0 (the "License");
1817
+ * you may not use this file except in compliance with the License.
1818
+ * You may obtain a copy of the License at
1819
+ * http://www.apache.org/licenses/LICENSE-2.0
1820
+ * Unless required by applicable law or agreed to in writing, software
1821
+ * distributed under the License is distributed on an "AS IS" BASIS,
1822
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1823
+ * See the License for the specific language governing permissions and
1824
+ * limitations under the License.
1825
+ **/
1826
+
1827
+
1828
+
1829
+ const TicketOwnedComponent = ({
1830
+ goToRegistration
1831
+ }) => {
1832
+ return /*#__PURE__*/external_react_default.a.createElement("div", {
1833
+ className: `${ticket_owned_index_module_default.a.wrapper}`
1834
+ }, /*#__PURE__*/external_react_default.a.createElement(external_react_default.a.Fragment, null, /*#__PURE__*/external_react_default.a.createElement("div", {
1835
+ className: ticket_owned_index_module_default.a.circle
1836
+ }, /*#__PURE__*/external_react_default.a.createElement("i", {
1837
+ className: "fa fa-ticket"
1838
+ })), /*#__PURE__*/external_react_default.a.createElement("span", {
1839
+ className: ticket_owned_index_module_default.a.complete
1840
+ }, "Our records show you have a ticket(s) to this event."), /*#__PURE__*/external_react_default.a.createElement("span", {
1841
+ className: ticket_owned_index_module_default.a.complete
1842
+ }, "If you would like to purchase more, ", /*#__PURE__*/external_react_default.a.createElement("a", {
1843
+ onClick: () => goToRegistration()
1844
+ }, "click here"), ".")));
1845
+ };
1846
+
1847
+ /* harmony default export */ var ticket_owned = (TicketOwnedComponent);
1848
+ // CONCATENATED MODULE: ./src/components/registration-lite.js
1849
+ const _excluded = ["loadSession", "setMarketingSettings", "changeStep", "removeReservedTicket", "reserveTicket", "payTicket", "onPurchaseComplete", "getTicketTypes", "getTaxesTypes", "getLoginCode", "passwordlessLogin", "goToLogin", "loginOptions", "allowsNativeAuth", "allowsOtpAuth", "reservation", "checkout", "ticketTypes", "taxTypes", "step", "passwordlessCodeSent", "passwordlessEmail", "passwordlessCode", "getPasswordlessCode", "passwordlessCodeError", "loginWithCode", "goToExtraQuestions", "goToEvent", "goToRegistration", "profileData", "summitData", "supportEmail", "ticketOwned", "widgetLoading", "loading", "inPersonDisclaimer", "userProfile", "handleCompanyError"];
1850
+
1851
+ function registration_lite_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
1852
+
1853
+ function registration_lite_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { registration_lite_ownKeys(Object(source), true).forEach(function (key) { registration_lite_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { registration_lite_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1854
+
1855
+ 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; }
1856
+
1857
+ 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; }
1858
+
1859
+ 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; }
1860
+
1861
+ /**
1862
+ * Copyright 2020 OpenStack Foundation
1863
+ * Licensed under the Apache License, Version 2.0 (the "License");
1864
+ * you may not use this file except in compliance with the License.
1865
+ * You may obtain a copy of the License at
1866
+ * http://www.apache.org/licenses/LICENSE-2.0
1867
+ * Unless required by applicable law or agreed to in writing, software
1868
+ * distributed under the License is distributed on an "AS IS" BASIS,
1869
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1870
+ * See the License for the specific language governing permissions and
1871
+ * limitations under the License.
1872
+ **/
1873
+
1874
+
1875
+
1876
+
1877
+
1878
+
1879
+
1880
+
1881
+
1882
+
1883
+
1884
+
1885
+
1886
+
1887
+
1888
+
1889
+
1890
+
1891
+ const RegistrationLite = _ref => {
1892
+ var _registrationForm$tic, _registrationForm$tic2;
1893
+
1894
+ let {
1895
+ loadSession,
1896
+ setMarketingSettings,
1897
+ changeStep,
1898
+ removeReservedTicket,
1899
+ reserveTicket,
1900
+ payTicket,
1901
+ onPurchaseComplete,
1902
+ getTicketTypes,
1903
+ getTaxesTypes,
1904
+ getLoginCode,
1905
+ passwordlessLogin,
1906
+ goToLogin,
1907
+ loginOptions,
1908
+ allowsNativeAuth,
1909
+ allowsOtpAuth,
1910
+ reservation,
1911
+ checkout,
1912
+ ticketTypes,
1913
+ taxTypes,
1914
+ step,
1915
+ passwordlessCodeSent,
1916
+ passwordlessEmail,
1917
+ passwordlessCode,
1918
+ getPasswordlessCode,
1919
+ passwordlessCodeError,
1920
+ loginWithCode,
1921
+ goToExtraQuestions,
1922
+ goToEvent,
1923
+ goToRegistration,
1924
+ profileData,
1925
+ summitData,
1926
+ supportEmail,
1927
+ ticketOwned,
1928
+ widgetLoading,
1929
+ loading,
1930
+ inPersonDisclaimer,
1931
+ userProfile,
1932
+ handleCompanyError
1933
+ } = _ref,
1934
+ rest = _objectWithoutProperties(_ref, _excluded);
1935
+
1936
+ const [registrationForm, setRegistrationForm] = Object(external_react_["useState"])({
1937
+ ticketType: null,
1938
+ personalInformation: null,
1939
+ paymentInformation: null
1940
+ });
1941
+ let publicKey = null;
1942
+
1943
+ for (let profile of summitData.payment_profiles) {
1944
+ if (profile.application_type === 'Registration') {
1945
+ publicKey = profile.test_mode_enabled ? profile.test_publishable_key : profile.live_publishable_key;
1946
+ break;
1947
+ }
1948
+ }
1949
+
1950
+ const stripePromise = Object(external_react_["useMemo"])(() => Object(stripe_js_["loadStripe"])(publicKey), [publicKey]);
1951
+
1952
+ const ticketReservation = () => {
1953
+ reserveTicket(registrationForm.personalInformation, registrationForm.ticketType);
1954
+ };
1955
+
1956
+ Object(external_react_["useEffect"])(() => {
1957
+ loadSession(registration_lite_objectSpread(registration_lite_objectSpread({}, rest), {}, {
1958
+ summitData,
1959
+ profileData
1960
+ }));
1961
+
1962
+ if (!profileData) {
1963
+ changeStep(0);
1964
+ }
1965
+ }, [profileData]);
1966
+ Object(external_react_["useEffect"])(() => {
1967
+ if (summitData && profileData) {
1968
+ getTicketTypes(summitData.id).then(() => getTaxesTypes(summitData.id));
1969
+ }
1970
+ }, [summitData, profileData]);
1971
+ Object(external_react_["useEffect"])(() => {
1972
+ if (step === 1 && registrationForm.ticketType && registrationForm.personalInformation) {
1973
+ ticketReservation();
1974
+ }
1975
+
1976
+ if (step > 0 && !registrationForm.ticketType) {
1977
+ changeStep(0);
1978
+ }
1979
+ }, [registrationForm]);
1980
+ const [ref, {
1981
+ height
1982
+ }] = Object(external_react_use_["useMeasure"])();
1983
+ const toggleAnimation = Object(external_react_spring_["useSpring"])({
1984
+ config: registration_lite_objectSpread({
1985
+ bounce: 0
1986
+ }, external_react_spring_["config"].stiff),
1987
+ to: {
1988
+ opacity: ((_registrationForm$tic = registrationForm.ticketType) === null || _registrationForm$tic === void 0 ? void 0 : _registrationForm$tic.cost) === 0 ? 0 : 1,
1989
+ height: ((_registrationForm$tic2 = registrationForm.ticketType) === null || _registrationForm$tic2 === void 0 ? void 0 : _registrationForm$tic2.cost) === 0 ? 0 : height
1990
+ }
1991
+ });
1992
+ return /*#__PURE__*/external_react_default.a.createElement("div", {
1993
+ id: "modal",
1994
+ className: "modal is-active"
1995
+ }, /*#__PURE__*/external_react_default.a.createElement("div", {
1996
+ className: "modal-background"
1997
+ }), /*#__PURE__*/external_react_default.a.createElement("div", {
1998
+ className: "modal-content"
1999
+ }, /*#__PURE__*/external_react_default.a.createElement(components_["AjaxLoader"], {
2000
+ relative: true,
2001
+ color: '#ffffff',
2002
+ show: widgetLoading || loading,
2003
+ size: 80
2004
+ }), /*#__PURE__*/external_react_default.a.createElement("div", {
2005
+ className: `${general_module_default.a.outerWrapper} summit-registration-lite`
2006
+ }, /*#__PURE__*/external_react_default.a.createElement(external_react_default.a.Fragment, null, /*#__PURE__*/external_react_default.a.createElement("div", {
2007
+ className: `${general_module_default.a.innerWrapper}`
2008
+ }, /*#__PURE__*/external_react_default.a.createElement("div", {
2009
+ className: general_module_default.a.title
2010
+ }, /*#__PURE__*/external_react_default.a.createElement("span", null, summitData.name), /*#__PURE__*/external_react_default.a.createElement("i", {
2011
+ className: "fa fa-close",
2012
+ "aria-label": "close",
2013
+ onClick: () => rest.closeWidget()
2014
+ })), ticketOwned && /*#__PURE__*/external_react_default.a.createElement("div", {
2015
+ className: general_module_default.a.stepsWrapper
2016
+ }, /*#__PURE__*/external_react_default.a.createElement(ticket_owned, {
2017
+ goToRegistration: goToRegistration
2018
+ })), !ticketOwned && /*#__PURE__*/external_react_default.a.createElement("div", {
2019
+ className: general_module_default.a.stepsWrapper
2020
+ }, !profileData && !passwordlessCodeSent && /*#__PURE__*/external_react_default.a.createElement(components_login, {
2021
+ options: loginOptions,
2022
+ allowsNativeAuth: allowsNativeAuth,
2023
+ allowsOtpAuth: allowsOtpAuth,
2024
+ login: provider => rest.authUser(provider),
2025
+ getLoginCode: getLoginCode,
2026
+ getPasswordlessCode: getPasswordlessCode
2027
+ }), !profileData && passwordlessCodeSent && /*#__PURE__*/external_react_default.a.createElement(login_passwordless, {
2028
+ codeLength: passwordlessCode,
2029
+ email: passwordlessEmail,
2030
+ passwordlessLogin: passwordlessLogin,
2031
+ loginWithCode: loginWithCode,
2032
+ codeError: passwordlessCodeError,
2033
+ goToLogin: goToLogin,
2034
+ getLoginCode: getLoginCode,
2035
+ getPasswordlessCode: getPasswordlessCode
2036
+ }), profileData && step !== 3 && ticketTypes.length > 0 && /*#__PURE__*/external_react_default.a.createElement(external_react_default.a.Fragment, null, /*#__PURE__*/external_react_default.a.createElement(ticket_type, {
2037
+ ticketTypes: ticketTypes,
2038
+ inPersonDisclaimer: inPersonDisclaimer,
2039
+ taxTypes: taxTypes,
2040
+ reservation: reservation,
2041
+ isActive: step === 0,
2042
+ changeForm: t => setRegistrationForm(registration_lite_objectSpread(registration_lite_objectSpread({}, registrationForm), {}, {
2043
+ ticketType: t
2044
+ }))
2045
+ }), /*#__PURE__*/external_react_default.a.createElement(personal_information, {
2046
+ isActive: step === 1,
2047
+ reservation: reservation,
2048
+ userProfile: profileData,
2049
+ summitId: summitData.id,
2050
+ changeForm: personalForm => setRegistrationForm(registration_lite_objectSpread(registration_lite_objectSpread({}, registrationForm), {}, {
2051
+ personalInformation: personalForm
2052
+ })),
2053
+ handleCompanyError: handleCompanyError
2054
+ }), /*#__PURE__*/external_react_default.a.createElement(external_react_spring_["animated"].div, {
2055
+ style: registration_lite_objectSpread({}, toggleAnimation)
2056
+ }, /*#__PURE__*/external_react_default.a.createElement("div", {
2057
+ ref: ref
2058
+ }, /*#__PURE__*/external_react_default.a.createElement(payment, {
2059
+ isActive: step === 2,
2060
+ reservation: reservation,
2061
+ payTicket: payTicket,
2062
+ userProfile: profileData,
2063
+ stripeKey: stripePromise
2064
+ })))), profileData && step === 3 && /*#__PURE__*/external_react_default.a.createElement(purchase_complete, {
2065
+ checkout: checkout,
2066
+ summit: summitData,
2067
+ onPurchaseComplete: onPurchaseComplete,
2068
+ supportEmail: supportEmail,
2069
+ goToEvent: goToEvent,
2070
+ goToExtraQuestions: goToExtraQuestions
2071
+ })), profileData && !ticketOwned && step !== 3 && /*#__PURE__*/external_react_default.a.createElement(button_bar, {
2072
+ step: step,
2073
+ inPersonDisclaimer: inPersonDisclaimer,
2074
+ registrationForm: registrationForm,
2075
+ goToRegistration: goToRegistration,
2076
+ removeReservedTicket: removeReservedTicket,
2077
+ changeStep: changeStep
2078
+ }))))));
2079
+ };
2080
+
2081
+ const registration_lite_mapStateToProps = ({
2082
+ registrationLiteState
2083
+ }) => ({
2084
+ widgetLoading: registrationLiteState.widgetLoading,
2085
+ reservation: registrationLiteState.reservation,
2086
+ userProfile: registrationLiteState.settings.userProfile,
2087
+ checkout: registrationLiteState.checkout,
2088
+ ticketTypes: registrationLiteState.ticketTypes,
2089
+ taxTypes: registrationLiteState.taxTypes,
2090
+ step: registrationLiteState.step,
2091
+ passwordlessEmail: registrationLiteState.passwordless.email,
2092
+ passwordlessCode: registrationLiteState.passwordless.otp_length,
2093
+ passwordlessCodeSent: registrationLiteState.passwordless.code_sent,
2094
+ passwordlessCodeError: registrationLiteState.passwordless.error
2095
+ });
2096
+
2097
+ /* harmony default export */ var registration_lite = (Object(external_react_redux_["connect"])(registration_lite_mapStateToProps, {
2098
+ loadSession: actions_loadSession,
2099
+ changeStep: actions_changeStep,
2100
+ reserveTicket: actions_reserveTicket,
2101
+ removeReservedTicket: actions_removeReservedTicket,
2102
+ payTicket: actions_payTicket,
2103
+ getTicketTypes: actions_getTicketTypes,
2104
+ getTaxesTypes: actions_getTaxesTypes,
2105
+ getLoginCode: actions_getLoginCode,
2106
+ passwordlessLogin: actions_passwordlessLogin,
2107
+ goToLogin: actions_goToLogin
2108
+ })(RegistrationLite));
2109
+ // CONCATENATED MODULE: ./src/summit-registration-lite.js
2110
+ /**
2111
+ * Copyright 2017 OpenStack Foundation
2112
+ * Licensed under the Apache License, Version 2.0 (the "License");
2113
+ * you may not use this file except in compliance with the License.
2114
+ * You may obtain a copy of the License at
2115
+ * http://www.apache.org/licenses/LICENSE-2.0
2116
+ * Unless required by applicable law or agreed to in writing, software
2117
+ * distributed under the License is distributed on an "AS IS" BASIS,
2118
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2119
+ * See the License for the specific language governing permissions and
2120
+ * limitations under the License.
2121
+ **/
2122
+
2123
+
2124
+
2125
+
2126
+
2127
+
2128
+ class summit_registration_lite_RegistrationLiteWidget extends external_react_default.a.PureComponent {
2129
+ constructor(props) {
2130
+ super(props);
2131
+ this.store = getStore(props.clientId, props.apiBaseUrl, props.getAccessToken);
2132
+ }
2133
+
2134
+ render() {
2135
+ return /*#__PURE__*/external_react_default.a.createElement(external_react_redux_["Provider"], {
2136
+ store: this.store
2137
+ }, /*#__PURE__*/external_react_default.a.createElement(react_["PersistGate"], {
2138
+ persistor: getPersistor()
2139
+ }, /*#__PURE__*/external_react_default.a.createElement(registration_lite, this.props)));
2140
+ }
2141
+
2142
+ }
2143
+
2144
+ /* harmony default export */ var summit_registration_lite = __webpack_exports__["default"] = (summit_registration_lite_RegistrationLiteWidget);
2145
+
2146
+ /***/ })
2147
+ /******/ ]);
2148
+ });