summit-registration-lite 2.0.21 → 2.0.22

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