{"version":3,"sources":["webpack:///./project/womensopen/code/assets/components/form-phone-input/html/item.hbs","webpack:///./project/womensopen/code/assets/components/form-phone-input/html/choise.hbs","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/html/flag-suggestion.hbs","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/html/player-suggestion.hbs","webpack:///./project/womensopen/code/assets/foundation/global-error-handler.js","webpack:///webpack:///webpack/universalModuleDefinition","webpack:///webpack:/webpack/bootstrap 1f68e731c73fccad66a2","webpack:///webpack:///node_modules/core-js/modules/_wks.js","webpack:///webpack:///src/scripts/lib/utils.js","webpack:///webpack:///node_modules/core-js/modules/_core.js","webpack:///webpack:///node_modules/core-js/modules/_global.js","webpack:///webpack:///node_modules/core-js/modules/_hide.js","webpack:///webpack:///src/scripts/constants.js","webpack:///webpack:///node_modules/core-js/modules/_export.js","webpack:///webpack:///node_modules/core-js/modules/_object-dp.js","webpack:///webpack:///node_modules/core-js/modules/_an-object.js","webpack:///webpack:///node_modules/core-js/modules/_is-object.js","webpack:///webpack:///node_modules/core-js/modules/_descriptors.js","webpack:///webpack:///node_modules/core-js/modules/_has.js","webpack:///webpack:///node_modules/core-js/modules/_property-desc.js","webpack:///webpack:///node_modules/core-js/modules/_uid.js","webpack:///webpack:///node_modules/core-js/modules/_ctx.js","webpack:///webpack:///node_modules/core-js/modules/_cof.js","webpack:///webpack:///node_modules/core-js/modules/_to-object.js","webpack:///webpack:///node_modules/core-js/modules/_defined.js","webpack:///webpack:///node_modules/core-js/modules/_to-length.js","webpack:///webpack:///node_modules/core-js/modules/_to-integer.js","webpack:///webpack:///node_modules/core-js/modules/_shared-key.js","webpack:///webpack:///node_modules/core-js/modules/_fails.js","webpack:///webpack:///node_modules/core-js/modules/_dom-create.js","webpack:///webpack:///node_modules/core-js/modules/_redefine.js","webpack:///webpack:///node_modules/core-js/modules/_iobject.js","webpack:///webpack:///node_modules/core-js/modules/_shared.js","webpack:///webpack:///node_modules/core-js/modules/_add-to-unscopables.js","webpack:///webpack:///node_modules/core-js/modules/_to-iobject.js","webpack:///webpack:///node_modules/core-js/modules/_array-includes.js","webpack:///webpack:///node_modules/core-js/modules/_enum-bug-keys.js","webpack:///webpack:///node_modules/core-js/modules/_set-to-string-tag.js","webpack:///webpack:///node_modules/lodash-es/_overArg.js","webpack:///webpack:///node_modules/lodash-es/_root.js","webpack:///webpack:///node_modules/lodash-es/_Symbol.js","webpack:///webpack:///node_modules/lodash-es/_getRawTag.js","webpack:///webpack:///node_modules/lodash-es/_objectToString.js","webpack:///webpack:///node_modules/lodash-es/_baseGetTag.js","webpack:///webpack:///node_modules/lodash-es/_getPrototype.js","webpack:///webpack:///node_modules/lodash-es/isPlainObject.js","webpack:///webpack:///node_modules/lodash-es/isObjectLike.js","webpack:///webpack:///node_modules/redux/es/createStore.js","webpack:///webpack:///node_modules/redux/es/combineReducers.js","webpack:///webpack:///node_modules/redux/es/bindActionCreators.js","webpack:///webpack:///node_modules/redux/es/compose.js","webpack:///webpack:///node_modules/redux/es/applyMiddleware.js","webpack:///webpack:///node_modules/redux/es/index.js","webpack:///webpack:///(webpack)/buildin/global.js","webpack:///webpack:///src/scripts/components/wrapped-element.js","webpack:///webpack:///src/scripts/templates.js","webpack:///webpack:///src/scripts/choices.js","webpack:///webpack:///node_modules/fuse.js/dist/fuse.js","webpack:///webpack:///node_modules/deepmerge/dist/es.js","webpack:///webpack:///src/scripts/lib/polyfills.js","webpack:///webpack:///node_modules/core-js/fn/array/find.js","webpack:///webpack:///node_modules/core-js/modules/es6.array.find.js","webpack:///webpack:///node_modules/core-js/modules/_ie8-dom-define.js","webpack:///webpack:///node_modules/core-js/modules/_to-primitive.js","webpack:///webpack:///node_modules/core-js/modules/_a-function.js","webpack:///webpack:///node_modules/core-js/modules/_array-methods.js","webpack:///webpack:///node_modules/core-js/modules/_array-species-create.js","webpack:///webpack:///node_modules/core-js/modules/_array-species-constructor.js","webpack:///webpack:///node_modules/core-js/modules/_is-array.js","webpack:///webpack:///node_modules/core-js/fn/array/from.js","webpack:///webpack:///node_modules/core-js/modules/es6.string.iterator.js","webpack:///webpack:///node_modules/core-js/modules/_string-at.js","webpack:///webpack:///node_modules/core-js/modules/_iter-define.js","webpack:///webpack:///node_modules/core-js/modules/_iter-create.js","webpack:///webpack:///node_modules/core-js/modules/_object-create.js","webpack:///webpack:///node_modules/core-js/modules/_object-dps.js","webpack:///webpack:///node_modules/core-js/modules/_object-keys.js","webpack:///webpack:///node_modules/core-js/modules/_object-keys-internal.js","webpack:///webpack:///node_modules/core-js/modules/_to-absolute-index.js","webpack:///webpack:///node_modules/core-js/modules/_html.js","webpack:///webpack:///node_modules/core-js/modules/_object-gpo.js","webpack:///webpack:///node_modules/core-js/modules/es6.array.from.js","webpack:///webpack:///node_modules/core-js/modules/_iter-call.js","webpack:///webpack:///node_modules/core-js/modules/_is-array-iter.js","webpack:///webpack:///node_modules/core-js/modules/_create-property.js","webpack:///webpack:///node_modules/core-js/modules/core.get-iterator-method.js","webpack:///webpack:///node_modules/core-js/modules/_classof.js","webpack:///webpack:///node_modules/core-js/modules/_iter-detect.js","webpack:///webpack:///node_modules/core-js/fn/array/includes.js","webpack:///webpack:///node_modules/core-js/modules/es7.array.includes.js","webpack:///webpack:///node_modules/custom-event-polyfill/custom-event-polyfill.js","webpack:///webpack:///src/scripts/store/store.js","webpack:///webpack:///node_modules/lodash-es/_freeGlobal.js","webpack:///webpack:///node_modules/symbol-observable/es/index.js","webpack:///webpack:///(webpack)/buildin/harmony-module.js","webpack:///webpack:///node_modules/symbol-observable/es/ponyfill.js","webpack:///webpack:///src/scripts/reducers/index.js","webpack:///webpack:///src/scripts/reducers/items.js","webpack:///webpack:///src/scripts/reducers/groups.js","webpack:///webpack:///src/scripts/reducers/choices.js","webpack:///webpack:///src/scripts/components/index.js","webpack:///webpack:///src/scripts/components/dropdown.js","webpack:///webpack:///src/scripts/components/container.js","webpack:///webpack:///src/scripts/components/input.js","webpack:///webpack:///src/scripts/components/list.js","webpack:///webpack:///src/scripts/components/wrapped-input.js","webpack:///webpack:///src/scripts/components/wrapped-select.js","webpack:///webpack:///node_modules/classnames/index.js","webpack:///webpack:///src/scripts/actions/choices.js","webpack:///webpack:///src/scripts/actions/items.js","webpack:///webpack:///src/scripts/actions/groups.js","webpack:///webpack:///src/scripts/actions/misc.js","webpack:///./project/womensopen/code/assets/components/section/img/wave.png","webpack:///./project/womensopen/code/assets/general/js/polyfills.js","webpack:///./Feature/ContentComponents/code/assets/componets/accordion/js/accordion.component.js","webpack:///./Feature/ContentComponents/code/assets/componets/accordion/index.js","webpack:///./project/womensopen/code/assets/components/accordion/index.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/sign-in-form-helpers.js","webpack:///./project/womensopen/code/assets/components/sso/store/api/sign-in-form-api.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/constants/form-message-constants.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/constants/form-date-constants.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/file-state.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/order-type.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/upgrade-form-helper.js","webpack:///./project/womensopen/code/assets/general/js/basket/currency-helper.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/helpers/data-format-helper.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/user-data-cookie/user-data-cookie-constants.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/user-data-cookie/user-data-cookie-helpers.js","webpack:///./project/womensopen/code/assets/components/account/js/account.component.js","webpack:///./project/womensopen/code/assets/components/account/js/modal-trigger-login.component.js","webpack:///./project/womensopen/code/assets/components/account/js/oauth-handler.component.js","webpack:///./project/womensopen/code/assets/components/account/index.js","webpack:///./project/womensopen/code/assets/components/account-profile/js/account-profile.component.js","webpack:///./project/womensopen/code/assets/components/account-profile/index.js","webpack:///./project/womensopen/code/assets/components/alert-bars/js/alert-bar.js","webpack:///./project/womensopen/code/assets/components/alert-bars/js/alert-bars-layout.js","webpack:///./project/womensopen/code/assets/components/alert-bars/js/alert-bars.component.js","webpack:///./project/womensopen/code/assets/components/alert-bars/index.js","webpack:///./project/womensopen/code/assets/components/anti-forgery-token/js/anti-forgery-token.component.js","webpack:///./project/womensopen/code/assets/components/anti-forgery-token/index.js","webpack:///./project/womensopen/code/assets/general/js/basket/constants.js","webpack:///./project/womensopen/code/assets/general/js/basket/validation-helper.js","webpack:///./project/womensopen/code/assets/general/js/throttle-message.js","webpack:///./project/womensopen/code/assets/general/js/basket/basket-service.js","webpack:///./project/womensopen/code/assets/general/js/basket/basket-controller.js","webpack:///./project/womensopen/code/assets/components/basket/js/basket-product.js","webpack:///./project/womensopen/code/assets/components/basket/js/basket-product-group.js","webpack:///./project/womensopen/code/assets/components/basket/js/basket-groups.js","webpack:///./project/womensopen/code/assets/components/basket/js/basket-total.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/BulletPointList.js","webpack:///./project/womensopen/code/assets/general/js/basket/basket-dialog-box-content-body.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/one-club-register/RegisterFormBanner.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/ConfirmationModal.js","webpack:///./project/womensopen/code/assets/components/basket/js/basket-pay-buttons.js","webpack:///./project/womensopen/code/assets/components/basket/js/basket-errors.js","webpack:///./project/womensopen/code/assets/general/js/basket/tracking-helper.js","webpack:///./project/womensopen/code/assets/components/basket/js/basket.js","webpack:///./project/womensopen/code/assets/general/js/basket/basket-products-helper.js","webpack:///./project/womensopen/code/assets/components/basket/js/basket.component.js","webpack:///./project/womensopen/code/assets/components/basket/index.js","webpack:///./project/womensopen/code/assets/components/basket-buy-links/js/basket-buy-links.component.js","webpack:///./project/womensopen/code/assets/components/basket-buy-links/index.js","webpack:///./project/womensopen/code/assets/components/basket-cleaner/js/basket-cleaner.component.js","webpack:///./project/womensopen/code/assets/components/basket-cleaner/index.js","webpack:///./project/womensopen/code/assets/components/basket-icon/js/basket-icon.componenet.js","webpack:///./project/womensopen/code/assets/components/basket-icon/index.js","webpack:///./project/womensopen/code/assets/components/carousel-controls/js/enums.js","webpack:///./project/womensopen/code/assets/components/contextual-manager/js/contextual-manager.component.js","webpack:///./project/womensopen/code/assets/components/contextual-manager/index.js","webpack:///./project/womensopen/code/assets/components/contextual-stats/js/contextual-stats-layout.js","webpack:///./project/womensopen/code/assets/components/contextual-stats/js/contextual-stats.component.js","webpack:///./project/womensopen/code/assets/components/contextual-stats/index.js","webpack:///./project/womensopen/code/assets/components/cookie-warning/js/cookie-warning.component.js","webpack:///./project/womensopen/code/assets/components/cookie-warning/index.js","webpack:///./project/womensopen/code/assets/components/sitecore-fields/js/sitecore-image-field.js","webpack:///./project/womensopen/code/assets/components/sitecore-fields/js/sitecore-link-field.js","webpack:///./project/womensopen/code/assets/components/countdown-alertbar/js/helpers/toch-helpers.js","webpack:///./project/womensopen/code/assets/components/countdown-alertbar/js/countdown-alertbar/CountdownAlertBar.js","webpack:///./project/womensopen/code/assets/components/countdown-alertbar/js/countdown-alertbar/countdown-alertbar.component.js","webpack:///./project/womensopen/code/assets/components/countdown-alertbar/index.js","webpack:///./project/womensopen/code/assets/components/countries/js/countries.component.js","webpack:///./project/womensopen/code/assets/components/countries/index.js","webpack:///./project/womensopen/code/assets/components/data-capture/js/data-capture-wizard/step-free-form.js","webpack:///./project/womensopen/code/assets/components/data-capture/js/data-capture-wizard/step-dropdown.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/constants/form-validation-constants.js","webpack:///./project/womensopen/code/assets/components/sso/validators/text-validators.js","webpack:///./project/womensopen/code/assets/components/data-capture/js/data-capture-wizard/step-details.js","webpack:///./project/womensopen/code/assets/components/data-capture/js/data-capture-wizard/step-finish-status.js","webpack:///./project/womensopen/code/assets/components/data-capture/js/data-capture-wizard/step-quiz.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormSpinner.js","webpack:///./project/womensopen/code/assets/components/data-capture/js/data-capture-wizard/with-data-capture.js","webpack:///./project/womensopen/code/assets/components/data-capture/js/data-capture-wizard/wizard-dashboard.js","webpack:///./project/womensopen/code/assets/components/data-capture/js/data-capture.component.js","webpack:///./project/womensopen/code/assets/components/data-capture/index.js","webpack:///./project/womensopen/code/assets/components/dfp-banner/js/dfp-banner.component.js","webpack:///./project/womensopen/code/assets/components/dfp-banner/index.js","webpack:///./project/womensopen/code/assets/components/cards/js/news-card.js","webpack:///./project/womensopen/code/assets/components/cards/js/fact-card.js","webpack:///./project/womensopen/code/assets/components/cards/js/player-card.js","webpack:///./project/womensopen/code/assets/components/cards/js/social-card.js","webpack:///./project/womensopen/code/assets/components/news-feed/js/enums.js","webpack:///./project/womensopen/code/assets/components/cards/js/standalone-fact-card.js","webpack:///./project/womensopen/code/assets/components/news-feed/js/news-feed-listing.js","webpack:///./project/womensopen/code/assets/components/news-feed/js/row-patterns.js","webpack:///./project/womensopen/code/assets/components/feature-content/js/feature-content.component.js","webpack:///./project/womensopen/code/assets/components/feature-content/index.js","webpack:///./project/womensopen/code/assets/components/force-sign-in/js/force-sign-in.component.js","webpack:///./project/womensopen/code/assets/components/force-sign-in/js/constants.js","webpack:///./project/womensopen/code/assets/components/force-sign-in/index.js","webpack:///./project/womensopen/code/assets/components/social-provider/js/facebook.js","webpack:///./project/womensopen/code/assets/components/social-provider/js/google.js","webpack:///./project/womensopen/code/assets/components/social-provider/js/amazon.js","webpack:///./project/womensopen/code/assets/components/form/js/form-sso.component.js","webpack:///./project/womensopen/code/assets/components/form/index.js","webpack:///./project/womensopen/code/assets/components/form-custom-select/js/choices-wrapper.js","webpack:///./project/womensopen/code/assets/components/form-custom-select/js/form-custom-select.component.js","webpack:///./project/womensopen/code/assets/components/form-custom-select/index.js","webpack:///./project/womensopen/code/assets/components/form-field/js/form-field.component.js","webpack:///./project/womensopen/code/assets/components/form-field/index.js","webpack:///./project/womensopen/code/assets/components/form-file/js/form-file.component.js","webpack:///./project/womensopen/code/assets/components/form-file/index.js","webpack:///./project/womensopen/code/assets/components/form-phone-input/js/form-phone-input.component.js","webpack:///./project/womensopen/code/assets/components/form-phone-input/index.js","webpack:///./project/womensopen/code/assets/components/gtm-trigger/js/gtm-trigger.component.js","webpack:///./project/womensopen/code/assets/components/gtm-trigger/index.js","webpack:///./project/womensopen/code/assets/components/header/js/header.component.js","webpack:///./project/womensopen/code/assets/components/header/index.js","webpack:///./project/womensopen/code/assets/components/hero/js/hero.component.js","webpack:///./project/womensopen/code/assets/components/hero/index.js","webpack:///./project/womensopen/code/assets/components/image-gallery/js/image-gallery.component.js","webpack:///./project/womensopen/code/assets/components/image-gallery/index.js","webpack:///./project/womensopen/code/assets/components/imga-iframe/js/imga-iframe-helpers.js","webpack:///./project/womensopen/code/assets/components/imga-iframe/js/imga-iframe-holder.js","webpack:///./project/womensopen/code/assets/general/js/utils/screen-size-utils.js","webpack:///./project/womensopen/code/assets/components/imga-iframe/js/imga-iframe.component.js","webpack:///./project/womensopen/code/assets/components/imga-iframe/index.js","webpack:///./project/womensopen/code/assets/general/js/utils/decode-utils.js","webpack:///./project/womensopen/code/assets/general/js/utils/jwt-utils.js","webpack:///./project/womensopen/code/assets/components/imga-matchups-game/js/imga-matchups-game-layout.js","webpack:///./project/womensopen/code/assets/components/imga-matchups-game/js/imga-matchups-game.component.js","webpack:///./project/womensopen/code/assets/components/imga-matchups-game/index.js","webpack:///./project/womensopen/code/assets/components/large-hero/js/large-hero.component.js","webpack:///./project/womensopen/code/assets/components/large-hero/index.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/sortingStrategies.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-alpha-list.js","webpack:///./project/womensopen/code/assets/components/favorite-button/js/favorite-button.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-hbh-button.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-hole-title.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-r-score.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-player-title.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-movers-title.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-scores-title.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-title-basic.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-row-title.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-pos.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-movers-basic-icon.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-movers-extended-icon.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-sort.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-featured-group-live.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-player-extra.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-player-basic.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/actions/renderData.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-player-result.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-player-leaders.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-player.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-to-par.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-today.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-total.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-hole.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-scores.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-round.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-round-total.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-rows.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-table.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/containers/leaderboard-table-wrapper.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-info-button.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/actions/get-players-data.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/leaderboard-container.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/leaderboard-layout.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/leaderboard.component.js","webpack:///./project/womensopen/code/assets/components/leaderboard/index.js","webpack:///./project/womensopen/code/assets/components/leaderboard-widget/js/leaderboard-widget-alpha-list.js","webpack:///./project/womensopen/code/assets/components/leaderboard-widget/js/leaderboard-widget-layout.js","webpack:///./project/womensopen/code/assets/components/leaderboard-widget/js/leaderboard-widget.component.js","webpack:///./project/womensopen/code/assets/components/leaderboard-widget/index.js","webpack:///./project/womensopen/code/assets/components/listing/js/ListingLoadMore.js","webpack:///./project/womensopen/code/assets/components/listing/js/constants.js","webpack:///./project/womensopen/code/assets/components/live-header/js/live-header-title.js","webpack:///./project/womensopen/code/assets/components/live-header/js/live-header.component.js","webpack:///./project/womensopen/code/assets/components/live-header/index.js","webpack:///./project/womensopen/code/assets/components/live-navigation/js/live-navigation.component.js","webpack:///./project/womensopen/code/assets/components/live-navigation/index.js","webpack:///./project/womensopen/code/assets/components/live-submenu/js/live-submenu.component.js","webpack:///./project/womensopen/code/assets/components/live-submenu/index.js","webpack:///./project/womensopen/code/assets/components/live-video-widget/js/live-video-widget.component.js","webpack:///./project/womensopen/code/assets/components/live-video-widget/index.js","webpack:///./project/womensopen/code/assets/components/live-widget/js/live-widget-posts.js","webpack:///./project/womensopen/code/assets/components/live-widget/js/live-widget-embedded-content.js","webpack:///./project/womensopen/code/assets/components/live-widget/js/live-widget.component.js","webpack:///./project/womensopen/code/assets/components/live-widget/index.js","webpack:///./project/womensopen/code/assets/components/main-nav/js/main-nav.component.js","webpack:///./project/womensopen/code/assets/components/main-nav/index.js","webpack:///./project/womensopen/code/assets/components/make-stories/js/make-stories-layout.js","webpack:///./project/womensopen/code/assets/components/make-stories/js/make-stories.component.js","webpack:///./project/womensopen/code/assets/components/make-stories/index.js","webpack:///./project/womensopen/code/assets/general/js/modal-spa.js","webpack:///./project/womensopen/code/assets/components/modal-spa-trigger/js/modal-spa-trigger.component.js","webpack:///./project/womensopen/code/assets/components/modal-spa-trigger/index.js","webpack:///./project/womensopen/code/assets/components/modal-trigger-promo-panel/js/modal-trigger-promo-panel-wrapper.js","webpack:///./project/womensopen/code/assets/components/modal-trigger-promo-panel/js/modal-trigger-promo-panel.component.js","webpack:///./project/womensopen/code/assets/components/modal-trigger-promo-panel/index.js","webpack:///./project/womensopen/code/assets/components/multimedia-carousel/js/multimedia-carousel.component.js","webpack:///./project/womensopen/code/assets/components/multimedia-carousel/index.js","webpack:///./project/womensopen/code/assets/components/my-account-url/js/my-account-url.component.js","webpack:///./project/womensopen/code/assets/components/my-account-url/index.js","webpack:///./project/womensopen/code/assets/components/news-feed/js/patterns.js","webpack:///./project/womensopen/code/assets/components/listing/js/listing-helper.js","webpack:///./project/womensopen/code/assets/components/listing/js/Listing.js","webpack:///./project/womensopen/code/assets/components/news-feed/js/news-feed-type-filter.js","webpack:///./project/womensopen/code/assets/components/news-feed/js/news-feed-tag-filter.js","webpack:///./project/womensopen/code/assets/components/news-feed/js/news-feed-header.js","webpack:///./project/womensopen/code/assets/components/cards/js/banner-card.js","webpack:///./project/womensopen/code/assets/components/news-feed/js/news-feed-layout.js","webpack:///./project/womensopen/code/assets/components/news-feed/js/news-feed.component.js","webpack:///./project/womensopen/code/assets/components/news-feed/index.js","webpack:///./project/womensopen/code/assets/components/news-feed-live/js/news-feed-live-layout.js","webpack:///./project/womensopen/code/assets/components/news-feed-live/js/news-feed-live.component.js","webpack:///./project/womensopen/code/assets/components/news-feed-live/index.js","webpack:///./project/womensopen/code/assets/components/news-feed-live-selector/js/news-feed-live-selector.component.js","webpack:///./project/womensopen/code/assets/components/news-feed-live-selector/index.js","webpack:///./project/womensopen/code/assets/components/news-feed-preview/js/news-feed-preview.component.js","webpack:///./project/womensopen/code/assets/components/news-feed-preview/js/patterns.js","webpack:///./project/womensopen/code/assets/components/news-feed-preview/index.js","webpack:///./project/womensopen/code/assets/components/player-carousel/js/player-carousel.component.js","webpack:///./project/womensopen/code/assets/components/player-carousel/index.js","webpack:///./project/womensopen/code/assets/components/player-hero/js/player-hero.component.js","webpack:///./project/womensopen/code/assets/components/player-hero/index.js","webpack:///./project/womensopen/code/assets/components/qual-draw/js/qual-draw-table-player.js","webpack:///./project/womensopen/code/assets/components/qual-draw/js/enums.js","webpack:///./project/womensopen/code/assets/components/qual-draw/js/qual-draw-search-input.js","webpack:///./project/womensopen/code/assets/components/qual-draw/js/qual-draw-select.js","webpack:///./project/womensopen/code/assets/components/qual-draw/js/action-helper.js","webpack:///./project/womensopen/code/assets/components/qual-draw/js/filtering-strategies.js","webpack:///./project/womensopen/code/assets/components/qual-draw/js/qual-draw-container.js","webpack:///./project/womensopen/code/assets/components/qual-draw/js/qual-draw-layout.js","webpack:///./project/womensopen/code/assets/components/qual-draw/js/qual-draw.component.js","webpack:///./project/womensopen/code/assets/components/qual-draw/index.js","webpack:///./project/womensopen/code/assets/components/qual-events/js/qual-events-item.js","webpack:///./project/womensopen/code/assets/components/qual-events/js/qual-events.container.js","webpack:///./project/womensopen/code/assets/components/qual-events/js/qual-events.component.js","webpack:///./project/womensopen/code/assets/components/qual-events/index.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/qual-leaderboard-scoring-info.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/qual-leaderboard-const.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/helpers/roundHelper.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/qual-leaderboard-player-row.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/actions/render-color-state.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/enums.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/qual-leaderboard-row-title.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/helpers/utils.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/qual-leaderboard-table.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/helpers/viewHelper.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/qual-leaderboard-article.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/qualSortingStrategies.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/qual-leaderboard-container.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/qual-leaderboard-layout.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/qual-leaderboard.component.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/index.js","webpack:///./project/womensopen/code/assets/components/qualified-player-card/js/QualifiedPlayerCard.js","webpack:///./project/womensopen/code/assets/components/qualified-player-card/js/QualifiedPlayerCardItem.js","webpack:///./project/womensopen/code/assets/components/qualified-golfers/js/QualifiedGolfersPlayersList.js","webpack:///./project/womensopen/code/assets/general/js/string-helpers.js","webpack:///./project/womensopen/code/assets/components/qualified-golfers/js/PreviousQualificationEvent.js","webpack:///./project/womensopen/code/assets/components/qualified-golfers/js/PreviousQualificationEvents.js","webpack:///./project/womensopen/code/assets/components/qualified-golfers/js/actions.js","webpack:///./project/womensopen/code/assets/components/qualified-golfers/js/types.js","webpack:///./project/womensopen/code/assets/components/qualified-golfers/js/QualifiedGolfersPreview.js","webpack:///./project/womensopen/code/assets/components/qualified-golfers/js/QualifiedGolfers.js","webpack:///./project/womensopen/code/assets/components/qualified-golfers/js/reducer.js","webpack:///./project/womensopen/code/assets/components/qualified-golfers/js/qualified-golfers.component.js","webpack:///./project/womensopen/code/assets/components/qualified-golfers/index.js","webpack:///./project/womensopen/code/assets/components/qualified-player-card/js/qualified-player-card.component.js","webpack:///./project/womensopen/code/assets/components/qualified-player-card/index.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingItem.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingContent.js","webpack:///./project/womensopen/code/assets/components/predictive-search/js/PredictiveSearch.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/js/QualifiedPlayersPredictiveSearch.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingLoadMore.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingFiltersTriggerButton.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingControls.js","webpack:///./project/womensopen/code/assets/components/listing/js/ListingSelect.js","webpack:///./project/womensopen/code/assets/components/listing/js/ListingCheckList.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingFilters.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingHeader.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/js/QualifiedPlayersListing.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/js/qualified-players-listing.component.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/index.js","webpack:///./project/womensopen/code/assets/components/recaptcha/index.js","webpack:///./project/womensopen/code/assets/components/reset-password-url/js/reset-password-url.component.js","webpack:///./project/womensopen/code/assets/components/reset-password-url/index.js","webpack:///./project/womensopen/code/assets/components/right-header-link-item/js/right-header-link-item-helpers.js","webpack:///./project/womensopen/code/assets/components/right-header-link-item/js/right-header-link-item-constants.js","webpack:///./project/womensopen/code/assets/components/right-header-link-item/js/right-header-link-item.component.js","webpack:///./project/womensopen/code/assets/components/right-header-link-item/index.js","webpack:///./project/womensopen/code/assets/components/right-header-links/js/right-header-links.component.js","webpack:///./project/womensopen/code/assets/components/right-header-links/index.js","webpack:///./project/womensopen/code/assets/components/rolex-watch/js/rolex-watch.component.js","webpack:///./project/womensopen/code/assets/components/rolex-watch/index.js","webpack:///./project/womensopen/code/assets/components/sso/helpers/user-activity-helper.js","webpack:///./project/womensopen/code/assets/components/sso/components/sso-form-context.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/constants/form-field-constants.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/address-form-state.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/initial-state.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/order-history-form-state.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormMessage.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/field-types.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/constants/form-style-constants.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FieldHeader.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormTextInput.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormCaptchaField.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/FormOffers.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/FormPolicy.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/FormConsentDetails.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormSelectField.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormDateField.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/FormMultipleInterests.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/FormContactInfo.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormChecboxInput.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormLookupField.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormHTML.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormMobilePhoneInput.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormMastercardField.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormTextAndImageField.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-fields-config.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/form-field-helpers.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-builder.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/action-types.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/api-response-messages.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/api-status-actions.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/register-form-actions.js","webpack:///./project/womensopen/code/assets/components/sso/store/api/register-form-api.js","webpack:///./project/womensopen/code/assets/components/sso/validators/date-validators.js","webpack:///./project/womensopen/code/assets/components/sso/validators/policy-validators.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-field-validators.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/form-state-helper.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-validator.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-scroll-helper.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/form-field-display-helpers.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/header-link-display.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/SSOFormHeader.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/SSOFormFooter.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/GTMUserActions.js","webpack:///./project/womensopen/code/assets/components/modal/js/modal-constants.js","webpack:///./project/womensopen/code/assets/components/modal/js/modal-helpers.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/form-modal-helpers.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/one-club-register/OneClubRegisterForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-register-success-form/UserRegisterSuccessForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/ballot/BallotRegisterForm.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/helpers/message-helper.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/upgrade-account-actions.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/user-address-actions.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/user-account-actions.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/helpers/data-format-helper-dotdigital.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/ballot/helpers/ballot-summary-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/ballot/BallotSummaryForm.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/item-list-form-actions.js","webpack:///./project/womensopen/code/assets/components/sso/store/api/item-list-form-api.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/item-list/SSOItemListForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/ballot/BallotSignInForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/ballot/BallotSignInSuccessForm.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/forgot-password-actions.js","webpack:///./project/womensopen/code/assets/components/sso/store/api/forgot-password-form-api.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/forgot-password/ForgotPasswordForm.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/reset-password-actions.js","webpack:///./project/womensopen/code/assets/components/sso/store/api/reset-password-form-api.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/cognito-challenge-names.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/sign-in-form-actions.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/reset-password/ResetPasswordForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/change-password/ChangePasswordFooter.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/change-password/ChangePasswordForm.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/verify-email-actions.js","webpack:///./project/womensopen/code/assets/components/sso/store/api/verify-email-form-api.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/verify-email/VerifyEmailForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-details/UserDetailsForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/account-home-page/LastOrder.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/account-home-page/Upcoming.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/account-home-page/FileActionsTable.js","webpack:///./project/womensopen/code/assets/components/sso/components/hocComponents/withLoadingInterval.js","webpack:///./project/womensopen/code/assets/components/sso/components/hocComponents/index.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/account-home-page/AccountHomePage.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/SSOCloseButton.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-addresses/AddAddressForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-addresses/FormAddressDisplayField.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-addresses/UpdateAddressForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/addresses-form-constants.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-addresses/UserAddressesForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/email-notification-settings/EmailNotificationSettingsForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/push-notifications/PushNotificationsForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/resale-tickets/ResaleTicketsButton.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/resale-tickets/ResaleTicketsFAQ.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/resale-tickets/resale-tickets-helpers.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/resale-tickets/ResaleTickets.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-order-history/order-history-display/Order.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-order-history/order-history-display/OrdersPagination.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-order-history/order-history-display/OrdersList.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-order-history/file-summary-display/FileSummary.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-order-history/file-summary-display/FileContentSummary.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-order-history/file-summary-display/InstallmentTable.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-order-history/file-summary-display/PaymentSummary.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-order-history/file-summary-display/ChangeHistorySection.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/order-history-form-constants.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-order-history/UserOrderHistory.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/user-details-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/payment-status.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/account-form-data-utils.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/account-home-page-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/user-addresses-display-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-tickets/TicketOwnerDialog.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-tickets/TicketsDisplay.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-tickets/TicketGroups.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-tickets/TicketModalBody.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-tickets/UserTickets.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/change-password-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/the-one-club/TheOneClubIntro.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/the-one-club/TheOneClubMotivation.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/the-one-club/TheOneClubFAQ.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/the-one-club/LeaveOneClubModalBody.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/the-one-club/TheOneClub.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/order-history-display-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/user-tickets-display-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/the-one-club-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/tickets-resale-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/email-notification-settings-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/user-account-constants.js","webpack:///./project/womensopen/code/assets/components/sso/components/user-account/AccountMenuLinks.js","webpack:///./project/womensopen/code/assets/components/sso/components/user-account/AccountMenu.js","webpack:///./project/womensopen/code/assets/components/sso/components/user-account/UserAccountPage.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/default-register/DefaultRegisterForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/ticketing-register/TicketingRegisterForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/sign-in/SignInForm.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/basket-actions.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/upgrade-to-ticketing/UpgradeToTicketingAccountForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/upgrade-to-one-club/UpgradeToOneClubAccountForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/new-password-required/NewPasswordRequiredForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/ra-members/RaMembersRegisterForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/ra-members/RaMembersSignInForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/ra-members/helpers/ra-members-summary-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/ra-members/RaMembersSummaryForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/sign-in/SignInSuccessForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/sso-form-constants.js","webpack:///./project/womensopen/code/assets/components/sso/components/SSOForm.js","webpack:///./project/womensopen/code/assets/components/sitecore-fields/js/sitecore-field-constants.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/initial-state.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/index.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/register-form-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/item-list-form-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/upgrade-account-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/basket-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/user-address-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/sign-in-form-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/forgot-password-form-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/reset-password-form-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/verify-email-form-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/user-account-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/api-status-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/sso-form.component.js","webpack:///./project/womensopen/code/assets/components/sso/store/configure-store.js","webpack:///./project/womensopen/code/assets/components/sso/index.js","webpack:///./project/womensopen/code/assets/components/sticky-button-trigger/js/sticky-button-trigger.component.js","webpack:///./project/womensopen/code/assets/components/sticky-button-trigger/index.js","webpack:///./project/womensopen/code/assets/components/sub-nav/js/sub-nav.component.js","webpack:///./project/womensopen/code/assets/components/sub-nav/index.js","webpack:///./project/womensopen/code/assets/components/sub-page-nav/js/sub-page-nav.component.js","webpack:///./project/womensopen/code/assets/components/sub-page-nav/index.js","webpack:///./project/womensopen/code/assets/components/sublayout/js/sublayout.component.js","webpack:///./project/womensopen/code/assets/components/sublayout/index.js","webpack:///./project/womensopen/code/assets/components/tabs/js/tabs.component.js","webpack:///./project/womensopen/code/assets/components/tabs/index.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/popup-link.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/popup-link-info.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/constants.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/checkbox-panel.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/product-group-panel.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-days-form.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/ticket-builder-context.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/ticket-builder-aside.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-days-page.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/days-links.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/back-link.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/button-clear.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-panel.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-tickets/tickets-panels.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-tickets/select-tickets-standard.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-tickets/select-tickets-hospitality.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/products-helper.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/checkout-button.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-tickets/select-tickets-aside.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-tickets-page.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/extra-panel.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-extras-form.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-extras-aside.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-extras-page.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/accordion.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-parking-form.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-parking-page.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-parking-standalone-form.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-parking-standalone-page.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/ticket-builder.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/ticket-builder.component.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/index.js","webpack:///./project/womensopen/code/assets/general/js/deferred.js","webpack:///./project/womensopen/code/assets/general/js/modal-with-result.js","webpack:///./project/womensopen/code/assets/components/video/js/video.component.js","webpack:///./project/womensopen/code/assets/components/video/index.js","webpack:///./project/womensopen/code/assets/components/view-order-url/js/view-order-url.component.js","webpack:///./project/womensopen/code/assets/components/view-order-url/index.js","webpack:///./project/womensopen/code/assets/components/vod-nav/js/enums.js","webpack:///./project/womensopen/code/assets/components/vod-nav/js/vod-nav.component.js","webpack:///./project/womensopen/code/assets/components/vod-nav/index.js","webpack:///./project/womensopen/code/assets/components/weglot/js/weglot-script.js","webpack:///./project/womensopen/code/assets/components/weglot/js/weglot.component.js","webpack:///./project/womensopen/code/assets/components/weglot/index.js","webpack:///./project/womensopen/code/assets/index.js","webpack:///./project/womensopen/code/assets/components/form-custom-select/html/item.hbs","webpack:///./project/womensopen/code/assets/components/form-custom-select/html/choise.hbs","webpack:///./project/womensopen/code/assets/components/account/js/sso-sign-in.component.js"],"names":["Handlebars","__webpack_require__","module","exports","template","1","container","depth0","helpers","partials","data","stack1","escapeExpression","lambda","customProperties","image","compiler","main","call","nullContext","name","hash","fn","program","inverse","noop","useData","alias1","alias2","label","value","helper","alias3","helperMissing","info","flag","src","text","highlightedText","window","onerror","msg","console","log","concat","root","factory","self","undefined","modules","installedModules","moduleId","i","l","m","c","d","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","store","uid","_Symbol2","Symbol","USE_SYMBOL","tmpEl","getRandomNumber","min","max","Math","floor","random","generateChars","length","chars","toString","getType","generateId","element","prefix","id","replace","obj","slice","isType","type","clas","stripHTML","isElement","Element","extend","extended","arguments","merge","prop","wrap","wrapper","document","createElement","nextSibling","parentNode","insertBefore","appendChild","findAncestor","el","cls","parentElement","classList","contains","findAncestorByAttrName","attr","target","hasAttribute","getAdjacentEl","startEl","className","direction","parent","children","Array","from","querySelectorAll","startPos","indexOf","isScrolledIntoView","scrollTop","offsetHeight","offsetTop","html","strToEl","str","r","cleanedInput","trim","innerHTML","firstChild","removeChild","calcWidthOfInput","input","callback","placeholder","width","offsetWidth","testEl","style","position","padding","top","left","whiteSpace","body","getComputedStyle","inputStyle","fontSize","fontFamily","fontWeight","fontStyle","letterSpacing","textTransform","requestAnimationFrame","sortByAlpha","a","b","labelA","toLowerCase","labelB","sortByScore","score","dispatchEvent","customArgs","event","CustomEvent","detail","bubbles","cancelable","regexFilter","regex","RegExp","source","test","getWindowHeight","documentElement","scrollHeight","clientHeight","reduceToValues","items","key","reduce","prev","current","push","fetchFromObject","path","index","substring","substr","isIE11","navigator","userAgent","match","existsInArray","array","some","item","cloneObject","JSON","parse","stringify","doKeysMatch","aKeys","keys","sort","bKeys","core","version","global","Function","dP","createDesc","f","_utils","DEFAULT_CLASSNAMES","containerOuter","containerInner","inputCloned","list","listItems","listSingle","listDropdown","itemSelectable","itemDisabled","itemChoice","group","groupHeading","button","activeState","focusState","openState","disabledState","highlightedState","hiddenState","flippedState","loadingState","noResults","noChoices","DEFAULT_CONFIG","choices","silent","renderChoiceLimit","maxItemCount","addItems","removeItems","removeItemButton","editItems","duplicateItemsAllowed","delimiter","paste","searchEnabled","searchChoices","searchFloor","searchResultLimit","searchFields","resetScrollPosition","shouldSort","shouldSortItems","sortFn","placeholderValue","searchPlaceholderValue","prependValue","appendValue","renderSelectedChoices","loadingText","noResultsText","noChoicesText","itemSelectText","uniqueItemText","addItemText","maxItemText","itemComparer","choice","fuseOptions","includeScore","callbackOnInit","callbackOnCreateTemplates","classNames","EVENTS","showDropdown","hideDropdown","change","search","addItem","removeItem","highlightItem","highlightChoice","ACTION_TYPES","ADD_CHOICE","FILTER_CHOICES","ACTIVATE_CHOICES","CLEAR_CHOICES","ADD_GROUP","ADD_ITEM","REMOVE_ITEM","HIGHLIGHT_ITEM","CLEAR_ALL","KEY_CODES","BACK_KEY","DELETE_KEY","ENTER_KEY","A_KEY","ESC_KEY","UP_KEY","DOWN_KEY","PAGE_UP_KEY","PAGE_DOWN_KEY","hide","redefine","ctx","$export","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_PROTO","P","IS_BIND","B","S","expProto","U","W","R","anObject","IE8_DOM_DEFINE","toPrimitive","O","Attributes","e","TypeError","isObject","it","_typeof","bitmap","writable","px","aFunction","that","apply","defined","toInteger","ceil","isNaN","shared","exec","is","has","SRC","$toString","TPL","split","inspectSource","val","safe","isFunction","join","String","this","cof","propertyIsEnumerable","mode","copyright","UNSCOPABLES","ArrayProto","IObject","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","def","TAG","tag","stat","func","transform","freeSelf","_freeGlobal","objectProto","_getRawTag_hasOwnProperty","nativeObjectToString","symToStringTag","_Symbol","toStringTag","_objectToString_nativeObjectToString","_baseGetTag_symToStringTag","getPrototypeOf","arg","funcProto","isPlainObject_objectProto","funcToString","isPlainObject_hasOwnProperty","objectCtorString","lodash_es_isObjectLike","isOwn","unmasked","result","_getRawTag","_objectToString","_baseGetTag","proto","_getPrototype","Ctor","constructor","ActionTypes","INIT","createStore_createStore","reducer","preloadedState","enhancer","_ref2","Error","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","getState","subscribe","listener","isSubscribed","splice","dispatch","action","lodash_es_isPlainObject","listeners","replaceReducer","nextReducer","es","_ref","outerSubscribe","observer","observeState","next","unsubscribe","getUndefinedStateErrorMessage","actionType","combineReducers","reducers","reducerKeys","finalReducers","finalReducerKeys","shapeAssertionError","forEach","assertReducerShape","state","hasChanged","nextState","_i","_key","previousStateForKey","nextStateForKey","errorMessage","bindActionCreator","actionCreator","bindActionCreators","actionCreators","boundActionCreators","compose","_len","funcs","_extends","assign","applyMiddleware","middlewares","createStore","chain","_dispatch","middlewareAPI","map","middleware","__webpack_exports__","g","eval","WrappedElement","_classCallCheck","_extends2","isDisabled","add","tabIndex","origStyle","getAttribute","setAttribute","remove","removeAttribute","disabled","eventType","TEMPLATES","globalClasses","isSelectElement","isSelectOneElement","passedElementType","role","ariaAutoComplete","itemList","_classNames","localClasses","_classnames2","default","_defineProperty","_classNames2","_classNames3","ariaSelected","active","ariaDisabled","highlighted","choiceList","ariaMultiSelectable","choiceGroup","_classNames5","groupId","elementId","dropdown","notice","_classNames6","option","_components","_constants","_templates","_choices","_items","_groups","_misc","Choices","userConfig","elements","_generateInstances","config","_deepmerge2","all","userDefaults","warn","includes","passedElement","querySelector","_isTextElement","_isSelectOneElement","_isSelectMultipleElement","_isSelectElement","WrappedInput","WrappedSelect","initialised","_store","_store3","render","_initialState","_currentState","_prevState","_currentValue","_canSearch","_isScrollingOnIe","_highlightPosition","_wasTap","_placeholderValue","_generatePlaceholderValue","_baseId","_direction","_idNames","_presetChoices","_presetItems","_render","bind","_onFocus","_onBlur","_onKeyUp","_onKeyDown","_onClick","_onTouchMove","_onTouchEnd","_onMouseDown","_onMouseOver","_onFormReset","_onAKey","_onEnterKey","_onEscapeKey","_onDirectionKey","_onDeleteKey","init","error","_createTemplates","_createElements","_createStructure","_addEventListeners","disable","_removeEventListeners","reveal","unwrap","options","clearStore","templates","enable","runEvent","_item$groupId","_item$value","_item$label","getGroupById","triggerEvent","groupValue","_item$groupId2","_item$value2","_item$label2","_this","_this2","unhighlightItem","_this3","activeItems","filter","_removeItem","excludedId","_this4","_this5","highlightedActiveItems","_triggerChange","preventInputFocus","_this6","isActive","show","open","distanceFromTopWindow","focus","preventInputBlur","_this7","close","removeActiveDescendant","blur","valueOnly","values","selectedItems","itemValue","args","_this8","_toConsumableArray","_setChoiceOrItem","_this9","_findAndSelectChoiceByValue","_this10","replaceChoices","_clearChoices","removeLoadingState","groupOrChoice","_addGroup","valueKey","labelKey","_addChoice","isSelected","selected","clearAll","shouldSetInputWidth","clear","_isSearching","activateChoices","_this11","_handleLoadingState","_ajaxCallback","stateChanged","groups","shouldRenderChoices","shouldRenderItems","_renderChoices","_renderItems","_this12","activeGroups","activeChoices","choiceListFragment","createDocumentFragment","scrollToTop","activePlaceholders","activeChoice","_createChoicesFragment","_createGroupsFragment","childNodes","canAddItem","_canAddItem","response","append","_highlightChoice","_getTemplate","dropdownItem","itemListFragment","_createItemsFragment","fragment","_this13","groupFragment","groupChoices","getGroupChoices","dropdownGroup","_this14","withinGroup","choicesFragment","_config","appendChoice","rendererableChoices","_rendererableChoices$","acc","placeholderChoices","normalChoices","choiceLimit","sortedChoices","_this15","_config2","listItem","addItemToFragment","placeholderChoice","_addItem","choiceId","itemId","itemToRemove","find","parseInt","_selectPlaceholderChoice","_this16","hasShiftKey","passedId","getChoiceById","passedKeyCode","keyCode","hasActiveDropdown","clearInput","lastItem","hasHighlightedItems","setWidth","removeHighlightedItems","isLoading","placeholderItem","getChild","addLoadingState","isFocussed","_config3","hasUnactiveChoices","resultCount","_searchChoices","isDuplicateValue","_this17","results","parsedResults","newValue","currentValue","haystack","searchableChoices","needle","_fuse2","filterChoices","addEventListener","form","addEventListeners","removeEventListener","removeEventListeners","_keyDownActions","ctrlKey","metaKey","hasFocusedInput","hasItems","hasChildren","keyString","fromCharCode","hasCtrlDownKeyPressed","keyDownActions","outerHTML","backKey","deleteKey","_handleSearch","_ref3","activeElement","highlightAll","_ref4","enterKey","_handleButtonAction","preventDefault","_handleChoiceAction","_ref5","_ref6","downKey","pageUpKey","pageDownKey","directionInt","nextEl","pop","currentEl","scrollToChoice","_ref7","_handleBackspace","touches","stopPropagation","shiftKey","buttonTarget","itemTarget","choiceTarget","_handleItemAction","_ref8","_ref9","unhighlightAll","removeFocusState","_ref10","_this18","addFocusState","select-one","select-multiple","_ref11","_this19","resetTo","_this20","passedEl","setActiveDescendant","_ref12","_ref12$label","_ref12$choiceId","_ref12$groupId","_ref12$customProperti","_ref12$placeholder","_ref12$keyCode","passedValue","passedCustomProperties","passedLabel","passedOptionId","removeActiveItems","_ref13","_ref13$label","_ref13$isSelected","_ref13$isDisabled","_ref13$groupId","_ref13$customProperti","_ref13$placeholder","_ref13$keyCode","choiceLabel","choiceElementId","addChoice","clearChoices","_ref14","_this21","_ref14$valueKey","_ref14$labelKey","getElementsByTagName","Date","valueOf","addGroup","isOptDisabled","_templates$template","_config4","userTemplates","Container","Input","List","Dropdown","conceal","_addPredefinedChoices","_addPredefinedItems","_this22","passedGroups","optionGroups","placeholderOption","tagName","passedOptions","allChoices","hasSelectedChoice","shouldPreselect","handleChoice","_this23","itemType","handlePresetItem","_this24","string","_this25","foundChoice","instances","s","isArray","_createClass","defineProperties","props","descriptor","Constructor","protoProps","staticProps","bitapRegexSearch","bitapSearch","patternAlphabet","Bitap","pattern","_ref$location","location","_ref$distance","distance","_ref$threshold","threshold","_ref$maxPatternLength","maxPatternLength","_ref$isCaseSensitive","isCaseSensitive","_ref$tokenSeparator","tokenSeparator","_ref$findAllMatches","findAllMatches","_ref$minMatchCharLeng","minMatchCharLength","instance","isMatch","matchedIndices","_options","_options2","deepValue","dotIndex","firstSegment","remaining","len","matchmask","start","end","mask","charAt","SPECIAL_CHARS_REGEX","matches","matchesLen","_ref$errors","errors","_ref$currentLocation","currentLocation","_ref$expectedLocation","expectedLocation","accuracy","proximity","abs","bitapScore","textLen","currentThreshold","bestLocation","patternLen","matchMask","lastIndexOf","_score","lastBitArr","finalScore","binMax","binMin","binMid","finish","bitArr","j","charMatch","Fuse","_ref$caseSensitive","caseSensitive","_ref$id","_ref$keys","_ref$shouldSort","_ref$getFn","getFn","_ref$sortFn","_ref$tokenize","tokenize","_ref$matchAllTokens","matchAllTokens","_ref$includeMatches","includeMatches","_ref$includeScore","_ref$verbose","verbose","setCollection","_log","_prepareSearchers2","_prepareSearchers","tokenSearchers","fullSearcher","_search2","_search","weights","_computeScore","_sort","_format","tokens","resultMap","_analyze","record","keysLen","weight","_ref2$arrayIndex","arrayIndex","_ref3$tokenSearchers","_ref3$fullSearcher","_ref3$resultMap","_ref3$results","exists","averageScore","numTextMatches","mainSearchResult","words","scores","tokenSearcher","hasMatchInText","word","tokenSearchResult","scoresLen","_i2","checkTextMatches","existingResult","output","_i3","scoreLen","currScore","bestScore","nScore","finalOutput","transformers","indices","_len2","_console","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","for","cloneUnlessOtherwiseSpecified","clone","deepmerge","defaultArrayMerge","arrayMerge","sourceIsArray","destination","mergeObject","deepmerge_1","$find","forced","callbackfn","toObject","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","create","res","speciesConstructor","original","SPECIES","C","$at","iterated","_t","point","done","TO_STRING","pos","charCodeAt","LIBRARY","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","returnThis","Base","NAME","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","dPs","enumBugKeys","IE_PROTO","Empty","_createDict","iframeDocument","iframe","display","contentWindow","write","lt","Properties","getKeys","$keys","arrayIndexOf","names","ObjectProto","isArrayIter","createProperty","getIterFn","iter","arrayLike","step","iterator","aLen","mapfn","mapping","iterFn","ret","$defineProperty","classof","getIteratorMethod","ARG","T","tryGet","callee","SAFE_CLOSING","riter","skipClosing","arr","$includes","ce","defaultPrevented","params","evt","origPrevent","createEvent","initCustomEvent","Event","_redux","Store","_index2","devToolsExtension","onChange","selectableChoices","reverse","hasActiveOptions","freeGlobal","__WEBPACK_IMPORTED_MODULE_0__ponyfill_js__","originalModule","webpackPolyfill","_Symbol4","observable","appReducer","_items2","_groups2","_choices2","passedState","defaultState","changingItem","activateOptions","_dropdown2","_container2","_input2","_list2","_wrappedInput2","dimensions","getBoundingClientRect","pageYOffset","selector","isOpen","isFlipped","dropdownPos","windowHeight","shouldFlip","activeDescendantID","_onPaste","_onInput","enforceWidth","valueHasDesiredLength","calcWidth","preventPaste","set","scrollPos","height","node","dropdownHeight","choiceHeight","choicePos","containerScrollPos","endpoint","time","_animateScroll","strength","easing","SCROLLING_SPEED","choiceListScrollTop","continueAnimation","_scrollDown","_scrollUp","_possibleConstructorReturn","__proto__","_wrappedElement2","itemsFilteredString","_get","optionData","_templates2","appendDocFragment","__WEBPACK_AMD_DEFINE_RESULT__","hasOwn","classes","argType","inner","define","toStr","isCallable","maxSafeInteger","predicate","thisArg","k","kValue","findIndex","pow","number","Number","isFinite","mapFn","A","firstSource","to","nextSource","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","msMatchesSelector","webkitMatchesSelector","closest","nodeType","isEnumerable","Reflect","ownKeys","v","DURATION","EASING","setContentToState","content","isExpanded","overflow","maxHeight","collapse","onComplete","duration","anime","targets","complete","expand","Accordion","_getPrototypeOf2","_getPrototypeOf","_isOpened","_isAnimating","isExperienceEditor","onChangeSubscribers","onClickTrigger","_assertThisInitialized","onKeydownTrigger","onAnimationComplete","BaseComponent","refs","trigger","addListeners","addListener","which","cb","ComponentsFactory","getInstance","isSignInSuccess","signInFormProps","isSignInSuccessful","isNewPasswordRequired","loading","getLastLogInData","date","lastLoginDate","getMonth","getDate","getFullYear","lastLoginPlatform","getWebsiteDomain","lastLoginDevice","hasAgreeToPrivacyPolicyChecked","optIns","agreedToPrivacyPolicy","getSSOSignInFormData","fetch","apiConstants","loadSignInFormDataUrl","then","handleResponse","catch","handleError","signOutUser","Auth","signOut","updateUserSignInDetails","userDetails","callbackUrl","currentSession","accessToken","method","headers","content-type","authorization","jwtToken","formMessageConstants","formBannerTitle","formBannerMessage","yourDetails","signInHere","signIn","reset","verifyEmail","alreadyAMember","rememberPassword","signInWithDifferentAccount","resendVerificationEmail","registerHere","haventGotAnAccount","forgottenPassword","forgotPassword","resetForgottenPassword","resetPassword","resetPasswordFormHeaderLabel","newPasswordRequired","changePassword","saveUserDetails","editUserDetails","upgradeTicketingUserDetails","upgradeMemberPlusUserDetails","seeDetails","viewTickets","noAddressesFound","addNewAddress","saveAddress","updateAddress","editAddress","removeAddress","cannotRemoveLastAddress","cannotRemoveMainAddress","cannotRemoveShippingAddress","cannotRemoveBillingAddress","emailAddressLabel","passwordLabel","confirmPasswordLabel","verificationCodeLabel","updateNotificationSettings","submitOneClubFormButtonText","updateOneClubDetails","submitDefaultFormButtonText","submitTicketingFormButtonText","submitBallotSummaryFormButtonText","upgradeAccount","upgradeAccountResale","updateAccount","or","socialRegistrationMessage","submitFacebookFormButtonText","submitGoogleFormButtonText","oneClubRegisterSuccessText","ballotOneClubSignInSuccessText","registrationSuccessText","forgotPasswordSuccessText","newPasswordRequiredSuccessText","updateUserDetailsSuccessText","somethingWentWrong","encounteredAnIssueTO","encounteredAnIssueWO","upgradeToTicketingAccount","upgradeToTicketingAccountFromResale","personaliseYourExperienceMessage","alreadyHaveATicketingAccount","upgradeToOneClubAccount","alreadyHaveAOneClubAccount","completeToOneClubAccount","noOrdersFoundText","noProductsFoundText","noPaymentSummaryFoundText","noDeliveryDataFoundText","noHistoryDataFoundText","noActionsToPerformText","noUpcomingEventText","emptyString","defaultNumberValue","upcoming","actionsToPerform","actions","fileSummary","paymentSummary","installments","delivery","changeHistory","unitPrice","subTotal","qty","invoice","order","documentsPdf","confirmed","documents","deliveryMethod","shipmentState","deliveryAddress","totalAmountPaid","dueDate","amountDue","amountPaid","paymentDate","payByCreditCard","amountInvoiced","paymentMethod","lastStatus","lastPayment","billingContactName","billingContactDetails","billingAddress","addressLine1","addressLine2","addressLine3","city","country","county","printSummary","payReservation","lastOrderText","fileNumber","fileContent","channel","fileStatus","fileContact","lastUpdate","created","file","fileAmount","expirationDate","expiryDate","viewFileDetails","information","cancel","saveAndContinue","canceledFiles","hideOldTickets","ticketNumber","firstName","lastName","verifyEmailSuccessText","conflictHTTPStatusCode","removeAddressConfirmationMessage","formDateConstants","weekday","year","month","day","region","fileState","RUNNING","SUSPENDED","IN_OPTION","IN_RESERVATION","OPTION_RESERV","CONFIRMED","SOLD","NOT_SOLD","PART_SOLD","CANCELED","ABANDONED","TECH_ERROR","orderType","SALE","REFUND_CLIENT","REFUND_ORGANIZATION","EXCHANGE_ORGANIZATION","EXCHANGE_CLIENT","RESERVATION","RENEWAL","OPTION","RESERVATION_FREEING","OPTION_FREEING","ST_TRANSFER","getMainAddress","currentUser","addresses","getPropertyFromMainAddress","mainAddres","propertyName","getTitle","title","getDateOfBirth","dateOfBirth","dateOfBirthDay","dateOfBirthMonth","dateOfBirthYear","dayAsNumber","monthAsNumber","getMobilePhone","formData","formConstants","mobilePhone","countryCodeMobilePhonePrefix","userMobilePhone","selectedCountry","isFormDataCountryOptionsAvailable","_","isEmpty","phonePrefix","code","hasValue","getSelectedCountry","phoneNumber","hasOneClubRequiredFields","mainAddress","agreedToTermsAndConditions","currencyIsoCodes","freeze","GBP","CurrencyHelper","price","toFixed","origin","poundsCount","total","masterCardDiscount","getMinusPounds","updateInterests","existingInterests","favoritePlayer","venues","selectedFavoritePlayer","selectedVenues","getFormattedUserSignInDetailsData","LastLogInDate","LastLogInDevice","LastLogInPlatform","getValueOrDefault","defaultValue","getActiveMemberships","membership","getDefaultChampionships","userRegistrationData","ssoEmailNotificationSettingsFields","championshipSection","getDefaultInterests","interestsSection","getChampionshipInterests","_userRegistrationData","Id","Value","isInSelection","selectedValue","toUpperCase","getUserInterests","interestSection","_userRegistrationData3","getPreferenceCentreBasedOnOptIns","preferences","optedTheOpenOffersByEmail","optedPartnerOffersByEmail","channels","getPreferencesForOptIn","getPreferencesForOptOut","updateMainAddress","address","isNewAddress","mainAddressIndex","getAddressIndex","postcode","shippingAddress","addressForFind","addressForFindJSON","addressIndex","getFormattedMonetaryAmount","amount","amountToFormat","Intl","NumberFormat","currency","format","getFormattedDate","dateToFormat","createDateFromExisting","DateTimeFormat","getCountryCodeMobilePhonePrefix","getFormattedEmailRemoveSpaces","email","addMembershipType","activeMemberships","membershipToAdd","getUserZoneInfo","registerFormData","zoneInfo","userDataCookieConstants","USER_DATA_COOKIE_CHANGE_EVENT","USER_DATA_COOKIE_NAME","appState","ssoConfig","cookieStorage","userDataCookieName","getIsOneClubMemberFromCookie","userData","cookie","cookieHelper","safeParseJSON","getUserDataCookie","isOneClubMember","updateUserDataCookie","regeneratorRuntime","mark","_callee","emitEventBusEvent","bypassCache","_args","_context","currentAuthenticatedUser","user","updateUserDetailsCookie","stop","attributes","isOneClub","MembershipTypes","OneClub","userDataCookieValue","given_name","family_name","isSignedIn","isRandaMember","hasRaMemberId","userService","setUserDataCookie","eventBus","emit","Account","account_component_classCallCheck","account_component_getPrototypeOf","account_component_assertThisInitialized","setOauthSignOutReturnUrl","removeDataFromLocalStorage","SECUTIX_CONTACT_ID","USER_ID","CookieNames","UserId","tooltip","signInLink","updateMyOneClubLink","showOneClubHubLink","setTOCHUserMembershipsInLocalStorage","isUseCognito","cookieName","userOrderHistoryCallbackUrl","ssoDomain","checkSignIn","useCognito","AmplifyClient","getUserState","onUserButtonClick","onSignOut","onkeydown","outerClickHandle","tochDataChangedHandle","Oauth","handleOauthSignedOut","allowReload","purgeValue","useDefaultRedirectUri","checkOauthFlow","OauthQueryConstants","COMPLETE_FORGOT_PASSWORD","COMPLETE_REGISTER","handleOauthCompleteFlow","Hub","listen","payload","getUserStateCognito","updateLastVisitInfo","getUserStateSecutix","cookieStx","Cookies","accountinfoShow","signInLinkShow","shouldCheckAuthUser","handleOauthSignedIn","setDataInLocalStorage","sub","setCheckedUser","ticketingAccountId","newMembershipList","getDataFromLocalStorage","TOCH_USER_MEMBERSHIPS","loadUserOrderHistory","href","encodeURIComponent","oneClubHeaderElement","getElementById","isNullOrUndefined","userDataCookie","app","getUserOrderHistory","loadTicketsInfo","userTicketsCallbackUrl","username","textContent","storedLastVisitDate","LAST_VISIT_DATE","storedDate","currentDate","toDateString","needsToUpdateLastVisit","_getLastLogInData","lastLoggedInDataCallBackUrl","updateUserResponse","hasErrors","updateUserError","_getLastLogInData2","ModalTriggerLoginComponent","ModalTriggerComponent","asyncUrl","modal_trigger_login_component_getPrototypeOf","failedReturnUrlParam","UrlHelper","getUrlByParams","modal_trigger_login_component_defineProperty","getRelativeUrl","QueryConstants","SHOW_POPUP","status","OauthHandlerComponent","oauth_handler_component_classCallCheck","oauth_handler_component_getPrototypeOf","handleCustomOAuthState","oauth_handler_component_assertThisInitialized","redirectAfterSignOut","returnUrl","getHostedUIReturnUrlFromSessionStorage","AccountComponent","SSOSignInComponent","AccountProfileComponent","account_profile_component_classCallCheck","account_profile_component_getPrototypeOf","pageSpinner","isLoggedInPromise","isSecuTixLoggedIn","getCurrentUser","setStylesProfileBlock","_user","_isLoggedInToSecuTix","applyModel","rejectUser","profileBlock","insertAdjacentHTML","redirectTo","signInUrl","_objectSpread","hasTicketingAccount","loggedInToSecuTix","isLoggedInToSecuTix","initials","doNotOptedTheOpenOffersByEmail","applyOneClubStyling","applyConditions","applyBindings","cond","getModelValue","bindElements","inputElements","textElements","applyInputsBindings","applyTextBindings","applyInputValue","applyCheckboxValue","modelValue","inputValue","checked","getModel","oneClubClass","AlertBar","model","react_default","subtitle","linkUrl","onClick","gtm","linkText","propTypes","PropTypes","shape","AlertBarsLayout","React","Component","ScoringLoader","endpointNames","LIVE_SCANNER","liveScanner","ArrayHelper","alertBars","alertBar","alert_bar","lastUpdated","AlertBarsLayoutContainer","connect","scoring","AlertBarsComponent","alert_bars_component_classCallCheck","alert_bars_component_getPrototypeOf","ReactDOM","unmountComponentAtNode","alert_bars_layout","AntiForgeryTokenComponent","anti_forgery_token_component_classCallCheck","anti_forgery_token_component_getPrototypeOf","endpointUrl","updateToken","getOldToken","oldToken","url","axios","_response$data","formInputToken","cookieTokenValue","tokenInput","expires","secure","PRODUCT_TYPE_TICKET","PRODUCT_TYPE_HOSPITALITY","PRODUCT_TAG_CAR","PRODUCT_TAG_MOTORCYCLE","PRODUCT_TAG_COACH","PRODUCT_TAG_MINIBUS","MAX_HOSPITALITY_TICKET_PLUS_EXTRA","PRODUCT_TAG_TICKET_PLUS_EXTRA","HOSPITALITY_PRODUCTS","BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME","DEFAULT_BASKET","productGroups","ValidationHelper","products","totalSelected","ticket","curProducts","quantity","sortOrder","product","maxQuantity","maxAvailable","totalAvailable","updatedProductType","updatedProductTag","setToZero","basketProductGroup","juniorProduct","basketJuniorProduct","curBasketProduct","ThrottleMessage","throttle_message_classCallCheck","throttleElement","basket_service","BasketService","basket_service_classCallCheck","onBasketUpdateSubscribers","onBallotBasketUpdateSubscribers","_basket","_ballotbasket","_dateCreated","_ballotBasketDateCreated","isConfiguredForBallot","ballotBasketDateCreated","localStorage","getItem","dateCreated","setItem","now","storedProductGroups","getBasketDateCreated","setBasket","isBasketExpired","cleanBasket","basket","updateBasketDateCreated","triggerOnBasketUpdate","getBasket","mc","productGroup","preparedProducts","productId","passId","audienceSubcategoryId","audienceSubcategoryIdMc","basket_service_toConsumableArray","throttleCheckout","Promise","resolve","reject","token","getUserAccessToken","sent","throttle","api","post","getRequiredConfig","redirectUri","getOauthReturnUrl","noUrlAnchor","recievedBasket","THROTTLE_TIME_INTERVAL","THROTTLE_RETRY_ATTEMPTS","isResponseHandled","_x","_x2","BasketController","basket_controller_classCallCheck","basket_controller_getPrototypeOf","getPreparedBasket","basketService","getProductGroups","isCheckoutInProgress","setCheckoutConfigCookies","onProductGroupsUpdate","basket_controller_assertThisInitialized","onUpdateProductQuantity","onCheckout","redirectToBasket","urlParams","URLSearchParams","checkoutConfigUid","resetJunior","setProductGroups","resetJuniorProducts","clearEmptyProductGroups","saveProductGroups","preparedBasket","setState","hasStandardTickets","productGroupId","basketProductSum","basketProduct","productSum","sum","totalMc","getTotalMcFromTotal","basketProductGroups","basket_controller_objectSpread","bProduct","basketProductExtra","isNeedResetJunior","throttleMessage","checkout","message","basketUrl","Fragment","isLocalStorageAvailable","redirectToBasketOnPay","BasketProduct","basket_product_classCallCheck","basket_product_getPrototypeOf","onRemoveClick","basket_product_assertThisInitialized","onQuantityChange","carProductsArray","oldQuantity","quantityDelta","ecommerceEventTypes","ADD_TO_CART","REMOVE_FROM_CART","productGroupYear","productPrice","pushEcommerceEvent","item_id","item_name","onQuantityUpdate","startQuantity","hospitalityProduct","quantityMultiplier","hasBallotConfiguration","groupHasMoreTypesOfProducts","aria-label","getProductQuantities","convertToPounds","renderControl","focusable","xlinkHref","isRequired","bool","BasketProductGroup","getPreparedProductsList","groupHasDifferentTypesOfProducts","existOtherProductsThanParkingInGroup","basket_product_BasketProduct","existOtherProductsThanParking","productElement","BasketGroups","basket_product_group_BasketProductGroup","BasketTotal","BulletPointList","uniqueId","BasketDialogBoxContentBody","basketDialogBoxTitle","basketDialogBoxMessage","basketDialogBoxLogo","basketDialogBoxMessageSplit","getMultilineText","hasBoxTitle","hasBoxLogo","utility_BulletPointList","RegisterFormBanner","displayBanner","formBanner","_props$formBanner","bannerTitle","bannerMessage","bannerBackgroundImageSrc","displayMessageUnderImage","displayHeadingOverImage","headingColor","textColor","react","backgroundImage","displayBannerTitle","displayBannerMessage","displayBannerMessageWithCssClass","addMarginTop","colorValue","getColor","color","dangerouslySetInnerHTML","__html","ConfirmationModal","inputText","onModalClose","onApproveClick","isApproveDanger","isApproveButtonDisabled","onCancelClick","isCancelButtonDisabled","masterCardDialogBoxBanner","react_modal","onCloseCb","one_club_register_RegisterFormBanner","data-dc-form-sso-ref","BasketPayButtons","basket_pay_buttons_classCallCheck","basket_pay_buttons_getPrototypeOf","showModal","toggleConfirmationModal","basket_pay_buttons_assertThisInitialized","toggleCloseModal","removeDataCookie","showAlertBoxBeforePayment","utility_ConfirmationModal","dialogBoxBanner","basket_dialog_box_content_body","dialogBoxTitle","dialogBoxMessage","dialogBoxLogo","BasketErrors","productName","audienceSubcategoryName","TrackingHelper","accumulator","flatten","Basket","basket_classCallCheck","basket_getPrototypeOf","basket_assertThisInitialized","productGroupList","getProductGroupList","basketItems","getBasketProducts","BEGIN_CHECKOUT","productsGroupList","basket_errors_BasketErrors","basket_groups_BasketGroups","basket_total_BasketTotal","basket_pay_buttons_BasketPayButtons","tBoxBeforePayment","renderEmpty","BasketProductsHelper","secutixBallotReservedProducts","getCookie","addReservedProductsToBallotProductsList","removeReservedProductsFromBallotProductsList","ballotBasketReservedProducts","ballotBasket","isBallotLocalStorageEmpty","basketBallot","secutixBallotProducts","secutixBallotProductsList","BasketComponent","basket_component_classCallCheck","basket_component_getPrototypeOf","_this$options","isBallotBasketType","stringToBoolean","errorsCookie","hasAlertBoxBeforePayment","basketProductsHelper","setSecutixReservedProducts","basket_controller_BasketController","basket_Basket","BasketBuyLinksComponent","basket_buy_links_component_classCallCheck","basket_buy_links_component_getPrototypeOf","secutixConfigCookie","secutixConfig","buyticketsurl","buyTicketsLink","buyhospitalityurl","buyHospitalityLink","BasketCleanerComponent","basket_cleaner_component_classCallCheck","basket_cleaner_component_getPrototypeOf","BasketIcon","basket_icon_componenet_classCallCheck","basket_icon_componenet_getPrototypeOf","basket_icon_componenet_defineProperty","basket_icon_componenet_assertThisInitialized","basketIsEmpty","ballotBasketIsEmpty","removeListeners","ballotBasketUrl","basketTooltip","basketLink","onBasketStateUpdate","onBallotBasketStateUpdate","basketItem","isBallotBasket","onBasketUpdate","onBallotBasketUpdate","BasketIconComponent","NEXT_SLIDE_CLICK","PREV_SLIDE_CLICK","ContextualManagerComponent","contextual_manager_component_classCallCheck","contextual_manager_component_getPrototypeOf","minToShowCount","mainCount","replacementCount","getReplacementCount","isEditMode","splitMainToGroups","getMainCount","showMain","showReplacement","ref","groupName","replacement","hiddenWrapper","randomIndex","round","makeVisible","showRandomInGroup","replacementStack","diff","_loop","replacementRef","ContextualStatsLayout","contextual_stats_layout_classCallCheck","cardType","contextual_stats_layout_getPrototypeOf","filteredCards","getStatsCards","statsCard","card","getRadomCard","STATISTICS","COURSE","activeRoundId","getRoundById","scoringStats","rounds","statsTypesList","statsTypes","_this$props$options","players","holes","getRandomType","PLAYER","HOLE","statsName","_this$props$options2","getRound","stats","getStatsByIds","getTopStats","ids","idKey","statsModel","mappedStat","cloneDeep","sitecoreData","getSitecoreData","getStats","targetUrl","viewAllUrl","_this$props","block_placeholder","minHeight","block_spinner","generateCard","live_stats","ContextualStatsLayoutContainer","courseStats","ContextualStats","contextual_stats_component_classCallCheck","contextual_stats_component_getPrototypeOf","contextual_stats_layout","COOKIE_WARNING_AGREED","CookieWarningComponent","cookie_warning_component_classCallCheck","cookie_warning_component_getPrototypeOf","onCloseCookieWarning","cookie_warning_component_assertThisInitialized","closeSlideoutCookiePanelHandler","acceptCookiesHandler","cookieWarningSettingsAgreedTitle","getCookieWarningOption","requiredCookiesForGoogleAnalytics","setTimeout","isSiteVisited","overlay","agreeButton","getElementsByClassName","agreeLink","cookieExpiryDays","getCookieExpiryDays","_this3$options","civicukCloseButtonId","civicukAcceptAllButtonId","slideoutCloseButton","acceptAllButton","addClickEventListener","once","cookieControlValue","cookieControlObj","cookieWarningAgreedValue","optionalCookies","requiredCookie","optionalCookie","optionName","SitecoreImageField","img","alt","SitecoreLinkField","calculateRemainingDate","countdownTimer","countdownTimerDate","utc","getTime","getTimezoneOffset","ukTimeNowAsDate","isBSTinEffect","minutes","hours","days","delta","lSoM","lSoO","tmp","getDay","CountdownAlertBar","CountdownAlertBar_classCallCheck","CountdownAlertBar_getPrototypeOf","getRemainingDate","CountdownAlertBar_assertThisInitialized","newDate","refreshTime","refresh","interval","setInterval","clearInterval","_this$props$data","countdownDaysText","countdownHoursText","countdownMinutesText","link","logo","isInEditMode","_this$state","isExpired","checkIfExpired","daysValue","hoursValue","minutesValue","sitecore_image_field","CountdownAlertBarComponent","countdown_alertbar_component_classCallCheck","countdown_alertbar_component_getPrototypeOf","countdown_alertbar_CountdownAlertBar","CountriesComponent","countries_component_classCallCheck","countries_component_getPrototypeOf","countries","filterCounties","counties","countries_component_assertThisInitialized","onCountriesChange","getCountriesList","countriesSelect","$","empty","StepFreeForm","step_free_form_classCallCheck","step_free_form_getPrototypeOf","inputElement","step_free_form_assertThisInitialized","updateResult","answerValue","initialResult","handleAnswerChange","isOptional","itemDestinationName","answers","canGoToNextStep","itemLabel","answerFieldLabel","textMaximumLength","viewErrors","currentAnswer","isFilled","rows","maxLength","htmlFor","handleLabelClick","StepDropdown","step_dropdown_classCallCheck","step_dropdown_getPrototypeOf","answer","currentTarget","step_dropdown_assertThisInitialized","possibleChoices","data-dc-component","data-form-control","required","aria-hidden","data-icon","xmlns","viewBox","fill","formValidationConstants","dateOfBirthErrorMessage","membersMustBeOVer16","minimumValidAge","minimumValidMonth","maximumValidMonth","privacyPolicyErrorMessage","oneClubTermsAndServicesErrorMessage","pleaseInputAValue","emailPattern","emailAddressErrorMessage","blockedDomainMessage","confirmEmailErrorMessage","passwordPattern","passwordErrorMessage","confirmPasswordErrorMessage","newPasswordErrorMessage","oldPasswordErrorMessage","none","titleErrorMessage","countryErrorMessage","countyErrorMessage","stateErrorMessage","venuesErrorMessage","championshipSectionErrorMessage","channelSectionErrorMessage","interestSectionErrorMessage","firstNameErrorMessage","lastNameErrorMessage","addressLine1ErrorMessage","postcodeErrorMessage","mobilePhoneErrorMessage","cityErrorMessage","favoritePlayerErrorMessage","verificationCodeErrorMessage","specialCharactersErrorMessage","specialCharactersNumbersErrorMessage","specialCharactersNumbersLettersErrorMessage","raMemberIdEmptyErrorMessage","raMemberIdInvalidErrorMessage","captchaInvalidErrorMessage","suttonixDomain","ecrypseDomain","dogpilezDomain","validateEmail","emailText","isValid","validateOldPassword","password","oldPassword","validateConfirmPassword","confirmPassword","validateCountry","validateCounty","validateState","stateValue","validateAddressLine1","validateEmptyString","validateTextValue","validatePostcode","postCodeText","validateMobilePhone","mobilePhoneValue","validateCity","validateUserChoices","every","x","validateRaMemberId","hasWhiteSpace","validateCaptchaBox","validateMastercard","mastercardNumber","mastercardRegex","notMastercardMessage","RandomSeedMaxValue","ContactInfoStep","step_details_classCallCheck","step_details_getPrototypeOf","step_details_defineProperty","step_details_assertThisInitialized","param","emailAddress","firstnameField","lastnameField","checkbox1Field","checkbox2Field","additionalField1","additionalField2","randomSeedNumber","additional1","additional2","agreedToC1","agreedToC2","handleFirstnameChange","handleLastnameChange","handleEmailChange","handleCheckbox1Change","handleCheckbox2Change","handleAdditional1Change","handleAdditional2Change","nameFieldsAreOptional","hideNameFields","checkbox1IsOptional","hideCheckbox1","checkbox2IsOptional","hideCheckbox2","additionalField1IsOptional","hideAdditionalField1","additionalField2IsOptional","hideAdditionalField2","firstnameLabel","firstnameError","lastnameLabel","lastnameError","emailLabel","emailError","checkbox1Label","checkbox1Error","checkbox2Label","checkbox2Error","additionalField1Label","additionalField1Error","additionalField2Label","additionalField2Error","_this$state2","_this$props2","isFilledFirstname","isFilledLastname","isFilledEmail","isValidEmail","isFilledAdditionalField1","isFilledAdditionalField2","checkbox1withRandomSeed","checkbox2withRandomSeed","inputFirstnameElement","focusOnElement","inputLastnameElement","inputAdditional1Element","inputAdditional2Element","inputEmailElement","createMarkup","termsAndConditionsInformation","StepFinishStatus","step_finish_status_classCallCheck","step_finish_status_getPrototypeOf","statusClass","StepQuiz","step_quiz_classCallCheck","step_quiz_getPrototypeOf","handleChange","step_quiz_assertThisInitialized","_event$target","FormSpinner","spinnerRef","WrappedComponent","withDataCapture","WizardDashboard","wizard_dashboard_classCallCheck","wizard_dashboard_getPrototypeOf","parameterName","parameterValue","newEmailAddress","partialResult","wizardIndex","wizard_dashboard_assertThisInitialized","steps","templateName","handleNextButtonClick","handlePreviousButtonClick","displayCurrentStep","nextProps","responseReceived","nextStep","handleDataCapture","addressBookID","succeeded","step_details_ContactInfoStep","successfullySubmittedMessage","errorSubmissionMessage","step_finish_status_StepFinishStatus","step_dropdown_StepDropdown","step_quiz_StepQuiz","step_free_form_StepFreeForm","nextButtonText","submitButtonText","hasTheOneClubLayout","pagesBackgroundImageSource","showNextButton","showBackButton","nextSubmitButtonText","utility_FormSpinner","description","backButtonText","_React$Component","_class","with_data_capture_classCallCheck","with_data_capture_getPrototypeOf","with_data_capture_assertThisInitialized","buildApiData","with_data_capture_inherits","addressBookId","dataCapture","apiData","ok","DataCaptureComponent","data_capture_component_classCallCheck","data_capture_component_getPrototypeOf","imageSource","wizard_dashboard","DfpBanner","dfp_banner_component_classCallCheck","dfp_banner_component_getPrototypeOf","targetId","generate","googletag","gptAdSlots","cmd","bottomAdSizes","sizeMapping","addSize","adUnitDesktopSize","adUnitMobileSize","build","defineSlot","slot","defineSizeMapping","addService","pubads","enableSingleRequest","companionAds","setRefreshUnfilledSlots","enableVideoAds","enableServices","refreshRate","loadScipt","apiReady","script","async","NewsCard","news_card_classCallCheck","news_card_getPrototypeOf","onCardLinkClick","news_card_assertThisInitialized","rootRef","createRef","destroy","_this$props$model","contentType","mediaTypes","VIDEO_PLAYER","GALLERY","content_type","bemModifiers","bemCss","onClickRoot","data-srcset","bgImage","data-sizes","renderContentType","ctaText","schema_org","schemaOrg","FactCard","fact_card_classCallCheck","fact_card_getPrototypeOf","fact_card_assertThisInitialized","isDark","PlayerCard","player_card_classCallCheck","player_card_getPrototypeOf","player_card_assertThisInitialized","frontImage","data-size","SocialCard","social_card_classCallCheck","social_card_getPrototypeOf","getFullTitle","social_card_assertThisInitialized","theme","iconCssName","getIconCssName","renderTheme","renderArticle","StandaloneFactCard","standalone_fact_card_classCallCheck","standalone_fact_card_getPrototypeOf","NewsFeedListing","news_feed_listing_classCallCheck","news_feed_listing_getPrototypeOf","news_feed_listing_assertThisInitialized","slotModifiers","news_card","news_feed_listing_toConsumableArray","player_card","fact_card","standalone_fact_card","social_card","fullTitle","trackingCategory","getTrackingCategory","itemIndex","slotIndex","cur","slots","row","cardsList","rowCss","modifiers","gridCss","slotCss","getCardByTheme","grid","rowPattern","getRowPattern","renderRow","renderCards","row_patterns_defineProperty","_rowPattern","getPatternByDeviceType","patternName","deviceType","DEVICE_TYPE_DESKTOP_WIDE","getTwoThirdsAndOneThird","getOneThirdAndTwoThirds","FeatureContentCopmonent","feature_content_component_classCallCheck","feature_content_component_getPrototypeOf","updatePattern","feature_content_component_assertThisInitialized","getData","EVENT_DEVICE_TYPE_CHANGED","onChangeDeviceType","rowData","getRowData","deviceTypeByViewport","removeDataAttr","news_feed_listing","FeatureContentComponent","ForceSignInComponent","force_sign_in_component_classCallCheck","force_sign_in_component_getPrototypeOf","accountType","redirectUrl","checkIsUserLoggedIn","raMemberUpdatedInfoCookie","RA_MEMBER_UPDATED_INFO","isUserLoggedIn","isRandaMemberLoggedIn","memberLoginFailedLink","appId","FB","onload","xfbml","fb","getLoginStatus","authResponse","login","loginResponse","expiresIn","scope","meta1","head","clientIdString","meta2","defer","gapi","load","auth2","client_id","cookiepolicy","attachClickHandler","googleUser","getAuthResponse","profile","getBasicProfile","getId","getGivenName","getFamilyName","getEmail","host","onAmazonLoginReady","amazon","Login","setClientId","setSiteDomain","authorize","retrieveProfile","CustomerId","Name","PrimaryEmail","timeout","withCredentials","PROFILE_API_URL","userProfileApiUrl","CHECK_EMAIL_URL","REGISTRATION_URL","UPDATE_ACCOUNT_URL","GET_USER_PROFILE_URL","CREATE_TICKET_ACCOUNT_URL","CHANGE_PASSWORD_URL","CONFIRM_PASSWORD_URL","FORGOT_PASSWORD_URL","HEADERS","Access-Control-Allow-Origin","Content-Type","SERVER_ERROR_MESSAGE","FormSsoComponent","form_sso_component_classCallCheck","form_sso_component_getPrototypeOf","form_sso_component_defineProperty","form_sso_component_assertThisInitialized","provider","facebook","authObject","getUserObject","federatedSignIn","google","socialProvider","expiresAt","credentials","requestGeneratedPassword","generatedPassword","err","showCompleteRegister","hideErrorsSummary","revalidateForm","formType","Title","FirstName","Surname","EmailAddress","AddressLine1","AddressLine2","Postcode","City","Country","County","Password","interests","getVenuesObject","checkboxesValuesObject","collectCheckboxesData","OptedTheOpenOffersByEmail","OptedPartnersOffersByEmail","AgreedToPrivacyPolicy","createTicketingAccount","antiForgeryToken","fieldsData","raMemberId","register","passwordResetSuccess","forgotPasswordInput","errorsSummary","formNode","setFormFieldTracking","forgotPasswordSubmit","sendFormTracking","showPasswordCodeField","showServerError","completePassword","completePasswordSubmit","newPassword","completeNewPassword","redirect","OldPassword","getAccessToken","setAuthorizationHeader","changePasswordSuccess","setHostedUIReturnUrl","SIGN_OUT_URL","optInValue","OptInToTheOneClub","userAttributesObject","updateUserObject","LastName","Email","getParsleyForm","_parsleyForm","fields","field","$element","fieldName","emailRequest","emailJson","errorList","emailInput","showFieldError","setUrl","setFormType","FormComponent","ACCOUNT_SIGNIN_URL","COMPLETE_DETAILS_URL","DEFAULT_REDIRECT_URL","forgotPasswordLink","onShowForgotPassword","onSubmit","submitButton","optInToOneClub","onOptInOneClub","updateButton","onUpdateConsents","onChangePassword","updateAddressSubmit","onUpdateAddress","updateDetailsSubmit","onUpdateDetails","completeDetailsSubmit","onCompleteDetails","onEmailFocusOut","onSocialSignin","clientId","general","onUserNotConfirmed","userName","challengeName","onShowCompletePassword","setupTOTP","loginFailedReturnUrl","secuTixSignInRequest","__RequestVerificationToken","secutixSignIn","checkRequiredSecutixFields","signInRequest","qs","json","formString","syncForm","HtmlHelper","submit","put","emailConfirmationWorkflow","showRegistrationCodeField","showSuccessMessage","codeWrap","registrationCodeSubmit","confirmSignUp","successMessage","completeButton","newPasswordInput","newPasswordInputConfirm","codeSubmit","confirmationCode","Code","on","onFieldError","validate","form_sso_component_toConsumableArray","checkbox","groupped","groupErrors","errorsSummaryTemplate","errorListOld","createErrorItem","form_sso_component_typeof","errorItem","GTM","getTrackCategory","getTrackAction","getTrackLabel","trackFields","sendFormFieldTracking","form_sso_component_extends","Authorization","_trackCategory","_trackAction","_trackLabel","venue","ChoicesWrapper","choices_wrapper_classCallCheck","choicesInstance","MutationObserver","mutations","mutation","attributeName","updateChoicesDisabled","observe","disconnect","FormCustomSelectComponent","form_custom_select_component_classCallCheck","form_custom_select_component_getPrototypeOf","choicesWrapperInstance","native","baseItemTemplate","baseChoiseTemplate","getChoicesInstance","FormFieldComponent","form_field_component_classCallCheck","form_field_component_getPrototypeOf","form_field_component_assertThisInitialized","onFocus","onBlur","hideFormFieldTooltip","checkFill","FormFileComponent","form_file_component_classCallCheck","form_file_component_getPrototypeOf","defaultCaption","dataset","fileInput","captionContainer","caption","onFileChange","updateCaption","files","FormPhoneInputComponent","form_phone_input_component_classCallCheck","form_phone_input_component_getPrototypeOf","getChoices","itemContentTemplate","choiseContentTemplate","_ref$selected","GtmTriggerComponent","gtm_trigger_component_classCallCheck","gtm_trigger_component_getPrototypeOf","getCategory","getAction","getLabel","gtm_trigger_component_assertThisInitialized","category","Header","header_component_classCallCheck","header_component_getPrototypeOf","header_component_defineProperty","header_component_assertThisInitialized","clickedItem","itemText","innerText","locationLatest","locationPanelHeight","visibleLocation","marginTop","visibleLocationLatest","keyboardEvent","toggleLocationsPanel","dynamicButton","setFocus","locationLink","dynamicButtonLatest","locationLinkLatest","headerCanBeAnimated","menuCanBeAnimated","onClickDynamicButton","onKeypressDynamicButton","onClickDynamicButtonLatest","onKeypressDynamicButtonLatest","gtmLeftMenuClick","saveActionToGtm","gtmDynamicMenuClick","removeListener","arrayItems","boolean","header_component_toConsumableArray","closingMenuAnimation","closeOtherMenuAnimation","openingMenuAnimation","ariaExpandedTrigger","setAnimation","dynamicIconsLatest","locationItemLatest","dynamicIcons","locationItem","HeaderComponent","Hero","hero_component_classCallCheck","hero_component_getPrototypeOf","getOneClubMemberValueFromCookie","sticky","stickyIsShown","observerIsCreated","promptScroller","onResize","hero_component_assertThisInitialized","onClickPrompt","disableButtonsWhenUserIsOneClubMember","checkViewportWidth","addBottomPadding","prompt","initScroller","parsedCookie","disableCta1","cta1","cta1sticky","disableCta2","cta2","cta2sticky","viewportWidth","clientWidth","innerWidth","removeBottomPadding","createObserver","IntersectionObserver","changes","intersectionRatio","hideSticky","disableStickyHeader","showSticky","translateY","blockToShow","Scroller","blankElement","HeroComponent","ImageGallery","image_gallery_component_classCallCheck","image_gallery_component_getPrototypeOf","slides","setImage","slide","labelCurrent","labelTotal","counter","ImgeGallery","initialiseEventCentreInstance","clipTag","eventCenterParams","shotViewElement","imga_iframe_helpers_objectSpread","eventCentre","IMGAiFrameHolder","imga_iframe_holder_classCallCheck","imga_iframe_holder_getPrototypeOf","clipTagContainerDiv","loadRouteToHoleClipTag","imga_iframe_holder_assertThisInitialized","updateProps","frontRowSeatESModuleCallback","initHolderDivId","loadShotViewScripts","eventCentreParameters","targetElementSelector","targetElement","liveShotViewConfig","setHtmlIdAttribute","setClipTagContainerId","frontRowSeat","routeHolder","shouldLoadRouteToHoleClipTag","formattedEventCenterParams","formattedParams","operator","sport","eventId","targetModule","imgaVersion","imgaLanguage","isValidEventCentreParameters","language","environment","env","contextView","initialContext","view","formatEventCentreParameters","shotViewScripts","scriptSourceUrl","scriptType","getIMGArenaESModuleScriptInnerHTML","isScriptEmbedded","loadScriptAsync","useNoModule","embedScript","isMobile","IMGAiFrameComponent","imga_iframe_component_classCallCheck","imga_iframe_component_getPrototypeOf","updateIframeSize","iFrameAspectRatioWdith","iFrameAspectRatioHeight","mobileIFrameAspectRatioHeight","mobileIFrameAspectRatioWidth","desktopPaddingTopPercent","mobilePaddingTopPercent","paddingTop","_this$options2","imga_iframe_holder","base64UrlDecode","base64","decodeURIComponent","getAtob","char","atob","stripToken","allowedAttributes","secret","overWriteHeader","decoded","tokenParts","header","signature","decodeJWT","filteredPayload","sHeader","sPayload","KJUR","jws","JWS","sign","encodeJWT","jwt_utils_objectSpread","IMGAMatchupsGameLayout","allowedUserAttributes","iFrameDatasource","tokenHeader","tokenQueryKey","_useState2","useState","userIdTokenShortened","setUserIdTokenShortened","useEffect","getCurrentUserAttributes","idToken","stringToArray","iFrameSrc","addQueryParams","IMGAMatchupsGameComponent","imga_matchups_game_component_classCallCheck","imga_matchups_game_component_getPrototypeOf","updatePaddingTop","iFrameAspectRatioWidth","LargeHero","large_hero_component_classCallCheck","large_hero_component_getPrototypeOf","largeHeroStickyRef","sortAsc","checkRule","sortingStrategies_toConsumableArray","compareCutResult","compareByCut","aVal","bVal","aPropValue","bPropValue","sortDesc","sortAscAZ","playerA","playerB","cutProperty","aCutVal","bCutVal","statusCompare","compareByStatus","playerAStatus","playerBStatus","sortingStrategies","sortingStrategies_defineProperty","_sortingStrategies","cellTypes","POSITION","filteringFunc","isAsc","MOVERS","sortDescAZ","PAR","TOTAL","TODAY","R1","R2","R3","R4","LeaderboardAlphaList","player","playerId","livePlayer","country_flag","childCss","countryFlagSrc","isAmateur","sortedPlayers","FavoriteButton","stateFavoriteButtonClassName","stateFavoriteButton","sprite_svg","iconName","defaultProps","LeaderboardHbhButton","toggleHoleByHoleView","stateCss","is-active","viewTypes","HOLE_BY_HOLE","lazy_image","FLAG_IMAGE_PATH","LeaderboardCellHoleTitle","sortingHandlerProps","processingState","sortingType","is-top","isSortingAscending","LeaderboardRScore","toggleRScore","is-close","R_SCORE","LeaderboardCellPlayerTitle","leaderboard_r_score","LeaderboardCellMoversTitle","sorted","LeaderboardCellScoresTitle","scoringCourseRound","holePars","holePar","holeId","par","LeaderboardCellTitleBasic","sortingHandler","modifier","getCellModifierByType","getTitleByType","LeaderboardRowTitle","renderTitleBasic","leaderboard_cell_title_basic","leaderboard_cell_movers_title","leaderboard_cell_player_title","leaderboard_cell_scores_title","leaderboard_cell_hole_title","LeaderboardCellPos","displayValue","LeaderboardMoversBasicIcon","stateIcon","LeaderboardMoversExtendedIcon","LeaderboardCellSort","movers","leaderboard_movers_extended_icon","leaderboard_movers_basic_icon","moversValue","getMovers","LeaderboardFeaturedGroupLive","LeaderboardCellPlayerExtra","leaderboard_cell_player_extra_classCallCheck","leaderboard_cell_player_extra_getPrototypeOf","oldDeviceType","newDeviceType","leaderboard_cell_player_extra_assertThisInitialized","onDeviceTypeChanged","hasChampion","playerSD","playerSitecoreData","suddenDeathStatus","playOffStatuses","NOT_PLAYING","playOffStatus","isPlayOff","currentRound","scoringLeaderboard","selectedRound","featuredGroupLiveUrl","leaderboard_featured_group_live","leaderboard_tee_times_group","renderPlayOffStatus","LeaderboardCellPlayerBasic","rest","_objectWithoutProperties","favouriteTheme","favoritePlayerService","isFavourite","isWhite","favorite_player_button","DEVICE_TYPE_MOBILE","DEVICE_TYPE_MOBILE_WIDE","DEVICE_TYPE_TABLET","fullnameCss","is-lengthy","renderNameComponent","sponsorLogoSrc","leaderboard_cell_player_extra","leaderboard_cell_player_basic_extends","LeaderboardPlayerResult","leaderboard_player_result_classCallCheck","leaderboard_player_result_getPrototypeOf","leaderboard_player_result_defineProperty","leaderboard_player_result_assertThisInitialized","_this$rootRef$current","scrollWidth","scrollLeft","playOffRound","playerPar","setScrollToEnd","playerResult","LeaderboardCellPlayerLeaders","leaderboard_cell_player_leaders_objectWithoutProperties","foundRound","playOffRoundId","liveComponents","leaderboard","playoffRoundId","lastNameCss","is-long","trackCategory","trackAction","trackLabel","cutoutSrc","leaderboard_cell_player_leaders_extends","leaderboard_player_result","renderIndicatorsComponent","LeaderboardCellPlayer","isChampion","isEnhanced","leaderboard_cell_player_objectWithoutProperties","playOffHoles","cellStateCss","is-leaders","is-play-off","is-play-off-res","is-champion","is-champion-play-off","championLabels","mobile","desktop","leaderboard_cell_player_leaders","leaderboard_cell_player_extends","leaderboard_cell_player_basic","LeaderboardCellToPar","playOffText","toPar","playOffToPar","LeaderboardCellToday","today","LeaderboardCellTotal","bemList","LeaderboardCellHole","hole","LeaderboardCellScores","scoringPlayerRound","LeaderboardCellRound","scoreText","LeaderboardCellRoundTotal","playerTotal","roundTotal","totalPar","difference","getTotalBemClass","LeaderboardRows","cutStatus","playersCut","isPlayOffMode","renderRows","playersList","getIsPlayOff","isLostPlayOff","LOST","getIsLostPlayOff","isFavorite","isEnhancedListings","getIsEnhanced","isCut","rowStateCss","is-cut","is-favorite","CHAMPION_IMAGE_PATH","leaderboard_cell_pos","leaderboard_cell_sort","leaderboard_cell_player","leaderboard_cell_to_par","leaderboard_cell_round","r1","r2","r3","r4","leaderboard_cell_scores","SUMMARY","leaderboard_cell_hole","leaderboard_cell_today","leaderboard_cell_total","leaderboard_cell_round_total","LeaderboardTable","scoringCourse","favoritePlayers","favoriteState","leaderboard_table_objectWithoutProperties","courseRounds","hasTeeTime","checkIfRoundHasTeeTimes","is-active-mobile","leaderboard_row_title","leaderboard_table_extends","leaderboard_rows","LeaderboardTableWrapper","leaderboard_table_wrapper_classCallCheck","leaderboard_table_wrapper_getPrototypeOf","viewState","leaderboard_table_wrapper_assertThisInitialized","wrapperRef","scrollable","Scrollable","update","leaderboard_table_wrapper_objectWithoutProperties","tableWrapperStateCss","is-favorite-state","getViewState","leaderboard_table","leaderboard_table_wrapper_extends","LeaderboardInfoButton","leaderboard_info_button_classCallCheck","leaderboard_info_button_getPrototypeOf","leaderboard_info_button_assertThisInitialized","isSpecialStatus","SUBLAYOUT_FULLWIDTH_ENABLE","SUBLAYOUT_FULLWIDTH_DISABLE","LeaderboardContainer","leaderboard_container_classCallCheck","leaderboard_container_getPrototypeOf","leaderboard_container_defineProperty","leaderboard_container_assertThisInitialized","selectedRoundId","DEVICE_TYPE_DESKTOP","roundId","applyFavourite","playersData","favoritePlayerList","getAll","activePlayerId","isModalOpen","completeSuggestions","getSuggestionList","search_suggestions","processSearchResults","filteredDataList","terms","predictiveSearchResults","isPredictive","roundChoices","notify","EVENT_FAVOURITE_PLAYER_SERVICE_ADD","renderFavoritePlayers","EVENT_FAVOURITE_PLAYER_SERVICE_REMOVE","changedRenderedViews","updateChoices","prevChoices","isRoundChoiceAvailable","setSelectedChoice","isRoundChoicesEqual","processedPlayers","filterByFavorite","predictivePlayer","sortStateInit","currentRoundStatus","cutLine","processData","cutPlayers","getCutStatus","splittedPlayers","cutLineState","scoringPlayersCopy","partition","sortValue","getCutLineData","splitPlayers","generateBemCss","controlPanelCss","is-predictive","live_event_select","setRound","patronLogo","search_autocomplete","defaultCallback","getDefaultCallback","suggestions","prepareSuggestions","onToggleState","onSearchToggleState","favorite_button","toggleFilterByFavourite","leaderboard_info_button","onInfoButtonClick","leaderboard_hbh_button","live_pre_message","noFavoriteMessage","leaderboard_table_wrapper","toggleRScoreView","showPlayerCard","LeaderboardLayout","PLAYERS","LEADERBOARD","suddenDeathtatus","sitecorePlayers","messageModel","bemClasses","LIGHT","NTT","leaderboard_alpha_list","leaderboard_container","LeaderboardLayoutWrapper","getPlayerSitecoreData","LeaderboardComponent","leaderboard_component_classCallCheck","leaderboard_component_getPrototypeOf","leaderboard_layout","LeaderboardWidgetAlphaList","targetsConfig","getPlayerExternalLink","rel","LeaderboardWidgetLayout","leaderboard_widget_layout_classCallCheck","leaderboard_widget_layout_getPrototypeOf","playerIds","topPlayersToShow","topPlayersToShowState","leaderboard_widget_layout_assertThisInitialized","numberOfCells","stateTypes","TEE","TO_PAR","textTitle","ccpShow","showAlphaListOnLeaderboardWidget","leaderboard_widget_alpha_list","getPlayers","leaderboard_widget","datePublished","titleText","textOverride","fullLeaderboardLinkText","fullLeaderboardLink","liveComponentLeaderboard","liveComponentSubtitle","LeaderboardWidgetLayoutWrapper","LeaderboardWidgetComponent","leaderboard_widget_component_classCallCheck","leaderboard_widget_component_getPrototypeOf","leaderboard_widget_layout","ListingLoadMore","ListingLoadMore_classCallCheck","ListingLoadMore_getPrototypeOf","onLoadMoreClick","ListingLoadMore_assertThisInitialized","PureComponent","pagination","currentPage","pageCount","isLoadingMore","onLoadMore","CONTROL_TYPE_CHECKLIST","CONTROL_TYPE_SELECT","LiveHeaderTitle","liveHeader","eventLogoSrc","ALiveHeaderTitleContainer","LiveHeaderComponent","live_header_component_classCallCheck","live_header_component_getPrototypeOf","live_header_title","LiveNavigation","live_navigation_component_classCallCheck","live_navigation_component_getPrototypeOf","live_navigation_component_defineProperty","live_navigation_component_assertThisInitialized","clearSelection","getActiveLink","calculateSelectorPosition","navigate","unsubscribeHisporyChange","highlightSelected","spaLoad","subscribeOnHistoryChange","onNavigationLinkClick","pathname","getNormalizedPathname","aliasesAttribute","nodesArray","currentAnimation","pause","leftCoord","updateContent","itemWidth","navigationCoords","LiveNavigationComponent","LiveSubmenu","live_submenu_component_classCallCheck","live_submenu_component_getPrototypeOf","live_submenu_component_defineProperty","live_submenu_component_assertThisInitialized","scrollTo","checkIfItemIsSelected","onLinkClick","LiveSubmenuComponent","LiveVideoWidget","live_video_widget_component_classCallCheck","live_video_widget_component_getPrototypeOf","live_video_widget_component_defineProperty","live_video_widget_component_assertThisInitialized","isLive","pageUrl","imageUrl","partner","partnersLogoUrl","onRootClick","onStoreUpdate","LiveWidgetVideos","live_widget_posts_classCallCheck","live_widget_posts_getPrototypeOf","live_widget_posts_assertThisInitialized","batches","nextBatchId","isFetching","showSpinner","getDataAfterTimeout","clearTimeout","timeoutId","cancelGetData","topBatch","newBatches","topBatchId","getTopBatchId","newBatch","foundBatch","batch","posts","unshift","updateInSeconds","isLoadMore","context","qsProps","cancelableGetData","makeCancelable","promise","_batches","live_widget_posts_toConsumableArray","getUpdatedBatches","nextBatch","isCanceled","getPosts","showLoadMore","maxPosts","loadMoreCss","is-loading","liveText","hasOverlay","live_text","mediaContentType","LiveWidgetPostsWrapper","LiveWidgetEmbeddedContent","embedCode","LiveWidgetComponent","live_widget_component_classCallCheck","live_widget_component_getPrototypeOf","embeddedContent","live_widget_embedded_content_LiveWidgetEmbeddedContent","live_widget_posts","EASING_DEFAULT","DURATION_DEFAULT","MainNavComponent","main_nav_component_classCallCheck","main_nav_component_getPrototypeOf","main_nav_component_defineProperty","main_nav_component_assertThisInitialized","contentBlocker","block","nav","opacity","begin","opener","setFocusTrap","unblock","removeFocusTrap","closeMenu","focusTrap","closers","openMenu","createFocusTrap","escapeDeactivates","activate","deactivate","MakeStoriesLayout","widgetId","useRef","useLayoutEffect","playerWrapper","styleLink","scriptUrls","scriptsToLoad","inlineScript","onScriptsLoaded","MakeStoriesComponent","make_stories_component_classCallCheck","make_stories_component_getPrototypeOf","make_stories_layout","renderType","WINDOW","POPUP","modal_spa","ModalSpa","modal_spa_classCallCheck","modal_spa_defineProperty","innerState","historyController","modalCache","setInitialHistoryState","modalUrl","getPreviousOpenedModalUrl","setHistoryState","prevState","newState","shouldClean","cleanContent","isOpenning","currentModal","unregisterHistroyController","sessionId","nanoid","chainStartUrl","onHistoryChange","modal_spa_objectSpread","openLinkInPopup","openModal","getModal","modal_spa_slicedToArray","modal","sendCurrentLocationAsVirtualUrl","contentUrl","getOverlayUrl","Modal","previousOpenedModal","MOBILE_FIXED","DEKSTOP_WIDE","delegateControl","onClose","isHtmlContentType","responseHtml","modifySocialElementsStyleFromPopupHtml","getTitleFromPopupHtml","forceHideErrorsSummary","showThrottleMessage","serverErrors","pushState","removeElementsFromDom","closeModal","reloadPage","ModalSpaTrigger","modal_spa_trigger_component_classCallCheck","modal_spa_trigger_component_getPrototypeOf","modalSpa","modal_spa_trigger_component_assertThisInitialized","onClickElement","ModalSpaTriggerComponent","ModalTriggerPromoPanelWrapper","setCurrentUser","_useScreenDetector","useScreenDetector","isTablet","getCurrentAuthenticatedUser","tabletImage","mobileImage","heading","subHeading","ctaButtonLabel","ctaButtonActionResource","desktopImageOpacity","mobileImageOpacity","mobileOpacity","imageOpacity","imgStyle","imageSrc","getImageSrc","data-dc-modal-trigger-login-failed-return-url-param","ModalTriggerPromoPanelComponent","modal_trigger_promo_panel_component_classCallCheck","modal_trigger_promo_panel_component_getPrototypeOf","modal_trigger_promo_panel_wrapper","displayPromoBanner","MultimediaCarouselComponent","multimedia_carousel_component_classCallCheck","multimedia_carousel_component_getPrototypeOf","multimedia_carousel_component_defineProperty","multimedia_carousel_component_assertThisInitialized","gallery","goTo","sliderInfo","getInfo","isSliderEnd","handleLastSlide","lastSlide","currentSlidePosition","slidesContainerPosition","tns","autoWidth","loop","controls","touch","responsive","579","slideBy","1023","prevBtn","onClickPrevBtn","nextBtn","onClickNextBtn","slideCount","slideItems","_this$getTranslateVal","getTranslateValues","y","z","notCurrentSlideDisplayedOk","setCurrentSlidePosition","isFullyShown","setLastSlidePosition","matrix","webkitTransform","mozTransform","matrixType","matrixValues","currentX","currentY","currentZ","setNewTranslate","lastSlidePosition","right","newX","newY","newZ","elementPosition","containerPosition","PlayerCarouselComponent","MyAccountUrlComponent","my_account_url_component_classCallCheck","my_account_url_component_getPrototypeOf","secutixCookie","secutixConfiguration","myAccountUrl","getPattern","getDefaultFilters","filters","defaultFilters","filterConfig","defaultItem","isDefault","isFiltersDirty","filtersConfigs","parameter1","parameter2","ObjectHelper","isEqual","PAGINATION_DEFAULT","perPage","totalCount","LISTING_ID","Listing","Listing_classCallCheck","Listing_getPrototypeOf","Listing_defineProperty","Listing_assertThisInitialized","setFilters","getFiltersFromLocation","hasInitialItems","initialItems","getInitialFilters","isFiltersApplied","isInitialRequestFulfilled","lastRequestCancel","onFiltersChange","animateChange","baseUrl","exceptParams","searchObject","getSearchFromLocation","paramsObject","getPathWithQueryString","loadItems","listElement","getListElement","changeAction","timeline","focusSection","fade","getItems","isCancel","Listing_toConsumableArray","Listing_objectSpread","getFiltersByLocation","filterObject","passedFilters","getValidFilters","updatedFilters","searchableFilters","getSearchableParams","loadNextPageItems","page","customParams","CancelToken","customHeaders","cancelToken","paramsSerializer","params1","NewsFeedTypeFilter","selectedFilters","renderControls","NewsFeedTagFilter","NewsFeedHeader","filterName","changedCheckboxValue","isChecked","news_feed_header_defineProperty","translations","shortDate","news_feed_tag_filter","getConfigByName","news_feed_type_filter","BannerCard","banner","NewsFeedLayout","news_feed_layout_classCallCheck","news_feed_layout_getPrototypeOf","news_feed_layout_defineProperty","news_feed_layout_assertThisInitialized","onLoadMoreFromProps","news_feed_layout_objectSpread","groupsList","totalGroups","patternSize","startIndex","endIndex","groupItems","renderBanner","banner_card","Listing_Listing","onFiltersDirtyChange","createPortal","news_feed_header","filtersNode","data-content","aria-live","renderGroupsListing","renderNoResults","ListingLoadMore_ListingLoadMore","instanceOf","NewsFeedComponent","news_feed_component_classCallCheck","news_feed_component_getPrototypeOf","news_feed_component_defineProperty","news_feed_component_assertThisInitialized","isDirty","components","component","hidden","renderSection","listingOptions","articles","news_feed_layout","placeholderNode","listing","NewsFeedLiveLayout","news_feed_live_layout_classCallCheck","news_feed_live_layout_getPrototypeOf","news_feed_live_layout_defineProperty","news_feed_live_layout_assertThisInitialized","tags","showPartialPattern","NewsFeedService","onNewsFeedServiceChange","newsfeedParentItemGuid","paginationQs","tagsQs","news_feed_live_layout_toConsumableArray","newsfeedParentItemGuidQs","seeAllUrl","_this$state$paginatio","onSeeAllClick","NewsFeedLiveComponent","news_feed_live_component_classCallCheck","news_feed_live_component_getPrototypeOf","news_feed_live_layout","NewsFeedLiveSelector","news_feed_live_selector_component_classCallCheck","news_feed_live_selector_component_getPrototypeOf","news_feed_live_selector_component_assertThisInitialized","onInputChange","NewsFeedPreview","news_feed_preview_component_classCallCheck","news_feed_preview_component_getPrototypeOf","news_feed_preview_component_defineProperty","news_feed_preview_component_assertThisInitialized","statePrimaryButton","newsCardsList","reactDOMRender","renderCardsList","primaryButton","onClickPrimaryButton","primaryWrapper","totalItems","player_carousel_component_classCallCheck","player_carousel_component_getPrototypeOf","player_carousel_component_defineProperty","player_carousel_component_assertThisInitialized","PlayerHeroComponent","player_hero_component_classCallCheck","player_hero_component_getPrototypeOf","age_latest","calculate_age","age","dob","birthDate","getUTCFullYear","QualLeaderboardDefaultView","countryFlag","playerStatus","deviceTypes","MOBILE","qualificationTypes","REGIONAL","FINAL","R1_TEE_TIME","R2_TEE_TIME","QualDrawSearchInput","qual_draw_search_input_classCallCheck","qual_draw_search_input_getPrototypeOf","qual_draw_search_input_defineProperty","qual_draw_search_input_assertThisInitialized","clearValueSearchInput","defaultSearchValue","searchBehavior","searchBehaviorState","animationState","inputRef","searchMobileBehavior","renderAnimationState","handleSearch","onKeyPress","handleKeyPress","startSearchBehavior","renderIcon","QualDrawSelect","qual_draw_select_classCallCheck","qual_draw_select_getPrototypeOf","getValue","qual_draw_select_assertThisInitialized","selectRef","getOptionValue","qsObj","optionItems","Boolean","locationName","choicesInitial","choiceIndex","course","sortByTeeTime","r1TeeTime","r2TeeTime","teeTime","teeTimeGroups","filtering_strategies_toConsumableArray","curTeeTime","r1StartHole","filteringStrategies","selectCourse","selectValue","courseItem","searchPlayers","searchQuery","filterBy","QualDrawContainer","qual_draw_container_classCallCheck","qual_draw_container_getPrototypeOf","qual_draw_container_defineProperty","qual_draw_container_assertThisInitialized","isFinalQualificationDraw","startHole","isScoringCompleted","r1MatchNo","roundNoIdentifier","renderStartHole","teeTimeR1","teeTimeR2","nationality","clubName","renderMatchNumber","renderField","r2StartHole","arrowRightRef","arrowLeftRef","lastScroll","chainStartHash","history","selectedCourse","term","applySearchPlayers","filteringType","currentStrategy","ignoreQueryPrefix","searchAnimationState","initState","filteredStateInit","is-search-active","qual_draw_select","handleChangeSelect","qual_draw_search_input","infoPopupUrl","qual_draw_table_player","onScroll","onScrollLeftElement","renderItem","QualDrawLayout","scoringDraw","DARK","localeCompare","qual_draw_container","qual_draw_layout_extends","QualDrawLayoutWrapper","ownProps","QualDrawComponent","qual_draw_component_classCallCheck","qual_draw_component_getPrototypeOf","qual_draw_layout","QualEventItem","qual_events_item_classCallCheck","qual_events_item_getPrototypeOf","isFirstLinkDefined","link1","isSecondLinkDefined","link2","overviewSrc","firstLinkText","secondLinkText","QualEventsContainer","scoringSummary","locations","sortAlfa","qual_events_item","locationId","QualEventsContainerWrapper","QualEventsComponent","qual_events_component_classCallCheck","qual_events_component_getPrototypeOf","cardsRootContainer","qual_events_container","qualLeaderboardScoringInfo","isVisible","clicked","scoringInfoClassName","DEFAULT_VIEW","HOLES_VIEW","getPlayerRoundById","roundNo","getRoundParsById","roundPars","getPlayerFormattedTeeTimeByRound","teeTimes","getPlayerTeeTimeByRoundId","holesPlayed","roundToPar","holesNoPlayed","parsedInt","renderQualifiedStatus","q","qualifiedStatus","reservedStatusNumber","QualLeaderboardPlayerRow","renderPlayerPar","renderColorState","entryId","countryFlagUrl","countryName","renderColorStateHoles","REGIONAL_WO","FINAL_WO","NATIONALITY","R1_SCORE","R1_OUT","R1_IN","R1_TO_PAR","R2_SCORE","R2_OUT","R2_IN","R2_TO_PAR","QualLeaderboardRowTitle","inOutTotal","getNationalityTitle","renderClassName","qualifyReserveFlag","teeStartPosition","classNameTable","QualLeaderboardTable","tableWrapper","finalQualificationHole","classNameProps","renderRoundField","renderSortableField","parSum","colorStateToPar","playerRound","contentText","totalColorState","isStartingFromTenthHole","renderStartHoleByRoundId","qual_leaderboard_row_title","clubNameView","parSum1","parSum2","totalViewField","qualifiedReserveFlagView","qualifiedStatusView","teeStartPositionView","fqHoleView","isPlaying","startingHole","showFormattedTeeTime","rqHoleView","inTotal","in","holeNo","getScoreByItemHole","qual_leaderboard_table_objectSpread","outTotal","createHolesField","qual_leaderboard_player_row","QualLeaderboardArticle","competitionStatus","qualSortingStrategies_toConsumableArray","qualSortingStrategies","qualSortingStrategies_defineProperty","_qualSortingStrategie","QualLeaderboardContainer","qual_leaderboard_container_classCallCheck","qual_leaderboard_container_getPrototypeOf","qual_leaderboard_container_defineProperty","qual_leaderboard_container_assertThisInitialized","defaultRoundId","rndAvailable","isBlack","qual_leaderboard_article","renderSelectControl","qual_leaderboard_scoring_info","showScoringInfoContent","changeView","qual_leaderboard_table","qual_leaderboard_container_extends","QualLeaderboardLayout","getLocationById","qual_leaderboard_container","qual_leaderboard_layout_extends","QualLeaderboardLayoutWrapper","QualLeaderboardComponent","qual_leaderboard_component_classCallCheck","qual_leaderboard_component_getPrototypeOf","qual_leaderboard_layout","QualifiedPlayerCard","subtitleModCss","playerURL","getLinkAriaLabel","bg","championOfTheYears","data-src","playerImageSrcSet","missingReason","person","QualifiedPlayerCardItem","QualifiedPlayerCardItem_objectWithoutProperties","QualifiedPlayerCard_QualifiedPlayerCard","QualifiedPlayerCardItem_extends","QualifiedGolfersPlayersList","interpolateWithPlural","single","plural","interpolate","PreviousQualificationEvent","PreviousQualificationEvent_classCallCheck","PreviousQualificationEvent_getPrototypeOf","isGolfersShown","restPlayersRef","PreviousQualificationEvent_assertThisInitialized","onVisibilityTriggerClick","handleRestPlayersVisibility","restPlayersElement","isDesktopWide","isDesktop","golfers","getPlayersToShow","previewPlayers","getPreviewPlayers","restPlayers","getRestPlayers","logoImageSrcSet","getPlayersQualifiedCaption","infoLink","getTriggerButtonCaption","restPlayersCount","_this$props$translati","showPlayers","_this$props$translati2","qualifiedPlayers","PreviousQualificationEvents","events","js_PreviousQualificationEvent","js_actions","showPreviousEvents","changeDeviceType","QualifiedGolfersPreview","morePlayersCount","totalPlayersCount","onShowEventsClick","creators","QualifiedGolfers","isEventsShown","js_PreviousQualificationEvents","js_QualifiedGolfersPreview","INITIAL_STATE","hydrated","reducer_objectSpread","QualifiedGolfersComponent","qualified_golfers_component_classCallCheck","qualified_golfers_component_getPrototypeOf","qualified_golfers_component_assertThisInitialized","js_QualifiedGolfers","QualifiedPlayerCardComponent","qualified_player_card_component_classCallCheck","qualified_player_card_component_getPrototypeOf","QualifiedPlayersListingItem","QualifiedPlayersListingContent","QualifiedPlayersListingItem_QualifiedPlayersListingItem","PredictiveSearch","PredictiveSearch_classCallCheck","PredictiveSearch_getPrototypeOf","PredictiveSearch_assertThisInitialized","onClearButtonClick","formRef","baseElement","predictiveSearchUrl","maxSuggestionsCount","moreSuggestionsAvailableClass","autocompleteInstance","dispose","suggestion","searchType","PredictiveSearch_objectWithoutProperties","PredictiveSearch_objectSpread","$inputElement","devbridgeAutocomplete","minChars","deferRequestBy","zIndex","appendTo","showNoSuggestionNotice","noSuggestionNotice","triggerSelectOnValidInput","lookup","query","spinnerElement","getSuggestions","transformSuggestions","formatResult","renderSuggestion","onSelect","handlePredictiveSelect","suggestionsContainer","isSubmitted","isFocused","isFilledMode","onSearchButtonClick","isMinimized","renderInnerButton","onCollapseButtonClick","onClear","QualifiedPlayersPredictiveSearch","QualifiedPlayersPredictiveSearch_classCallCheck","QualifiedPlayersPredictiveSearch_getPrototypeOf","QualifiedPlayersPredictiveSearch_assertThisInitialized","countryId","QualifiedPlayersPredictiveSearch_objectSpread","suggestionInfo","flagSuggestionTemplate","playerSuggestionTemplate","passProps","QualifiedPlayersPredictiveSearch_objectWithoutProperties","PredictiveSearch_PredictiveSearch","QualifiedPlayersPredictiveSearch_extends","queryType","QualifiedPlayersListingLoadMore","loadMoreElement","QualifiedPlayersListingFiltersTriggerButton","isFiltersVisible","getButtonText","QualifiedPlayersListingControls","QualifiedPlayersListingControls_classCallCheck","QualifiedPlayersListingControls_getPrototypeOf","getIsMinimized","QualifiedPlayersListingControls_assertThisInitialized","onPredictiveSearchBlur","onPredictiveSearchFocus","isTriggerButtonVisible","QualifiedPlayersListingFiltersTriggerButton_QualifiedPlayersListingFiltersTriggerButton","onFiltersTogglerClick","QualifiedPlayersPredictiveSearch_QualifiedPlayersPredictiveSearch","predictiveEndpointUrl","ListingSelect","ListingSelect_classCallCheck","ListingSelect_getPrototypeOf","ListingSelect_assertThisInitialized","ListingCheckList","ListingCheckList_classCallCheck","ListingCheckList_getPrototypeOf","ListingCheckList_assertThisInitialized","QualifiedPlayersListingFilters","QualifiedPlayersListingFilters_classCallCheck","QualifiedPlayersListingFilters_getPrototypeOf","filtersRef","QualifiedPlayersListingFilters_assertThisInitialized","filtersElement","prevProps","handleFiltersVisibility","ListingCheckList_ListingCheckList","ListingSelect_ListingSelect","renderFilter","QualifiedPlayersListingHeader","QualifiedPlayersListingHeader_classCallCheck","QualifiedPlayersListingHeader_getPrototypeOf","QualifiedPlayersListingHeader_assertThisInitialized","QualifiedPlayersListingControls_QualifiedPlayersListingControls","itemsCount","QualifiedPlayersListingFilters_QualifiedPlayersListingFilters","QualifiedPlayersListing","QualifiedPlayersListing_classCallCheck","QualifiedPlayersListing_getPrototypeOf","QualifiedPlayersListing_objectSpread","QualifiedPlayersListingHeader_QualifiedPlayersListingHeader","QualifiedPlayersListingContent_QualifiedPlayersListingContent","QualifiedPlayersListingLoadMore_QualifiedPlayersListingLoadMore","QualifiedPlayersListingComponent","qualified_players_listing_component_classCallCheck","qualified_players_listing_component_getPrototypeOf","listingElement","loadmore","SearchApiUrl","PredictiveSearchApiUrl","filtersConfig","Filters","playersListingOptions","QualifiedPlayersListing_QualifiedPlayersListing","RecaptchaComponent","ResetPasswordUrlComponent","reset_password_url_component_classCallCheck","reset_password_url_component_getPrototypeOf","resetPasswordUrl","resetPasswordLink","toggleRightHeaderLink","mainRightHeaderLinkItem","memberRightHeaderLinkItem","displayMemberLinkItemCondition","toggleCssClass","getAllMainRightLinkItems","getElementsByQuery","rightHeaderLinkItem","getSiblingMemberRightLinkItem","getSiblingByQuery","RightHeaderLinkItem","right_header_link_item_component_classCallCheck","right_header_link_item_component_getPrototypeOf","right_header_link_item_component_assertThisInitialized","getElementByQuery","getMainRightLinkItem","getMemberRightLinkItem","displayRightHeaderLinkByOneClubMembership","RightHeaderLinks","right_header_links_component_classCallCheck","right_header_links_component_getPrototypeOf","mainRightHeaderLinkItems","mainLinkItem","memberLinkItem","right_header_links_component_assertThisInitialized","handleUserDataCookieChange","RolexWatchComponent","rolex_watch_component_classCallCheck","rolex_watch_component_getPrototypeOf","intervalId","thresholdDate","isSimple","shouldShowCountdown","lazyloadIframes","setSeconds","getSeconds","iframes","activityHelper","timeoutHandle","isOnPage","_onChange","maxIdleTimeInSeconds","parsedMaxIdleTimeInSeconds","NaN","_timeOutFunction","signInFormApi","setAccessTokenCookie","reloadToBasePage","handleUserIdleTime","onpageshow","onpagehide","refreshMyAccountStyle","currentAddress","randaPage","SSOFormContext","createContext","addressesFormCallbackFunctions","HandleShowDisplayAddressForm","HandleShowAddAddressForm","HandleAddNewAddress","HandleShowUpdateAddressForm","HandleUpdateAddress","HandleRemoveAddress","initial_state","oneClubRegisterFormState","isSaving","availableCounties","availableStates","formHasErrors","defaultRegisterFormState","ballotRegisterFormState","emailCheckInProgress","ticketingRegisterFormState","privacyPolicy","oneClubTermsAndServices","raMembersRegisterFormState","userDetailsFormState","isConfirmationPopUpOpen","isUserUpdatingEmail","changePasswordFormState","userAddressesFormState","formState","accountData","emailNotificationSettingsFormState","theOneClubFormState","leaveOneClubCheck","orderHistoryFormState","orderHistoryData","orderHistoryActivePageNumber","displayCancelledFiles","fileNumberForDisplay","userTicketsFormState","isTicketPrintModalOpen","printOptions","modalFormData","addUserAddressesFormState","updateUserAddressesFormState","upgradeAccountFormState","userAccountData","isSubmitAction","upgradeBallotFormState","ssoItemListFormState","upgradeRaMembersFormState","signInFormState","isProcessing","newPasswordRequiredFormState","forgotPasswordFormState","resetPasswordFormState","verificationCode","verifyEmailFormState","FormMessage","isSuccessMessage","messages","classType","fieldClass","messagesToDisplay","displayFormMessages","ssoFieldTypes","Username","ConfirmEmailAddress","ConfirmPassword","DateOfBirth","AddressLine3","MobilePhone","MainAddress","ShippingAddress","BillingAddress","FavoritePlayer","Venues","Consent","OffersDetails","AcceptOffers","OffersConsent","RefuseOffers","Policy","PrivacyPolicy","OneClubTermsAndServices","ContactDetails","VerificationCode","BecomeOneClubMember","SelectOption","MultipleChoiceOption","LookupSuggestion","FrequentlyAskedQuestion","HTMLText","BecomeOneClubMemberInfo","MainAddressLabel","ChampionshipSection","ChannelSection","InterestSection","RaMemberId","Captcha","Mastercard","State","TextAndImageTile","formStyleConstants","smallField","isSuccess","isInvalid","isOpened","fieldHeaderClassName","customFieldClassName","FieldHeader","headerTitle","headerText","textClassName","fieldClassName","FormTextInput","FormTextInput_classCallCheck","FormTextInput_getPrototypeOf","validState","handleBlur","FormTextInput_assertThisInitialized","handleChangeCallback","handleFieldIsFilled","getFieldType","initialState","FormTextInput_objectSpread","isPassword","autocompleteValue","isHidden","size","tooltipText","utility_FieldHeader","data-tip","data-for","data-place","react_fontawesome_index_es","icon","faInfoCircle","index_es","autoComplete","FormCaptchaField","FormCaptchaField_classCallCheck","FormCaptchaField_getPrototypeOf","recaptchaPublicKey","recaptchaStyle","esm","sitekey","FormOffers","offersDetails","refuseOffersName","acceptOffersName","FormOffers_slicedToArray","setIsDirty","_useState4","refuseOffers","setRefuseOffers","_useState6","acceptOffers","setAcceptOffers","refuseOffersDefaultValueFromProps","acceptOffersDefaultValueFromProps","acceptOffersFieldTitle","fieldHeaderTitle","acceptOffersFieldText","fieldHeaderText","refuseOffersFieldTitle","refuseOffersFieldText","checkboxValue","getDestructuredText","emailConsent","FormPolicy","policy","showConsent","consentLabel","policyName","getDestructuredTextWithMultipleLinks","defaultChecked","FormConsentDetails","FormConsentDetails_classCallCheck","FormConsentDetails_getPrototypeOf","handleClick","FormConsentDetails_assertThisInitialized","consentDetails","data-dc-accordion-ref","aria-expanded","FormSelectField","FormSelectField_classCallCheck","FormSelectField_getPrototypeOf","selectedOption","FormSelectField_assertThisInitialized","FormSelectField_objectSpread","propertyForValue","FormDateField","FormDateField_classCallCheck","FormDateField_getPrototypeOf","FormDateField_assertThisInitialized","dayValue","monthValue","yearValue","FormDateField_objectSpread","FormDateField_defineProperty","FormMultipleInterests","FormMultipleInterests_classCallCheck","FormMultipleInterests_getPrototypeOf","displayVenues","FormMultipleInterests_assertThisInitialized","displayHeader","interestsData","indexOfVenue","_this$props3","_this$props4","FormContactInfo","contactDetails","FormCheckboxInput","FormLookupField","FormLookupField_classCallCheck","FormLookupField_getPrototypeOf","lookupValue","areSuggestionsVisible","FormLookupField_assertThisInitialized","displaySuggestedPlayers","handleCloseSuggestions","newLookupValue","updatedLookUpValue","FormLookupField_objectSpread","filteredSuggestions","isAllWhiteSpace","filteredSuggestion","FormHTML","hasEmptyValues","FormMobilePhoneInput","FormMobilePhoneInput_classCallCheck","FormMobilePhoneInput_getPrototypeOf","FormMobilePhoneInput_defineProperty","FormMobilePhoneInput_assertThisInitialized","box","flagsListContainer","handleFlagContainerClick","handleFlagsListContainer","handleListItemEnter","handleListItemLeave","handleCountryItemClick","getProcessedDefaultValue","getRetrievedDefaultValue","processedDefaultValue","FormMobilePhoneInput_objectSpread","handleOutsideClick","retrievedDefaultValue","toggle","targetChildren","selectedCountryItem","selectedCountryPhonePrefix","selectedCountryItemValue","selectedCountryPhonePrefixValue","onMouseEnter","onMouseLeave","FormMastercardField","FormMastercardField_classCallCheck","FormMastercardField_getPrototypeOf","FormMastercardField_assertThisInitialized","FormMastercardField_objectSpread","mastercardLogo","FormTextAndImageField","FormTextAndImageField_classCallCheck","FormTextAndImageField_getPrototypeOf","backgroundColor","displayTag","inlineTagMessageStyle","getTagStyle","formFields","fieldProperties","utility_FormTextInput","formReference","fieldLabel","fieldSize","fieldChangeCallback","fieldValidStateCallback","handleOnBlur","confirmEmailAddress","utility_FormSelectField","fieldOptions","utility_FormDateField","utility_FormMobilePhoneInput","FormChecboxInput","utility_FormLookupField","fieldSuggestions","common_FormMultipleInterests","consent","common_FormConsentDetails","common_FormOffers","common_FormPolicy","common_FormContactInfo","becomeOneClubMember","becomeOneClubMemberInfo","utility_FormHTML","mainAddressLabel","channelSection","reCaptcha","utility_FormCaptchaField","mastercard","utility_FormMastercardField","textAndImageTile","utility_FormTextAndImageField","findOptionInSelectField","selectField","optionValue","propertyToReturn","findElementByProperty","getProperty","FormBuilder","formReferences","countyData","stateData","countryData","handleFieldChange","handleConfirmEmailChange","handleOldPasswordChange","handleConfirmPasswordChange","handleDateChange","handleMobilePhoneChange","handleCountryChange","handleCaptchaChange","handleFieldValidState","handleMastercardNumberChange","isReadOnly","form_builder_slicedToArray","fieldType","getOrderNo","formDataKey","formDataValue","ssoFieldType","getObjectKeyByValue","isTextAndImageField","formField","formFieldsConfig","titlePropertyForValue","countryPropertyForValue","countyPropertyForValue","statePropertyForValue","fieldKey","getFieldProperties","orderNo","MAX_SAFE_INTEGER","buildForm","REGISTER_USER_SUCCESS","REGISTER_USER_ERROR","LOAD_REGISTER_FORM_DATA_SUCCESS","LOAD_REGISTER_FORM_DATA_ERROR","RESEND_EMAIL_VERIFICATION_SUCCESS","RESEND_EMAIL_VERIFICATION_ERROR","RESET_REGISTER_FORM_STATE","SIGN_IN_USER_SUCCESS","SIGN_IN_USER_ERROR","LAST_LOG_IN_UPDATE_SUCCESS","LAST_LOG_IN_UPDATE_ERROR","NEW_PASSWORD_SAVED_SUCCESS","NEW_PASSWORD_SAVED_ERROR","RESET_SIGN_IN_FORM_STATE","SIGN_OUT_USER_SUCCESS","SIGN_OUT_USER_ERROR","LOAD_SIGN_IN_FORM_DATA_SUCCESS","LOAD_SIGN_IN_FORM_DATA_ERROR","LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_SUCCESS","LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_ERROR","LOAD_SIGN_IN_SUCCESS_FORM_DATA_SUCCESS","FORGOT_PASSWORD_SUCCESS","FORGOT_PASSWORD_ERROR","RESET_FORGOT_PASSWORD_FORM_STATE","LOAD_FORGOT_PASSWORD_FORM_SUCCESS","LOAD_FORGOT_PASSWORD_FORM_ERROR","RESET_PASSWORD_SUCCESS","RESET_PASSWORD_ERROR","LOAD_RESET_PASSWORD_FORM_SUCCESS","LOAD_RESET_PASSWORD_FORM_ERROR","RESET_RESET_PASSWORD_FORM_STATE","LOAD_HOME_PAGE_TICKETS_DATA_SUCCESS","LOAD_HOME_PAGE_TICKETS_DATA_ERROR","LOAD_USER_DATA_SUCCESS","LOAD_USER_DATA_ERROR","LOAD_ORDER_HISTORY_SUCCESS","LOAD_ORDER_HISTORY_ERROR","LOAD_ORDER_HISTORY_PAGES_SUCCESS","LOAD_ORDER_HISTORY_PAGES_ERROR","LOAD_ORDER_DETAILS_SUCCESS","LOAD_ORDER_DETAILS_ERROR","LOAD_USER_TICKETS_SUCCESS","LOAD_USER_TICKETS_ERROR","DOWNLOAD_PDF_FILE_SUCCESS","DOWNLOAD_PDF_FILE_ERROR","RESUME_PAYMENT_BY_FILE_NUMBER_ERROR","RESUME_PAYMENT_BY_FILE_NUMBER_SUCCESS","UPDATE_USER_DETAILS_SUCCESS","UPDATE_USER_DETAILS_ERROR","REMOVE_USER_ACCOUNT_SUCCESS","REMOVE_USER_ACCOUNT_ERROR","UPDATE_USER_ADDRESSES_SUCCESS","UPDATE_USER_ADDRESSES_ERROR","RESET_USER_ADDRESSES_FORM_STATE","USER_ADDRESSES_ERROR_MESSAGE","RESET_USER_DETAILS_FORM_STATE","CHANGE_PASSWORD_SUCCESS","CHANGE_PASSWORD_ERROR","RESET_HOME_PAGE_TICKETS_DATA_FORM_STATE","UPGRADE_TO_TICKETING_ACCOUNT_SUCCESS","UPGRADE_TO_TICKETING_ACCOUNT_ERROR","RESET_UPGRADE_ACCOUNT_FORM","LOAD_UPGRADE_TO_ONE_CLUB_FORM_DATA_SUCCESS","LOAD_UPGRADE_TO_ONE_CLUB_FORM_DATA_ERROR","RESET_RETRIEVE_USER_ADDRESS","PURCHASE_ATTEMPT_SUCCESS","PURCHASE_ATTEMPT_ERROR","BEGIN_API_CALL","API_CALL_ERROR","LOAD_VERIFY_EMAIL_FORM_SUCCESS","LOAD_VERIFY_EMAIL_FORM_ERROR","VERIFY_EMAIL_SUCCESS","VERIFY_EMAIL_ERROR","RESET_VERIFY_EMAIL_FORM_STATE","UPDATER_USER_EMAIL_SUCCESS","UPDATE_ONE_CLUB_MEMBERSHIP_ERROR","UPDATE_ONE_CLUB_MEMBERSHIP_SUCCESS","UPDATE_OPTINS_ERROR","UPDATE_OPTINS_SUCCESS","VERIFY_IF_USER_EMAIL_EXISTS_ERROR","VERIFY_IF_USER_EMAIL_EXISTS_SUCCESS","SAVE_USER_TO_ADDRESS_BOOK_SUCCESS","SAVE_USER_TO_ADDRESS_BOOK_ERROR_MESSAGE","LOAD_ITEM_LIST_FORM_DATA_SUCCESS","LOAD_ITEM_LIST_FORM_DATA_ERROR","UPDATE_USER_DETAILS_SUCCESSFULLY","SIGN_OUT_USER_SUCCESSFULLY","RESET_PASSWORD_SUCCESSFULLY","UPGRADE_TO_TICKETING_ACCOUNT_SUCCESSFULLY","PASSWORD_RESET_REQUIRED","MUST_CONFIRM_EMAIL_MESSAGE","MISSING_USER","beginApiCall","types","apiCallError","loadSSORegisterFormDataSuccess","loadSSORegisterFormDataError","registerUserError","userRegistrationMessages","resendEmailVerificationError","resendEmailVerificationMessages","resetRegisterFormState","verifyIfUserEmailExistsError","verifyIfUserEmailExistsErrorMessages","loadSSODefaultRegisterFormData","loadDefaultRegisterFormDataUrl","loadSSOOneClubRegisterFormData","formDataUrl","registerFormApi","loadSSOTicketingRegisterFormData","loadTicketingRegisterFormDataUrl","loadSSORaMembersRegisterFormData","loadRaMembersRegisterFormDataUrl","resendEmailVerification","callBackUrl","actionSuccessText","userEmailData","userEmail","website","dataFormatHelper","apiResponseMessages","registerNewUser","OneClubAdvantage","currentWebsite","toISOString","championships","getFormattedOneClubUserRegistrationData","ssoFormTypes","TicketingRegister","getFormattedTicketingRegistrationData","getFormattedRaMembersRegistrationData","DefaultRegister","getFormattedDefaultUserRegistrationData","registerUserSuccess","verifyIfEmailAddressExists","verifyIfUserEmailExistsSuccess","validateDate","userSetDate","userSetValues","yearAsNumber","parseUserSetDate","createDate","getTodayAsDate","isUserOfAge","validateBooleanValue","formFieldValidators","form_field_validators_defineProperty","_formFieldValidators","passwordText","defaultValuePropertyName","eventTarget","form_state_helper_defineProperty","handleFieldChangeWithValidation","fieldData","_objectSpread5","valueToUpdate","form_state_helper_objectSpread","fieldValidator","handleOldPasswordFieldChange","_objectSpread7","handleConfirmPasswordFieldChange","_objectSpread8","validationResult","_objectSpread10","mastercardError","_objectSpread12","stateField","_objectSpread14","countryCode","handleAddressDataChange","retrievedUserAddress","countyField","_objectSpread15","retrievedCountry","retrievedCounty","retrievedState","availableCounty","availableState","selectedCounty","selectedState","handleFormValidation","formDataKeys","formValues","validateField","validator","fieldValue","selectedCountryCode","validateSelectedCounty","validateSelectedState","mastercardValidationError","FormValidator","updateFormFields","updatedState","isFormField","offersDetailsDefaultValue","updateAvailableCounties","receivedCountry","updateAvailableStates","updateActiveMemberships","updateFormData","updateSavingState","updateProcessingState","updateAddressesFormState","addressForUpdate","toggleKey","handleSubmit","getFormReferences","scrollToInvalidField","scrollToReference","scrollToField","captcha","scrollIntoView","behavior","HeaderLinkDisplay","headerMessage","headerLink","headerLinkText","SSOFormHeader","linkCallBackUrl","secondLinkCallBackUrl","headerSubtitle","headerSecondMessage","headerSecondLinkText","messageOnNewRow","displaySecondMessageAndLink","header_link_display","SSOFormFooter","footerButtonText","footerLinkText","useYellowButton","_ref$isSubmit","isSubmit","buttonClass","utility_GTMUserActions","eventLabel","modalConstants","dataModal","MODAL_BEM_CLASS_WIDE","WIDE","MODAL_BEM_CLASS_DESKTOP_WIDE","MODAL_BEM_CLASS_MOBILE_FIXED","MODAL_BEM_CLASS_CLOSE_OUTSIDE","CLOSE_OUTSIDE","MODAL_BEM_CLASS_TITLE","TITLE","MODAL_BEM_CLASS_AUTO","AUTO","MODAL_BEM_CLASS_SPLIT","SPLIT","toggleBemClassForWrapperModal","addClass","wrapperModal","isHtmlElement","getParent","getWrapperModalElement","bemClass","getModalContentClassListForSSOForm","baseClassList","getFormDataForSSOForm","desktopImageSrc","getFormContainerWideLeftClassList","mobileImageSrc","toggleBemClassesForSSOFormModal","_getBemClassesToToggl","getBemClassesToToggle","addBemList","removeBemList","_getInitialBemClasses","getInitialBemClassesToToggle","mergeBemList","getRemoveBemClasses","OneClubRegister","UpgradeToOneClubAccountFromDefault","UpgradeToOneClubAccountFromTicketing","UpgradeToTicketingAccount","SignIn","BallotSignInForm","BallotLiteRegister","BallotFullRegister","BallotSummaryForm","initialBemList","bemListToMerge","finalBemList","signInFormData","formDataObject","OneClubRegisterForm","OneClubRegisterForm_classCallCheck","OneClubRegisterForm_getPrototypeOf","OneClubRegisterForm_objectSpread","isModalStylingUpdated","formMessageRef","formScrollHelpers","displayOneClubRegisterForm","OneClubRegisterForm_assertThisInitialized","displayForm","loadFormData","handleValidationResult","submitRegisterData","finalizeSubmitData","handleUserRegisterSuccess","resetForm","ssoFormType","getFormDataUrl","loadSSORegisterFormData","isRegisterSuccessful","previousRegisterFormData","formStateHelpers","onUserRegisterSuccess","_this$props$registerF","requestEmailVerificationCallbackUrl","requestEmailVerificationActionSuccessText","bannerSuccessRegistration","registerFormType","successText","emailVerificationCallbackUrl","emailVerificationActionSuccessText","reCaptchaToken","captchaRef","grecaptcha","callBackUrlPost","GTMUserActions","trackJoinTheOneClubAction","onSignIn","onForgotPassword","formHeader","utility_SSOFormHeader","utility_FormMessage","utility_SSOFormFooter","copyOfFormData","deepCopyObject","stateFieldDefaultValue","formFieldDisplayHelpers","_this$props5","apiStatus","apiCallsInProgress","registerForm","registerFormActions","UserRegisterSuccessForm","onBallotSignIn","isBallotRegister","isResendEmailVerificationSuccessful","BallotRegisterForm","BallotRegisterForm_classCallCheck","BallotRegisterForm_getPrototypeOf","BallotRegisterForm_objectSpread","displayBallotRegisterForm","BallotRegisterForm_assertThisInitialized","getHeaderLink","isUserEmailAlreadyUsed","updatedErrors","emailValidation","emailHeaderLink","signInMessage","previousCheckedEmail","emailValue","emailValidationEndpoint","displayForgotPasswordLink","emptyForm","UNAUTHORIZED_STATUS_CODE","TOO_MANY_REQUESTS_STATUS_CODE","getServerErrorMessages","statusCode","isString","isTextJSON","parsedResponse","allErrors","loadSSOUpgradeToOneClubFormDataError","upgradeToTicketingAccountSuccess","accountUpgradeMessages","upgradeToTicketingAccountError","updateOneClubMembershipError","oneClubMembershipUpdateMessages","updatePrivacyPolicyAndTermsAndConditionsError","privacyPolicyAndTermsUpdateMessages","resetUpgradeAccountFormState","loadSSOUpgradeToOneClubFormData","userAccountApi","ssoUpgradeToOneClubFormData","serverErrorMessages","messageHelper","uniqueMemberships","userDetailsFormType","getUpgradeToOneClubFormType","upgradeBallotSummaryAccount","copyOfAccountData","preferenceCentre","getDateAsISOString","upgradeRaMembersSummaryAccount","reload","joinOneClub","agreePrivacyPolicyAndTermsAndCoditions","agreePrivaciPolicy","agreeTermsAndConditions","resetRetrievedUserAddress","NO_CURRENT_USER_MESSAGE","loadHomePageTicketsDataError","loadHomePageTicketsDataErrorMessages","loadUserDataError","isUserNotSignedIn","loadOrderHistoryError","loadOrderHistoryErrorMessages","loadOrderHistoryPagesError","loadOrderHistoryPagesErrorMessages","loadOrderDetailsError","loadOrderDetailsErrorMessages","loadUserTicketsError","loadUserTicketsErrorMessages","downloadPdfFileSuccess","downloadPdfFileError","downloadPdfFileErrorMessages","updateUserDetailsSuccess","updateUserDetailsMessages","resumePaymentByFileNumberError","errorMessages","updateUserDetailsError","removeUserAccountError","updateUserAddressesError","updateUserAddressesMessages","resetAddressesFormState","displayUserAddressesErrorMessage","resetUserDetailsFormState","changePasswordMessages","changePasswordError","saveUserToAddressBookErrorMessages","getHomePageTicketsData","secuTixErrorMessage","domainConstants","womensOpen","homePageTicketsData","ticketsData","actionItems","actionItem","theOpen","orderTypeIndex","lastOrder","fileStateIndex","formattedFileAmount","loadHomePageTicketsDataSuccess","resetHomePageTicketsData","getUserAccountData","isAccountPageRefresh","loadUserDataSuccess","getOrderHistory","pageNumber","orders","formattedLastUpdate","lastUpdateDate","loadOrderHistorySuccess","getOrderHistoryPages","orderHistoryPages","loadOrderHistoryPagesSuccess","getOrderDetails","orderDetails","orderDetailsData","formattedTotalAmountPaid","formattedAmountInvoiced","formattedLastPaymentDate","lastPaymentDate","installment","formattedDueDate","formattedAmountDue","formattedAmountPaid","currentHistory","formattedConfirmed","formattedOpen","formattedTotalAmount","fileContentItems","fileContentItem","formattedUnitPrice","formattedSubTotal","subtotal","getUserTickets","userTicketsData","loadUserTicketsSuccess","eventTickets","downloadTicketPdf","ticketId","ticketForPrint","firstNameValue","lastNameValue","downloadPdfDocumentById","updateUserAddresses","updateUserDetails","emailChangedConflictMessage","updatedUserEmailChanged","joinTheOneClub","updateMainAddressToJoinOneClub","oneClubIndex","updateUserEmailNotificationSettings","_userRegistrationData2","getChannelInterests","getOptInBasedOnChannels","getOptInPartnersBasedOnChannels","removeAccount","changeUserPassword","passwordDetails","displayVerifyUserEmail","handleRedirectToResaleTickets","resaleTicketsUrl","secutixResaleUrl","secutixPointOfSaleId","secutixVirtualOperator","requestUrl","resumePaymentByFileNumber","urls","request","resumePaymentCallbackUrl","secutixAuthUrl","promises","resumePaymentPromise","authPromise","responseValues","orderId","orderToken","saveUserToAddressBook","formattedRequestModel","dotDigitalAddressBookData","addressBookData","UserDetails","AddressBookID","getSaveUserToAddressBookRequestModel","userAttributes","dotDigitalAttributes","attribute","Key","getFormattedDotdigitalUserAttribute","getFormattedDotdigitalUserAttributeList","getUserDetailsForSaveToAddressBookRequest","saveUserToDotDigitalCallbackUrl","BallotSummaryDetailsFormData","_formData$formConstan","userCountryCodeMobilePhonePrefix","foundAddress","ballot_summary_form_data_defineProperty","getBallotSummaryUserDetailsFieldsWithDefaultValues","_objectSpread2","BallotSummaryForm_classCallCheck","BallotSummaryForm_getPrototypeOf","upgradeFormHelper","BallotSummaryForm_objectSpread","BallotSummaryForm_defineProperty","displayBallotSummaryForm","BallotSummaryForm_assertThisInitialized","handleUserUpdateBallotSummarySuccess","submitBallotSummaryData","userProfileCallbackUrl","isUpgradeSuccessful","isUserAddressRetrieveSuccessful","isUserAccountDataLoadedSuccessful","userDataLoaded","updateUserAccountData","nextUserAccountData","userDetailsFormData","alreadyMastercardMemberText","handleBallotSummarySuccess","handleBallotPortalRedirect","callBackUrlPut","purchaseAttemptMessages","_this$props6","upgradeAccountForm","userAddressSearchData","retrieveAddressMessages","userAccount","upgradeAccountActions","userAddressActions","userAccountActions","loadSSOItemListFormDataError","loadSSOItemListFormData","formId","loadSSOItemListFormDataUrl","itemListFormApi","itemListFormData","SSOItemListForm","SSOItemListForm_classCallCheck","SSOItemListForm_getPrototypeOf","SSOItemListForm_objectSpread","SSOItemListForm_assertThisInitialized","buildFormRefs","displayItemListForm","handleModalClose","isFormLoadSuccessful","itemListErrorMessages","loadFields","hideModalCloseButton","oldItemList","newItemList","parametersDidUpdate","fieldCounter","keyValuedFields","getKeyValuedTextAndImageFields","hideCloseButton","closeButton","hasFormFields","isFromBallot","reloadPageWithoutQueryParams","itemListForm","itemListFormActions","BallotSignInForm_classCallCheck","BallotSignInForm_getPrototypeOf","BallotSignInForm_objectSpread","BallotSignInForm_assertThisInitialized","handleOauthSignUp","preventFormSubmit","handleOauthSignIn","sessionStorage","ballotSignInStorageItem","hrefAttribute","isBallotFlow","BallotSignInForm_extends","componentToRenderUrl","getComponentToRenderAfterSignIn","nextFormTypeAfterSignIn","getPageUrlWithoutQueryParams","oAuthRegisterRoute","signUp","nextFormTypeToDisplay","BallotSignInSuccessForm","ballotSignInSuccessFormDataUrl","ballotSummaryFormDataUrl","headingText","getHeadingText","getButton","signInButtonText","getFooterLink","forgottenPasswordLinkText","registerHeadingText","registerButtonText","submitAction","buttonText","getButtonContent","onRegister","OneClubMemberMessage","messageParagraphs","oneClubMessage","MultiLineMessage","NonOneClubMemberMessage","BallotSignInSuccessForm_slicedToArray","hideSaveButton","setHideSaveButton","_useState8","setShowSuccessMessage","nonOneClubMessage","nonOneClubSuccessfulMessage","successMessageParagraphs","joinButtonMessage","setIsOneClubMember","setDisplayForm","loadSSOForgotPasswordFormDataError","handleUserForgotPasswordError","forgotPasswordMessages","resetForgotPasswordFormState","loadSSOForgotPasswordFormData","loadForgotPasswordFormDataUrl","forgotPasswordFormData","handleUserForgotPassword","userForgotPasswordData","forgotPasswordFormApi","ForgotPasswordForm","ForgotPasswordForm_classCallCheck","ForgotPasswordForm_getPrototypeOf","ForgotPasswordForm_assertThisInitialized","displayForgotPasswordForm","submitForgotPasswordData","loadForgotPasswordFormData","isForgotPasswordSuccessful","forgotPasswordForm","forgotPasswordFormActions","loadSSOResetPasswordFormDataError","handleResetPasswordError","resetPasswordMessages","resetResetPasswordFormState","loadSSOResetPasswordFormData","loadResetPasswordFormDataUrl","resetPasswordFormData","handleResetPassword","userResetPasswordData","resetPasswordFormApi","NEW_PASSWORD_REQUIRED","PASSWORD_RESET_REQUIRED_EXCEPTION","USER_LAMBDA_VALIDATION_EXCEPTION","USER_NOT_FOUND_EXCEPTION","loadSSOSignInFormDataSuccess","loadSSOSignInFormDataError","loadNewPasswordRequiredFormDataError","loadPasswordRequiredFormDataMessages","signInUserSuccess","signInProperties","signInUserError","signInMessages","lastLogInDataUpdateError","newPasswordSavedError","newPasswordSavedMessages","resetSignInFormState","loadSSOSignInFormData","loadRaMembersSignInFormData","loadRaMembersSignInFormDataUrl","loadSSOSignInSuccessFormData","signInSuccessFromDataUrl","signInFormDataSuccess","loadNewPasswordRequiredFormData","loadNewPasswordRequiredFormDataUrl","newPasswordRequiredFormData","handleNewPasswordRequired","cognitoUser","finalizeNewPasswordChange","lastLogInProperties","isUserLastLogInDataUpdated","signInUser","userSignInData","cognitoChallengeNames","finalizeUserSignIn","signOutMessages","ResetPasswordForm","ResetPasswordForm_classCallCheck","ResetPasswordForm_getPrototypeOf","displayResetPasswordForm","ResetPasswordForm_assertThisInitialized","loadResetPasswordForm","submitResetPasswordData","getFormHeaderLabel","handleSignInSuccessful","isResetPasswordSuccessful","getParameterByName","_userSignInData","ResetPasswordForm_defineProperty","formText","resetPasswordForm","signInForm","resetPasswordFormActions","signInFormActions","ChangePasswordFooter","ChangePasswordForm","ChangePasswordForm_classCallCheck","ChangePasswordForm_getPrototypeOf","displayChangePasswordForm","ChangePasswordForm_assertThisInitialized","submitPasswordData","isUserPasswordChangedSuccessful","change_password_ChangePasswordFooter","formTitle","loadSSOVerifyEmailFormDataError","handleUserVerifyEmailError","verifyEmailMessages","resetVerifyEmailFormState","loadSSOVerifyEmailFormData","loadVerifyEmailFormDataUrl","verifyEmailFormData","handleUserVerifyEmail","verifyEmailData","verifyCurrentUserAttributeSubmit","emailAttributeName","VerifyEmailForm","VerifyEmailForm_classCallCheck","VerifyEmailForm_getPrototypeOf","VerifyEmailForm_assertThisInitialized","displayVerifyEmailForm","loadVerifyEmailFormData","isVerifyEmailSuccessful","submitVerifyEmailData","verifyEmailForm","verifyEmailFormActions","signInActions","UserDetailsForm","UserDetailsForm_classCallCheck","UserDetailsForm_getPrototypeOf","UserDetailsForm_objectSpread","isWomensOpen","displayUserDetailsForm","UserDetailsForm_assertThisInitialized","handleRemoveAccountClick","handleUserDetailsUpdateSuccess","handleUserDetailsEmailUpdateSuccess","submitUserDetailsData","handleSSOUpgradeToMemberPlusRedirect","handleSSOUpdateTicketingAccountRedirect","handleSSOUpdateAccountRedirect","isUserDetailsUpdatedSuccessful","isUserAccountRemovedSuccessful","refreshAccountPage","updateAccountData","IdentityBrokerConfig","upgradeToTicketingRoute","upgradeToOneClubAdvantageRoute","updateAccountRoute","formattedActionSuccessText","removeAccountCallbackUrl","verify_email_VerifyEmailForm","_objectSpread6","confirmEmail","removeAccountInputText","removeAccountInputWarning","removeAccountModalWarning","removeAccountModalWarningSplit","data-prefix","LastOrder","fileStateValues","orderTypeValues","onViewLastOrderSummaryClick","hasOrders","lastUpdateText","Upcoming","upcomingTicket","showParkingButton","showParkingButtonText","parkingButtonUrl","onViewTicketsClick","detailsText","eventName","eventLocation","FileActionsTable","onViewFileSummaryClick","showExpiryDate","isLast","expiryDateText","handleViewFileSummaryClick","withLoadingInterval","WithLoadingInterval","_Component","withLoadingInterval_classCallCheck","withLoadingInterval_getPrototypeOf","withLoadingInterval_defineProperty","withLoadingInterval_assertThisInitialized","elapsedTime","withLoadingInterval_objectSpread","withLoadingInterval_inherits","startInterval","stopInterval","withLoadingInterval_extends","displayName","AccountHomePage","AccountHomePage_classCallCheck","AccountHomePage_getPrototypeOf","loadHomePageTicketsData","AccountHomePage_assertThisInitialized","getHomePageTicketsDataCallbackUrl","loadingErrorMessage","elapsedTimeLimit","isTicketsDataLoadedSuccessful","actionsToPerformValue","formSubTitle","actionOrderType","formSubtitleSplit","shouldDisplayHomePageTicketsData","checkElapsedTimeMessage","elapsedTimeError","account_home_page_FileActionsTable","account_home_page_Upcoming","account_home_page_LastOrder","SSOCloseButton","onCloseButtonClick","AddAddressForm","AddAddressForm_classCallCheck","AddAddressForm_getPrototypeOf","displayAddAddressForm","AddAddressForm_assertThisInitialized","submitAddressData","buildNewAddress","onAddAddressClick","newAddress","onCloseAddAddressFormClick","utility_SSOCloseButton","FormAddressDisplayField","FormAddressDisplayField_classCallCheck","FormAddressDisplayField_getPrototypeOf","mainValue","shippingAddressValue","billingAddressValue","handleEditAddress","FormAddressDisplayField_assertThisInitialized","handleRemoveAddress","handleUpdateAddress","updateAddressValues","displayCitySection","displayCountrySection","onEditAddressClick","onRemoveAddressClick","addressType","onUpdateAddressClick","updatedAddress","addressFlaggedForUpdate","stateName","UpdateAddressForm","UpdateAddressForm_classCallCheck","UpdateAddressForm_getPrototypeOf","UpdateAddressForm_assertThisInitialized","displayUpdateAddressForm","getAddressForUpdate","onCloseUpdateAddressFormClick","addressesFormConstants","addressDisplayForm","accountFormData","callbackFunctions","displayUserAddresses","addressAddForm","handleAddNewAddress","handleShowDisplayAddressForm","user_addresses_AddAddressForm","addressUpdateForm","getUpdateAddressFormData","user_addresses_UpdateAddressForm","handleShowAddAddressForm","noAddressFoundText","displayAddresses","handleShowUpdateAddressForm","addressesDisplayForm","user_addresses_FormAddressDisplayField","UserAddressesForm","UserAddressesForm_classCallCheck","UserAddressesForm_getPrototypeOf","submitAddressesData","UserAddressesForm_assertThisInitialized","displayAddressesForm","handleUpdateFinish","removeAddressConfirmation","addressToRemove","addAddress","getUpdatedAddresses","flaggedForUpdate","canUpdatedAddresses","canRemoveAddress","addressToRemoveIndex","cannotRemoveLastAddressMessage","cannotRemoveMainAddressMessage","cannotRemoveShippingAddressMessage","cannotRemoveBillingAddressMessage","addressFlaggedForUpdateIndex","updateUserAddressesSuccessText","userAddressesFormStateConstants","resetAddressesFormStateConstants","areUserAddressesUpdatedSuccessful","removeAddressInputText","removeAddressModalWarning","removeAddressModalWarningSplit","EmailNotificationSettingsForm","EmailNotificationSettingsForm_classCallCheck","EmailNotificationSettingsForm_getPrototypeOf","getSelectedFormData","EmailNotificationSettingsForm_objectSpread","displayEmailNotificationSettingsFrom","EmailNotificationSettingsForm_assertThisInitialized","submitUserData","_accountData$preferen","getSelectedValues","getSelectedValuesFromProperty","defaultChoices","selectedValues","updatedNotificationSuccessMessage","eventTarge","PushNotificationsForm","ResaleTicketsButton","onResaleClick","buttonColor","ResaleTicketsFAQ","questions","question","checkId","shouldDisplayResaleButton","buttonCriteria","ballotCriteria","showResaleButton","userMemberships","criteriaList","criterion","ResaleTickets","ResaleTickets_classCallCheck","ResaleTickets_getPrototypeOf","handleTicketsResaleBuy","ResaleTickets_assertThisInitialized","handleTicketsResaleSell","getOauthResaleRedirectUri","buyLink","renderedComponent","returnUri","useEncode","addQueryParam","sellLink","resaleTicketsTitle","resaleTicketsInformationOpen","sellButtonCriteria","buyButtonCriteria","resaleTicketsImageSource","resaleTicketsImageText","resaleTicketsFAQTitle","resaleTicketsFAQs","resaleTicketsIntro","showBuyLink","showSellLink","texts","introText","resale_tickets_ResaleTicketsButton","sizes","srcSet","resale_tickets_ResaleTicketsFAQ","Order","orderItem","onViewFileDetailsClick","handleViewFileDetailsClick","OrdersPagination","numberOfPages","activePageNumber","onPageNumberChange","shouldDisplayPaginator","goToPage","pageNumberButtons","getPageNumberButtons","updatedPagination","displayPagination","OrdersList","_ref$formData","handleDisplayCancelledFilesChange","handlePageNumberChange","orderHistoryItem","order_history_display_Order","displayOrderList","order_history_display_OrdersPagination","FileSummary","onPrintSummaryButtonClick","onCancelButtonClick","onPayReservationClick","showCancelButton","SecutixReservationStatus","SecutixReservationOrderType","SecutixReservationRunningStatus","FileContentSummary","fileContents","details","Type","InstallmentTable","paymentUrl","displayInstallmentRow","PaymentSummary","isPaymentSummaryEmpty","foundCountry","file_summary_display_InstallmentTable","ChangeHistorySection","historyContentsLength","isHistoryContentsEmpty","historyContents","onPrintDocumentInvoiceButtonClick","historyContent","orderHistoryFormConstants","orderHistoryDisplayForm","order_history_display_OrdersList","fileDetailsDisplayForm","orderHistoryForDisplay","handlePrintSummaryButton","handlePrintDocumentInvoiceButtonClick","handleCloseFormButton","handlePayReservationClick","file_summary_display_FileSummary","file_summary_display_FileContentSummary","file_summary_display_PaymentSummary","file_summary_display_ChangeHistorySection","UserOrderHistory","UserOrderHistory_classCallCheck","UserOrderHistory_getPrototypeOf","showPopup","loadOrderHistoryData","UserOrderHistory_assertThisInitialized","reloadOrderHistoryData","displayOrderHistoryForm","loadFileDetails","handleCloseFileDetailsDisplayForm","toggleModalClose","handlePayReservation","areOrderDetailsLoadedSuccessful","loadOrders","getOrderHistoryPagesCallbackUrl","UserOrderHistory_defineProperty","getOrderHistoryCallbackUrl","getOrderDetailsCallbackUrl","downloadFileSummaryPdfCallbackUrl","showDialogBox","documentId","_this$props7","downloadDocumentPdfCallbackUrl","_this$props8","orderHistoryDisplayData","_this$props9","logoSrc","masterCardDialogBox","areOrderHistoryPagesLoadedSuccessful","isOrderHistoryLoadedSuccessful","UserDetailsFormData","ssoUserDetailsFields","updateUserDetailsCallbackUrl","user_details_form_data_defineProperty","getUserDetailsFieldsWithDefaultValues","paymentStatus","WAITING","IN_PROGRESS","AUTHORIZED","PAID","CANCELLED_BY_USER","FAILED","WAITING_MANUAL_VALIDATION","FAILED_REJECTED","getFileStates","runningFileStateText","suspendedFileStateText","inOptionFileStateText","inReservationFileStateText","optionReservFileStateText","confirmedFileStateText","soldFileStateText","notSoldFileStateText","partSoldFileStateText","canceledFileStateText","abandonedFileStateText","techErrorFileStateText","fileStates","getPaymentStatuses","waitingPaymentStatusText","inProgressPaymentStatusText","authorizedPaymentStatusText","paidPaymentStatusText","cancelledByUserPaymentStatusText","failedPaymentStatusText","abandonedPaymentStatusText","waitingManualValidationPaymentStatusText","failedRejectedPaymentStatusText","paymentStatuses","getOrderTypes","saleOrderTypeText","refundClientOrderTypeText","refundOrganizationOrderTypeText","exchangeOrganizationOrderTypeText","exchangeClientOrderTypeText","reservationOrderTypeText","renewalOrderTypeText","optionOrderTypeText","reservationFreeingOrderTypeText","optionFreeingOrderTypeText","stTransferOrderTypeText","orderTypes","AccountHomePageFormData","saleActionOrderTypeText","refundClientActionOrderTypeText","refundOrganizationActionOrderTypeText","exchangeOrganizationActionOrderTypeText","exchangeClientActionOrderTypeText","reservationActionOrderTypeText","renewalActionOrderTypeText","optionActionOrderTypeText","reservationFreeingActionOrderTypeText","optionFreeingActionOrderTypeText","stTransferActionOrderTypeText","actionOrderTypes","ssoAccountHomePageFields","ssoOrderHistoryFields","UserAddressesDisplayFormData","ssoUserAddressesFields","addAddressCallBackUrl","addAddressActionSuccessText","updateAddressCallBackUrl","updateAddressActionSuccessText","TicketOwnerDialog","TicketOwnerDialog_classCallCheck","TicketOwnerDialog_getPrototypeOf","displayTicketsDialogForm","TicketOwnerDialog_assertThisInitialized","handleSaveAndContinue","onSaveAndContinueClick","handleCloseTicketDialog","printTicketDialogText","TicketsDisplay","TicketsDisplay_classCallCheck","TicketsDisplay_getPrototypeOf","getTicketStatusTexts","TicketsDisplay_assertThisInitialized","handlePrintTicket","ticketIsPrintableText","ticketIsNotPrintableText","ticketIsAlreadyPrintedText","isPrintable","isAlreadyPrinted","TicketsDisplay_objectSpread","tickets","ticketType","fileId","user_tickets_TicketOwnerDialog","TicketGroups","TicketGroups_classCallCheck","TicketGroups_getPrototypeOf","ticketGroups","ticketGroup","scrollToRef","ticketEvent","user_tickets_TicketsDisplay","TicketModalBody","printTicketModalText","UserTickets","UserTickets_classCallCheck","UserTickets_getPrototypeOf","loadUserTicketsData","UserTickets_assertThisInitialized","reloadUserTicketsData","displayUserTicketsForm","displayAvailableTicketsData","displayConfirmationModal","handleHideOldTicketsChange","handlePrintTicketClick","isPdfFileDownloadedSuccessful","isUserTicketsDataLoadedSuccessful","noTicketsFoundText","shouldDisplayAvailableTickets","shouldDisplayNoTicketsFound","userTicket","user_tickets_TicketGroups","displayLoadingError","printTicketInputText","user_tickets_TicketModalBody","_this$props$formData","UserTickets_objectSpread","downloadTicketPdfCallbackUrl","getTicketsCallbackUrl","ChangePasswordFormData","ssoChangePasswordFields","TheOneClubIntro","imageText","TheOneClubMotivation","reasons","reason","htmlText","TheOneClubFAQ","LeaveOneClubModalBody","leaveTheOneClubDialogBoxTitle","leaveTheOneClubDialogBoxMessage","leaveOneClubDialogBoxCheckText","onLeaveOneClubClick","leaveTheOneClubDialogBoxMessageSplit","TheOneClub","TheOneClub_classCallCheck","TheOneClub_getPrototypeOf","TheOneClub_objectSpread","shouldLeaveOneClub","displayTheOneClubForm","TheOneClub_assertThisInitialized","handleJoinNowClick","scrollToForm","handleApproveLeaveOneClub","handleLeaveOneClubCheck","hasOneClubAccount","userAddedToAddressBookSuccessful","joinTheOneClubActionSuccessText","leaveTheOneClubActionSuccessText","updateDetailsActionSuccessText","_objectSpread16","_this$state3","leaveTheOneClubDialogBoxAgreeButton","the_one_club_LeaveOneClubModalBody","_this$state4","joinTheOneClubInputLabelText","theOneClubImageSource","theOneClubImageText","theOneClubMotivationTitle","theOneClubMotivationImageSource","theOneClubReasons","theOneClubFAQTitle","theOneClubFAQs","_this$state5","the_one_club_TheOneClubIntro","the_one_club_TheOneClubMotivation","the_one_club_TheOneClubFAQ","OrderHistoryDisplayFormData","mastercardDialogBox","mastercardDialogBoxBanner","UserTicketsDisplayFormData","ssoUserTicketsFields","TheOneClubFormData","ssoTheOneClubFields","theOneClubVideoText","theOneClubVideoWebmSource","theOneClubThumbnailSource","theOneClubVideoSource","getFieldsWithDefaultValues","TicketsResaleFormData","displayResaleCriteria","ssoAccountResaleTicketsFields","EmailNotificationSettingsFormData","updateNotificationSettingsDataCallbackUrl","channelsSection","userAccountContentConstants","accountHomePage","userDetailsForm","changePasswordForm","userAddressesForm","emailNotificationSettings","pushNotifications","userOrderHistory","userTickets","theOneClub","resaleTickets","userAccountMenuConstants","userAccountFormConstants","handleViewTicketsClick","account_home_page_AccountHomePage","user_details_UserDetailsForm","change_password_ChangePasswordForm","_accountFormData$ssoU","getCountry","selectedStateName","user_addresses_UserAddressesForm","the_one_club_TheOneClub","resale_tickets_ResaleTickets","email_notification_settings_EmailNotificationSettingsForm","user_order_history_UserOrderHistory","user_tickets_UserTickets","AccountMenuLinks","accountMenu","displayResaleTicketsMenuItem","componentToRender","toggleDisplayMenu","handleChangeAccountDetailsContent","menuItem","theOneClubChildItem","resaleTicketsChildItem","childItem","accountDetailsLink","newUrl","onMouseDown","displayMenuChildren","shouldDisplayMenu","AccountMenu","fullName","handleHashChange","user_account_AccountMenuLinks","UserAccountPage","UserAccountPage_classCallCheck","UserAccountPage_getPrototypeOf","modalTriggerPromoPanelRef","modalTrigger","UserAccountPage_assertThisInitialized","updateComponentToRenderDisplay","updateComponentToRender","displayMyAccountPage","displayAccountDetailsContent","isRefMounted","refMounted","removeParameterByName","titleLabel","getTitleLabel","getInitials","customEvent","UserAccountPage_objectSpread","nexComponentToRender","callbackFunction","shouldRefreshComponent","getUserDataCallbackUrl","modalTriggerPromoPanel","serverErrorMessage","dataLoadedSuccessful","USER_STATE_VALID","data-dc-modal-trigger-promo-panel-options","user_account_AccountMenu","copyOfAccountFormData","copyOfUserAccountData","DefaultRegisterForm","DefaultRegisterForm_classCallCheck","DefaultRegisterForm_getPrototypeOf","DefaultRegisterForm_objectSpread","loadRegisterFormData","DefaultRegisterForm_assertThisInitialized","displayDefaultRegisterForm","updateState","TicketingRegisterForm","TicketingRegisterForm_classCallCheck","TicketingRegisterForm_getPrototypeOf","TicketingRegisterForm_objectSpread","TicketingRegisterForm_assertThisInitialized","displayTicketingRegisterForm","finishFormSubmit","trackTicketingAccountAction","trackTicketingAccountActionClick","copyOfRegisterFormData","SignInForm","SignInForm_classCallCheck","SignInForm_getPrototypeOf","SignInForm_objectSpread","gtmTrigger","displaySignInForm","SignInForm_assertThisInitialized","submitSignInData","handleSignInSuccess","updateLastLogInUserDetails","loadSignInFormData","getNextComponentToRender","onNewPasswordRequired","userLastLogInDataErrorMessages","signInFormHelpers","_signInFormHelpers$ge","cognitUser","onSignInSuccess","signInSuccessFormData","upgradeToOneClubFormData","redirectToAddress","REDIRECT_TO","TOCH_USER_EMAIL","SignInSuccess","upgradeAccountFormActions","purchaseAttemptError","retryPurchase","UpgradeToTicketingAccountForm","UpgradeToTicketingAccountForm_classCallCheck","UpgradeToTicketingAccountForm_getPrototypeOf","UpgradeToTicketingAccountForm_objectSpread","UpgradeToTicketingAccountForm_defineProperty","displayUpgradeToTicketingAccountForm","UpgradeToTicketingAccountForm_assertThisInitialized","handleAccountUpgradeSuccess","isFromResale","isPaymentAttemptSuccessful","hostname","basketActions","UpgradeToOneClubAccountForm","UpgradeToOneClubAccountForm_classCallCheck","UpgradeToOneClubAccountForm_getPrototypeOf","UpgradeToOneClubAccountForm_objectSpread","UpgradeToOneClubAccountForm_defineProperty","displayUpgradeToOneClubAccountForm","UpgradeToOneClubAccountForm_assertThisInitialized","updateTOCHUserMemberships","oneClubHubData","IsOneClubHubUpgrade","ReturnUrl","NewPasswordRequiredForm","NewPasswordRequiredForm_classCallCheck","NewPasswordRequiredForm_getPrototypeOf","NewPasswordRequiredForm_assertThisInitialized","displayNewPasswordRequiredForm","submitNewPasswordData","loadNewPasswordRequiredForm","isNewPasswordSavedSuccessful","onResetSuccess","challengeParam","isNewPasswordRequiredFormDataLoadedSuccessful","RaMembersRegisterForm","RaMembersRegisterForm_classCallCheck","RaMembersRegisterForm_getPrototypeOf","RaMembersRegisterForm_objectSpread","RaMembersRegisterForm_assertThisInitialized","displayRaMembersRegisterForm","isRAMembersRegister","RaMembersSignInForm","RaMembersSignInForm_classCallCheck","RaMembersSignInForm_getPrototypeOf","RaMembersSignInForm_assertThisInitialized","RaMembersSummaryDetailsFormData","ra_members_summary_form_data_defineProperty","getRaMembersSummaryUserDetailsFieldsWithDefaultValues","RaMembersSummaryForm","RaMembersSummaryForm_classCallCheck","RaMembersSummaryForm_getPrototypeOf","RaMembersSummaryForm_objectSpread","RaMembersSummaryForm_defineProperty","displayRaMembersSummaryForm","RaMembersSummaryForm_assertThisInitialized","handleUserUpdateRaMembersSummarySuccess","submitRaMembersSummaryData","handleRaMemberIdChange","toggleModalCloseButton","displayButton","PrivacyPolicyMessage","_useState10","SignInSuccessForm_slicedToArray","_useState12","privacyAndPolicy","privacyPolicyMessage","SignInSuccessForm_MultiLineMessage","privacyPolicyConsentText","agreeToPrivacyPolicyAndTermsAndConditions","updateButtonText","PrivacyPolicyAndTermsAndConditionsMessage","_useState14","_useState16","privacyPolicyAndTermsAndConditions","privacyAndTermsMessage","agreedPrivacyPolicy","setAgreePrivacyPolicy","agreedTermsAndConditions","setAgreeTermsAndConditions","ssoFormConstants","sso_form_constants_defineProperty","_ssoFormConstants","handleSignIn","handleForgotPassword","one_club_register_OneClubRegisterForm","default_register_DefaultRegisterForm","ticketing_register_TicketingRegisterForm","RaMembersRegister","handleRaMembersRegisterSuccess","handleRaMembersSignIn","ra_members_RaMembersRegisterForm","upgrade_to_ticketing_UpgradeToTicketingAccountForm","upgrade_to_one_club_UpgradeToOneClubAccountForm","handleRegister","handleSignInSucces","sign_in_SignInForm","ra_members_RaMembersSignInForm","sign_in_SignInSuccessForm","NewPasswordRequired","new_password_required_NewPasswordRequiredForm","ForgotPassword","forgot_password_ForgotPasswordForm","BallotForgotPassword","handleBallotSignIn","ResetPassword","reset_password_ResetPasswordForm","VerifyEmail","_ref15","OneClubRegisterSuccess","_ref16","user_register_success_form_UserRegisterSuccessForm","RaMembersRegisterSuccess","_ref17","UserAccount","_ref18","user_account_UserAccountPage","_ref19","ballot_BallotRegisterForm","_ref20","_ref21","_ref22","ballot_BallotSummaryForm","_ref23","item_list_SSOItemListForm","_ref24","ra_members_RaMembersSummaryForm","_ref25","handleCognitoHostedUISignIn","handleBallotForgotPassword","handleBallotRegister","ballot_BallotSignInForm","_ref26","ballot_BallotSignInSuccessForm","PreRegisterForm","_ref27","SSOForm","SSOForm_classCallCheck","SSOForm_getPrototypeOf","ssoContext","currentScenarioTitle","IsPopup","initialFormType","isFormDataDirty","modalOpen","displaySSOForm","SSOForm_assertThisInitialized","onModalOpen","getTransitionToForm","SSOForm_objectSpread","transitionToForm","nextFormTypeAfterRegister","_this$props$formData2","nextFormTypeAfterSubmit","nextFormAfterSubmit","nextFormType","isBallotForm","ballotRedirectUrl","_this$props$formData3","formForTransitionTo","_this$props$formData4","_this$props$formData5","isFromButtonEvent","onSignInLinkClickAction","shouldDisplayForm","Provider","reducers_initial_state","userAddress","isUserAddressSearchSuccessful","suggestedAddresses","searchAddressMessages","isSignOutSuccessful","apiErrorMessages","rootReducer","register_form_reducer_objectSpread","item_list_form_reducer_objectSpread","upgrade_account_reducer_objectSpread","isUpgradeToOneClubFormDataLoadedSuccessful","basket_reducer_objectSpread","user_address_reducer_objectSpread","searchAddressMessage","addressData","sign_in_form_reducer_objectSpread","forgot_password_form_reducer_objectSpread","reset_password_form_reducer_objectSpread","verify_email_form_reducer_objectSpread","user_account_reducer_objectSpread","api_status_reducer_objectSpread","apiErrorMessage","SSOFormComponent","sso_form_component_classCallCheck","sso_form_component_getPrototypeOf","thunk","components_SSOForm","section","StickyButtonTriggerComponent","sticky_button_trigger_component_classCallCheck","sticky_button_trigger_component_getPrototypeOf","sticky_button_trigger_component_defineProperty","sticky_button_trigger_component_assertThisInitialized","radio","showWindow","windowObjectReference","openInPopup","closed","innerHeight","SubNav","sub_nav_component_classCallCheck","sub_nav_component_getPrototypeOf","links","scroller","scrollOffset","SubNavComponent","SubPageNav","sub_page_nav_component_classCallCheck","sub_page_nav_component_getPrototypeOf","sub_page_nav_component_defineProperty","sub_page_nav_component_assertThisInitialized","venueHeroSticky","venueHeroStickyRef","setStyles","heroSticky","currentId","activeNavLinkNode","showContent","currentContentNode","elementCoordinateTop","createBrowserHistory","stickyfill","venueHeroInit","largeHeroInit","onPopstate","tabsInit","Stickyfill","indent","activeNavLink","contentNode","SublayoutComponent","sublayout_component_classCallCheck","sublayout_component_getPrototypeOf","sublayout_component_defineProperty","sublayout_component_assertThisInitialized","enableFullwidth","disableFullwidth","TabsComponent","tabs_component_classCallCheck","tabs_component_getPrototypeOf","tab","loadShotView","shotViewCreator","shotViewHolder","PopupLink","popup_link_classCallCheck","popup_link_getPrototypeOf","linkRef","data-dc-modal-trigger-href","ariaLabel","PopupLinkInfo","popup_link_PopupLink","oneOfType","arrayOf","ROUTE_DAYS","ROUTE_TICKETS","CheckboxPanel","additional","selectBtnLabel","selectBtnText","noSpacesTitle","replaceAll","soldOutLabel","cssClasses","data-sold-out-label","bracketsText","renderAdditional","renderButton","ProductGroupPanel","product_group_panel_classCallCheck","product_group_panel_getPrototypeOf","product_group_panel_assertThisInitialized","SELECT_ITEM","productTag","isSoldOut","getProductGroupTag","inlineTagStyle","isComplete","stateCssClass","rootCssModificator","productGroupTag","useBlueHighlight","isComlete","checkbox_panel_CheckboxPanel","summaryText","renderProductGroupTag","SelectDaysForm","select_days_form_classCallCheck","select_days_form_getPrototypeOf","formHeading","onSelectDay","select_days_form_assertThisInitialized","foundProductGroup","categoriesList","categorie","onSelectProductGroup","currentScenario","generateStandardSummary","generateHospitalitySummary","generateParkingSummary","adultTariff","youthTariff","juniorTariff","tarrifs","hospitalityTariff","parkingTariff","parking","priceLabel","renderProductGroups","productGroupsList","newProductGroup","select_days_form_extends","generateSummaryText","cProductGroup","product_group_panel_ProductGroupPanel","dictionary","selectDaysSubtitle","helpMeChooseLinkUrl","helpMeChooseLinkText","renderCategories","TicketBuilderContext","TicketBuilderAside","ticket_builder_aside_classCallCheck","ticket_builder_aside_getPrototypeOf","onContinue","ticket_builder_aside_assertThisInitialized","preparedProductGroups","getPreparedProductGroups","renderProduct","mergedWithTempGroups","ticket_builder_aside_objectSpread","actionCaption","fromRoute","basketValue","getBasketTotalValue","onToggleBasketMobile","tb","withTicketBuilderContext","Consumer","ticket_builder_context_extends","SelectDaysPage","select_days_page_classCallCheck","select_days_page_getPrototypeOf","onClickContinue","select_days_page_assertThisInitialized","hasPreselectedProductGroup","isNextStepAvailable","getNextRoute","nextRoute","standardTicketsTitle","continueBtnDisabledCC","select_days_form_SelectDaysForm","generateFormTitle","ticket_builder_aside","react_router_dom_es","isParkingStandaloneConfiguration","DaysLinks","BackLink","route","ButtonClear","SelectPanel","select_panel_classCallCheck","select_panel_getPrototypeOf","onSelectBtnClick","select_panel_assertThisInitialized","isDecreaseButtonDisabled","isIncreaseButtonDisabled","currentQuantity","newQuantity","quantityModifierProp","quantityModifier","maxQuantityOnHospitality","roundedQuantity","ecommerceEventState","handleEcommerceEvent","onApplyProductsQuantity","eventState","juniorTicketsText","juniorTicketsLinkUrl","juniorTicketsLinkText","swingBadgeTicketsText","swingBadgeGuestTicketsText","swingBadgeAdditionalGuestTicketsText","stateCCDecrease","stateCC","buttonsNodes","renderSelectButton","rootCssClass","renderSummary","renderSelectButtons","renderCopy","TicketsPanels","ticketsList","select_panel_SelectPanel","SelectTicketsFormStandard","select_tickets_standard_classCallCheck","select_tickets_standard_getPrototypeOf","days_links","selectTicketsSubtitle","ticketsInformationLinkUrl","ticketsInformationLinkText","toLocaleLowerCase","ticketExtraInformation","onClearSelection","selectStandardTicketsText","selectStandardTicketsLinkUrl","selectStandardTicketsLinkText","editDaysTitle","SelectTicketsFormHospitality","select_tickets_hospitality_classCallCheck","select_tickets_hospitality_getPrototypeOf","selectHospitalityTicketsText","selectHospitalityTicketsLinkUrl","selectHospitalityTicketsLinkText","ProductsHelper","selectedGroups","basketGroups","filterFunction","latestAddedTickets","getLatestAddedTickets","firstSelectedProductGroup","foundTicket","getTicketItemBasedOnQueryParam","productList","selectedGroup","CheckoutButton","onStartCheckout","checkoutBtnRef","SelectTicketsAside","select_tickets_aside_classCallCheck","select_tickets_aside_getPrototypeOf","select_tickets_aside_assertThisInitialized","triggerContinue","isReadyToPay","inlineStyle","pointerEvents","renderNextStepPanel","renderCheckoutPanel","renderPanel","SelectTicketsPage","isHospitality","isStandardWithExtras","paramsList","select_tickets_page_extends","hasSelectedTickets","hasParkingTickets","getProductsList","select_tickets_hospitality_SelectTicketsFormHospitality","onClearTicketsSelection","select_tickets_standard_SelectTicketsFormStandard","select_tickets_aside_SelectTicketsAside","TicketListProvider","select_tickets_page_SelectTicketsPage","ExtraPanel","extra_panel_classCallCheck","extra_panel_getPrototypeOf","wasSelected","onSelectExtraProduct","extraGroup","extraItem","getProductSummaryText","onProductGroupClick","unitText","SelectExtrasForm","select_extras_form_classCallCheck","select_extras_form_getPrototypeOf","select_extras_form_defineProperty","select_extras_form_assertThisInitialized","mainProductInBasket","mainProduct","currentProductType","setExtraProductQuantity","extrasById","extrasProduct","select_extras_form_objectSpread","extrasList","productKey","grandstandText","getDictionaryFromProps","parseDictionaryItem","parkingProductsList","currentProductGroupsIds","currentBasketProductGroups","ticketProductsList","getGroupedExtrasList","extra_panel_ExtraPanel","getParkingList","getTicketsList","addExtrasSubtitle","addExtrasTitle","extrasParkingText","privateTableTitle","privateTableText","privateTableLinkText","privateTableLinkUrl","_this$getDictionaryFr2","renderTicketsPanel","renderExtrasPanels","productsList","SelectExtrasAside","select_extras_aside_classCallCheck","select_extras_aside_getPrototypeOf","select_extras_aside_assertThisInitialized","SelectExtrasPage","select_extras_form_SelectExtrasForm","select_extras_aside_SelectExtrasAside","accordion_classCallCheck","accordion_getPrototypeOf","accordion","accordionRef","onAccordionStateChange","accordion_assertThisInitialized","AccordionComponent","data-dc-lazy","triggerOpenedText","triggerText","SelectParkingForm","select_parking_form_classCallCheck","select_parking_form_getPrototypeOf","prevRoute","parkingList","carParking","parkingProduct","filteredParkingList","accordion_Accordion","renderCarPanels","parkingStepTitle","parkingInformationLinkUrl","parkingInformationLinkText","renderCarPanel","ParkingText","renderAccordion","getPrevRoute","SelectParkingPage","select_parking_page_classCallCheck","select_parking_page_getPrototypeOf","focusCheckout","onSelectParkingQuantity","select_parking_page_assertThisInitialized","select_parking_page_extends","onClearParkingSelection","checkoutBtn","select_parking_form_SelectParkingForm","onConfirmationModal","checkoutRef","onRejectParkingClick","SelectParkingStandaloneForm","select_parking_standalone_form_classCallCheck","select_parking_standalone_form_getPrototypeOf","parkingProductsGroup","parkingListGroupProducts","groupParkingProducts","getGroupParkingProducts","firstParkingProduct","getFirstParkingProduct","accordeonParkingProducts","renderParkingProductsPanels","standaloneParkingStepTitle","standaloneParkingSubtitle","standaloneParkingInformationLinkUrl","standaloneParkingInformationLinkText","renderParkingProductPanel","standaloneParkingClearSelectionText","StandaloneParkingText","SelectParkingStandalonePage","select_parking_standalone_page_classCallCheck","select_parking_standalone_page_getPrototypeOf","select_parking_standalone_page_assertThisInitialized","select_parking_standalone_page_extends","getStandaloneProductsList","select_parking_standalone_form_SelectParkingStandaloneForm","TicketBuilder","ticket_builder_classCallCheck","ticket_builder_getPrototypeOf","isBasketExpanded","ticket_builder_assertThisInitialized","getCurrentProductType","getSelectedProductGroups","isBasketToggling","setHasPreselectedProductGroup","updateBasketDesign","tbContext","getCurrentScenarioTitle","productType","isProductGroupHasProductsInBasket","isProductGroupPreselected","currentScenarioProducts","getParamFromLocation","preselectedGroupId","getPreselectedProductGroupId","clearPreselectedProductGroupId","hasCurrentScenarioProducts","selProductGroup","productGroupIndex","findIndexByProp","resetProducts","productsParams","filteredProduct","newProduct","basketProductIndex","removeTypesList","getRemoveTypesList","select_days_page_SelectDaysPage","select_extras_page_SelectExtrasPage","select_parking_page_SelectParkingPage","select_parking_standalone_page_SelectParkingStandalonePage","TicketBuilderWithRouter","withRouter","TicketBuilderWithHashRouter","TicketBuilderComponent","ticket_builder_component_classCallCheck","ticket_builder_component_getPrototypeOf","categories","VIEW_ITEM_LIST","item_list_id","item_list_name","secutixProductsList","getBallotProductsList","secutixProductsGroups","ticket_builder","getCategoriesList","getCurrentScenario","newCategoriesList","ballotProductsList","stepsData","getStepsData","scenario","hasTickets","hasHospitality","hasExtras","hasParking","Deferred","deferred_classCallCheck","ModalWithResult","modal_with_result_classCallCheck","modal_with_result_getPrototypeOf","deferred","modal_with_result_get","cleanupPromise","CONTROL_BUTTON_HTML_PLAY","CONTROL_BUTTON_HTML_MUTE","VideoComponent","video_component_classCallCheck","video_component_getPrototypeOf","playBtn","modalContent","control","playControl","muteControl","onPlayClick","video_component_assertThisInitialized","onClickPlayControl","onClickMuteControl","canPlayType","EVENT_MODAL_CLOSE","_pause","_play","paused","ended","muted","_unmute","_mute","play","modalContainer","ViewOrderUrlComponent","view_order_url_component_classCallCheck","view_order_url_component_getPrototypeOf","fileName","viewOrderUrl","vodeNavEvents","TOGGLE_TO_SEE_ALL","vodNavModeTypes","VOD","VodNav","vod_nav_component_classCallCheck","vod_nav_component_getPrototypeOf","vod_nav_component_assertThisInitialized","toggleView","WeglotScript","weglotCdn","weglotSrcScript","weglotInitScript","apiKey","WeglotComponent","weglot_component_classCallCheck","weglot_component_getPrototypeOf","weglot_script","require","spriteNode","3","5","7","9","alias4","blockHelperMissing","ssoSignIn","handleOnSignInClick","ssoRegister","handleOnRegisterClick","handleForceSignIn","handleForceSignUp","forceSignInQueryParams","FORCE_SIGN_IN","forceSignUpQueryParams","FORCE_SIGN_UP","finally"],"mappings":"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","file":"app.5cb5fe59777ba8da451e.js","sourcesContent":["var Handlebars = require(\"D:\\\\a\\\\1\\\\s\\\\src\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return \"
\\r\\n \\\"\\\"\\r\\n
\\r\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return \"
\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = ((stack1 = (depth0 != null ? depth0.data : depth0)) != null ? stack1.customProperties : stack1)) != null ? stack1.image : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"
\\r\\n\";\n},\"useData\":true});","var Handlebars = require(\"D:\\\\a\\\\1\\\\s\\\\src\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return \" \\\"\\\"\\r\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression;\n\n return \"
\\r\\n
\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = ((stack1 = (depth0 != null ? depth0.data : depth0)) != null ? stack1.customProperties : stack1)) != null ? stack1.image : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"
\\r\\n
\\r\\n \"\n + alias2(alias1(((stack1 = (depth0 != null ? depth0.data : depth0)) != null ? stack1.label : stack1), depth0))\n + \"\\r\\n
\\r\\n
\\r\\n \"\n + alias2(alias1(((stack1 = (depth0 != null ? depth0.data : depth0)) != null ? stack1.value : stack1), depth0))\n + \"\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\";\n},\"useData\":true});","var Handlebars = require(\"D:\\\\a\\\\1\\\\s\\\\src\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=container.escapeExpression, alias2=depth0 != null ? depth0 : (container.nullContext || {}), alias3=helpers.helperMissing, alias4=\"function\";\n\n return \"
\\r\\n \\\"\"\n \"\n + ((stack1 = ((helper = (helper = helpers.highlightedText || (depth0 != null ? depth0.highlightedText : depth0)) != null ? helper : alias3),(typeof helper === alias4 ? helper.call(alias2,{\"name\":\"highlightedText\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n + \"\\r\\n
\\r\\n\";\n},\"useData\":true});","var Handlebars = require(\"D:\\\\a\\\\1\\\\s\\\\src\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper;\n\n return \"
\\r\\n
\"\n + ((stack1 = ((helper = (helper = helpers.highlightedText || (depth0 != null ? depth0.highlightedText : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"highlightedText\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n + \"
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\";\n},\"useData\":true});","window.onerror = (msg) => {\r\n console.log(`DC Errors Handler - ${msg}`);\r\n};\r\n","(function webpackUniversalModuleDefinition(root, factory) {\n //CommonJS2\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n //AMD\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n //CommonJS\n\telse if(typeof exports === 'object')\n\t\texports[\"Choices\"] = factory();\n //Window\n\telse\n\t\troot[\"Choices\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/public/assets/scripts/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 37);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1f68e731c73fccad66a2","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_wks.js\n// module id = 0\n// module chunks = 0","/* eslint-disable */\n\nexport const getRandomNumber = function(min, max) {\n return Math.floor(Math.random() * (max - min) + min);\n};\n\nexport const generateChars = function(length) {\n let chars = '';\n\n for (let i = 0; i < length; i++) {\n const randomChar = getRandomNumber(0, 36);\n chars += randomChar.toString(36);\n }\n\n return chars;\n};\n\nexport const generateId = function(element, prefix) {\n let id =\n element.id ||\n (element.name && `${element.name}-${generateChars(2)}`) ||\n generateChars(4);\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = `${prefix}-${id}`;\n\n return id;\n};\n\nexport const getType = function(obj) {\n return Object.prototype.toString.call(obj).slice(8, -1);\n};\n\nexport const isType = function(type, obj) {\n const clas = getType(obj);\n return obj !== undefined && obj !== null && clas === type;\n};\n\nexport const isElement = (element) => {\n return element instanceof Element;\n};\n\nexport const extend = function() {\n const extended = {};\n const length = arguments.length;\n\n /**\n * Merge one object into another\n * @param {Object} obj Object to merge into extended object\n */\n const merge = function(obj) {\n for (const prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n // If deep merge and property is an object, merge properties\n if (isType('Object', obj[prop])) {\n extended[prop] = extend(true, extended[prop], obj[prop]);\n } else {\n extended[prop] = obj[prop];\n }\n }\n }\n };\n\n // Loop through each passed argument\n for (let i = 0; i < length; i++) {\n // store argument at position i\n const obj = arguments[i];\n\n // If we are in fact dealing with an object, merge it.\n if (isType('Object', obj)) {\n merge(obj);\n }\n }\n\n return extended;\n};\n\nexport const wrap = function(element, wrapper) {\n wrapper = wrapper || document.createElement('div');\n if (element.nextSibling) {\n element.parentNode.insertBefore(wrapper, element.nextSibling);\n } else {\n element.parentNode.appendChild(wrapper);\n }\n return wrapper.appendChild(element);\n};\n\nexport const findAncestor = function(el, cls) {\n while ((el = el.parentElement) && !el.classList.contains(cls));\n return el;\n};\n\nexport const findAncestorByAttrName = function(el, attr) {\n let target = el;\n\n while (target) {\n if (target.hasAttribute(attr)) {\n return target;\n }\n\n target = target.parentElement;\n }\n\n return null;\n};\n\nexport const getAdjacentEl = (startEl, className, direction = 1) => {\n if (!startEl || !className) return;\n\n const parent = startEl.parentNode.parentNode;\n const children = Array.from(parent.querySelectorAll(className));\n\n const startPos = children.indexOf(startEl);\n const operatorDirection = direction > 0 ? 1 : -1;\n\n return children[startPos + operatorDirection];\n};\n\nexport const isScrolledIntoView = (el, parent, direction = 1) => {\n if (!el) return;\n\n let isVisible;\n\n if (direction > 0) {\n // In view from bottom\n isVisible =\n parent.scrollTop + parent.offsetHeight >= el.offsetTop + el.offsetHeight;\n } else {\n // In view from top\n isVisible = el.offsetTop >= parent.scrollTop;\n }\n\n return isVisible;\n};\n\nexport const stripHTML = html =>\n html\n .replace(/&/g, '&')\n .replace(/>/g, '&rt;')\n .replace(/ {\n const value = input.value || input.placeholder;\n let width = input.offsetWidth;\n\n if (value) {\n const testEl = strToEl(`${stripHTML(value)}`);\n testEl.style.position = 'absolute';\n testEl.style.padding = '0';\n testEl.style.top = '-9999px';\n testEl.style.left = '-9999px';\n testEl.style.width = 'auto';\n testEl.style.whiteSpace = 'pre';\n\n if (document.body.contains(input) && window.getComputedStyle) {\n const inputStyle = window.getComputedStyle(input);\n\n if (inputStyle) {\n testEl.style.fontSize = inputStyle.fontSize;\n testEl.style.fontFamily = inputStyle.fontFamily;\n testEl.style.fontWeight = inputStyle.fontWeight;\n testEl.style.fontStyle = inputStyle.fontStyle;\n testEl.style.letterSpacing = inputStyle.letterSpacing;\n testEl.style.textTransform = inputStyle.textTransform;\n testEl.style.padding = inputStyle.padding;\n }\n }\n\n document.body.appendChild(testEl);\n\n requestAnimationFrame(() => {\n if (value && testEl.offsetWidth !== input.offsetWidth) {\n width = testEl.offsetWidth + 4;\n }\n\n document.body.removeChild(testEl);\n\n callback.call(this, `${width}px`);\n });\n } else {\n callback.call(this, `${width}px`);\n }\n};\n\nexport const sortByAlpha = (a, b) => {\n const labelA = (a.label || a.value).toLowerCase();\n const labelB = (b.label || b.value).toLowerCase();\n\n if (labelA < labelB) {\n return -1;\n }\n\n if (labelA > labelB) {\n return 1;\n }\n\n return 0;\n};\n\nexport const sortByScore = (a, b) => a.score - b.score;\n\nexport const dispatchEvent = (element, type, customArgs = null) => {\n const event = new CustomEvent(type, {\n detail: customArgs,\n bubbles: true,\n cancelable: true,\n });\n\n return element.dispatchEvent(event);\n};\n\nexport const regexFilter = (value, regex) => {\n if (!value || !regex) {\n return false;\n }\n\n const expression = new RegExp(regex.source, 'i');\n return expression.test(value);\n};\n\nexport const getWindowHeight = () => {\n const body = document.body;\n const html = document.documentElement;\n return Math.max(\n body.scrollHeight,\n body.offsetHeight,\n html.clientHeight,\n html.scrollHeight,\n html.offsetHeight,\n );\n};\n\nexport const reduceToValues = (items, key = 'value') => {\n const values = items.reduce((prev, current) => {\n prev.push(current[key]);\n return prev;\n }, []);\n\n return values;\n};\n\nexport const fetchFromObject = (object, path) => {\n const index = path.indexOf('.');\n\n if (index > -1) {\n return fetchFromObject(\n object[path.substring(0, index)],\n path.substr(index + 1),\n );\n }\n\n return object[path];\n};\n\nexport const isIE11 = () =>\n !!(\n navigator.userAgent.match(/Trident/) &&\n navigator.userAgent.match(/rv[ :]11/)\n );\n\nexport const existsInArray = (array, value, key = 'value') =>\n array.some(item => {\n if (isType('String', value)) {\n return item[key] === value.trim();\n }\n\n return item[key] === value;\n });\n\nexport const cloneObject = obj => JSON.parse(JSON.stringify(obj));\n\nexport const doKeysMatch = (a, b) => {\n const aKeys = Object.keys(a).sort();\n const bKeys = Object.keys(b).sort();\n return JSON.stringify(aKeys) === JSON.stringify(bKeys);\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/lib/utils.js","var core = module.exports = { version: '2.5.7' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_core.js\n// module id = 2\n// module chunks = 0","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_global.js\n// module id = 3\n// module chunks = 0","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_hide.js\n// module id = 4\n// module chunks = 0","import { stripHTML, sortByAlpha } from './lib/utils';\n\nexport const DEFAULT_CLASSNAMES = {\n containerOuter: 'choices',\n containerInner: 'choices__inner',\n input: 'choices__input',\n inputCloned: 'choices__input--cloned',\n list: 'choices__list',\n listItems: 'choices__list--multiple',\n listSingle: 'choices__list--single',\n listDropdown: 'choices__list--dropdown',\n item: 'choices__item',\n itemSelectable: 'choices__item--selectable',\n itemDisabled: 'choices__item--disabled',\n itemChoice: 'choices__item--choice',\n placeholder: 'choices__placeholder',\n group: 'choices__group',\n groupHeading: 'choices__heading',\n button: 'choices__button',\n activeState: 'is-active',\n focusState: 'is-focused',\n openState: 'is-open',\n disabledState: 'is-disabled',\n highlightedState: 'is-highlighted',\n hiddenState: 'is-hidden',\n flippedState: 'is-flipped',\n loadingState: 'is-loading',\n noResults: 'has-no-results',\n noChoices: 'has-no-choices',\n};\n\nexport const DEFAULT_CONFIG = {\n items: [],\n choices: [],\n silent: false,\n renderChoiceLimit: -1,\n maxItemCount: -1,\n addItems: true,\n removeItems: true,\n removeItemButton: false,\n editItems: false,\n duplicateItemsAllowed: true,\n delimiter: ',',\n paste: true,\n searchEnabled: true,\n searchChoices: true,\n searchFloor: 1,\n searchResultLimit: 4,\n searchFields: ['label', 'value'],\n position: 'auto',\n resetScrollPosition: true,\n regexFilter: null,\n shouldSort: true,\n shouldSortItems: false,\n sortFn: sortByAlpha,\n placeholder: true,\n placeholderValue: null,\n searchPlaceholderValue: null,\n prependValue: null,\n appendValue: null,\n renderSelectedChoices: 'auto',\n loadingText: 'Loading...',\n noResultsText: 'No results found',\n noChoicesText: 'No choices to choose from',\n itemSelectText: 'Press to select',\n uniqueItemText: 'Only unique values can be added',\n addItemText: value => `Press Enter to add \"${stripHTML(value)}\"`,\n maxItemText: maxItemCount => `Only ${maxItemCount} values can be added`,\n itemComparer: (choice, item) => choice === item,\n fuseOptions: {\n includeScore: true,\n },\n callbackOnInit: null,\n callbackOnCreateTemplates: null,\n classNames: DEFAULT_CLASSNAMES,\n};\n\nexport const EVENTS = {\n showDropdown: 'showDropdown',\n hideDropdown: 'hideDropdown',\n change: 'change',\n choice: 'choice',\n search: 'search',\n addItem: 'addItem',\n removeItem: 'removeItem',\n highlightItem: 'highlightItem',\n highlightChoice: 'highlightChoice',\n};\n\nexport const ACTION_TYPES = {\n ADD_CHOICE: 'ADD_CHOICE',\n FILTER_CHOICES: 'FILTER_CHOICES',\n ACTIVATE_CHOICES: 'ACTIVATE_CHOICES',\n CLEAR_CHOICES: 'CLEAR_CHOICES',\n ADD_GROUP: 'ADD_GROUP',\n ADD_ITEM: 'ADD_ITEM',\n REMOVE_ITEM: 'REMOVE_ITEM',\n HIGHLIGHT_ITEM: 'HIGHLIGHT_ITEM',\n CLEAR_ALL: 'CLEAR_ALL',\n};\n\nexport const KEY_CODES = {\n BACK_KEY: 46,\n DELETE_KEY: 8,\n ENTER_KEY: 13,\n A_KEY: 65,\n ESC_KEY: 27,\n UP_KEY: 38,\n DOWN_KEY: 40,\n PAGE_UP_KEY: 33,\n PAGE_DOWN_KEY: 34,\n};\n\nexport const SCROLLING_SPEED = 4;\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/constants.js","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_export.js\n// module id = 6\n// module chunks = 0","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-dp.js\n// module id = 7\n// module chunks = 0","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_an-object.js\n// module id = 8\n// module chunks = 0","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_is-object.js\n// module id = 9\n// module chunks = 0","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_descriptors.js\n// module id = 10\n// module chunks = 0","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_has.js\n// module id = 11\n// module chunks = 0","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_property-desc.js\n// module id = 12\n// module chunks = 0","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_uid.js\n// module id = 13\n// module chunks = 0","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_ctx.js\n// module id = 14\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_cof.js\n// module id = 15\n// module chunks = 0","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-object.js\n// module id = 16\n// module chunks = 0","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_defined.js\n// module id = 17\n// module chunks = 0","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-length.js\n// module id = 18\n// module chunks = 0","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-integer.js\n// module id = 19\n// module chunks = 0","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_shared-key.js\n// module id = 21\n// module chunks = 0","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_fails.js\n// module id = 22\n// module chunks = 0","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_dom-create.js\n// module id = 23\n// module chunks = 0","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_redefine.js\n// module id = 24\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iobject.js\n// module id = 25\n// module chunks = 0","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_shared.js\n// module id = 26\n// module chunks = 0","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_add-to-unscopables.js\n// module id = 28\n// module chunks = 0","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-iobject.js\n// module id = 29\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_array-includes.js\n// module id = 30\n// module chunks = 0","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_enum-bug-keys.js\n// module id = 31\n// module chunks = 0","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_set-to-string-tag.js\n// module id = 32\n// module chunks = 0","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash-es/_overArg.js\n// module id = null\n// module chunks = ","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash-es/_root.js\n// module id = null\n// module chunks = ","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash-es/_Symbol.js\n// module id = null\n// module chunks = ","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash-es/_getRawTag.js\n// module id = null\n// module chunks = ","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash-es/_objectToString.js\n// module id = null\n// module chunks = ","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash-es/_baseGetTag.js\n// module id = null\n// module chunks = ","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash-es/_getPrototype.js\n// module id = null\n// module chunks = ","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash-es/isPlainObject.js\n// module id = null\n// module chunks = ","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash-es/isObjectLike.js\n// module id = null\n// module chunks = ","import isPlainObject from 'lodash-es/isPlainObject';\nimport $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nexport var ActionTypes = {\n INIT: '@@redux/INIT'\n\n /**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n};export default function createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n function getState() {\n return currentState;\n }\n\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected listener to be a function.');\n }\n\n var isSubscribed = true;\n\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({ type: ActionTypes.INIT });\n }\n\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object') {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return { unsubscribe: unsubscribe };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n }\n\n // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n dispatch({ type: ActionTypes.INIT });\n\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/redux/es/createStore.js\n// module id = null\n// module chunks = ","import { ActionTypes } from './createStore';\nimport isPlainObject from 'lodash-es/isPlainObject';\nimport warning from './utils/warning';\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\n return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state. ' + 'If you want this reducer to hold no value, you can return null instead of undefined.';\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n\n if (unexpectedKeys.length > 0) {\n return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, { type: ActionTypes.INIT });\n\n if (typeof initialState === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined. If you don\\'t want to set a value for this reducer, ' + 'you can use null instead of undefined.');\n }\n\n var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n if (typeof reducer(undefined, { type: type }) === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined, but can be null.');\n }\n });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\nexport default function combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning('No reducer provided for key \"' + key + '\"');\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n var finalReducerKeys = Object.keys(finalReducers);\n\n var unexpectedKeyCache = void 0;\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError = void 0;\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n return hasChanged ? nextState : state;\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/redux/es/combineReducers.js\n// module id = null\n// module chunks = ","function bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(undefined, arguments));\n };\n}\n\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\nexport default function bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/redux/es/bindActionCreators.js\n// module id = null\n// module chunks = ","/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\nexport default function compose() {\n for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(undefined, arguments));\n };\n });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/redux/es/compose.js\n// module id = null\n// module chunks = ","var _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; };\n\nimport compose from './compose';\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\nexport default function applyMiddleware() {\n for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function (reducer, preloadedState, enhancer) {\n var store = createStore(reducer, preloadedState, enhancer);\n var _dispatch = store.dispatch;\n var chain = [];\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch(action) {\n return _dispatch(action);\n }\n };\n chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(undefined, chain)(store.dispatch);\n\n return _extends({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/redux/es/applyMiddleware.js\n// module id = null\n// module chunks = ","import createStore from './createStore';\nimport combineReducers from './combineReducers';\nimport bindActionCreators from './bindActionCreators';\nimport applyMiddleware from './applyMiddleware';\nimport compose from './compose';\nimport warning from './utils/warning';\n\n/*\n* This is a dummy function to check if the function name has been altered by minification.\n* If the function has been minified and NODE_ENV !== 'production', warn the user.\n*/\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \\'production\\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { createStore, combineReducers, bindActionCreators, applyMiddleware, compose };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/redux/es/index.js\n// module id = null\n// module chunks = ","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\n} catch(e) {\n\t// This works if the window reference is available\n\tif(typeof window === \"object\")\n\t\tg = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 34\n// module chunks = 0","import { dispatchEvent, isElement } from '../lib/utils';\n\nexport default class WrappedElement {\n constructor({ element, classNames }) {\n Object.assign(this, { element, classNames });\n\n if (!isElement(element)) {\n throw new TypeError('Invalid element passed');\n }\n\n this.isDisabled = false;\n }\n\n get value() {\n return this.element.value;\n }\n\n conceal() {\n // Hide passed input\n this.element.classList.add(this.classNames.input);\n this.element.classList.add(this.classNames.hiddenState);\n\n // Remove element from tab index\n this.element.tabIndex = '-1';\n\n // Backup original styles if any\n const origStyle = this.element.getAttribute('style');\n\n if (origStyle) {\n this.element.setAttribute('data-choice-orig-style', origStyle);\n }\n\n this.element.setAttribute('aria-hidden', 'true');\n this.element.setAttribute('data-choice', 'active');\n }\n\n reveal() {\n // Reinstate passed element\n this.element.classList.remove(this.classNames.input);\n this.element.classList.remove(this.classNames.hiddenState);\n this.element.removeAttribute('tabindex');\n\n // Recover original styles if any\n const origStyle = this.element.getAttribute('data-choice-orig-style');\n\n if (origStyle) {\n this.element.removeAttribute('data-choice-orig-style');\n this.element.setAttribute('style', origStyle);\n } else {\n this.element.removeAttribute('style');\n }\n this.element.removeAttribute('aria-hidden');\n this.element.removeAttribute('data-choice');\n\n // Re-assign values - this is weird, I know\n this.element.value = this.element.value;\n }\n\n enable() {\n this.element.removeAttribute('disabled');\n this.element.disabled = false;\n this.isDisabled = false;\n }\n\n disable() {\n this.element.setAttribute('disabled', '');\n this.element.disabled = true;\n this.isDisabled = true;\n }\n\n triggerEvent(eventType, data) {\n dispatchEvent(this.element, eventType, data);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/components/wrapped-element.js","import classNames from 'classnames';\nimport { strToEl } from './lib/utils';\n\nexport const TEMPLATES = {\n containerOuter(\n globalClasses,\n direction,\n isSelectElement,\n isSelectOneElement,\n searchEnabled,\n passedElementType,\n ) {\n const tabIndex = isSelectOneElement ? 'tabindex=\"0\"' : '';\n let role = isSelectElement ? 'role=\"listbox\"' : '';\n let ariaAutoComplete = '';\n\n if (isSelectElement && searchEnabled) {\n role = 'role=\"combobox\"';\n ariaAutoComplete = 'aria-autocomplete=\"list\"';\n }\n\n return strToEl(`\n \n \n `);\n },\n containerInner(globalClasses) {\n return strToEl(`\n
\n `);\n },\n itemList(globalClasses, isSelectOneElement) {\n const localClasses = classNames(globalClasses.list, {\n [globalClasses.listSingle]: isSelectOneElement,\n [globalClasses.listItems]: !isSelectOneElement,\n });\n\n return strToEl(`\n
\n `);\n },\n placeholder(globalClasses, value) {\n return strToEl(`\n
\n ${value}\n
\n `);\n },\n item(globalClasses, data, removeItemButton) {\n const ariaSelected = data.active ? 'aria-selected=\"true\"' : '';\n const ariaDisabled = data.disabled ? 'aria-disabled=\"true\"' : '';\n\n let localClasses = classNames(globalClasses.item, {\n [globalClasses.highlightedState]: data.highlighted,\n [globalClasses.itemSelectable]: !data.highlighted,\n [globalClasses.placeholder]: data.placeholder,\n });\n\n if (removeItemButton) {\n localClasses = classNames(globalClasses.item, {\n [globalClasses.highlightedState]: data.highlighted,\n [globalClasses.itemSelectable]: !data.disabled,\n [globalClasses.placeholder]: data.placeholder,\n });\n\n return strToEl(`\n \n ${data.label}\n Remove item\n \n \n `);\n }\n\n return strToEl(`\n \n ${data.label}\n \n `);\n },\n choiceList(globalClasses, isSelectOneElement) {\n const ariaMultiSelectable = !isSelectOneElement\n ? 'aria-multiselectable=\"true\"'\n : '';\n\n return strToEl(`\n \n \n `);\n },\n choiceGroup(globalClasses, data) {\n const ariaDisabled = data.disabled ? 'aria-disabled=\"true\"' : '';\n const localClasses = classNames(globalClasses.group, {\n [globalClasses.itemDisabled]: data.disabled,\n });\n\n return strToEl(`\n \n
${data.value}
\n \n `);\n },\n choice(globalClasses, data, itemSelectText) {\n const role = data.groupId > 0 ? 'role=\"treeitem\"' : 'role=\"option\"';\n const localClasses = classNames(\n globalClasses.item,\n globalClasses.itemChoice,\n {\n [globalClasses.itemDisabled]: data.disabled,\n [globalClasses.itemSelectable]: !data.disabled,\n [globalClasses.placeholder]: data.placeholder,\n },\n );\n\n return strToEl(`\n \n ${data.label}\n \n `);\n },\n input(globalClasses) {\n const localClasses = classNames(\n globalClasses.input,\n globalClasses.inputCloned,\n );\n\n return strToEl(`\n \n `);\n },\n dropdown(globalClasses) {\n const localClasses = classNames(\n globalClasses.list,\n globalClasses.listDropdown,\n );\n\n return strToEl(`\n \n \n `);\n },\n notice(globalClasses, label, type = '') {\n const localClasses = classNames(\n globalClasses.item,\n globalClasses.itemChoice,\n {\n [globalClasses.noResults]: type === 'no-results',\n [globalClasses.noChoices]: type === 'no-choices',\n },\n );\n\n return strToEl(`\n
\n ${label}\n
\n `);\n },\n option(data) {\n return strToEl(`\n \n `);\n },\n};\n\nexport default TEMPLATES;\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/templates.js","import Fuse from 'fuse.js';\nimport merge from 'deepmerge';\n\nimport './lib/polyfills';\nimport Store from './store/store';\nimport {\n Dropdown,\n Container,\n Input,\n List,\n WrappedInput,\n WrappedSelect,\n} from './components';\nimport { DEFAULT_CONFIG, EVENTS, KEY_CODES } from './constants';\nimport { TEMPLATES } from './templates';\nimport {\n addChoice,\n filterChoices,\n activateChoices,\n clearChoices,\n} from './actions/choices';\nimport { addItem, removeItem, highlightItem } from './actions/items';\nimport { addGroup } from './actions/groups';\nimport { clearAll, resetTo } from './actions/misc';\nimport {\n isScrolledIntoView,\n getAdjacentEl,\n getType,\n isType,\n strToEl,\n extend,\n sortByScore,\n generateId,\n findAncestorByAttrName,\n regexFilter,\n fetchFromObject,\n isIE11,\n existsInArray,\n cloneObject,\n doKeysMatch,\n} from './lib/utils';\n\n/**\n * Choices\n * @author Josh Johnson\n */\nclass Choices {\n constructor(element = '[data-choice]', userConfig = {}) {\n if (isType('String', element)) {\n const elements = Array.from(document.querySelectorAll(element));\n\n // If there are multiple elements, create a new instance\n // for each element besides the first one (as that already has an instance)\n if (elements.length > 1) {\n return this._generateInstances(elements, userConfig);\n }\n }\n\n this.config = merge.all([DEFAULT_CONFIG, Choices.userDefaults, userConfig]);\n\n if (!doKeysMatch(this.config, DEFAULT_CONFIG)) {\n console.warn('Unknown config option(s) passed');\n }\n\n if (!['auto', 'always'].includes(this.config.renderSelectedChoices)) {\n this.config.renderSelectedChoices = 'auto';\n }\n\n // Retrieve triggering element (i.e. element with 'data-choice' trigger)\n const passedElement = isType('String', element)\n ? document.querySelector(element)\n : element;\n\n if (!passedElement) {\n return console.error(\n 'Could not find passed element or passed element was of an invalid type',\n );\n }\n\n this._isTextElement = passedElement.type === 'text';\n this._isSelectOneElement = passedElement.type === 'select-one';\n this._isSelectMultipleElement = passedElement.type === 'select-multiple';\n this._isSelectElement =\n this._isSelectOneElement || this._isSelectMultipleElement;\n\n if (this._isTextElement) {\n this.passedElement = new WrappedInput({\n element: passedElement,\n classNames: this.config.classNames,\n delimiter: this.config.delimiter,\n });\n } else if (this._isSelectElement) {\n this.passedElement = new WrappedSelect({\n element: passedElement,\n classNames: this.config.classNames,\n });\n }\n\n if (!passedElement) {\n return console.error('Passed element was of an invalid type');\n }\n\n if (\n this.config.shouldSortItems === true &&\n this._isSelectOneElement &&\n !this.config.silent\n ) {\n console.warn(\n \"shouldSortElements: Type of passed element is 'select-one', falling back to false.\",\n );\n }\n\n this.initialised = false;\n\n this._store = new Store(this.render);\n this._initialState = {};\n this._currentState = {};\n this._prevState = {};\n this._currentValue = '';\n this._canSearch = this.config.searchEnabled;\n this._isScrollingOnIe = false;\n this._highlightPosition = 0;\n this._wasTap = true;\n this._placeholderValue = this._generatePlaceholderValue();\n this._baseId = generateId(this.passedElement.element, 'choices-');\n this._direction = this.passedElement.element.getAttribute('dir') || 'ltr';\n this._idNames = {\n itemChoice: 'item-choice',\n };\n // Assign preset choices from passed object\n this._presetChoices = this.config.choices;\n // Assign preset items from passed object first\n this._presetItems = this.config.items;\n // Then add any values passed from attribute\n if (this.passedElement.value) {\n this._presetItems = this._presetItems.concat(\n this.passedElement.value.split(this.config.delimiter),\n );\n }\n\n this._render = this._render.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n this._onKeyUp = this._onKeyUp.bind(this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onTouchMove = this._onTouchMove.bind(this);\n this._onTouchEnd = this._onTouchEnd.bind(this);\n this._onMouseDown = this._onMouseDown.bind(this);\n this._onMouseOver = this._onMouseOver.bind(this);\n this._onFormReset = this._onFormReset.bind(this);\n this._onAKey = this._onAKey.bind(this);\n this._onEnterKey = this._onEnterKey.bind(this);\n this._onEscapeKey = this._onEscapeKey.bind(this);\n this._onDirectionKey = this._onDirectionKey.bind(this);\n this._onDeleteKey = this._onDeleteKey.bind(this);\n\n // If element has already been initialised with Choices, fail silently\n if (this.passedElement.element.getAttribute('data-choice') === 'active') {\n console.warn(\n 'Trying to initialise Choices on element already initialised',\n );\n }\n\n // Let's go\n this.init();\n }\n\n /* ========================================\n = Public functions =\n ======================================== */\n\n init() {\n if (this.initialised) {\n return;\n }\n\n this._createTemplates();\n this._createElements();\n this._createStructure();\n\n // Set initial state (We need to clone the state because some reducers\n // modify the inner objects properties in the state) 🤢\n this._initialState = cloneObject(this._store.state);\n this._store.subscribe(this._render);\n this._render();\n this._addEventListeners();\n\n const shouldDisable =\n !this.config.addItems ||\n this.passedElement.element.hasAttribute('disabled');\n\n if (shouldDisable) {\n this.disable();\n }\n\n this.initialised = true;\n\n const { callbackOnInit } = this.config;\n // Run callback if it is a function\n if (callbackOnInit && isType('Function', callbackOnInit)) {\n callbackOnInit.call(this);\n }\n }\n\n destroy() {\n if (!this.initialised) {\n return;\n }\n\n this._removeEventListeners();\n this.passedElement.reveal();\n this.containerOuter.unwrap(this.passedElement.element);\n\n if (this._isSelectElement) {\n this.passedElement.options = this._presetChoices;\n }\n\n this.clearStore();\n\n this.config.templates = null;\n this.initialised = false;\n }\n\n enable() {\n if (this.passedElement.isDisabled) {\n this.passedElement.enable();\n }\n\n if (this.containerOuter.isDisabled) {\n this._addEventListeners();\n this.input.enable();\n this.containerOuter.enable();\n }\n\n return this;\n }\n\n disable() {\n if (!this.passedElement.isDisabled) {\n this.passedElement.disable();\n }\n\n if (!this.containerOuter.isDisabled) {\n this._removeEventListeners();\n this.input.disable();\n this.containerOuter.disable();\n }\n\n return this;\n }\n\n highlightItem(item, runEvent = true) {\n if (!item) {\n return this;\n }\n\n const { id, groupId = -1, value = '', label = '' } = item;\n const group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n this._store.dispatch(highlightItem(id, true));\n\n if (runEvent) {\n this.passedElement.triggerEvent(EVENTS.highlightItem, {\n id,\n value,\n label,\n groupValue: group && group.value ? group.value : null,\n });\n }\n\n return this;\n }\n\n unhighlightItem(item) {\n if (!item) {\n return this;\n }\n\n const { id, groupId = -1, value = '', label = '' } = item;\n const group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n this._store.dispatch(highlightItem(id, false));\n this.passedElement.triggerEvent(EVENTS.highlightItem, {\n id,\n value,\n label,\n groupValue: group && group.value ? group.value : null,\n });\n\n return this;\n }\n\n highlightAll() {\n this._store.items.forEach(item => this.highlightItem(item));\n return this;\n }\n\n unhighlightAll() {\n this._store.items.forEach(item => this.unhighlightItem(item));\n return this;\n }\n\n removeActiveItemsByValue(value) {\n this._store.activeItems\n .filter(item => item.value === value)\n .forEach(item => this._removeItem(item));\n\n return this;\n }\n\n removeActiveItems(excludedId) {\n this._store.activeItems\n .filter(({ id }) => id !== excludedId)\n .forEach(item => this._removeItem(item));\n\n return this;\n }\n\n removeHighlightedItems(runEvent = false) {\n this._store.highlightedActiveItems.forEach(item => {\n this._removeItem(item);\n // If this action was performed by the user\n // trigger the event\n if (runEvent) {\n this._triggerChange(item.value);\n }\n });\n\n return this;\n }\n\n showDropdown(preventInputFocus) {\n if (this.dropdown.isActive) {\n return this;\n }\n\n requestAnimationFrame(() => {\n this.dropdown.show();\n this.containerOuter.open(this.dropdown.distanceFromTopWindow());\n\n if (!preventInputFocus && this._canSearch) {\n this.input.focus();\n }\n\n this.passedElement.triggerEvent(EVENTS.showDropdown, {});\n });\n\n return this;\n }\n\n hideDropdown(preventInputBlur) {\n if (!this.dropdown.isActive) {\n return this;\n }\n\n requestAnimationFrame(() => {\n this.dropdown.hide();\n this.containerOuter.close();\n\n if (!preventInputBlur && this._canSearch) {\n this.input.removeActiveDescendant();\n this.input.blur();\n }\n\n this.passedElement.triggerEvent(EVENTS.hideDropdown, {});\n });\n\n return this;\n }\n\n toggleDropdown() {\n this.dropdown.isActive ? this.hideDropdown() : this.showDropdown();\n return this;\n }\n\n getValue(valueOnly = false) {\n const values = this._store.activeItems.reduce((selectedItems, item) => {\n const itemValue = valueOnly ? item.value : item;\n selectedItems.push(itemValue);\n return selectedItems;\n }, []);\n\n return this._isSelectOneElement ? values[0] : values;\n }\n\n setValue(args) {\n if (!this.initialised) {\n return this;\n }\n\n [...args].forEach(value => this._setChoiceOrItem(value));\n return this;\n }\n\n setChoiceByValue(value) {\n if (!this.initialised || this._isTextElement) {\n return this;\n }\n\n // If only one value has been passed, convert to array\n const choiceValue = isType('Array', value) ? value : [value];\n\n // Loop through each value and\n choiceValue.forEach(val => this._findAndSelectChoiceByValue(val));\n\n return this;\n }\n\n setChoices(choices = [], value = '', label = '', replaceChoices = false) {\n if (!this._isSelectElement || !choices.length || !value) {\n return this;\n }\n\n // Clear choices if needed\n if (replaceChoices) {\n this._clearChoices();\n }\n\n this.containerOuter.removeLoadingState();\n const addGroupsAndChoices = groupOrChoice => {\n if (groupOrChoice.choices) {\n this._addGroup({\n group: groupOrChoice,\n id: groupOrChoice.id || null,\n valueKey: value,\n labelKey: label,\n });\n } else {\n this._addChoice({\n value: groupOrChoice[value],\n label: groupOrChoice[label],\n isSelected: groupOrChoice.selected,\n isDisabled: groupOrChoice.disabled,\n customProperties: groupOrChoice.customProperties,\n placeholder: groupOrChoice.placeholder,\n });\n }\n };\n\n choices.forEach(addGroupsAndChoices);\n\n return this;\n }\n\n clearStore() {\n this._store.dispatch(clearAll());\n return this;\n }\n\n clearInput() {\n const shouldSetInputWidth = !this._isSelectOneElement;\n this.input.clear(shouldSetInputWidth);\n\n if (!this._isTextElement && this._canSearch) {\n this._isSearching = false;\n this._store.dispatch(activateChoices(true));\n }\n\n return this;\n }\n\n ajax(fn) {\n if (!this.initialised || !this._isSelectElement || !fn) {\n return this;\n }\n\n requestAnimationFrame(() => this._handleLoadingState(true));\n fn(this._ajaxCallback());\n\n return this;\n }\n\n /* ===== End of Public functions ====== */\n\n /* =============================================\n = Private functions =\n ============================================= */\n\n _render() {\n this._currentState = this._store.state;\n\n const stateChanged =\n this._currentState.choices !== this._prevState.choices ||\n this._currentState.groups !== this._prevState.groups ||\n this._currentState.items !== this._prevState.items;\n const shouldRenderChoices = this._isSelectElement;\n const shouldRenderItems =\n this._currentState.items !== this._prevState.items;\n\n if (!stateChanged) {\n return;\n }\n\n if (shouldRenderChoices) {\n this._renderChoices();\n }\n\n if (shouldRenderItems) {\n this._renderItems();\n }\n\n this._prevState = this._currentState;\n }\n\n _renderChoices() {\n const { activeGroups, activeChoices } = this._store;\n let choiceListFragment = document.createDocumentFragment();\n\n this.choiceList.clear();\n\n if (this.config.resetScrollPosition) {\n requestAnimationFrame(() => this.choiceList.scrollToTop());\n }\n\n // If we have grouped options\n if (activeGroups.length >= 1 && !this._isSearching) {\n // If we have a placeholder choice along with groups\n const activePlaceholders = activeChoices.filter(\n activeChoice =>\n activeChoice.placeholder === true && activeChoice.groupId === -1,\n );\n if (activePlaceholders.length >= 1) {\n choiceListFragment = this._createChoicesFragment(\n activePlaceholders,\n choiceListFragment,\n );\n }\n choiceListFragment = this._createGroupsFragment(\n activeGroups,\n activeChoices,\n choiceListFragment,\n );\n } else if (activeChoices.length >= 1) {\n choiceListFragment = this._createChoicesFragment(\n activeChoices,\n choiceListFragment,\n );\n }\n\n // If we have choices to show\n if (\n choiceListFragment.childNodes &&\n choiceListFragment.childNodes.length > 0\n ) {\n const activeItems = this._store.activeItems;\n const canAddItem = this._canAddItem(activeItems, this.input.value);\n\n // ...and we can select them\n if (canAddItem.response) {\n // ...append them and highlight the first choice\n this.choiceList.append(choiceListFragment);\n this._highlightChoice();\n } else {\n // ...otherwise show a notice\n this.choiceList.append(this._getTemplate('notice', canAddItem.notice));\n }\n } else {\n // Otherwise show a notice\n let dropdownItem;\n let notice;\n\n if (this._isSearching) {\n notice = isType('Function', this.config.noResultsText)\n ? this.config.noResultsText()\n : this.config.noResultsText;\n\n dropdownItem = this._getTemplate('notice', notice, 'no-results');\n } else {\n notice = isType('Function', this.config.noChoicesText)\n ? this.config.noChoicesText()\n : this.config.noChoicesText;\n\n dropdownItem = this._getTemplate('notice', notice, 'no-choices');\n }\n\n this.choiceList.append(dropdownItem);\n }\n }\n\n _renderItems() {\n const activeItems = this._store.activeItems || [];\n this.itemList.clear();\n\n // Create a fragment to store our list items\n // (so we don't have to update the DOM for each item)\n const itemListFragment = this._createItemsFragment(activeItems);\n\n // If we have items to add, append them\n if (itemListFragment.childNodes) {\n this.itemList.append(itemListFragment);\n }\n }\n\n _createGroupsFragment(groups, choices, fragment) {\n const groupFragment = fragment || document.createDocumentFragment();\n const getGroupChoices = group =>\n choices.filter(choice => {\n if (this._isSelectOneElement) {\n return choice.groupId === group.id;\n }\n return (\n choice.groupId === group.id &&\n (this.config.renderSelectedChoices === 'always' || !choice.selected)\n );\n });\n\n // If sorting is enabled, filter groups\n if (this.config.shouldSort) {\n groups.sort(this.config.sortFn);\n }\n\n groups.forEach(group => {\n const groupChoices = getGroupChoices(group);\n if (groupChoices.length >= 1) {\n const dropdownGroup = this._getTemplate('choiceGroup', group);\n groupFragment.appendChild(dropdownGroup);\n this._createChoicesFragment(groupChoices, groupFragment, true);\n }\n });\n\n return groupFragment;\n }\n\n _createChoicesFragment(choices, fragment, withinGroup = false) {\n // Create a fragment to store our list items (so we don't have to update the DOM for each item)\n const choicesFragment = fragment || document.createDocumentFragment();\n const {\n renderSelectedChoices,\n searchResultLimit,\n renderChoiceLimit,\n } = this.config;\n const filter = this._isSearching ? sortByScore : this.config.sortFn;\n const appendChoice = choice => {\n const shouldRender =\n renderSelectedChoices === 'auto'\n ? this._isSelectOneElement || !choice.selected\n : true;\n if (shouldRender) {\n const dropdownItem = this._getTemplate(\n 'choice',\n choice,\n this.config.itemSelectText,\n );\n choicesFragment.appendChild(dropdownItem);\n }\n };\n\n let rendererableChoices = choices;\n\n if (renderSelectedChoices === 'auto' && !this._isSelectOneElement) {\n rendererableChoices = choices.filter(choice => !choice.selected);\n }\n\n // Split array into placeholders and \"normal\" choices\n const { placeholderChoices, normalChoices } = rendererableChoices.reduce(\n (acc, choice) => {\n if (choice.placeholder) {\n acc.placeholderChoices.push(choice);\n } else {\n acc.normalChoices.push(choice);\n }\n return acc;\n },\n { placeholderChoices: [], normalChoices: [] },\n );\n\n // If sorting is enabled or the user is searching, filter choices\n if (this.config.shouldSort || this._isSearching) {\n normalChoices.sort(filter);\n }\n\n let choiceLimit = rendererableChoices.length;\n\n // Prepend placeholeder\n const sortedChoices = [...placeholderChoices, ...normalChoices];\n\n if (this._isSearching) {\n choiceLimit = searchResultLimit;\n } else if (renderChoiceLimit > 0 && !withinGroup) {\n choiceLimit = renderChoiceLimit;\n }\n\n // Add each choice to dropdown within range\n for (let i = 0; i < choiceLimit; i += 1) {\n if (sortedChoices[i]) {\n appendChoice(sortedChoices[i]);\n }\n }\n\n return choicesFragment;\n }\n\n _createItemsFragment(items, fragment = null) {\n // Create fragment to add elements to\n const { shouldSortItems, sortFn, removeItemButton } = this.config;\n const itemListFragment = fragment || document.createDocumentFragment();\n\n // If sorting is enabled, filter items\n if (shouldSortItems && !this._isSelectOneElement) {\n items.sort(sortFn);\n }\n\n if (this._isTextElement) {\n // Update the value of the hidden input\n this.passedElement.value = items;\n } else {\n // Update the options of the hidden input\n this.passedElement.options = items;\n }\n\n const addItemToFragment = item => {\n // Create new list element\n const listItem = this._getTemplate('item', item, removeItemButton);\n // Append it to list\n itemListFragment.appendChild(listItem);\n };\n\n // Add each list item to list\n items.forEach(item => addItemToFragment(item));\n\n return itemListFragment;\n }\n\n _triggerChange(value) {\n if (value === undefined || value === null) {\n return;\n }\n\n this.passedElement.triggerEvent(EVENTS.change, {\n value,\n });\n }\n\n _selectPlaceholderChoice() {\n const placeholderChoice = this._store.placeholderChoice;\n\n if (placeholderChoice) {\n this._addItem({\n value: placeholderChoice.value,\n label: placeholderChoice.label,\n choiceId: placeholderChoice.id,\n groupId: placeholderChoice.groupId,\n placeholder: placeholderChoice.placeholder,\n });\n\n this._triggerChange(placeholderChoice.value);\n }\n }\n\n _handleButtonAction(activeItems, element) {\n if (\n !activeItems ||\n !element ||\n !this.config.removeItems ||\n !this.config.removeItemButton\n ) {\n return;\n }\n\n const itemId = element.parentNode.getAttribute('data-id');\n const itemToRemove = activeItems.find(\n item => item.id === parseInt(itemId, 10),\n );\n\n // Remove item associated with button\n this._removeItem(itemToRemove);\n this._triggerChange(itemToRemove.value);\n\n if (this._isSelectOneElement) {\n this._selectPlaceholderChoice();\n }\n }\n\n _handleItemAction(activeItems, element, hasShiftKey = false) {\n if (\n !activeItems ||\n !element ||\n !this.config.removeItems ||\n this._isSelectOneElement\n ) {\n return;\n }\n\n const passedId = element.getAttribute('data-id');\n\n // We only want to select one item with a click\n // so we deselect any items that aren't the target\n // unless shift is being pressed\n activeItems.forEach(item => {\n if (item.id === parseInt(passedId, 10) && !item.highlighted) {\n this.highlightItem(item);\n } else if (!hasShiftKey && item.highlighted) {\n this.unhighlightItem(item);\n }\n });\n\n // Focus input as without focus, a user cannot do anything with a\n // highlighted item\n this.input.focus();\n }\n\n _handleChoiceAction(activeItems, element) {\n if (!activeItems || !element) {\n return;\n }\n\n // If we are clicking on an option\n const id = element.getAttribute('data-id');\n const choice = this._store.getChoiceById(id);\n const passedKeyCode =\n activeItems[0] && activeItems[0].keyCode ? activeItems[0].keyCode : null;\n const hasActiveDropdown = this.dropdown.isActive;\n\n // Update choice keyCode\n choice.keyCode = passedKeyCode;\n\n this.passedElement.triggerEvent(EVENTS.choice, {\n choice,\n });\n\n if (choice && !choice.selected && !choice.disabled) {\n const canAddItem = this._canAddItem(activeItems, choice.value);\n\n if (canAddItem.response) {\n this._addItem({\n value: choice.value,\n label: choice.label,\n choiceId: choice.id,\n groupId: choice.groupId,\n customProperties: choice.customProperties,\n placeholder: choice.placeholder,\n keyCode: choice.keyCode,\n });\n\n this._triggerChange(choice.value);\n }\n }\n\n this.clearInput();\n\n // We wont to close the dropdown if we are dealing with a single select box\n if (hasActiveDropdown && this._isSelectOneElement) {\n this.hideDropdown(true);\n this.containerOuter.focus();\n }\n }\n\n _handleBackspace(activeItems) {\n if (!this.config.removeItems || !activeItems) {\n return;\n }\n\n const lastItem = activeItems[activeItems.length - 1];\n const hasHighlightedItems = activeItems.some(item => item.highlighted);\n\n // If editing the last item is allowed and there are not other selected items,\n // we can edit the item value. Otherwise if we can remove items, remove all selected items\n if (this.config.editItems && !hasHighlightedItems && lastItem) {\n this.input.value = lastItem.value;\n this.input.setWidth();\n this._removeItem(lastItem);\n this._triggerChange(lastItem.value);\n } else {\n if (!hasHighlightedItems) {\n // Highlight last item if none already highlighted\n this.highlightItem(lastItem, false);\n }\n this.removeHighlightedItems(true);\n }\n }\n\n _handleLoadingState(isLoading = true) {\n let placeholderItem = this.itemList.getChild(\n `.${this.config.classNames.placeholder}`,\n );\n\n if (isLoading) {\n this.disable();\n this.containerOuter.addLoadingState();\n\n if (this._isSelectOneElement) {\n if (!placeholderItem) {\n placeholderItem = this._getTemplate(\n 'placeholder',\n this.config.loadingText,\n );\n this.itemList.append(placeholderItem);\n } else {\n placeholderItem.innerHTML = this.config.loadingText;\n }\n } else {\n this.input.placeholder = this.config.loadingText;\n }\n } else {\n this.enable();\n this.containerOuter.removeLoadingState();\n\n if (this._isSelectOneElement) {\n placeholderItem.innerHTML = this._placeholderValue || '';\n } else {\n this.input.placeholder = this._placeholderValue || '';\n }\n }\n }\n\n _handleSearch(value) {\n if (!value || !this.input.isFocussed) {\n return;\n }\n\n const choices = this._store.choices;\n const { searchFloor, searchChoices } = this.config;\n const hasUnactiveChoices = choices.some(option => !option.active);\n\n // Check that we have a value to search and the input was an alphanumeric character\n if (value && value.length >= searchFloor) {\n const resultCount = searchChoices ? this._searchChoices(value) : 0;\n // Trigger search event\n this.passedElement.triggerEvent(EVENTS.search, {\n value,\n resultCount,\n });\n } else if (hasUnactiveChoices) {\n // Otherwise reset choices to active\n this._isSearching = false;\n this._store.dispatch(activateChoices(true));\n }\n }\n\n _canAddItem(activeItems, value) {\n let canAddItem = true;\n let notice = isType('Function', this.config.addItemText)\n ? this.config.addItemText(value)\n : this.config.addItemText;\n\n if (!this._isSelectOneElement) {\n const isDuplicateValue = existsInArray(activeItems, value);\n\n if (\n this.config.maxItemCount > 0 &&\n this.config.maxItemCount <= activeItems.length\n ) {\n // If there is a max entry limit and we have reached that limit\n // don't update\n canAddItem = false;\n notice = isType('Function', this.config.maxItemText)\n ? this.config.maxItemText(this.config.maxItemCount)\n : this.config.maxItemText;\n }\n\n if (\n this.config.regexFilter &&\n this._isTextElement &&\n this.config.addItems &&\n canAddItem\n ) {\n // If a user has supplied a regular expression filter\n // determine whether we can update based on whether\n // our regular expression passes\n canAddItem = regexFilter(value, this.config.regexFilter);\n }\n\n if (\n !this.config.duplicateItemsAllowed &&\n isDuplicateValue &&\n canAddItem\n ) {\n canAddItem = false;\n notice = isType('Function', this.config.uniqueItemText)\n ? this.config.uniqueItemText(value)\n : this.config.uniqueItemText;\n }\n }\n\n return {\n response: canAddItem,\n notice,\n };\n }\n\n _ajaxCallback() {\n return (results, value, label) => {\n if (!results || !value) {\n return;\n }\n\n const parsedResults = isType('Object', results) ? [results] : results;\n\n if (\n parsedResults &&\n isType('Array', parsedResults) &&\n parsedResults.length\n ) {\n // Remove loading states/text\n this._handleLoadingState(false);\n // Add each result as a choice\n parsedResults.forEach(result => {\n if (result.choices) {\n this._addGroup({\n group: result,\n id: result.id || null,\n valueKey: value,\n labelKey: label,\n });\n } else {\n this._addChoice({\n value: fetchFromObject(result, value),\n label: fetchFromObject(result, label),\n isSelected: result.selected,\n isDisabled: result.disabled,\n customProperties: result.customProperties,\n placeholder: result.placeholder,\n });\n }\n });\n\n if (this._isSelectOneElement) {\n this._selectPlaceholderChoice();\n }\n } else {\n // No results, remove loading state\n this._handleLoadingState(false);\n }\n };\n }\n\n _searchChoices(value) {\n const newValue = isType('String', value) ? value.trim() : value;\n const currentValue = isType('String', this._currentValue)\n ? this._currentValue.trim()\n : this._currentValue;\n\n if (newValue.length < 1 && newValue === `${currentValue} `) {\n return 0;\n }\n\n // If new value matches the desired length and is not the same as the current value with a space\n const haystack = this._store.searchableChoices;\n const needle = newValue;\n const keys = [...this.config.searchFields];\n const options = Object.assign(this.config.fuseOptions, { keys });\n const fuse = new Fuse(haystack, options);\n const results = fuse.search(needle);\n\n this._currentValue = newValue;\n this._highlightPosition = 0;\n this._isSearching = true;\n this._store.dispatch(filterChoices(results));\n\n return results.length;\n }\n\n _addEventListeners() {\n document.addEventListener('keyup', this._onKeyUp);\n document.addEventListener('keydown', this._onKeyDown);\n document.addEventListener('click', this._onClick);\n document.addEventListener('touchmove', this._onTouchMove);\n document.addEventListener('touchend', this._onTouchEnd);\n document.addEventListener('mousedown', this._onMouseDown);\n document.addEventListener('mouseover', this._onMouseOver);\n\n if (this._isSelectOneElement) {\n this.containerOuter.element.addEventListener('focus', this._onFocus);\n this.containerOuter.element.addEventListener('blur', this._onBlur);\n }\n\n this.input.element.addEventListener('focus', this._onFocus);\n this.input.element.addEventListener('blur', this._onBlur);\n\n if (this.input.element.form) {\n this.input.element.form.addEventListener('reset', this._onFormReset);\n }\n\n this.input.addEventListeners();\n }\n\n _removeEventListeners() {\n document.removeEventListener('keyup', this._onKeyUp);\n document.removeEventListener('keydown', this._onKeyDown);\n document.removeEventListener('click', this._onClick);\n document.removeEventListener('touchmove', this._onTouchMove);\n document.removeEventListener('touchend', this._onTouchEnd);\n document.removeEventListener('mousedown', this._onMouseDown);\n document.removeEventListener('mouseover', this._onMouseOver);\n\n if (this._isSelectOneElement) {\n this.containerOuter.element.removeEventListener('focus', this._onFocus);\n this.containerOuter.element.removeEventListener('blur', this._onBlur);\n }\n\n this.input.element.removeEventListener('focus', this._onFocus);\n this.input.element.removeEventListener('blur', this._onBlur);\n\n if (this.input.element.form) {\n this.input.element.form.removeEventListener('reset', this._onFormReset);\n }\n\n this.input.removeEventListeners();\n }\n\n _onKeyDown(event) {\n const { target, keyCode, ctrlKey, metaKey } = event;\n\n if (\n target !== this.input.element &&\n !this.containerOuter.element.contains(target)\n ) {\n return;\n }\n\n const activeItems = this._store.activeItems;\n const hasFocusedInput = this.input.isFocussed;\n const hasActiveDropdown = this.dropdown.isActive;\n const hasItems = this.itemList.hasChildren;\n const keyString = String.fromCharCode(keyCode);\n\n const {\n BACK_KEY,\n DELETE_KEY,\n ENTER_KEY,\n A_KEY,\n ESC_KEY,\n UP_KEY,\n DOWN_KEY,\n PAGE_UP_KEY,\n PAGE_DOWN_KEY,\n } = KEY_CODES;\n const hasCtrlDownKeyPressed = ctrlKey || metaKey;\n\n // If a user is typing and the dropdown is not active\n if (!this._isTextElement && /[a-zA-Z0-9-_ ]/.test(keyString)) {\n this.showDropdown();\n }\n\n // Map keys to key actions\n const keyDownActions = {\n [A_KEY]: this._onAKey,\n [ENTER_KEY]: this._onEnterKey,\n [ESC_KEY]: this._onEscapeKey,\n [UP_KEY]: this._onDirectionKey,\n [PAGE_UP_KEY]: this._onDirectionKey,\n [DOWN_KEY]: this._onDirectionKey,\n [PAGE_DOWN_KEY]: this._onDirectionKey,\n [DELETE_KEY]: this._onDeleteKey,\n [BACK_KEY]: this._onDeleteKey,\n };\n\n // If keycode has a function, run it\n if (keyDownActions[keyCode]) {\n keyDownActions[keyCode]({\n target,\n keyCode,\n metaKey,\n activeItems,\n hasFocusedInput,\n hasActiveDropdown,\n hasItems,\n hasCtrlDownKeyPressed,\n });\n }\n }\n\n _onKeyUp({ target, keyCode }) {\n if (target !== this.input.element) {\n return;\n }\n\n const value = this.input.value;\n const activeItems = this._store.activeItems;\n const canAddItem = this._canAddItem(activeItems, value);\n\n // We are typing into a text input and have a value, we want to show a dropdown\n // notice. Otherwise hide the dropdown\n if (this._isTextElement) {\n if (value) {\n if (canAddItem.notice) {\n const dropdownItem = this._getTemplate('notice', canAddItem.notice);\n this.dropdown.element.innerHTML = dropdownItem.outerHTML;\n }\n\n if (canAddItem.response === true) {\n this.showDropdown(true);\n } else if (!canAddItem.notice) {\n this.hideDropdown(true);\n }\n } else {\n this.hideDropdown(true);\n }\n } else {\n const backKey = KEY_CODES.BACK_KEY;\n const deleteKey = KEY_CODES.DELETE_KEY;\n\n // If user has removed value...\n if ((keyCode === backKey || keyCode === deleteKey) && !target.value) {\n if (!this._isTextElement && this._isSearching) {\n this._isSearching = false;\n this._store.dispatch(activateChoices(true));\n }\n } else if (this._canSearch && canAddItem.response) {\n this._handleSearch(this.input.value);\n }\n }\n\n this._canSearch = this.config.searchEnabled;\n }\n\n _onAKey({ hasItems, hasCtrlDownKeyPressed }) {\n // If CTRL + A or CMD + A have been pressed and there are items to select\n if (hasCtrlDownKeyPressed && hasItems) {\n this._canSearch = false;\n if (\n this.config.removeItems &&\n !this.input.value &&\n this.input.element === document.activeElement\n ) {\n // Highlight items\n this.highlightAll();\n }\n }\n }\n\n _onEnterKey({ target, activeItems, hasActiveDropdown }) {\n const { ENTER_KEY: enterKey } = KEY_CODES;\n // If enter key is pressed and the input has a value\n if (this._isTextElement && target.value) {\n const value = this.input.value;\n const canAddItem = this._canAddItem(activeItems, value);\n\n // All is good, add\n if (canAddItem.response) {\n this.hideDropdown(true);\n this._addItem({ value });\n this._triggerChange(value);\n this.clearInput();\n }\n }\n\n if (target.hasAttribute('data-button')) {\n this._handleButtonAction(activeItems, target);\n event.preventDefault();\n }\n\n if (hasActiveDropdown) {\n const highlighted = this.dropdown.getChild(\n `.${this.config.classNames.highlightedState}`,\n );\n\n // If we have a highlighted choice\n if (highlighted) {\n // add enter keyCode value\n if (activeItems[0]) {\n activeItems[0].keyCode = enterKey; // eslint-disable-line no-param-reassign\n }\n this._handleChoiceAction(activeItems, highlighted);\n }\n\n event.preventDefault();\n } else if (this._isSelectOneElement) {\n // Open single select dropdown if it's not active\n this.showDropdown();\n event.preventDefault();\n }\n }\n\n _onEscapeKey({ hasActiveDropdown }) {\n if (hasActiveDropdown) {\n this.hideDropdown(true);\n this.containerOuter.focus();\n }\n }\n\n _onDirectionKey({ hasActiveDropdown, keyCode, metaKey }) {\n const {\n DOWN_KEY: downKey,\n PAGE_UP_KEY: pageUpKey,\n PAGE_DOWN_KEY: pageDownKey,\n } = KEY_CODES;\n\n // If up or down key is pressed, traverse through options\n if (hasActiveDropdown || this._isSelectOneElement) {\n this.showDropdown();\n this._canSearch = false;\n\n const directionInt =\n keyCode === downKey || keyCode === pageDownKey ? 1 : -1;\n const skipKey =\n metaKey || keyCode === pageDownKey || keyCode === pageUpKey;\n const selectableChoiceIdentifier = '[data-choice-selectable]';\n\n let nextEl;\n if (skipKey) {\n if (directionInt > 0) {\n nextEl = Array.from(\n this.dropdown.element.querySelectorAll(selectableChoiceIdentifier),\n ).pop();\n } else {\n nextEl = this.dropdown.element.querySelector(\n selectableChoiceIdentifier,\n );\n }\n } else {\n const currentEl = this.dropdown.element.querySelector(\n `.${this.config.classNames.highlightedState}`,\n );\n if (currentEl) {\n nextEl = getAdjacentEl(\n currentEl,\n selectableChoiceIdentifier,\n directionInt,\n );\n } else {\n nextEl = this.dropdown.element.querySelector(\n selectableChoiceIdentifier,\n );\n }\n }\n\n if (nextEl) {\n // We prevent default to stop the cursor moving\n // when pressing the arrow\n if (\n !isScrolledIntoView(nextEl, this.choiceList.element, directionInt)\n ) {\n this.choiceList.scrollToChoice(nextEl, directionInt);\n }\n this._highlightChoice(nextEl);\n }\n\n // Prevent default to maintain cursor position whilst\n // traversing dropdown options\n event.preventDefault();\n }\n }\n\n _onDeleteKey({ target, hasFocusedInput, activeItems }) {\n // If backspace or delete key is pressed and the input has no value\n if (hasFocusedInput && !target.value && !this._isSelectOneElement) {\n this._handleBackspace(activeItems);\n event.preventDefault();\n }\n }\n\n _onTouchMove() {\n if (this._wasTap === true) {\n this._wasTap = false;\n }\n }\n\n _onTouchEnd(event) {\n const target = event.target || event.touches[0].target;\n\n // If a user tapped within our container...\n if (this._wasTap === true && this.containerOuter.element.contains(target)) {\n // ...and we aren't dealing with a single select box, show dropdown/focus input\n\n const containerWasTarget =\n target === this.containerOuter.element ||\n target === this.containerInner.element;\n\n if (containerWasTarget && !this._isSelectOneElement) {\n if (this._isTextElement) {\n // If text element, we only want to focus the input\n this.input.focus();\n } else {\n // If a select box, we want to show the dropdown\n this.showDropdown();\n }\n }\n // Prevents focus event firing\n event.stopPropagation();\n }\n\n this._wasTap = true;\n }\n\n _onMouseDown(event) {\n const { target, shiftKey } = event;\n // If we have our mouse down on the scrollbar and are on IE11...\n if (target === this.choiceList && isIE11()) {\n this._isScrollingOnIe = true;\n }\n\n if (\n !this.containerOuter.element.contains(target) ||\n target === this.input.element\n ) {\n return;\n }\n\n const activeItems = this._store.activeItems;\n const hasShiftKey = shiftKey;\n\n const buttonTarget = findAncestorByAttrName(target, 'data-button');\n const itemTarget = findAncestorByAttrName(target, 'data-item');\n const choiceTarget = findAncestorByAttrName(target, 'data-choice');\n\n if (buttonTarget) {\n this._handleButtonAction(activeItems, buttonTarget);\n } else if (itemTarget) {\n this._handleItemAction(activeItems, itemTarget, hasShiftKey);\n } else if (choiceTarget) {\n this._handleChoiceAction(activeItems, choiceTarget);\n }\n\n event.preventDefault();\n }\n\n _onMouseOver({ target }) {\n const targetWithinDropdown =\n target === this.dropdown || this.dropdown.element.contains(target);\n const shouldHighlightChoice =\n targetWithinDropdown && target.hasAttribute('data-choice');\n\n if (shouldHighlightChoice) {\n this._highlightChoice(target);\n }\n }\n\n _onClick({ target }) {\n if (this.containerOuter.element.contains(target)) {\n if (!this.dropdown.isActive && !this.containerOuter.isDisabled) {\n if (this._isTextElement) {\n if (document.activeElement !== this.input.element) {\n this.input.focus();\n }\n } else {\n this.showDropdown();\n this.containerOuter.focus();\n }\n } else if (\n this._isSelectOneElement &&\n target !== this.input.element &&\n !this.dropdown.element.contains(target)\n ) {\n this.hideDropdown();\n }\n } else {\n const hasHighlightedItems = this._store.highlightedActiveItems;\n\n if (hasHighlightedItems) {\n this.unhighlightAll();\n }\n\n this.containerOuter.removeFocusState();\n this.hideDropdown(true);\n }\n }\n\n _onFocus({ target }) {\n if (!this.containerOuter.element.contains(target)) {\n return;\n }\n\n const focusActions = {\n text: () => {\n if (target === this.input.element) {\n this.containerOuter.addFocusState();\n }\n },\n 'select-one': () => {\n this.containerOuter.addFocusState();\n if (target === this.input.element) {\n this.showDropdown(true);\n }\n },\n 'select-multiple': () => {\n if (target === this.input.element) {\n this.showDropdown(true);\n // If element is a select box, the focused element is the container and the dropdown\n // isn't already open, focus and show dropdown\n this.containerOuter.addFocusState();\n }\n },\n };\n\n focusActions[this.passedElement.element.type]();\n }\n\n _onBlur({ target }) {\n // If target is something that concerns us\n if (\n this.containerOuter.element.contains(target) &&\n !this._isScrollingOnIe\n ) {\n const activeItems = this._store.activeItems;\n const hasHighlightedItems = activeItems.some(item => item.highlighted);\n const blurActions = {\n text: () => {\n if (target === this.input.element) {\n this.containerOuter.removeFocusState();\n if (hasHighlightedItems) {\n this.unhighlightAll();\n }\n this.hideDropdown(true);\n }\n },\n 'select-one': () => {\n this.containerOuter.removeFocusState();\n if (\n target === this.input.element ||\n (target === this.containerOuter.element && !this._canSearch)\n ) {\n this.hideDropdown(true);\n }\n },\n 'select-multiple': () => {\n if (target === this.input.element) {\n this.containerOuter.removeFocusState();\n this.hideDropdown(true);\n if (hasHighlightedItems) {\n this.unhighlightAll();\n }\n }\n },\n };\n\n blurActions[this.passedElement.element.type]();\n } else {\n // On IE11, clicking the scollbar blurs our input and thus\n // closes the dropdown. To stop this, we refocus our input\n // if we know we are on IE *and* are scrolling.\n this._isScrollingOnIe = false;\n this.input.element.focus();\n }\n }\n\n _onFormReset() {\n this._store.dispatch(resetTo(this._initialState));\n }\n\n _highlightChoice(el = null) {\n const choices = Array.from(\n this.dropdown.element.querySelectorAll('[data-choice-selectable]'),\n );\n\n if (!choices.length) {\n return;\n }\n\n let passedEl = el;\n const highlightedChoices = Array.from(\n this.dropdown.element.querySelectorAll(\n `.${this.config.classNames.highlightedState}`,\n ),\n );\n\n // Remove any highlighted choices\n highlightedChoices.forEach(choice => {\n choice.classList.remove(this.config.classNames.highlightedState);\n choice.setAttribute('aria-selected', 'false');\n });\n\n if (passedEl) {\n this._highlightPosition = choices.indexOf(passedEl);\n } else {\n // Highlight choice based on last known highlight location\n if (choices.length > this._highlightPosition) {\n // If we have an option to highlight\n passedEl = choices[this._highlightPosition];\n } else {\n // Otherwise highlight the option before\n passedEl = choices[choices.length - 1];\n }\n\n if (!passedEl) {\n passedEl = choices[0];\n }\n }\n\n passedEl.classList.add(this.config.classNames.highlightedState);\n passedEl.setAttribute('aria-selected', 'true');\n this.passedElement.triggerEvent(EVENTS.highlightChoice, { el: passedEl });\n\n if (this.dropdown.isActive) {\n // IE11 ignores aria-label and blocks virtual keyboard\n // if aria-activedescendant is set without a dropdown\n this.input.setActiveDescendant(passedEl.id);\n this.containerOuter.setActiveDescendant(passedEl.id);\n }\n }\n\n _addItem({\n value,\n label = null,\n choiceId = -1,\n groupId = -1,\n customProperties = null,\n placeholder = false,\n keyCode = null,\n }) {\n let passedValue = isType('String', value) ? value.trim() : value;\n\n const passedKeyCode = keyCode;\n const passedCustomProperties = customProperties;\n const items = this._store.items;\n const passedLabel = label || passedValue;\n const passedOptionId = parseInt(choiceId, 10) || -1;\n const group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n const id = items ? items.length + 1 : 1;\n\n // If a prepended value has been passed, prepend it\n if (this.config.prependValue) {\n passedValue = this.config.prependValue + passedValue.toString();\n }\n\n // If an appended value has been passed, append it\n if (this.config.appendValue) {\n passedValue += this.config.appendValue.toString();\n }\n\n this._store.dispatch(\n addItem({\n value: passedValue,\n label: passedLabel,\n id,\n choiceId: passedOptionId,\n groupId,\n customProperties,\n placeholder,\n keyCode: passedKeyCode,\n }),\n );\n\n if (this._isSelectOneElement) {\n this.removeActiveItems(id);\n }\n\n // Trigger change event\n if (group && group.value) {\n this.passedElement.triggerEvent(EVENTS.addItem, {\n id,\n value: passedValue,\n label: passedLabel,\n customProperties: passedCustomProperties,\n groupValue: group.value,\n keyCode: passedKeyCode,\n });\n } else {\n this.passedElement.triggerEvent(EVENTS.addItem, {\n id,\n value: passedValue,\n label: passedLabel,\n customProperties: passedCustomProperties,\n keyCode: passedKeyCode,\n });\n }\n\n return this;\n }\n\n _removeItem(item) {\n if (!item || !isType('Object', item)) {\n return this;\n }\n\n const { id, value, label, choiceId, groupId } = item;\n const group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n this._store.dispatch(removeItem(id, choiceId));\n\n if (group && group.value) {\n this.passedElement.triggerEvent(EVENTS.removeItem, {\n id,\n value,\n label,\n groupValue: group.value,\n });\n } else {\n this.passedElement.triggerEvent(EVENTS.removeItem, {\n id,\n value,\n label,\n });\n }\n\n return this;\n }\n\n _addChoice({\n value,\n label = null,\n isSelected = false,\n isDisabled = false,\n groupId = -1,\n customProperties = null,\n placeholder = false,\n keyCode = null,\n }) {\n if (typeof value === 'undefined' || value === null) {\n return;\n }\n\n // Generate unique id\n const choices = this._store.choices;\n const choiceLabel = label || value;\n const choiceId = choices ? choices.length + 1 : 1;\n const choiceElementId = `${this._baseId}-${\n this._idNames.itemChoice\n }-${choiceId}`;\n\n this._store.dispatch(\n addChoice({\n value,\n label: choiceLabel,\n id: choiceId,\n groupId,\n disabled: isDisabled,\n elementId: choiceElementId,\n customProperties,\n placeholder,\n keyCode,\n }),\n );\n\n if (isSelected) {\n this._addItem({\n value,\n label: choiceLabel,\n choiceId,\n customProperties,\n placeholder,\n keyCode,\n });\n }\n }\n\n _clearChoices() {\n this._store.dispatch(clearChoices());\n }\n\n _addGroup({ group, id, valueKey = 'value', labelKey = 'label' }) {\n const groupChoices = isType('Object', group)\n ? group.choices\n : Array.from(group.getElementsByTagName('OPTION'));\n const groupId = id || Math.floor(new Date().valueOf() * Math.random());\n const isDisabled = group.disabled ? group.disabled : false;\n\n if (groupChoices) {\n this._store.dispatch(addGroup(group.label, groupId, true, isDisabled));\n\n const addGroupChoices = choice => {\n const isOptDisabled =\n choice.disabled || (choice.parentNode && choice.parentNode.disabled);\n\n this._addChoice({\n value: choice[valueKey],\n label: isType('Object', choice) ? choice[labelKey] : choice.innerHTML,\n isSelected: choice.selected,\n isDisabled: isOptDisabled,\n groupId,\n customProperties: choice.customProperties,\n placeholder: choice.placeholder,\n });\n };\n\n groupChoices.forEach(addGroupChoices);\n } else {\n this._store.dispatch(\n addGroup(group.label, group.id, false, group.disabled),\n );\n }\n }\n\n _getTemplate(template, ...args) {\n if (!template) {\n return null;\n }\n\n const { templates, classNames } = this.config;\n return templates[template].call(this, classNames, ...args);\n }\n\n _createTemplates() {\n const { callbackOnCreateTemplates } = this.config;\n let userTemplates = {};\n\n if (\n callbackOnCreateTemplates &&\n isType('Function', callbackOnCreateTemplates)\n ) {\n userTemplates = callbackOnCreateTemplates.call(this, strToEl);\n }\n\n this.config.templates = extend(TEMPLATES, userTemplates);\n }\n\n _createElements() {\n this.containerOuter = new Container({\n element: this._getTemplate(\n 'containerOuter',\n this._direction,\n this._isSelectElement,\n this._isSelectOneElement,\n this.config.searchEnabled,\n this.passedElement.element.type,\n ),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n position: this.config.position,\n });\n\n this.containerInner = new Container({\n element: this._getTemplate('containerInner'),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n position: this.config.position,\n });\n\n this.input = new Input({\n element: this._getTemplate('input'),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n });\n\n this.choiceList = new List({\n element: this._getTemplate('choiceList', this._isSelectOneElement),\n });\n\n this.itemList = new List({\n element: this._getTemplate('itemList', this._isSelectOneElement),\n });\n\n this.dropdown = new Dropdown({\n element: this._getTemplate('dropdown'),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n });\n }\n\n _createStructure() {\n // Hide original element\n this.passedElement.conceal();\n // Wrap input in container preserving DOM ordering\n this.containerInner.wrap(this.passedElement.element);\n // Wrapper inner container with outer container\n this.containerOuter.wrap(this.containerInner.element);\n\n if (this._isSelectOneElement) {\n this.input.placeholder = this.config.searchPlaceholderValue || '';\n } else if (this._placeholderValue) {\n this.input.placeholder = this._placeholderValue;\n this.input.setWidth(true);\n }\n\n this.containerOuter.element.appendChild(this.containerInner.element);\n this.containerOuter.element.appendChild(this.dropdown.element);\n this.containerInner.element.appendChild(this.itemList.element);\n\n if (!this._isTextElement) {\n this.dropdown.element.appendChild(this.choiceList.element);\n }\n\n if (!this._isSelectOneElement) {\n this.containerInner.element.appendChild(this.input.element);\n } else if (this.config.searchEnabled) {\n this.dropdown.element.insertBefore(\n this.input.element,\n this.dropdown.element.firstChild,\n );\n }\n\n if (this._isSelectElement) {\n this._addPredefinedChoices();\n } else if (this._isTextElement) {\n this._addPredefinedItems();\n }\n }\n\n _addPredefinedChoices() {\n const passedGroups = this.passedElement.optionGroups;\n\n this._highlightPosition = 0;\n this._isSearching = false;\n\n if (passedGroups && passedGroups.length) {\n // If we have a placeholder option\n const placeholderChoice = this.passedElement.placeholderOption;\n if (\n placeholderChoice &&\n placeholderChoice.parentNode.tagName === 'SELECT'\n ) {\n this._addChoice({\n value: placeholderChoice.value,\n label: placeholderChoice.innerHTML,\n isSelected: placeholderChoice.selected,\n isDisabled: placeholderChoice.disabled,\n placeholder: true,\n });\n }\n\n passedGroups.forEach(group =>\n this._addGroup({\n group,\n id: group.id || null,\n }),\n );\n } else {\n const passedOptions = this.passedElement.options;\n const filter = this.config.sortFn;\n const allChoices = this._presetChoices;\n\n // Create array of options from option elements\n passedOptions.forEach(o => {\n allChoices.push({\n value: o.value,\n label: o.innerHTML,\n selected: o.selected,\n disabled: o.disabled || o.parentNode.disabled,\n placeholder: o.hasAttribute('placeholder'),\n });\n });\n\n // If sorting is enabled or the user is searching, filter choices\n if (this.config.shouldSort) {\n allChoices.sort(filter);\n }\n\n // Determine whether there is a selected choice\n const hasSelectedChoice = allChoices.some(choice => choice.selected);\n const handleChoice = (choice, index) => {\n const { value, label, customProperties, placeholder } = choice;\n\n if (this._isSelectElement) {\n // If the choice is actually a group\n if (choice.choices) {\n this._addGroup({\n group: choice,\n id: choice.id || null,\n });\n } else {\n // If there is a selected choice already or the choice is not\n // the first in the array, add each choice normally\n // Otherwise pre-select the first choice in the array if it's a single select\n const shouldPreselect =\n this._isSelectOneElement && !hasSelectedChoice && index === 0;\n const isSelected = shouldPreselect ? true : choice.selected;\n const isDisabled = shouldPreselect ? false : choice.disabled;\n\n this._addChoice({\n value,\n label,\n isSelected,\n isDisabled,\n customProperties,\n placeholder,\n });\n }\n } else {\n this._addChoice({\n value,\n label,\n isSelected: choice.selected,\n isDisabled: choice.disabled,\n customProperties,\n placeholder,\n });\n }\n };\n\n // Add each choice\n allChoices.forEach((choice, index) => handleChoice(choice, index));\n }\n }\n\n _addPredefinedItems() {\n const handlePresetItem = item => {\n const itemType = getType(item);\n if (itemType === 'Object' && item.value) {\n this._addItem({\n value: item.value,\n label: item.label,\n choiceId: item.id,\n customProperties: item.customProperties,\n placeholder: item.placeholder,\n });\n } else if (itemType === 'String') {\n this._addItem({\n value: item,\n });\n }\n };\n\n this._presetItems.forEach(item => handlePresetItem(item));\n }\n\n _setChoiceOrItem(item) {\n const itemType = getType(item).toLowerCase();\n const handleType = {\n object: () => {\n if (!item.value) {\n return;\n }\n\n // If we are dealing with a select input, we need to create an option first\n // that is then selected. For text inputs we can just add items normally.\n if (!this._isTextElement) {\n this._addChoice({\n value: item.value,\n label: item.label,\n isSelected: true,\n isDisabled: false,\n customProperties: item.customProperties,\n placeholder: item.placeholder,\n });\n } else {\n this._addItem({\n value: item.value,\n label: item.label,\n choiceId: item.id,\n customProperties: item.customProperties,\n placeholder: item.placeholder,\n });\n }\n },\n string: () => {\n if (!this._isTextElement) {\n this._addChoice({\n value: item,\n label: item,\n isSelected: true,\n isDisabled: false,\n });\n } else {\n this._addItem({\n value: item,\n });\n }\n },\n };\n\n handleType[itemType]();\n }\n\n _findAndSelectChoiceByValue(val) {\n const choices = this._store.choices;\n // Check 'value' property exists and the choice isn't already selected\n const foundChoice = choices.find(choice =>\n this.config.itemComparer(choice.value, val),\n );\n\n if (foundChoice && !foundChoice.selected) {\n this._addItem({\n value: foundChoice.value,\n label: foundChoice.label,\n id: foundChoice.id,\n groupId: foundChoice.groupId,\n customProperties: foundChoice.customProperties,\n placeholder: foundChoice.placeholder,\n keyCode: foundChoice.keyCode,\n });\n }\n }\n\n _generateInstances(elements, config) {\n return elements.reduce(\n (instances, element) => {\n instances.push(new Choices(element, config));\n return instances;\n },\n [this],\n );\n }\n\n _generatePlaceholderValue() {\n if (this._isSelectOneElement) {\n return false;\n }\n\n return this.config.placeholder\n ? this.config.placeholderValue ||\n this.passedElement.element.getAttribute('placeholder')\n : false;\n }\n\n /* ===== End of Private functions ====== */\n}\n\nChoices.userDefaults = {};\n// We cannot export default here due to Webpack: https://github.com/webpack/webpack/issues/3929\nmodule.exports = Choices;\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/choices.js","/*!\n * Fuse.js v3.3.0 - Lightweight fuzzy-search (http://fusejs.io)\n * \n * Copyright (c) 2012-2017 Kirollos Risk (http://kiro.me)\n * All Rights Reserved. Apache Software License 2.0\n * \n * http://www.apache.org/licenses/LICENSE-2.0\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Fuse\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Fuse\"] = factory();\n\telse\n\t\troot[\"Fuse\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 8);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (obj) {\n return !Array.isArray ? Object.prototype.toString.call(obj) === '[object Array]' : Array.isArray(obj);\n};\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar bitapRegexSearch = __webpack_require__(5);\nvar bitapSearch = __webpack_require__(7);\nvar patternAlphabet = __webpack_require__(4);\n\nvar Bitap = function () {\n function Bitap(pattern, _ref) {\n var _ref$location = _ref.location,\n location = _ref$location === undefined ? 0 : _ref$location,\n _ref$distance = _ref.distance,\n distance = _ref$distance === undefined ? 100 : _ref$distance,\n _ref$threshold = _ref.threshold,\n threshold = _ref$threshold === undefined ? 0.6 : _ref$threshold,\n _ref$maxPatternLength = _ref.maxPatternLength,\n maxPatternLength = _ref$maxPatternLength === undefined ? 32 : _ref$maxPatternLength,\n _ref$isCaseSensitive = _ref.isCaseSensitive,\n isCaseSensitive = _ref$isCaseSensitive === undefined ? false : _ref$isCaseSensitive,\n _ref$tokenSeparator = _ref.tokenSeparator,\n tokenSeparator = _ref$tokenSeparator === undefined ? / +/g : _ref$tokenSeparator,\n _ref$findAllMatches = _ref.findAllMatches,\n findAllMatches = _ref$findAllMatches === undefined ? false : _ref$findAllMatches,\n _ref$minMatchCharLeng = _ref.minMatchCharLength,\n minMatchCharLength = _ref$minMatchCharLeng === undefined ? 1 : _ref$minMatchCharLeng;\n\n _classCallCheck(this, Bitap);\n\n this.options = {\n location: location,\n distance: distance,\n threshold: threshold,\n maxPatternLength: maxPatternLength,\n isCaseSensitive: isCaseSensitive,\n tokenSeparator: tokenSeparator,\n findAllMatches: findAllMatches,\n minMatchCharLength: minMatchCharLength\n };\n\n this.pattern = this.options.isCaseSensitive ? pattern : pattern.toLowerCase();\n\n if (this.pattern.length <= maxPatternLength) {\n this.patternAlphabet = patternAlphabet(this.pattern);\n }\n }\n\n _createClass(Bitap, [{\n key: 'search',\n value: function search(text) {\n if (!this.options.isCaseSensitive) {\n text = text.toLowerCase();\n }\n\n // Exact match\n if (this.pattern === text) {\n return {\n isMatch: true,\n score: 0,\n matchedIndices: [[0, text.length - 1]]\n };\n }\n\n // When pattern length is greater than the machine word length, just do a a regex comparison\n var _options = this.options,\n maxPatternLength = _options.maxPatternLength,\n tokenSeparator = _options.tokenSeparator;\n\n if (this.pattern.length > maxPatternLength) {\n return bitapRegexSearch(text, this.pattern, tokenSeparator);\n }\n\n // Otherwise, use Bitap algorithm\n var _options2 = this.options,\n location = _options2.location,\n distance = _options2.distance,\n threshold = _options2.threshold,\n findAllMatches = _options2.findAllMatches,\n minMatchCharLength = _options2.minMatchCharLength;\n\n return bitapSearch(text, this.pattern, this.patternAlphabet, {\n location: location,\n distance: distance,\n threshold: threshold,\n findAllMatches: findAllMatches,\n minMatchCharLength: minMatchCharLength\n });\n }\n }]);\n\n return Bitap;\n}();\n\n// let x = new Bitap(\"od mn war\", {})\n// let result = x.search(\"Old Man's War\")\n// console.log(result)\n\nmodule.exports = Bitap;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isArray = __webpack_require__(0);\n\nvar deepValue = function deepValue(obj, path, list) {\n if (!path) {\n // If there's no path left, we've gotten to the object we care about.\n list.push(obj);\n } else {\n var dotIndex = path.indexOf('.');\n var firstSegment = path;\n var remaining = null;\n\n if (dotIndex !== -1) {\n firstSegment = path.slice(0, dotIndex);\n remaining = path.slice(dotIndex + 1);\n }\n\n var value = obj[firstSegment];\n\n if (value !== null && value !== undefined) {\n if (!remaining && (typeof value === 'string' || typeof value === 'number')) {\n list.push(value.toString());\n } else if (isArray(value)) {\n // Search each item in the array.\n for (var i = 0, len = value.length; i < len; i += 1) {\n deepValue(value[i], remaining, list);\n }\n } else if (remaining) {\n // An object. Recurse further.\n deepValue(value, remaining, list);\n }\n }\n }\n\n return list;\n};\n\nmodule.exports = function (obj, path) {\n return deepValue(obj, path, []);\n};\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function () {\n var matchmask = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var minMatchCharLength = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n var matchedIndices = [];\n var start = -1;\n var end = -1;\n var i = 0;\n\n for (var len = matchmask.length; i < len; i += 1) {\n var match = matchmask[i];\n if (match && start === -1) {\n start = i;\n } else if (!match && start !== -1) {\n end = i - 1;\n if (end - start + 1 >= minMatchCharLength) {\n matchedIndices.push([start, end]);\n }\n start = -1;\n }\n }\n\n // (i-1 - start) + 1 => i - start\n if (matchmask[i - 1] && i - start >= minMatchCharLength) {\n matchedIndices.push([start, i - 1]);\n }\n\n return matchedIndices;\n};\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (pattern) {\n var mask = {};\n var len = pattern.length;\n\n for (var i = 0; i < len; i += 1) {\n mask[pattern.charAt(i)] = 0;\n }\n\n for (var _i = 0; _i < len; _i += 1) {\n mask[pattern.charAt(_i)] |= 1 << len - _i - 1;\n }\n\n return mask;\n};\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar SPECIAL_CHARS_REGEX = /[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g;\n\nmodule.exports = function (text, pattern) {\n var tokenSeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : / +/g;\n\n var regex = new RegExp(pattern.replace(SPECIAL_CHARS_REGEX, '\\\\$&').replace(tokenSeparator, '|'));\n var matches = text.match(regex);\n var isMatch = !!matches;\n var matchedIndices = [];\n\n if (isMatch) {\n for (var i = 0, matchesLen = matches.length; i < matchesLen; i += 1) {\n var match = matches[i];\n matchedIndices.push([text.indexOf(match), match.length - 1]);\n }\n }\n\n return {\n // TODO: revisit this score\n score: isMatch ? 0.5 : 1,\n isMatch: isMatch,\n matchedIndices: matchedIndices\n };\n};\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (pattern, _ref) {\n var _ref$errors = _ref.errors,\n errors = _ref$errors === undefined ? 0 : _ref$errors,\n _ref$currentLocation = _ref.currentLocation,\n currentLocation = _ref$currentLocation === undefined ? 0 : _ref$currentLocation,\n _ref$expectedLocation = _ref.expectedLocation,\n expectedLocation = _ref$expectedLocation === undefined ? 0 : _ref$expectedLocation,\n _ref$distance = _ref.distance,\n distance = _ref$distance === undefined ? 100 : _ref$distance;\n\n var accuracy = errors / pattern.length;\n var proximity = Math.abs(expectedLocation - currentLocation);\n\n if (!distance) {\n // Dodge divide by zero error.\n return proximity ? 1.0 : accuracy;\n }\n\n return accuracy + proximity / distance;\n};\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bitapScore = __webpack_require__(6);\nvar matchedIndices = __webpack_require__(3);\n\nmodule.exports = function (text, pattern, patternAlphabet, _ref) {\n var _ref$location = _ref.location,\n location = _ref$location === undefined ? 0 : _ref$location,\n _ref$distance = _ref.distance,\n distance = _ref$distance === undefined ? 100 : _ref$distance,\n _ref$threshold = _ref.threshold,\n threshold = _ref$threshold === undefined ? 0.6 : _ref$threshold,\n _ref$findAllMatches = _ref.findAllMatches,\n findAllMatches = _ref$findAllMatches === undefined ? false : _ref$findAllMatches,\n _ref$minMatchCharLeng = _ref.minMatchCharLength,\n minMatchCharLength = _ref$minMatchCharLeng === undefined ? 1 : _ref$minMatchCharLeng;\n\n var expectedLocation = location;\n // Set starting location at beginning text and initialize the alphabet.\n var textLen = text.length;\n // Highest score beyond which we give up.\n var currentThreshold = threshold;\n // Is there a nearby exact match? (speedup)\n var bestLocation = text.indexOf(pattern, expectedLocation);\n\n var patternLen = pattern.length;\n\n // a mask of the matches\n var matchMask = [];\n for (var i = 0; i < textLen; i += 1) {\n matchMask[i] = 0;\n }\n\n if (bestLocation !== -1) {\n var score = bitapScore(pattern, {\n errors: 0,\n currentLocation: bestLocation,\n expectedLocation: expectedLocation,\n distance: distance\n });\n currentThreshold = Math.min(score, currentThreshold);\n\n // What about in the other direction? (speed up)\n bestLocation = text.lastIndexOf(pattern, expectedLocation + patternLen);\n\n if (bestLocation !== -1) {\n var _score = bitapScore(pattern, {\n errors: 0,\n currentLocation: bestLocation,\n expectedLocation: expectedLocation,\n distance: distance\n });\n currentThreshold = Math.min(_score, currentThreshold);\n }\n }\n\n // Reset the best location\n bestLocation = -1;\n\n var lastBitArr = [];\n var finalScore = 1;\n var binMax = patternLen + textLen;\n\n var mask = 1 << patternLen - 1;\n\n for (var _i = 0; _i < patternLen; _i += 1) {\n // Scan for the best match; each iteration allows for one more error.\n // Run a binary search to determine how far from the match location we can stray\n // at this error level.\n var binMin = 0;\n var binMid = binMax;\n\n while (binMin < binMid) {\n var _score3 = bitapScore(pattern, {\n errors: _i,\n currentLocation: expectedLocation + binMid,\n expectedLocation: expectedLocation,\n distance: distance\n });\n\n if (_score3 <= currentThreshold) {\n binMin = binMid;\n } else {\n binMax = binMid;\n }\n\n binMid = Math.floor((binMax - binMin) / 2 + binMin);\n }\n\n // Use the result from this iteration as the maximum for the next.\n binMax = binMid;\n\n var start = Math.max(1, expectedLocation - binMid + 1);\n var finish = findAllMatches ? textLen : Math.min(expectedLocation + binMid, textLen) + patternLen;\n\n // Initialize the bit array\n var bitArr = Array(finish + 2);\n\n bitArr[finish + 1] = (1 << _i) - 1;\n\n for (var j = finish; j >= start; j -= 1) {\n var currentLocation = j - 1;\n var charMatch = patternAlphabet[text.charAt(currentLocation)];\n\n if (charMatch) {\n matchMask[currentLocation] = 1;\n }\n\n // First pass: exact match\n bitArr[j] = (bitArr[j + 1] << 1 | 1) & charMatch;\n\n // Subsequent passes: fuzzy match\n if (_i !== 0) {\n bitArr[j] |= (lastBitArr[j + 1] | lastBitArr[j]) << 1 | 1 | lastBitArr[j + 1];\n }\n\n if (bitArr[j] & mask) {\n finalScore = bitapScore(pattern, {\n errors: _i,\n currentLocation: currentLocation,\n expectedLocation: expectedLocation,\n distance: distance\n });\n\n // This match will almost certainly be better than any existing match.\n // But check anyway.\n if (finalScore <= currentThreshold) {\n // Indeed it is\n currentThreshold = finalScore;\n bestLocation = currentLocation;\n\n // Already passed `loc`, downhill from here on in.\n if (bestLocation <= expectedLocation) {\n break;\n }\n\n // When passing `bestLocation`, don't exceed our current distance from `expectedLocation`.\n start = Math.max(1, 2 * expectedLocation - bestLocation);\n }\n }\n }\n\n // No hope for a (better) match at greater error levels.\n var _score2 = bitapScore(pattern, {\n errors: _i + 1,\n currentLocation: expectedLocation,\n expectedLocation: expectedLocation,\n distance: distance\n });\n\n // console.log('score', score, finalScore)\n\n if (_score2 > currentThreshold) {\n break;\n }\n\n lastBitArr = bitArr;\n }\n\n // console.log('FINAL SCORE', finalScore)\n\n // Count exact matches (those with a score of 0) to be \"almost\" exact\n return {\n isMatch: bestLocation >= 0,\n score: finalScore === 0 ? 0.001 : finalScore,\n matchedIndices: matchedIndices(matchMask, minMatchCharLength)\n };\n};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Bitap = __webpack_require__(1);\nvar deepValue = __webpack_require__(2);\nvar isArray = __webpack_require__(0);\n\nvar Fuse = function () {\n function Fuse(list, _ref) {\n var _ref$location = _ref.location,\n location = _ref$location === undefined ? 0 : _ref$location,\n _ref$distance = _ref.distance,\n distance = _ref$distance === undefined ? 100 : _ref$distance,\n _ref$threshold = _ref.threshold,\n threshold = _ref$threshold === undefined ? 0.6 : _ref$threshold,\n _ref$maxPatternLength = _ref.maxPatternLength,\n maxPatternLength = _ref$maxPatternLength === undefined ? 32 : _ref$maxPatternLength,\n _ref$caseSensitive = _ref.caseSensitive,\n caseSensitive = _ref$caseSensitive === undefined ? false : _ref$caseSensitive,\n _ref$tokenSeparator = _ref.tokenSeparator,\n tokenSeparator = _ref$tokenSeparator === undefined ? / +/g : _ref$tokenSeparator,\n _ref$findAllMatches = _ref.findAllMatches,\n findAllMatches = _ref$findAllMatches === undefined ? false : _ref$findAllMatches,\n _ref$minMatchCharLeng = _ref.minMatchCharLength,\n minMatchCharLength = _ref$minMatchCharLeng === undefined ? 1 : _ref$minMatchCharLeng,\n _ref$id = _ref.id,\n id = _ref$id === undefined ? null : _ref$id,\n _ref$keys = _ref.keys,\n keys = _ref$keys === undefined ? [] : _ref$keys,\n _ref$shouldSort = _ref.shouldSort,\n shouldSort = _ref$shouldSort === undefined ? true : _ref$shouldSort,\n _ref$getFn = _ref.getFn,\n getFn = _ref$getFn === undefined ? deepValue : _ref$getFn,\n _ref$sortFn = _ref.sortFn,\n sortFn = _ref$sortFn === undefined ? function (a, b) {\n return a.score - b.score;\n } : _ref$sortFn,\n _ref$tokenize = _ref.tokenize,\n tokenize = _ref$tokenize === undefined ? false : _ref$tokenize,\n _ref$matchAllTokens = _ref.matchAllTokens,\n matchAllTokens = _ref$matchAllTokens === undefined ? false : _ref$matchAllTokens,\n _ref$includeMatches = _ref.includeMatches,\n includeMatches = _ref$includeMatches === undefined ? false : _ref$includeMatches,\n _ref$includeScore = _ref.includeScore,\n includeScore = _ref$includeScore === undefined ? false : _ref$includeScore,\n _ref$verbose = _ref.verbose,\n verbose = _ref$verbose === undefined ? false : _ref$verbose;\n\n _classCallCheck(this, Fuse);\n\n this.options = {\n location: location,\n distance: distance,\n threshold: threshold,\n maxPatternLength: maxPatternLength,\n isCaseSensitive: caseSensitive,\n tokenSeparator: tokenSeparator,\n findAllMatches: findAllMatches,\n minMatchCharLength: minMatchCharLength,\n id: id,\n keys: keys,\n includeMatches: includeMatches,\n includeScore: includeScore,\n shouldSort: shouldSort,\n getFn: getFn,\n sortFn: sortFn,\n verbose: verbose,\n tokenize: tokenize,\n matchAllTokens: matchAllTokens\n };\n\n this.setCollection(list);\n }\n\n _createClass(Fuse, [{\n key: 'setCollection',\n value: function setCollection(list) {\n this.list = list;\n return list;\n }\n }, {\n key: 'search',\n value: function search(pattern) {\n this._log('---------\\nSearch pattern: \"' + pattern + '\"');\n\n var _prepareSearchers2 = this._prepareSearchers(pattern),\n tokenSearchers = _prepareSearchers2.tokenSearchers,\n fullSearcher = _prepareSearchers2.fullSearcher;\n\n var _search2 = this._search(tokenSearchers, fullSearcher),\n weights = _search2.weights,\n results = _search2.results;\n\n this._computeScore(weights, results);\n\n if (this.options.shouldSort) {\n this._sort(results);\n }\n\n return this._format(results);\n }\n }, {\n key: '_prepareSearchers',\n value: function _prepareSearchers() {\n var pattern = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n var tokenSearchers = [];\n\n if (this.options.tokenize) {\n // Tokenize on the separator\n var tokens = pattern.split(this.options.tokenSeparator);\n for (var i = 0, len = tokens.length; i < len; i += 1) {\n tokenSearchers.push(new Bitap(tokens[i], this.options));\n }\n }\n\n var fullSearcher = new Bitap(pattern, this.options);\n\n return { tokenSearchers: tokenSearchers, fullSearcher: fullSearcher };\n }\n }, {\n key: '_search',\n value: function _search() {\n var tokenSearchers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var fullSearcher = arguments[1];\n\n var list = this.list;\n var resultMap = {};\n var results = [];\n\n // Check the first item in the list, if it's a string, then we assume\n // that every item in the list is also a string, and thus it's a flattened array.\n if (typeof list[0] === 'string') {\n // Iterate over every item\n for (var i = 0, len = list.length; i < len; i += 1) {\n this._analyze({\n key: '',\n value: list[i],\n record: i,\n index: i\n }, {\n resultMap: resultMap,\n results: results,\n tokenSearchers: tokenSearchers,\n fullSearcher: fullSearcher\n });\n }\n\n return { weights: null, results: results };\n }\n\n // Otherwise, the first item is an Object (hopefully), and thus the searching\n // is done on the values of the keys of each item.\n var weights = {};\n for (var _i = 0, _len = list.length; _i < _len; _i += 1) {\n var item = list[_i];\n // Iterate over every key\n for (var j = 0, keysLen = this.options.keys.length; j < keysLen; j += 1) {\n var key = this.options.keys[j];\n if (typeof key !== 'string') {\n weights[key.name] = {\n weight: 1 - key.weight || 1\n };\n if (key.weight <= 0 || key.weight > 1) {\n throw new Error('Key weight has to be > 0 and <= 1');\n }\n key = key.name;\n } else {\n weights[key] = {\n weight: 1\n };\n }\n\n this._analyze({\n key: key,\n value: this.options.getFn(item, key),\n record: item,\n index: _i\n }, {\n resultMap: resultMap,\n results: results,\n tokenSearchers: tokenSearchers,\n fullSearcher: fullSearcher\n });\n }\n }\n\n return { weights: weights, results: results };\n }\n }, {\n key: '_analyze',\n value: function _analyze(_ref2, _ref3) {\n var key = _ref2.key,\n _ref2$arrayIndex = _ref2.arrayIndex,\n arrayIndex = _ref2$arrayIndex === undefined ? -1 : _ref2$arrayIndex,\n value = _ref2.value,\n record = _ref2.record,\n index = _ref2.index;\n var _ref3$tokenSearchers = _ref3.tokenSearchers,\n tokenSearchers = _ref3$tokenSearchers === undefined ? [] : _ref3$tokenSearchers,\n _ref3$fullSearcher = _ref3.fullSearcher,\n fullSearcher = _ref3$fullSearcher === undefined ? [] : _ref3$fullSearcher,\n _ref3$resultMap = _ref3.resultMap,\n resultMap = _ref3$resultMap === undefined ? {} : _ref3$resultMap,\n _ref3$results = _ref3.results,\n results = _ref3$results === undefined ? [] : _ref3$results;\n\n // Check if the texvaluet can be searched\n if (value === undefined || value === null) {\n return;\n }\n\n var exists = false;\n var averageScore = -1;\n var numTextMatches = 0;\n\n if (typeof value === 'string') {\n this._log('\\nKey: ' + (key === '' ? '-' : key));\n\n var mainSearchResult = fullSearcher.search(value);\n this._log('Full text: \"' + value + '\", score: ' + mainSearchResult.score);\n\n if (this.options.tokenize) {\n var words = value.split(this.options.tokenSeparator);\n var scores = [];\n\n for (var i = 0; i < tokenSearchers.length; i += 1) {\n var tokenSearcher = tokenSearchers[i];\n\n this._log('\\nPattern: \"' + tokenSearcher.pattern + '\"');\n\n // let tokenScores = []\n var hasMatchInText = false;\n\n for (var j = 0; j < words.length; j += 1) {\n var word = words[j];\n var tokenSearchResult = tokenSearcher.search(word);\n var obj = {};\n if (tokenSearchResult.isMatch) {\n obj[word] = tokenSearchResult.score;\n exists = true;\n hasMatchInText = true;\n scores.push(tokenSearchResult.score);\n } else {\n obj[word] = 1;\n if (!this.options.matchAllTokens) {\n scores.push(1);\n }\n }\n this._log('Token: \"' + word + '\", score: ' + obj[word]);\n // tokenScores.push(obj)\n }\n\n if (hasMatchInText) {\n numTextMatches += 1;\n }\n }\n\n averageScore = scores[0];\n var scoresLen = scores.length;\n for (var _i2 = 1; _i2 < scoresLen; _i2 += 1) {\n averageScore += scores[_i2];\n }\n averageScore = averageScore / scoresLen;\n\n this._log('Token score average:', averageScore);\n }\n\n var finalScore = mainSearchResult.score;\n if (averageScore > -1) {\n finalScore = (finalScore + averageScore) / 2;\n }\n\n this._log('Score average:', finalScore);\n\n var checkTextMatches = this.options.tokenize && this.options.matchAllTokens ? numTextMatches >= tokenSearchers.length : true;\n\n this._log('\\nCheck Matches: ' + checkTextMatches);\n\n // If a match is found, add the item to , including its score\n if ((exists || mainSearchResult.isMatch) && checkTextMatches) {\n // Check if the item already exists in our results\n var existingResult = resultMap[index];\n if (existingResult) {\n // Use the lowest score\n // existingResult.score, bitapResult.score\n existingResult.output.push({\n key: key,\n arrayIndex: arrayIndex,\n value: value,\n score: finalScore,\n matchedIndices: mainSearchResult.matchedIndices\n });\n } else {\n // Add it to the raw result list\n resultMap[index] = {\n item: record,\n output: [{\n key: key,\n arrayIndex: arrayIndex,\n value: value,\n score: finalScore,\n matchedIndices: mainSearchResult.matchedIndices\n }]\n };\n\n results.push(resultMap[index]);\n }\n }\n } else if (isArray(value)) {\n for (var _i3 = 0, len = value.length; _i3 < len; _i3 += 1) {\n this._analyze({\n key: key,\n arrayIndex: _i3,\n value: value[_i3],\n record: record,\n index: index\n }, {\n resultMap: resultMap,\n results: results,\n tokenSearchers: tokenSearchers,\n fullSearcher: fullSearcher\n });\n }\n }\n }\n }, {\n key: '_computeScore',\n value: function _computeScore(weights, results) {\n this._log('\\n\\nComputing score:\\n');\n\n for (var i = 0, len = results.length; i < len; i += 1) {\n var output = results[i].output;\n var scoreLen = output.length;\n\n var currScore = 1;\n var bestScore = 1;\n\n for (var j = 0; j < scoreLen; j += 1) {\n var weight = weights ? weights[output[j].key].weight : 1;\n var score = weight === 1 ? output[j].score : output[j].score || 0.001;\n var nScore = score * weight;\n\n if (weight !== 1) {\n bestScore = Math.min(bestScore, nScore);\n } else {\n output[j].nScore = nScore;\n currScore *= nScore;\n }\n }\n\n results[i].score = bestScore === 1 ? currScore : bestScore;\n\n this._log(results[i]);\n }\n }\n }, {\n key: '_sort',\n value: function _sort(results) {\n this._log('\\n\\nSorting....');\n results.sort(this.options.sortFn);\n }\n }, {\n key: '_format',\n value: function _format(results) {\n var finalOutput = [];\n\n if (this.options.verbose) {\n this._log('\\n\\nOutput:\\n\\n', JSON.stringify(results));\n }\n\n var transformers = [];\n\n if (this.options.includeMatches) {\n transformers.push(function (result, data) {\n var output = result.output;\n data.matches = [];\n\n for (var i = 0, len = output.length; i < len; i += 1) {\n var item = output[i];\n\n if (item.matchedIndices.length === 0) {\n continue;\n }\n\n var obj = {\n indices: item.matchedIndices,\n value: item.value\n };\n if (item.key) {\n obj.key = item.key;\n }\n if (item.hasOwnProperty('arrayIndex') && item.arrayIndex > -1) {\n obj.arrayIndex = item.arrayIndex;\n }\n data.matches.push(obj);\n }\n });\n }\n\n if (this.options.includeScore) {\n transformers.push(function (result, data) {\n data.score = result.score;\n });\n }\n\n for (var i = 0, len = results.length; i < len; i += 1) {\n var result = results[i];\n\n if (this.options.id) {\n result.item = this.options.getFn(result.item, this.options.id)[0];\n }\n\n if (!transformers.length) {\n finalOutput.push(result.item);\n continue;\n }\n\n var data = {\n item: result.item\n };\n\n for (var j = 0, _len2 = transformers.length; j < _len2; j += 1) {\n transformers[j](result, data);\n }\n\n finalOutput.push(data);\n }\n\n return finalOutput;\n }\n }, {\n key: '_log',\n value: function _log() {\n if (this.options.verbose) {\n var _console;\n\n (_console = console).log.apply(_console, arguments);\n }\n }\n }]);\n\n return Fuse;\n}();\n\nmodule.exports = Fuse;\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=fuse.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fuse.js/dist/fuse.js\n// module id = 39\n// module chunks = 0","var isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nexport default deepmerge_1;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/deepmerge/dist/es.js\n// module id = 40\n// module chunks = 0","import 'core-js/fn/array/find';\nimport 'core-js/fn/array/from';\nimport 'core-js/fn/array/includes';\nimport 'custom-event-polyfill';\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/lib/polyfills.js","require('../../modules/es6.array.find');\nmodule.exports = require('../../modules/_core').Array.find;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/fn/array/find.js\n// module id = 42\n// module chunks = 0","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es6.array.find.js\n// module id = 43\n// module chunks = 0","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_ie8-dom-define.js\n// module id = 44\n// module chunks = 0","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-primitive.js\n// module id = 45\n// module chunks = 0","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_a-function.js\n// module id = 46\n// module chunks = 0","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_array-methods.js\n// module id = 47\n// module chunks = 0","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_array-species-create.js\n// module id = 48\n// module chunks = 0","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_array-species-constructor.js\n// module id = 49\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_is-array.js\n// module id = 50\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/fn/array/from.js\n// module id = 51\n// module chunks = 0","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es6.string.iterator.js\n// module id = 52\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_string-at.js\n// module id = 53\n// module chunks = 0","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iter-define.js\n// module id = 54\n// module chunks = 0","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iter-create.js\n// module id = 55\n// module chunks = 0","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-create.js\n// module id = 56\n// module chunks = 0","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-dps.js\n// module id = 57\n// module chunks = 0","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-keys.js\n// module id = 58\n// module chunks = 0","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-keys-internal.js\n// module id = 59\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-absolute-index.js\n// module id = 60\n// module chunks = 0","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_html.js\n// module id = 61\n// module chunks = 0","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-gpo.js\n// module id = 62\n// module chunks = 0","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es6.array.from.js\n// module id = 63\n// module chunks = 0","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iter-call.js\n// module id = 64\n// module chunks = 0","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_is-array-iter.js\n// module id = 65\n// module chunks = 0","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_create-property.js\n// module id = 66\n// module chunks = 0","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/core.get-iterator-method.js\n// module id = 67\n// module chunks = 0","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_classof.js\n// module id = 68\n// module chunks = 0","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iter-detect.js\n// module id = 69\n// module chunks = 0","require('../../modules/es7.array.includes');\nmodule.exports = require('../../modules/_core').Array.includes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/fn/array/includes.js\n// module id = 70\n// module chunks = 0","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es7.array.includes.js\n// module id = 71\n// module chunks = 0","// Polyfill for creating CustomEvents on IE9/10/11\n\n// code pulled from:\n// https://github.com/d4tocchini/customevent-polyfill\n// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill\n\ntry {\n var ce = new window.CustomEvent('test');\n ce.preventDefault();\n if (ce.defaultPrevented !== true) {\n // IE has problems with .preventDefault() on custom events\n // http://stackoverflow.com/questions/23349191\n throw new Error('Could not prevent default');\n }\n} catch(e) {\n var CustomEvent = function(event, params) {\n var evt, origPrevent;\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n\n evt = document.createEvent(\"CustomEvent\");\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n origPrevent = evt.preventDefault;\n evt.preventDefault = function () {\n origPrevent.call(this);\n try {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function () {\n return true;\n }\n });\n } catch(e) {\n this.defaultPrevented = true;\n }\n };\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n window.CustomEvent = CustomEvent; // expose definition to window\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/custom-event-polyfill/custom-event-polyfill.js\n// module id = 72\n// module chunks = 0","import { createStore } from 'redux';\nimport rootReducer from './../reducers/index';\n\nexport default class Store {\n constructor() {\n this._store = createStore(\n rootReducer,\n window.devToolsExtension ? window.devToolsExtension() : undefined,\n );\n }\n\n /**\n * Subscribe store to function call (wrapped Redux method)\n * @param {Function} onChange Function to trigger when state changes\n * @return\n */\n subscribe(onChange) {\n this._store.subscribe(onChange);\n }\n\n /**\n * Dispatch event to store (wrapped Redux method)\n * @param {Function} action Action function to trigger\n * @return\n */\n dispatch(action) {\n this._store.dispatch(action);\n }\n\n /**\n * Get store object (wrapping Redux method)\n * @return {Object} State\n */\n get state() {\n return this._store.getState();\n }\n\n /**\n * Get items from store\n * @return {Array} Item objects\n */\n get items() {\n return this.state.items;\n }\n\n /**\n * Get active items from store\n * @return {Array} Item objects\n */\n get activeItems() {\n return this.items.filter(item => item.active === true);\n }\n\n /**\n * Get highlighted items from store\n * @return {Array} Item objects\n */\n get highlightedActiveItems() {\n return this.items.filter(item => item.active && item.highlighted);\n }\n\n /**\n * Get choices from store\n * @return {Array} Option objects\n */\n get choices() {\n return this.state.choices;\n }\n\n /**\n * Get active choices from store\n * @return {Array} Option objects\n */\n get activeChoices() {\n const choices = this.choices;\n const values = choices.filter(choice => choice.active === true);\n\n return values;\n }\n\n /**\n * Get selectable choices from store\n * @return {Array} Option objects\n */\n get selectableChoices() {\n return this.choices.filter(choice => choice.disabled !== true);\n }\n\n /**\n * Get choices that can be searched (excluding placeholders)\n * @return {Array} Option objects\n */\n get searchableChoices() {\n return this.selectableChoices.filter(choice => choice.placeholder !== true);\n }\n\n /**\n * Get placeholder choice from store\n * @return {Object} Found placeholder\n */\n get placeholderChoice() {\n return [...this.choices]\n .reverse()\n .find(choice => choice.placeholder === true);\n }\n\n /**\n * Get groups from store\n * @return {Array} Group objects\n */\n get groups() {\n return this.state.groups;\n }\n\n /**\n * Get active groups from store\n * @return {Array} Group objects\n */\n get activeGroups() {\n const groups = this.groups;\n const choices = this.choices;\n\n return groups.filter(group => {\n const isActive = group.active === true && group.disabled === false;\n const hasActiveOptions = choices.some(\n choice => choice.active === true && choice.disabled === false,\n );\n return isActive && hasActiveOptions;\n }, []);\n }\n\n /**\n * Get single choice by it's ID\n * @return {Object} Found choice\n */\n getChoiceById(id) {\n if (id) {\n const choices = this.activeChoices;\n const foundChoice = choices.find(\n choice => choice.id === parseInt(id, 10),\n );\n return foundChoice;\n }\n return false;\n }\n\n /**\n * Get group by group id\n * @param {Number} id Group ID\n * @return {Object} Group data\n */\n getGroupById(id) {\n return this.groups.find(group => group.id === parseInt(id, 10));\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/store/store.js","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash-es/_freeGlobal.js\n// module id = 74\n// module chunks = 0","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/symbol-observable/es/index.js\n// module id = 75\n// module chunks = 0","module.exports = function(originalModule) {\n\tif(!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif(!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true,\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/harmony-module.js\n// module id = 76\n// module chunks = 0","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/symbol-observable/es/ponyfill.js\n// module id = 77\n// module chunks = 0","import { combineReducers } from 'redux';\nimport items from './items';\nimport groups from './groups';\nimport choices from './choices';\nimport { cloneObject } from '../lib/utils';\n\nconst appReducer = combineReducers({\n items,\n groups,\n choices,\n});\n\nconst rootReducer = (passedState, action) => {\n let state = passedState;\n // If we are clearing all items, groups and options we reassign\n // state and then pass that state to our proper reducer. This isn't\n // mutating our actual state\n // See: http://stackoverflow.com/a/35641992\n if (action.type === 'CLEAR_ALL') {\n state = undefined;\n } else if (action.type === 'RESET_TO') {\n return cloneObject(action.state);\n }\n\n return appReducer(state, action);\n};\n\nexport default rootReducer;\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/reducers/index.js","export const defaultState = [];\n\nexport default function items(state = defaultState, action) {\n switch (action.type) {\n case 'ADD_ITEM': {\n // Add object to items array\n const newState = [\n ...state,\n {\n id: action.id,\n choiceId: action.choiceId,\n groupId: action.groupId,\n value: action.value,\n label: action.label,\n active: true,\n highlighted: false,\n customProperties: action.customProperties,\n placeholder: action.placeholder || false,\n keyCode: null,\n },\n ];\n\n return newState.map(obj => {\n const item = obj;\n item.highlighted = false;\n return item;\n });\n }\n\n case 'REMOVE_ITEM': {\n // Set item to inactive\n return state.map(obj => {\n const item = obj;\n if (item.id === action.id) {\n item.active = false;\n }\n return item;\n });\n }\n\n case 'HIGHLIGHT_ITEM': {\n const changingItem = state.find(obj => obj.id === action.id);\n if (changingItem && changingItem.highlighted !== action.highlighted) {\n return state.map(obj => {\n const item = obj;\n if (item.id === action.id) {\n item.highlighted = action.highlighted;\n }\n return item;\n });\n }\n return state;\n }\n\n default: {\n return state;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/reducers/items.js","export const defaultState = [];\n\nexport default function groups(state = defaultState, action) {\n switch (action.type) {\n case 'ADD_GROUP': {\n return [\n ...state,\n {\n id: action.id,\n value: action.value,\n active: action.active,\n disabled: action.disabled,\n },\n ];\n }\n\n case 'CLEAR_CHOICES': {\n return [];\n }\n\n default: {\n return state;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/reducers/groups.js","export const defaultState = [];\n\nexport default function choices(state = defaultState, action) {\n switch (action.type) {\n case 'ADD_CHOICE': {\n /*\n A disabled choice appears in the choice dropdown but cannot be selected\n A selected choice has been added to the passed input's value (added as an item)\n An active choice appears within the choice dropdown\n */\n return [\n ...state,\n {\n id: action.id,\n elementId: action.elementId,\n groupId: action.groupId,\n value: action.value,\n label: action.label || action.value,\n disabled: action.disabled || false,\n selected: false,\n active: true,\n score: 9999,\n customProperties: action.customProperties,\n placeholder: action.placeholder || false,\n keyCode: null,\n },\n ];\n }\n\n case 'ADD_ITEM': {\n // If all choices need to be activated\n if (action.activateOptions) {\n return state.map(obj => {\n const choice = obj;\n choice.active = action.active;\n return choice;\n });\n }\n\n // When an item is added and it has an associated choice,\n // we want to disable it so it can't be chosen again\n if (action.choiceId > -1) {\n return state.map(obj => {\n const choice = obj;\n if (choice.id === parseInt(action.choiceId, 10)) {\n choice.selected = true;\n }\n return choice;\n });\n }\n\n return state;\n }\n\n case 'REMOVE_ITEM': {\n // When an item is removed and it has an associated choice,\n // we want to re-enable it so it can be chosen again\n if (action.choiceId > -1) {\n return state.map(obj => {\n const choice = obj;\n if (choice.id === parseInt(action.choiceId, 10)) {\n choice.selected = false;\n }\n return choice;\n });\n }\n\n return state;\n }\n\n case 'FILTER_CHOICES': {\n return state.map(obj => {\n const choice = obj;\n // Set active state based on whether choice is\n // within filtered results\n choice.active = action.results.some(({ item, score }) => {\n if (item.id === choice.id) {\n choice.score = score;\n return true;\n }\n return false;\n });\n\n return choice;\n });\n }\n\n case 'ACTIVATE_CHOICES': {\n return state.map(obj => {\n const choice = obj;\n choice.active = action.active;\n return choice;\n });\n }\n\n case 'CLEAR_CHOICES': {\n return defaultState;\n }\n\n default: {\n return state;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/reducers/choices.js","import Dropdown from './dropdown';\nimport Container from './container';\nimport Input from './input';\nimport List from './list';\nimport WrappedInput from './wrapped-input';\nimport WrappedSelect from './wrapped-select';\n\nexport { Dropdown, Container, Input, List, WrappedInput, WrappedSelect };\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/components/index.js","export default class Dropdown {\n constructor({ element, type, classNames }) {\n Object.assign(this, { element, type, classNames });\n\n this.isActive = false;\n }\n\n /**\n * Determine how far the top of our element is from\n * the top of the window\n * @return {Number} Vertical position\n */\n distanceFromTopWindow() {\n this.dimensions = this.element.getBoundingClientRect();\n this.position = Math.ceil(\n this.dimensions.top + window.pageYOffset + this.element.offsetHeight,\n );\n return this.position;\n }\n\n /**\n * Find element that matches passed selector\n * @return {HTMLElement}\n */\n getChild(selector) {\n return this.element.querySelector(selector);\n }\n\n /**\n * Show dropdown to user by adding active state class\n * @return {Object} Class instance\n * @public\n */\n show() {\n this.element.classList.add(this.classNames.activeState);\n this.element.setAttribute('aria-expanded', 'true');\n this.isActive = true;\n return this;\n }\n\n /**\n * Hide dropdown from user\n * @return {Object} Class instance\n * @public\n */\n hide() {\n this.element.classList.remove(this.classNames.activeState);\n this.element.setAttribute('aria-expanded', 'false');\n this.isActive = false;\n return this;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/components/dropdown.js","import { getWindowHeight, wrap } from '../lib/utils';\n\nexport default class Container {\n constructor({ element, type, classNames, position }) {\n Object.assign(this, { element, classNames, type, position });\n\n this.isOpen = false;\n this.isFlipped = false;\n this.isFocussed = false;\n this.isDisabled = false;\n this.isLoading = false;\n\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n }\n\n /**\n * Add event listeners\n */\n addEventListeners() {\n this.element.addEventListener('focus', this._onFocus);\n this.element.addEventListener('blur', this._onBlur);\n }\n\n /**\n * Remove event listeners\n */\n\n /** */\n removeEventListeners() {\n this.element.removeEventListener('focus', this._onFocus);\n this.element.removeEventListener('blur', this._onBlur);\n }\n\n /**\n * Determine whether container should be flipped\n * based on passed dropdown position\n * @param {Number} dropdownPos\n * @returns\n */\n shouldFlip(dropdownPos, windowHeight = getWindowHeight()) {\n if (dropdownPos === undefined) {\n return false;\n }\n\n // If flip is enabled and the dropdown bottom position is\n // greater than the window height flip the dropdown.\n let shouldFlip = false;\n if (this.position === 'auto') {\n shouldFlip = dropdownPos >= windowHeight;\n } else if (this.position === 'top') {\n shouldFlip = true;\n }\n\n return shouldFlip;\n }\n\n /**\n * Set active descendant attribute\n * @param {Number} activeDescendant ID of active descendant\n */\n setActiveDescendant(activeDescendantID) {\n this.element.setAttribute('aria-activedescendant', activeDescendantID);\n }\n\n /**\n * Remove active descendant attribute\n */\n removeActiveDescendant() {\n this.element.removeAttribute('aria-activedescendant');\n }\n\n open(dropdownPos) {\n this.element.classList.add(this.classNames.openState);\n this.element.setAttribute('aria-expanded', 'true');\n this.isOpen = true;\n\n if (this.shouldFlip(dropdownPos)) {\n this.element.classList.add(this.classNames.flippedState);\n this.isFlipped = true;\n }\n }\n\n close() {\n this.element.classList.remove(this.classNames.openState);\n this.element.setAttribute('aria-expanded', 'false');\n this.removeActiveDescendant();\n this.isOpen = false;\n\n // A dropdown flips if it does not have space within the page\n if (this.isFlipped) {\n this.element.classList.remove(this.classNames.flippedState);\n this.isFlipped = false;\n }\n }\n\n focus() {\n if (!this.isFocussed) {\n this.element.focus();\n }\n }\n\n addFocusState() {\n this.element.classList.add(this.classNames.focusState);\n }\n\n removeFocusState() {\n this.element.classList.remove(this.classNames.focusState);\n }\n\n /**\n * Remove disabled state\n */\n enable() {\n this.element.classList.remove(this.classNames.disabledState);\n this.element.removeAttribute('aria-disabled');\n if (this.type === 'select-one') {\n this.element.setAttribute('tabindex', '0');\n }\n this.isDisabled = false;\n }\n\n /**\n * Set disabled state\n */\n disable() {\n this.element.classList.add(this.classNames.disabledState);\n this.element.setAttribute('aria-disabled', 'true');\n if (this.type === 'select-one') {\n this.element.setAttribute('tabindex', '-1');\n }\n this.isDisabled = true;\n }\n\n wrap(element) {\n wrap(element, this.element);\n }\n\n unwrap(element) {\n // Move passed element outside this element\n this.element.parentNode.insertBefore(element, this.element);\n // Remove this element\n this.element.parentNode.removeChild(this.element);\n }\n\n /**\n * Add loading state to element\n */\n addLoadingState() {\n this.element.classList.add(this.classNames.loadingState);\n this.element.setAttribute('aria-busy', 'true');\n this.isLoading = true;\n }\n\n /**\n * Remove loading state from element\n */\n removeLoadingState() {\n this.element.classList.remove(this.classNames.loadingState);\n this.element.removeAttribute('aria-busy');\n this.isLoading = false;\n }\n\n /**\n * Set focussed state\n */\n _onFocus() {\n this.isFocussed = true;\n }\n\n /**\n * Remove blurred state\n */\n _onBlur() {\n this.isFocussed = false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/components/container.js","import { calcWidthOfInput, stripHTML } from '../lib/utils';\n\nexport default class Input {\n constructor({ element, type, classNames, placeholderValue }) {\n Object.assign(this, { element, type, classNames, placeholderValue });\n\n this.element = element;\n this.classNames = classNames;\n this.isFocussed = this.element === document.activeElement;\n this.isDisabled = false;\n\n // Bind event listeners\n this._onPaste = this._onPaste.bind(this);\n this._onInput = this._onInput.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n }\n\n set placeholder(placeholder) {\n this.element.placeholder = placeholder;\n }\n\n set value(value) {\n this.element.value = `${value}`;\n }\n\n get value() {\n return stripHTML(this.element.value);\n }\n\n addEventListeners() {\n this.element.addEventListener('input', this._onInput);\n this.element.addEventListener('paste', this._onPaste);\n this.element.addEventListener('focus', this._onFocus);\n this.element.addEventListener('blur', this._onBlur);\n\n if (this.element.form) {\n this.element.form.addEventListener('reset', this._onFormReset);\n }\n }\n\n removeEventListeners() {\n this.element.removeEventListener('input', this._onInput);\n this.element.removeEventListener('paste', this._onPaste);\n this.element.removeEventListener('focus', this._onFocus);\n this.element.removeEventListener('blur', this._onBlur);\n\n if (this.element.form) {\n this.element.form.removeEventListener('reset', this._onFormReset);\n }\n }\n\n enable() {\n this.element.removeAttribute('disabled');\n this.isDisabled = false;\n }\n\n disable() {\n this.element.setAttribute('disabled', '');\n this.isDisabled = true;\n }\n\n focus() {\n if (!this.isFocussed) {\n this.element.focus();\n }\n }\n\n blur() {\n if (this.isFocussed) {\n this.element.blur();\n }\n }\n\n /**\n * Set value of input to blank\n * @return {Object} Class instance\n * @public\n */\n clear(setWidth = true) {\n if (this.element.value) {\n this.element.value = '';\n }\n\n if (setWidth) {\n this.setWidth();\n }\n\n return this;\n }\n\n /**\n * Set the correct input width based on placeholder\n * value or input value\n * @return\n */\n setWidth(enforceWidth) {\n const callback = width => {\n this.element.style.width = width;\n };\n\n if (this._placeholderValue) {\n // If there is a placeholder, we only want to set the width of the input when it is a greater\n // length than 75% of the placeholder. This stops the input jumping around.\n const valueHasDesiredLength =\n this.element.value.length >= this._placeholderValue.length / 1.25;\n\n if ((this.element.value && valueHasDesiredLength) || enforceWidth) {\n this.calcWidth(callback);\n }\n } else {\n // If there is no placeholder, resize input to contents\n this.calcWidth(callback);\n }\n }\n\n calcWidth(callback) {\n return calcWidthOfInput(this.element, callback);\n }\n\n setActiveDescendant(activeDescendantID) {\n this.element.setAttribute('aria-activedescendant', activeDescendantID);\n }\n\n removeActiveDescendant() {\n this.element.removeAttribute('aria-activedescendant');\n }\n\n _onInput() {\n if (this.type !== 'select-one') {\n this.setWidth();\n }\n }\n\n _onPaste(event) {\n const { target } = event;\n // Disable pasting into the input if option has been set\n if (target === this.element && this.preventPaste) {\n event.preventDefault();\n }\n }\n\n _onFocus() {\n this.isFocussed = true;\n }\n\n _onBlur() {\n this.isFocussed = false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/components/input.js","import { SCROLLING_SPEED } from '../constants';\n\nexport default class List {\n constructor({ element }) {\n Object.assign(this, { element });\n\n this.scrollPos = this.element.scrollTop;\n this.height = this.element.offsetHeight;\n this.hasChildren = !!this.element.children;\n }\n\n clear() {\n this.element.innerHTML = '';\n }\n\n append(node) {\n this.element.appendChild(node);\n }\n\n getChild(selector) {\n return this.element.querySelector(selector);\n }\n\n scrollToTop() {\n this.element.scrollTop = 0;\n }\n\n scrollToChoice(choice, direction) {\n if (!choice) {\n return;\n }\n\n const dropdownHeight = this.element.offsetHeight;\n const choiceHeight = choice.offsetHeight;\n // Distance from bottom of element to top of parent\n const choicePos = choice.offsetTop + choiceHeight;\n // Scroll position of dropdown\n const containerScrollPos = this.element.scrollTop + dropdownHeight;\n // Difference between the choice and scroll position\n const endpoint =\n direction > 0\n ? this.element.scrollTop + choicePos - containerScrollPos\n : choice.offsetTop;\n\n requestAnimationFrame(time => {\n this._animateScroll(time, endpoint, direction);\n });\n }\n\n _scrollDown(scrollPos, strength, endpoint) {\n const easing = (endpoint - scrollPos) / strength;\n const distance = easing > 1 ? easing : 1;\n\n this.element.scrollTop = scrollPos + distance;\n }\n\n _scrollUp(scrollPos, strength, endpoint) {\n const easing = (scrollPos - endpoint) / strength;\n const distance = easing > 1 ? easing : 1;\n\n this.element.scrollTop = scrollPos - distance;\n }\n\n _animateScroll(time, endpoint, direction) {\n const strength = SCROLLING_SPEED;\n const choiceListScrollTop = this.element.scrollTop;\n let continueAnimation = false;\n\n if (direction > 0) {\n this._scrollDown(choiceListScrollTop, strength, endpoint);\n\n if (choiceListScrollTop < endpoint) {\n continueAnimation = true;\n }\n } else {\n this._scrollUp(choiceListScrollTop, strength, endpoint);\n\n if (choiceListScrollTop > endpoint) {\n continueAnimation = true;\n }\n }\n\n if (continueAnimation) {\n requestAnimationFrame(() => {\n this._animateScroll(time, endpoint, direction);\n });\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/components/list.js","import WrappedElement from './wrapped-element';\nimport { reduceToValues } from './../lib/utils';\n\nexport default class WrappedInput extends WrappedElement {\n constructor({ element, classNames, delimiter }) {\n super({ element, classNames });\n this.delimiter = delimiter;\n }\n\n set value(items) {\n const itemsFiltered = reduceToValues(items);\n const itemsFilteredString = itemsFiltered.join(this.delimiter);\n\n this.element.setAttribute('value', itemsFilteredString);\n this.element.value = itemsFilteredString;\n }\n\n // @todo figure out why we need this? Perhaps a babel issue\n get value() {\n return super.value;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/components/wrapped-input.js","import WrappedElement from './wrapped-element';\nimport templates from './../templates';\n\nexport default class WrappedSelect extends WrappedElement {\n constructor({ element, classNames }) {\n super({ element, classNames });\n }\n\n get placeholderOption() {\n return this.element.querySelector('option[placeholder]');\n }\n\n get optionGroups() {\n return Array.from(this.element.getElementsByTagName('OPTGROUP'));\n }\n\n get options() {\n return Array.from(this.element.options);\n }\n\n set options(options) {\n const fragment = document.createDocumentFragment();\n const addOptionToFragment = data => {\n // Create a standard select option\n const template = templates.option(data);\n // Append it to fragment\n fragment.appendChild(template);\n };\n\n // Add each list item to list\n options.forEach(optionData => addOptionToFragment(optionData));\n\n this.appendDocFragment(fragment);\n }\n\n appendDocFragment(fragment) {\n this.element.innerHTML = '';\n this.element.appendChild(fragment);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/components/wrapped-select.js","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 89\n// module chunks = 0","import { ACTION_TYPES } from './../constants';\n\nexport const addChoice = ({\n value,\n label,\n id,\n groupId,\n disabled,\n elementId,\n customProperties,\n placeholder,\n keyCode,\n}) => ({\n type: ACTION_TYPES.ADD_CHOICE,\n value,\n label,\n id,\n groupId,\n disabled,\n elementId,\n customProperties,\n placeholder,\n keyCode,\n});\n\nexport const filterChoices = results => ({\n type: ACTION_TYPES.FILTER_CHOICES,\n results,\n});\n\nexport const activateChoices = (active = true) => ({\n type: ACTION_TYPES.ACTIVATE_CHOICES,\n active,\n});\n\nexport const clearChoices = () => ({\n type: ACTION_TYPES.CLEAR_CHOICES,\n});\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/actions/choices.js","import { ACTION_TYPES } from './../constants';\n\nexport const addItem = ({\n value,\n label,\n id,\n choiceId,\n groupId,\n customProperties,\n placeholder,\n keyCode,\n}) => ({\n type: ACTION_TYPES.ADD_ITEM,\n value,\n label,\n id,\n choiceId,\n groupId,\n customProperties,\n placeholder,\n keyCode,\n});\n\nexport const removeItem = (id, choiceId) => ({\n type: ACTION_TYPES.REMOVE_ITEM,\n id,\n choiceId,\n});\n\nexport const highlightItem = (id, highlighted) => ({\n type: ACTION_TYPES.HIGHLIGHT_ITEM,\n id,\n highlighted,\n});\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/actions/items.js","import { ACTION_TYPES } from './../constants';\n\n/* eslint-disable import/prefer-default-export */\nexport const addGroup = (value, id, active, disabled) => ({\n type: ACTION_TYPES.ADD_GROUP,\n value,\n id,\n active,\n disabled,\n});\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/actions/groups.js","export const clearAll = () => ({\n type: 'CLEAR_ALL',\n});\n\nexport const resetTo = state => ({\n type: 'RESET_TO',\n state,\n});\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/actions/misc.js","module.exports = __webpack_public_path__ + \"images/wave.png\";","/* eslint-disable */\r\n\r\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\r\nif (!Array.prototype.find) {\r\n Object.defineProperty(Array.prototype, 'find', {\r\n value(predicate) {\r\n // 1. Let O be ? ToObject(this value).\r\n if (this == null) {\r\n throw new TypeError('\"this\" is null or not defined');\r\n }\r\n\r\n const o = Object(this);\r\n\r\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\r\n const len = o.length >>> 0;\r\n\r\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\r\n if (typeof predicate !== 'function') {\r\n throw new TypeError('predicate must be a function');\r\n }\r\n\r\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n const thisArg = arguments[1];\r\n\r\n // 5. Let k be 0.\r\n let k = 0;\r\n\r\n // 6. Repeat, while k < len\r\n while (k < len) {\r\n // a. Let Pk be ! ToString(k).\r\n // b. Let kValue be ? Get(O, Pk).\r\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\r\n // d. If testResult is true, return kValue.\r\n const kValue = o[k];\r\n if (predicate.call(thisArg, kValue, k, o)) {\r\n return kValue;\r\n }\r\n // e. Increase k by 1.\r\n k++;\r\n }\r\n\r\n // 7. Return undefined.\r\n return undefined;\r\n },\r\n configurable: true,\r\n writable: true\r\n });\r\n}\r\n\r\n\r\n// https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\r\nif (!Array.prototype.findIndex) {\r\n Object.defineProperty(Array.prototype, 'findIndex', {\r\n value(predicate) {\r\n // 1. Let O be ? ToObject(this value).\r\n if (this == null) {\r\n throw new TypeError('\"this\" is null or not defined');\r\n }\r\n\r\n const o = Object(this);\r\n\r\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\r\n const len = o.length >>> 0;\r\n\r\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\r\n if (typeof predicate !== 'function') {\r\n throw new TypeError('predicate must be a function');\r\n }\r\n\r\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n const thisArg = arguments[1];\r\n\r\n // 5. Let k be 0.\r\n let k = 0;\r\n\r\n // 6. Repeat, while k < len\r\n while (k < len) {\r\n // a. Let Pk be ! ToString(k).\r\n // b. Let kValue be ? Get(O, Pk).\r\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\r\n // d. If testResult is true, return k.\r\n const kValue = o[k];\r\n if (predicate.call(thisArg, kValue, k, o)) {\r\n return k;\r\n }\r\n // e. Increase k by 1.\r\n k++;\r\n }\r\n\r\n // 7. Return -1.\r\n return -1;\r\n },\r\n configurable: true,\r\n writable: true\r\n });\r\n}\r\n\r\n\r\n// Production steps of ECMA-262, Edition 6, 22.1.2.1\r\nif (!Array.from) {\r\n Array.from = (function () {\r\n const toStr = Object.prototype.toString;\r\n const isCallable = function (fn) {\r\n return typeof fn === 'function' || toStr.call(fn) === '[object Function]';\r\n };\r\n const toInteger = function (value) {\r\n const number = Number(value);\r\n if (isNaN(number)) { return 0; }\r\n if (number === 0 || !isFinite(number)) { return number; }\r\n return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));\r\n };\r\n const maxSafeInteger = Math.pow(2, 53) - 1;\r\n const toLength = function (value) {\r\n const len = toInteger(value);\r\n return Math.min(Math.max(len, 0), maxSafeInteger);\r\n };\r\n\r\n // The length property of the from method is 1.\r\n return function from(arrayLike/* , mapFn, thisArg */) {\r\n // 1. Let C be the this value.\r\n const C = this;\r\n\r\n // 2. Let items be ToObject(arrayLike).\r\n const items = Object(arrayLike);\r\n\r\n // 3. ReturnIfAbrupt(items).\r\n if (arrayLike == null) {\r\n throw new TypeError('Array.from requires an array-like object - not null or undefined');\r\n }\r\n\r\n // 4. If mapfn is undefined, then let mapping be false.\r\n const mapFn = arguments.length > 1 ? arguments[1] : void undefined;\r\n let T;\r\n if (typeof mapFn !== 'undefined') {\r\n // 5. else\r\n // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.\r\n if (!isCallable(mapFn)) {\r\n throw new TypeError('Array.from: when provided, the second argument must be a function');\r\n }\r\n\r\n // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n if (arguments.length > 2) {\r\n T = arguments[2];\r\n }\r\n }\r\n\r\n // 10. Let lenValue be Get(items, \"length\").\r\n // 11. Let len be ToLength(lenValue).\r\n const len = toLength(items.length);\r\n\r\n // 13. If IsConstructor(C) is true, then\r\n // 13. a. Let A be the result of calling the [[Construct]] internal method\r\n // of C with an argument list containing the single item len.\r\n // 14. a. Else, Let A be ArrayCreate(len).\r\n const A = isCallable(C) ? Object(new C(len)) : new Array(len);\r\n\r\n // 16. Let k be 0.\r\n let k = 0;\r\n // 17. Repeat, while k < len… (also steps a - h)\r\n let kValue;\r\n while (k < len) {\r\n kValue = items[k];\r\n if (mapFn) {\r\n A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);\r\n } else {\r\n A[k] = kValue;\r\n }\r\n k += 1;\r\n }\r\n // 18. Let putStatus be Put(A, \"length\", len, true).\r\n A.length = len;\r\n // 20. Return A.\r\n return A;\r\n };\r\n }());\r\n}\r\n\r\nif (!String.prototype.includes) {\r\n String.prototype.includes = function (search, start) {\r\n if (typeof start !== 'number') {\r\n start = 0;\r\n }\r\n\r\n if (start + search.length > this.length) {\r\n return false;\r\n }\r\n return this.indexOf(search, start) !== -1;\r\n };\r\n}\r\n\r\nNumber.isNaN = Number.isNaN || function(value) {\r\n return typeof value === 'number' && isNaN(value);\r\n};\r\n\r\nif (!Object.assign) {\r\n Object.defineProperty(Object, 'assign', {\r\n enumerable: false,\r\n configurable: true,\r\n writable: true,\r\n value: function(target, firstSource) {\r\n 'use strict';\r\n if (target === undefined || target === null) {\r\n throw new TypeError('Cannot convert first argument to object');\r\n }\r\n\r\n var to = Object(target);\r\n for (var i = 1; i < arguments.length; i++) {\r\n var nextSource = arguments[i];\r\n if (nextSource === undefined || nextSource === null) {\r\n continue;\r\n }\r\n\r\n var keysArray = Object.keys(Object(nextSource));\r\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\r\n var nextKey = keysArray[nextIndex];\r\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\r\n if (desc !== undefined && desc.enumerable) {\r\n to[nextKey] = nextSource[nextKey];\r\n }\r\n }\r\n }\r\n return to;\r\n }\r\n });\r\n}\r\n\r\nif (!Element.prototype.matches) {\r\n Element.prototype.matches = Element.prototype.msMatchesSelector ||\r\n Element.prototype.webkitMatchesSelector;\r\n}\r\n\r\nif (!Element.prototype.closest) {\r\n Element.prototype.closest = function(s) {\r\n var el = this;\r\n\r\n do {\r\n if (el.matches(s)) return el;\r\n el = el.parentElement || el.parentNode;\r\n } while (el !== null && el.nodeType === 1);\r\n return null;\r\n };\r\n}\r\n\r\n/**\r\n * From https://github.com/tc39/proposal-object-values-entries/blob/master/polyfill.js\r\n * @type {any}\r\n */\r\nconst reduce = Function.bind.call(Function.call, Array.prototype.reduce);\r\nconst isEnumerable = Function.bind.call(Function.call, Object.prototype.propertyIsEnumerable);\r\nconst concat = Function.bind.call(Function.call, Array.prototype.concat);\r\nconst keys = Reflect.ownKeys;\r\n\r\nif (!Object.values) {\r\n Object.values = function values(O) {\r\n return reduce(keys(O), (v, k) => concat(v, typeof k === 'string' && isEnumerable(O, k) ? [O[k]] : []), []);\r\n };\r\n}\r\n\r\nif (!Object.entries) {\r\n Object.entries = function entries(O) {\r\n return reduce(keys(O), (e, k) => concat(e, typeof k === 'string' && isEnumerable(O, k) ? [[k, O[k]]] : []), []);\r\n };\r\n}\r\n","import anime from 'animejs';\r\nimport BaseComponent from 'foundation/base-component';\r\n\r\nconst DURATION = 300;\r\nconst EASING = 'linear';\r\n\r\nexport default class Accordion extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this._isOpened = this.element.classList.contains('is-opened') || false;\r\n this._isAnimating = false;\r\n this.isExperienceEditor = false;\r\n\r\n this.onChangeSubscribers = [];\r\n\r\n this.onClickTrigger = this.onClickTrigger.bind(this);\r\n this.onKeydownTrigger = this.onKeydownTrigger.bind(this);\r\n this.onAnimationComplete = this.onAnimationComplete.bind(this);\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['trigger', 'content'];\r\n }\r\n\r\n init() {\r\n setContentToState(this.refs.content, this._isOpened);\r\n\r\n if (!Array.isArray(this.refs.trigger)) {\r\n this.refs.trigger = [this.refs.trigger];\r\n }\r\n\r\n this.refs.trigger.forEach((trigger) => {\r\n trigger.setAttribute('aria-expanded', this._isOpened.toString());\r\n });\r\n this.refs.content.setAttribute('aria-hidden', this._isOpened.toString());\r\n\r\n this.addListeners();\r\n }\r\n\r\n addListeners() {\r\n this.refs.trigger.forEach((trigger) => {\r\n this.addListener(trigger, 'click', this.onClickTrigger);\r\n this.addListener(trigger, 'keydown', this.onKeydownTrigger);\r\n });\r\n }\r\n\r\n onClickTrigger(event) {\r\n if (typeof event !== 'undefined' &&\r\n typeof event.preventDefault === 'function'\r\n ) {\r\n event.preventDefault();\r\n }\r\n\r\n if (this._isAnimating) return;\r\n\r\n if (this._isOpened) {\r\n this.collapse();\r\n } else {\r\n this.expand();\r\n }\r\n }\r\n\r\n onKeydownTrigger(event) {\r\n const keyCode = event.which;\r\n\r\n switch (keyCode) {\r\n case 13:\r\n case 32:\r\n if (!this.isExperienceEditor) {\r\n this.onClickTrigger(event);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n onAnimationComplete() {\r\n this._isAnimating = false;\r\n this._isOpened = !this._isOpened;\r\n\r\n this.onChangeSubscribers.forEach((cb) => {\r\n cb(this._isOpened);\r\n });\r\n }\r\n\r\n expand() {\r\n this._isAnimating = true;\r\n this.refs.trigger.forEach((trigger) => {\r\n trigger.setAttribute('aria-expanded', 'true');\r\n });\r\n this.element.classList.add('is-opened');\r\n expand(this.refs.content, this.onAnimationComplete);\r\n }\r\n\r\n collapse() {\r\n this._isAnimating = true;\r\n this.refs.trigger.forEach((trigger) => {\r\n trigger.setAttribute('aria-expanded', 'false');\r\n });\r\n this.element.classList.remove('is-opened');\r\n collapse(this.refs.content, this.onAnimationComplete);\r\n }\r\n\r\n onChange(cb) {\r\n this.onChangeSubscribers.push(cb);\r\n\r\n return () => {\r\n this.onChangeSubscribers = this.onChangeSubscribers.filter((item) => item !== cb);\r\n };\r\n }\r\n}\r\n\r\nexport function setContentToState(content, isExpanded) {\r\n if (isExpanded) {\r\n content.style.overflow = 'visible';\r\n content.style.display = 'block';\r\n content.style.maxHeight = 'none';\r\n } else {\r\n content.style.maxHeight = 0;\r\n content.style.overflow = 'hidden';\r\n content.style.display = 'none';\r\n }\r\n}\r\n\r\nexport function collapse(content, onComplete = null, duration = DURATION, easing = EASING) {\r\n content.style.overflow = 'hidden';\r\n content.style.maxHeight = `${content.scrollHeight}px`;\r\n\r\n anime({\r\n targets: content,\r\n maxHeight: [content.scrollHeight, 0],\r\n duration,\r\n easing,\r\n complete: () => {\r\n setContentToState(content, false);\r\n content.style.overflow = 'hidden';\r\n content.style.display = 'none';\r\n content.style.maxHeight = '0';\r\n\r\n if (onComplete) {\r\n onComplete();\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport function expand(content, onComplete = null, duration = DURATION, easing = EASING) {\r\n content.style.display = 'block';\r\n\r\n anime({\r\n targets: content,\r\n maxHeight: [0, content.scrollHeight],\r\n duration,\r\n easing,\r\n complete: () => {\r\n setContentToState(content, true);\r\n\r\n if (onComplete) {\r\n onComplete();\r\n }\r\n }\r\n });\r\n}\r\n","import Accordion from './js/accordion.component';\r\n\r\nexport default Accordion;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport Accordion from 'Feature/ContentComponents/code/assets/componets/accordion';\r\n\r\nComponentsFactory.getInstance().define('accordion', Accordion);\r\n","import { getWebsiteDomain } from '../../../../../../general/js/helpers';\r\n\r\nexport const isSignInSuccess = (signInFormProps) => {\r\n const {\r\n isSignInSuccessful,\r\n isNewPasswordRequired,\r\n loading\r\n } = signInFormProps;\r\n\r\n return !loading &&\r\n !isNewPasswordRequired &&\r\n isSignInSuccessful;\r\n};\r\n\r\nexport const getLastLogInData = () => {\r\n const date = new Date();\r\n\r\n const lastLoginDate = `${date.getMonth() + 1}/${date.getDate()}/${date.getFullYear()}`;\r\n const lastLoginPlatform = getWebsiteDomain();\r\n const lastLoginDevice = 'Website';\r\n\r\n return {\r\n lastLoginDate,\r\n lastLoginPlatform,\r\n lastLoginDevice\r\n };\r\n};\r\n\r\nexport const hasAgreeToPrivacyPolicyChecked = (optIns) => {\r\n if (optIns.agreedToPrivacyPolicy === undefined || optIns.agreedToPrivacyPolicy === false) return false;\r\n\r\n return true;\r\n};\r\n","import { Auth } from 'aws-amplify';\r\nimport { handleResponse, handleError } from './api-utils';\r\nimport { apiConstants } from './api-constants';\r\n\r\nexport function getSSOSignInFormData() {\r\n return fetch(apiConstants.loadSignInFormDataUrl)\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function getSSORaMembersSignInFormData() {\r\n return fetch(apiConstants.loadRaMembersSignInFormDataUrl)\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function getSSOSignInSuccessFormData() {\r\n return fetch(`${window.location.origin}${apiConstants.signInSuccessFromDataUrl}`)\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function getNewPasswordRequiredFormData() {\r\n return fetch(apiConstants.loadNewPasswordRequiredFormDataUrl)\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function completeNewPassword({ cognitoUser, password }) {\r\n return Auth.completeNewPassword(cognitoUser, password);\r\n}\r\n\r\nexport function signInUser(userSignInData) {\r\n return Auth.signIn(userSignInData.username, userSignInData.password);\r\n}\r\n\r\nexport function signOutUser() {\r\n return Auth.signOut();\r\n}\r\n\r\nexport function updateUserSignInDetails(userDetails, callbackUrl) {\r\n\r\n return Auth.currentSession().then((data) => {\r\n const { accessToken } = data;\r\n return fetch(callbackUrl, {\r\n method: 'PUT',\r\n headers: {\r\n 'content-type': 'application/json',\r\n authorization: `Bearer ${accessToken.jwtToken}`\r\n },\r\n body: JSON.stringify(userDetails)\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n });\r\n}\r\n","export const formMessageConstants = {\r\n\r\n formBannerTitle: 'Join The One Club',\r\n formBannerMessage: 'Creating an account will only take a few minutes and will allow you to buy tickets straight away.',\r\n\r\n yourDetails: 'Your details',\r\n signInHere: 'Sign in here',\r\n signIn: 'Sign in',\r\n reset: 'Reset',\r\n verifyEmail: 'Verify',\r\n\r\n alreadyAMember: 'Already a member?',\r\n rememberPassword: 'Remember your password?',\r\n signInWithDifferentAccount: 'Sign in with a different account?',\r\n resendVerificationEmail: 'Re-send email verification',\r\n\r\n registerHere: 'Register here',\r\n haventGotAnAccount: 'Haven\\'t got an account?',\r\n\r\n forgottenPassword: 'Forgotten password',\r\n forgotPassword: 'Forgot password?',\r\n resetForgottenPassword: 'Please enter your email address to reset the forgotten password.',\r\n\r\n resetPassword: 'Reset password',\r\n resetPasswordFormHeaderLabel: 'Please enter your account\\'s email address, verification code and new password',\r\n newPasswordRequired: 'New password required',\r\n\r\n changePassword: 'Change Password',\r\n saveUserDetails: 'Save details',\r\n editUserDetails: 'Edit details',\r\n upgradeTicketingUserDetails: 'Upgrade to Ticketing',\r\n upgradeMemberPlusUserDetails: 'Upgrade to Member Plus',\r\n seeDetails: 'See details',\r\n viewTickets: 'View tickets',\r\n\r\n noAddressesFound: 'No address has been found.',\r\n addNewAddress: 'Add new address',\r\n saveAddress: 'Save address',\r\n updateAddress: 'Update address',\r\n editAddress: 'Edit address',\r\n removeAddress: 'Remove address',\r\n\r\n cannotRemoveLastAddress: 'Cannot remove the last address.',\r\n cannotRemoveMainAddress: 'Cannot remove the main address',\r\n cannotRemoveShippingAddress: 'Cannot remove the shipping address',\r\n cannotRemoveBillingAddress: 'Cannot remove the billing address',\r\n\r\n emailAddressLabel: 'Email Address',\r\n passwordLabel: 'Password',\r\n confirmPasswordLabel: 'Confirm password',\r\n verificationCodeLabel: 'Verification Code',\r\n\r\n updateNotificationSettings: 'Update Notification Settings',\r\n\r\n submitOneClubFormButtonText: 'JOIN THE ONE CLUB',\r\n updateOneClubDetails: 'Update',\r\n submitDefaultFormButtonText: 'SIGN UP',\r\n submitTicketingFormButtonText: 'SIGN UP',\r\n submitBallotSummaryFormButtonText: 'Update',\r\n upgradeAccount: 'Upgrade',\r\n upgradeAccountResale: 'Submit',\r\n updateAccount: 'Update',\r\n or: 'Or',\r\n socialRegistrationMessage: 'Sign in with a social network',\r\n submitFacebookFormButtonText: 'FACEBOOK',\r\n submitGoogleFormButtonText: 'GOOGLE',\r\n\r\n oneClubRegisterSuccessText: 'Thank you for creating a One Club Account. An email has been sent to the provided email address. After you verify your email address you can access you account.',\r\n ballotOneClubSignInSuccessText: 'You already have a One Club Account. No other action is needed.',\r\n registrationSuccessText: 'Your account has been created successfully.',\r\n forgotPasswordSuccessText: 'An email with more information was sent to the provided address.',\r\n newPasswordRequiredSuccessText: 'Your password has been updated successfully',\r\n updateUserDetailsSuccessText: 'Your details have been updated successfully.',\r\n\r\n somethingWentWrong: 'Something went wrong.',\r\n encounteredAnIssueTO: 'We are experiencing extremely high volumes on the website at the moment. Please try again later.',\r\n encounteredAnIssueWO: 'We are experiencing extremely high volumes on the website at the moment. Please try again later.',\r\n\r\n upgradeToTicketingAccount: 'Complete your profile',\r\n upgradeToTicketingAccountFromResale: 'We just need a few more details…',\r\n personaliseYourExperienceMessage: 'Update your profile so we may enhance and personalise your experience',\r\n alreadyHaveATicketingAccount: 'Already have a Ticketing Account',\r\n\r\n upgradeToOneClubAccount: 'Upgrade to One Club Account',\r\n alreadyHaveAOneClubAccount: 'Already have a One Club Account',\r\n completeToOneClubAccount: 'Complete your One Club profile',\r\n\r\n noOrdersFoundText: 'You do not have any orders in your account',\r\n noProductsFoundText: 'You do not have any products',\r\n noPaymentSummaryFoundText: 'No payment summary found',\r\n noDeliveryDataFoundText: 'No delivery data found',\r\n noHistoryDataFoundText: 'No history data found',\r\n noActionsToPerformText: 'There are no actions to perform',\r\n noUpcomingEventText: 'There is no upcoming event',\r\n\r\n emptyString: '',\r\n defaultNumberValue: 0,\r\n\r\n upcoming: 'Upcoming',\r\n actionsToPerform: 'Actions for you to perform',\r\n actions: 'Actions',\r\n fileSummary: 'File summary',\r\n paymentSummary: 'Payment summary',\r\n installments: 'Installments',\r\n delivery: 'Delivery',\r\n changeHistory: 'Change history',\r\n unitPrice: 'Unit Price',\r\n subTotal: 'Sub-total',\r\n qty: 'Qty',\r\n invoice: 'Invoice',\r\n date: 'Date',\r\n order: 'Order',\r\n type: 'Type',\r\n open: 'Open',\r\n documentsPdf: 'Documents (PDF)',\r\n confirmed: 'Confirmed',\r\n documents: 'Documents',\r\n deliveryMethod: 'Delivery method',\r\n shipmentState: 'Shipment state',\r\n deliveryAddress: 'Delivery address',\r\n totalAmountPaid: 'Total amount paid',\r\n dueDate: 'Due Date',\r\n amountDue: 'Amount Due',\r\n amountPaid: 'Amount Paid',\r\n paymentDate: 'Payment Date',\r\n payByCreditCard: 'Pay by credit card',\r\n amountInvoiced: 'Invoiced amount',\r\n paymentMethod: 'Payment method',\r\n lastStatus: 'Last status',\r\n lastPayment: 'Last payment',\r\n billingContactName: 'Billing Contact Name',\r\n billingContactDetails: 'Billing Contact Details',\r\n billingAddress: 'Billing Address',\r\n addressLine1: 'Address Line 1',\r\n addressLine2: 'Address Line 2',\r\n addressLine3: 'Address Line 3',\r\n city: 'Town/City',\r\n country: 'Country',\r\n county: 'County',\r\n printSummary: 'Print summary',\r\n payReservation: 'Pay reservation',\r\n lastOrderText: 'Your last order',\r\n fileNumber: 'File number',\r\n fileContent: 'File content',\r\n channel: 'Channel',\r\n fileStatus: 'Status',\r\n fileContact: 'File Contact',\r\n lastUpdate: 'Last update',\r\n created: 'Created',\r\n file: 'File',\r\n fileAmount: 'File amount',\r\n expirationDate: 'Expiration Date',\r\n expiryDate: 'Expiry Date',\r\n viewFileDetails: 'View file details',\r\n information: 'Information',\r\n display: 'Display',\r\n close: 'Close',\r\n cancel: 'Cancel',\r\n saveAndContinue: 'Save and Continue',\r\n canceledFiles: 'Canceled files',\r\n hideOldTickets: 'Hide old tickets',\r\n ticketNumber: 'Ticket Number',\r\n firstName: 'First name',\r\n lastName: 'Last name',\r\n verifyEmailSuccessText: 'Your new email was successful validated. Thank you!',\r\n conflictHTTPStatusCode: 409,\r\n removeAddressConfirmationMessage: 'Yes'\r\n};\r\n","export const formDateConstants = {\r\n options: {\r\n weekday: 'long',\r\n year: 'numeric',\r\n month: 'long',\r\n day: 'numeric'\r\n },\r\n region: 'en-US'\r\n};\r\n","export const fileState = {\r\n RUNNING: 0,\r\n SUSPENDED: 1,\r\n IN_OPTION: 2,\r\n IN_RESERVATION: 3,\r\n OPTION_RESERV: 4,\r\n CONFIRMED: 5,\r\n SOLD: 6,\r\n NOT_SOLD: 7,\r\n PART_SOLD: 8,\r\n CANCELED: 9,\r\n ABANDONED: 10,\r\n TECH_ERROR: 11\r\n};\r\n","export const orderType = {\r\n SALE: 0,\r\n REFUND_CLIENT: 1,\r\n REFUND_ORGANIZATION: 2,\r\n EXCHANGE_ORGANIZATION: 3,\r\n EXCHANGE_CLIENT: 4,\r\n RESERVATION: 5,\r\n RENEWAL: 6,\r\n OPTION: 7,\r\n RESERVATION_FREEING: 8,\r\n OPTION_FREEING: 9,\r\n ST_TRANSFER: 10\r\n};\r\n","import { hasValue } from \"../../../../../../general/js/general-helpers\";\r\nimport { formConstants } from \"../../../utils/constants/form-constants\";\r\n\r\nexport const getMainAddress = (currentUser) => {\r\n if (!currentUser || !currentUser.addresses) {\r\n return null;\r\n }\r\n\r\n return currentUser.addresses.find((e) => e.main);\r\n};\r\n\r\nexport const getPropertyFromMainAddress = (mainAddres, propertyName) => {\r\n if (!mainAddres) {\r\n return null;\r\n }\r\n\r\n return mainAddres[propertyName];\r\n};\r\n\r\nexport const getTitle = ( currentUser ) =>\r\n{\r\n if ( !currentUser || !currentUser.title )\r\n {\r\n return null;\r\n }\r\n return currentUser.title;\r\n}\r\n\r\nexport const getDateOfBirth = ( currentUser ) =>\r\n{\r\n if ( !currentUser || !currentUser.dateOfBirth )\r\n {\r\n return null;\r\n }\r\n \r\n const { dateOfBirthDay, dateOfBirthMonth, dateOfBirthYear } = currentUser;\r\n const dayAsNumber = parseInt(dateOfBirthDay, 10);\r\n const monthAsNumber = parseInt(dateOfBirthMonth, 10);\r\n const yearAsNumber = parseInt(dateOfBirthYear, 10);\r\n \r\n return {\r\n year: yearAsNumber,\r\n month: monthAsNumber,\r\n day: dayAsNumber\r\n };\r\n}\r\n\r\nexport const getMobilePhone = ( formData, formConstants ) =>\r\n{\r\n if ( !formData.currentUser || !formData.currentUser.mobilePhone || !formData.currentUser.countryCodeMobilePhonePrefix)\r\n {\r\n return null;\r\n }\r\n\r\n const userMobilePhone = formData.currentUser.mobilePhone;\r\n\r\n const selectedCountry = getSelectedCountry(formData, formConstants);\r\n\r\n if (!hasValue(selectedCountry)){\r\n return null;\r\n }\r\n\r\n return {\r\n phoneNumber: userMobilePhone.replace(selectedCountry.phonePrefix, ''),\r\n selectedCountry: selectedCountry\r\n };\r\n}\r\n\r\nexport const hasOneClubRequiredFields = (currentUser, optIns) => \r\n{\r\n const title = getTitle(currentUser);\r\n const mainAddress = getMainAddress(currentUser);\r\n const dateOfBirth = getDateOfBirth(currentUser);\r\n\r\n if (!hasValue(title) || !hasValue(mainAddress) || !hasValue(dateOfBirth)\r\n || optIns.agreedToTermsAndConditions === undefined || optIns.agreedToTermsAndConditions === false\r\n || optIns.agreedToPrivacyPolicy === undefined || optIns.agreedToPrivacyPolicy === false)\r\n {\r\n return false;\r\n }\r\n\r\n if (hasValue(mainAddress))\r\n {\r\n const country = getPropertyFromMainAddress(mainAddress, formConstants.country);\r\n \r\n if (!hasValue(country))\r\n {\r\n return false;\r\n }\r\n }\r\n \r\n return true;\r\n}\r\n\r\nfunction getSelectedCountry(formData, formConstants) {\r\n let selectedCountry = null;\r\n\r\n if(isFormDataCountryOptionsAvailable(formData, formConstants)){\r\n selectedCountry = formData[formConstants.country].options\r\n .find((country) => !_.isEmpty(country.phonePrefix) &&\r\n country.code === formData.currentUser.countryCodeMobilePhonePrefix);\r\n }\r\n\r\n if (hasValue(selectedCountry))\r\n return selectedCountry;\r\n\r\n if(isFormDataCountryOptionsAvailable(formData, formConstants)){\r\n selectedCountry = formData[formConstants.country].options\r\n .find((country) => !_.isEmpty(country.phonePrefix) &&\r\n formData.currentUser.mobilePhone.includes(country.phonePrefix));\r\n }\r\n\r\n return selectedCountry;\r\n}\r\n\r\nconst isFormDataCountryOptionsAvailable = (formData, formConstants) => {\r\n return hasValue(formData) && hasValue(formConstants) && hasValue(formData[formConstants.country]) && hasValue(formData[formConstants.country].options)\r\n}\r\n","export const CURRENCY_RATIO = 1000;\r\nexport const currencyIsoCodes = Object.freeze({\r\n GBP: 'GBP'\r\n});\r\n\r\nexport default class CurrencyHelper {\r\n static convertToPounds(price) {\r\n return typeof price === 'number' ? `£${(price / CURRENCY_RATIO).toFixed(2)}` : '£';\r\n }\r\n\r\n static getMinusPounds(origin, poundsCount) {\r\n return origin - poundsCount * CURRENCY_RATIO;\r\n }\r\n\r\n static getTotalMcFromTotal(total, masterCardDiscount = 0) {\r\n return Math.max(this.getMinusPounds(total, masterCardDiscount), 0);\r\n }\r\n}\r\n","import _ from 'lodash';\r\nimport get from 'lodash/get';\r\nimport { formConstants } from '../../../components/utils/constants/form-constants';\r\nimport { isEmpty, deepCopyObject } from '../../../components/utils/obj-utils';\r\nimport { formMessageConstants } from '../../../components/utils/constants/form-message-constants';\r\nimport { formDateConstants } from '../../../components/utils/constants/form-date-constants';\r\nimport { fileState } from '../../../components/utils/file-state';\r\nimport { orderType } from '../../../components/utils/order-type';\r\nimport { getDateAsISOString, createDateFromExisting } from '../../../components/utils/date-utils';\r\nimport { ssoFormTypes } from '../../../components/utils/form-types';\r\nimport { domainConstants } from '../../../components/utils/constants/domain-constants';\r\nimport {\r\n isNullOrUndefined,\r\n hasValue\r\n} from '../../../../../general/js/general-helpers';\r\nimport userService from '../../../../../general/js/user/user-service';\r\nimport {\r\n getUserDetailsForSaveToAddressBookRequest,\r\n getSaveUserToAddressBookRequestModel\r\n} from './data-format-helper-dotdigital';\r\nimport { currencyIsoCodes } from '../../../../../general/js/basket/currency-helper';\r\nimport { MembershipTypes } from '../../../../../general/js/utils';\r\n\r\nexport function getFormattedUserRegistrationData(userRegistrationData) {\r\n const { membership } = userRegistrationData;\r\n\r\n if (membership === MembershipTypes.OneClub) {\r\n return getFormattedOneClubUserRegistrationData(userRegistrationData);\r\n }\r\n\r\n if (userService.hasTicketingAccount(userRegistrationData)) {\r\n if (userRegistrationData[formConstants.raMemberId] === null || userRegistrationData[formConstants.raMemberId] === undefined) {\r\n return getFormattedTicketingRegistrationData(userRegistrationData);\r\n }\r\n return getFormattedRaMembersRegistrationData(userRegistrationData);\r\n }\r\n\r\n return getFormattedDefaultUserRegistrationData(userRegistrationData);\r\n}\r\n\r\nfunction getFormattedOneClubUserRegistrationData(userRegistrationData) {\r\n const { membership } = userRegistrationData;\r\n const selectedVenues = userRegistrationData[formConstants.venues];\r\n const selectedFavoritePlayer = userRegistrationData[formConstants.favoritePlayer];\r\n\r\n let activeMemberships;\r\n if (userRegistrationData.mastercard) {\r\n activeMemberships = `${membership};${MembershipTypes.OneClubAdvantage}`;\r\n } else {\r\n activeMemberships = membership;\r\n }\r\n\r\n return {\r\n password: userRegistrationData[formConstants.password],\r\n reCaptcha: userRegistrationData[formConstants.reCaptcha],\r\n formType: userRegistrationData[formConstants.registerFormData][formConstants.formType],\r\n user: {\r\n membership: activeMemberships,\r\n title: userRegistrationData[formConstants.title],\r\n email: getFormattedEmailRemoveSpaces(userRegistrationData[formConstants.emailAddress]),\r\n firstName: userRegistrationData[formConstants.firstName],\r\n lastName: userRegistrationData[formConstants.lastName],\r\n addresses: [{\r\n postcode: userRegistrationData[formConstants.postcode],\r\n country: userRegistrationData[formConstants.country],\r\n county: userRegistrationData[formConstants.county],\r\n state: userRegistrationData[formConstants.state],\r\n main: true,\r\n shippingAddress: true,\r\n billingAddress: true\r\n }],\r\n mobilePhone: getMobilePhone(userRegistrationData),\r\n countryCodeMobilePhonePrefix: getCountryCodeMobilePhonePrefix(userRegistrationData),\r\n currentWebsite: userRegistrationData[formConstants.ssoDomain],\r\n dateOfBirth: userRegistrationData[formConstants.dateOfBirth] ? userRegistrationData[formConstants.dateOfBirth].toISOString() : null,\r\n optIns: {\r\n optedTheOpenOffersByEmail: !userRegistrationData[formConstants.refuseOffers],\r\n optedPartnerOffersByEmail: userRegistrationData[formConstants.acceptOffers],\r\n agreedToTermsAndConditions: userRegistrationData[formConstants.oneClubTermsAndServices],\r\n agreedToPrivacyPolicy: userRegistrationData[formConstants.oneClubTermsAndServices]\r\n },\r\n interests: {\r\n favoritePlayer: _.isEmpty(selectedFavoritePlayer) ? formMessageConstants.emptyString : selectedFavoritePlayer,\r\n venues: _.isEmpty(selectedVenues) ? [] : selectedVenues\r\n },\r\n preferences: {\r\n championships: getDefaultChampionships(userRegistrationData.registerFormData),\r\n interests: getDefaultInterests(userRegistrationData.registerFormData)\r\n },\r\n zoneInfo: getUserZoneInfo(userRegistrationData.registerFormData),\r\n }\r\n };\r\n}\r\n\r\nfunction getFormattedTicketingRegistrationData(userRegistrationData) {\r\n const { membership } = userRegistrationData;\r\n let formType = 0;\r\n if (userRegistrationData[formConstants.registerFormData] === null || userRegistrationData[formConstants.registerFormData] === undefined) {\r\n formType = ssoFormTypes.TicketingRegister;\r\n } else {\r\n formType = userRegistrationData[formConstants.registerFormData][formConstants.formType] == null ? ssoFormTypes.TicketingRegister : userRegistrationData[formConstants.registerFormData][formConstants.formType];\r\n }\r\n\r\n let activeMemberships;\r\n if (userRegistrationData.mastercard) {\r\n activeMemberships = `${membership};${MembershipTypes.OneClubAdvantage}`;\r\n } else {\r\n activeMemberships = membership;\r\n }\r\n\r\n return {\r\n password: userRegistrationData[formConstants.password],\r\n reCaptcha: userRegistrationData[formConstants.reCaptcha],\r\n formType,\r\n user: {\r\n membership: activeMemberships,\r\n title: userRegistrationData[formConstants.title],\r\n email: getFormattedEmailRemoveSpaces(userRegistrationData[formConstants.emailAddress]),\r\n firstName: userRegistrationData[formConstants.firstName],\r\n lastName: userRegistrationData[formConstants.lastName],\r\n addresses: [{\r\n addressLine1: userRegistrationData[formConstants.addressLine1],\r\n addressLine2: userRegistrationData[formConstants.addressLine2],\r\n addressLine3: userRegistrationData[formConstants.addressLine3],\r\n postcode: userRegistrationData[formConstants.postcode],\r\n city: userRegistrationData[formConstants.city],\r\n country: userRegistrationData[formConstants.country],\r\n county: userRegistrationData[formConstants.county],\r\n state: userRegistrationData[formConstants.state],\r\n main: true,\r\n shippingAddress: true,\r\n billingAddress: true\r\n }],\r\n mobilePhone: getMobilePhone(userRegistrationData),\r\n countryCodeMobilePhonePrefix: getCountryCodeMobilePhonePrefix(userRegistrationData),\r\n currentWebsite: userRegistrationData[formConstants.ssoDomain],\r\n dateOfBirth: userRegistrationData[formConstants.dateOfBirth] ? userRegistrationData[formConstants.dateOfBirth].toISOString() : null,\r\n optIns: {\r\n optedTheOpenOffersByEmail: !userRegistrationData[formConstants.refuseOffers],\r\n optedPartnerOffersByEmail: userRegistrationData[formConstants.acceptOffers],\r\n agreedToTermsAndConditions: userRegistrationData[formConstants.oneClubTermsAndServices],\r\n agreedToPrivacyPolicy: userRegistrationData[formConstants.privacyPolicy]\r\n },\r\n preferences: {\r\n championships: getDefaultChampionships(userRegistrationData),\r\n interests: getDefaultInterests(userRegistrationData)\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction getFormattedRaMembersRegistrationData(userRegistrationData) {\r\n const { membership } = userRegistrationData;\r\n return {\r\n password: userRegistrationData[formConstants.password],\r\n user: {\r\n membership,\r\n title: userRegistrationData[formConstants.title],\r\n email: userRegistrationData[formConstants.emailAddress].toLowerCase(),\r\n firstName: userRegistrationData[formConstants.firstName],\r\n lastName: userRegistrationData[formConstants.lastName],\r\n addresses: [{\r\n addressLine1: userRegistrationData[formConstants.addressLine1],\r\n addressLine2: userRegistrationData[formConstants.addressLine2],\r\n addressLine3: userRegistrationData[formConstants.addressLine3],\r\n postcode: userRegistrationData[formConstants.postcode],\r\n city: userRegistrationData[formConstants.city],\r\n country: userRegistrationData[formConstants.country],\r\n county: userRegistrationData[formConstants.county],\r\n state: userRegistrationData[formConstants.state],\r\n main: true,\r\n shippingAddress: true,\r\n billingAddress: true\r\n }],\r\n mobilePhone: getMobilePhone(userRegistrationData),\r\n raMemberId: userRegistrationData[formConstants.raMemberId],\r\n countryCodeMobilePhonePrefix: getCountryCodeMobilePhonePrefix(userRegistrationData),\r\n currentWebsite: userRegistrationData[formConstants.ssoDomain],\r\n dateOfBirth: userRegistrationData[formConstants.dateOfBirth] ? userRegistrationData[formConstants.dateOfBirth].toISOString() : null,\r\n optIns: {\r\n optedTheOpenOffersByEmail: !userRegistrationData[formConstants.refuseOffers],\r\n optedPartnerOffersByEmail: userRegistrationData[formConstants.acceptOffers],\r\n agreedToTermsAndConditions: true,\r\n agreedToPrivacyPolicy: userRegistrationData[formConstants.privacyPolicy]\r\n },\r\n preferences: {\r\n championships: getDefaultChampionships(userRegistrationData),\r\n interests: getDefaultInterests(userRegistrationData)\r\n },\r\n zoneInfo: getUserZoneInfo(userRegistrationData.registerFormData)\r\n }\r\n };\r\n}\r\n\r\nfunction getFormattedDefaultUserRegistrationData(userRegistrationData) {\r\n const { membership } = userRegistrationData;\r\n const formType = userRegistrationData[formConstants.formType] == null ? ssoFormTypes.DefaultRegister : userRegistrationData[formConstants.formType];\r\n\r\n let activeMemberships;\r\n if (userRegistrationData.mastercard) {\r\n activeMemberships = `${membership};${MembershipTypes.OneClubAdvantage}`;\r\n } else {\r\n activeMemberships = membership;\r\n }\r\n\r\n return {\r\n password: userRegistrationData[formConstants.password],\r\n reCaptcha: userRegistrationData[formConstants.reCaptcha],\r\n formType,\r\n user: {\r\n membership: activeMemberships,\r\n email: getFormattedEmailRemoveSpaces(userRegistrationData[formConstants.emailAddress]),\r\n firstName: userRegistrationData[formConstants.firstName],\r\n lastName: userRegistrationData[formConstants.lastName],\r\n currentWebsite: userRegistrationData[formConstants.ssoDomain],\r\n mobilePhone: getMobilePhone(userRegistrationData),\r\n countryCodeMobilePhonePrefix: getCountryCodeMobilePhonePrefix(userRegistrationData),\r\n optIns: {\r\n optedTheOpenOffersByEmail: !userRegistrationData[formConstants.refuseOffers],\r\n optedPartnerOffersByEmail: userRegistrationData[formConstants.acceptOffers],\r\n agreedToTermsAndConditions: userRegistrationData[formConstants.oneClubTermsAndServices],\r\n agreedToPrivacyPolicy: userRegistrationData[formConstants.oneClubTermsAndServices]\r\n },\r\n preferences: {\r\n championships: getDefaultChampionships(userRegistrationData),\r\n interests: getDefaultInterests(userRegistrationData)\r\n }\r\n }\r\n };\r\n}\r\n\r\nexport function getFormattedUserForgotPasswordData(userForgotPasswordData) {\r\n return {\r\n emailAddress: getFormattedEmailRemoveSpaces(userForgotPasswordData[formConstants.emailAddress]),\r\n website: userForgotPasswordData.website\r\n };\r\n}\r\n\r\nexport function getFormattedUserEmailData(emailAddress, ssoDomain) {\r\n return { userEmail: getFormattedEmailRemoveSpaces(emailAddress), website: ssoDomain };\r\n}\r\n\r\nexport function getFormattedUserResetPasswordData(userResetPasswordData) {\r\n return {\r\n emailAddress: getFormattedEmailRemoveSpaces(userResetPasswordData[formConstants.emailAddress]),\r\n confirmationCode: userResetPasswordData[formConstants.verificationCode],\r\n newPassword: userResetPasswordData[formConstants.password],\r\n };\r\n}\r\n\r\nexport function getFormattedUserSignInData(userSignInData) {\r\n const userName = userSignInData[formConstants.userName];\r\n const formattedUserName = userName || getFormattedEmailRemoveSpaces(userSignInData[formConstants.emailAddress]);\r\n\r\n return {\r\n username: formattedUserName,\r\n password: userSignInData[formConstants.password]\r\n };\r\n}\r\n\r\nexport function getFormattedUserDataForUpgradeToTicketingAccount(ssoDomain, currentUser, userDetails) {\r\n const formType = userDetails[formConstants.formType] == null ? ssoFormTypes.UpgradeToTicketingAccount : userDetails[formConstants.formType];\r\n const reCaptcha = userDetails[formConstants.reCaptcha];\r\n currentUser.title = userDetails[formConstants.title];\r\n currentUser.dateOfBirth = userDetails[formConstants.dateOfBirth] ? userDetails[formConstants.dateOfBirth].toISOString() : null;\r\n\r\n currentUser.addresses = updateMainAddress(userDetails, currentUser.addresses);\r\n\r\n currentUser.mobilePhone = getMobilePhone(userDetails);\r\n currentUser.countryCodeMobilePhonePrefix = getCountryCodeMobilePhonePrefix(userDetails);\r\n\r\n currentUser.interests = updateInterests(userDetails, currentUser.interests);\r\n\r\n return { user: currentUser, formType, reCaptcha };\r\n}\r\n\r\nfunction updateInterests(userDetails, existingInterests) {\r\n if (!existingInterests) {\r\n existingInterests = {\r\n favoritePlayer: '',\r\n venues: []\r\n };\r\n }\r\n\r\n const selectedFavoritePlayer = userDetails[formConstants.favoritePlayer] || existingInterests.favoritePlayer;\r\n const selectedVenues = userDetails[formConstants.venues] || existingInterests.venues;\r\n\r\n return {\r\n favoritePlayer: _.isEmpty(selectedFavoritePlayer) ? formMessageConstants.emptyString : selectedFavoritePlayer,\r\n venues: _.isEmpty(selectedVenues) ? [] : selectedVenues\r\n };\r\n}\r\n\r\nexport function getFormattedUserDataForUpgradeToOneClubAccount(currentUser, userDetails) {\r\n const { activeMemberships } = userDetails;\r\n\r\n const uniqueMemberships = addMembershipType(activeMemberships, MembershipTypes.OneClub);\r\n const formType = getUpgradeToOneClubFormType(userDetails);\r\n const reCaptcha = get(userDetails, formConstants.reCaptcha, undefined);\r\n\r\n // Data to upgrade from ticketing to one club\r\n currentUser.interests = updateInterests(userDetails, currentUser.interests);\r\n\r\n // Data to upgrade from default to one club\r\n currentUser.membership = uniqueMemberships;\r\n currentUser.title = userDetails[formConstants.title] || currentUser[formConstants.title];\r\n currentUser.dateOfBirth = userDetails[formConstants.dateOfBirth] ? userDetails[formConstants.dateOfBirth].toISOString() : currentUser[formConstants.dateOfBirth];\r\n currentUser.addresses = updateMainAddress(userDetails, currentUser.addresses);\r\n\r\n currentUser.mobilePhone = getMobilePhone(userDetails);\r\n currentUser.countryCodeMobilePhonePrefix = getCountryCodeMobilePhonePrefix(userDetails);\r\n\r\n currentUser.optIns.agreedToTermsAndConditions = userDetails.oneClubTermsAndServices;\r\n currentUser.optIns.agreedToPrivacyPolicy = userDetails.oneClubTermsAndServices;\r\n\r\n return { user: currentUser, formType, reCaptcha };\r\n}\r\n\r\nexport function getFormattedUserDetailsData(userRegistrationData, accountData) {\r\n const { membership } = accountData;\r\n const copyOfAccountData = deepCopyObject(accountData);\r\n\r\n copyOfAccountData.addresses = updateMainAddress(userRegistrationData, copyOfAccountData.addresses);\r\n\r\n const optedTheOpenOffersByEmail = !userRegistrationData[formConstants.refuseOffers];\r\n const optedPartnerOffersByEmail = userRegistrationData[formConstants.acceptOffers];\r\n const preferenceCentre =\r\n getPreferenceCentreBasedOnOptIns(accountData.preferences, optedTheOpenOffersByEmail, optedPartnerOffersByEmail);\r\n\r\n const user = {\r\n membership,\r\n title: userRegistrationData[formConstants.title],\r\n email: getFormattedEmailRemoveSpaces(userRegistrationData[formConstants.emailAddress]),\r\n firstName: userRegistrationData[formConstants.firstName],\r\n lastName: userRegistrationData[formConstants.lastName],\r\n addresses: copyOfAccountData.addresses,\r\n raMemberId: copyOfAccountData.raMemberId,\r\n mobilePhone: getMobilePhone(userRegistrationData),\r\n countryCodeMobilePhonePrefix: getCountryCodeMobilePhonePrefix(userRegistrationData),\r\n currentWebsite: userRegistrationData[formConstants.ssoDomain],\r\n dateOfBirth: userRegistrationData[formConstants.dateOfBirth] ?\r\n getDateAsISOString(userRegistrationData[formConstants.dateOfBirth]) :\r\n null,\r\n interests: copyOfAccountData.interests,\r\n optIns: {\r\n optedTheOpenOffersByEmail,\r\n optedPartnerOffersByEmail,\r\n agreedToTermsAndConditions: accountData.optIns.agreedToTermsAndConditions,\r\n agreedToPrivacyPolicy: userRegistrationData[formConstants.privacyPolicy]\r\n },\r\n preferences: preferenceCentre,\r\n };\r\n\r\n return { user };\r\n}\r\n\r\nexport function getFormattedUserSignInDetailsData(lastLoginDate, lastLoginDevice, lastLoginPlatform) {\r\n return { LastLogInDate: lastLoginDate, LastLogInDevice: lastLoginDevice, LastLogInPlatform: lastLoginPlatform };\r\n}\r\n\r\nexport function getBallotFormattedUserDetailsData(userRegistrationData, accountData) {\r\n const { membership, email } = accountData;\r\n const copyOfAccountData = deepCopyObject(accountData);\r\n const formType = userRegistrationData[formConstants.formType] == null ? ssoFormTypes.BallotSummaryForm : userRegistrationData[formConstants.formType];\r\n const reCaptcha = userRegistrationData[formConstants.reCaptcha];\r\n copyOfAccountData.addresses = updateMainAddress(userRegistrationData, copyOfAccountData.addresses);\r\n\r\n const optedTheOpenOffersByEmail = !userRegistrationData[formConstants.refuseOffers];\r\n const optedPartnerOffersByEmail = userRegistrationData[formConstants.acceptOffers];\r\n const preferenceCentre =\r\n getPreferenceCentreBasedOnOptIns(accountData.preferences, optedTheOpenOffersByEmail, optedPartnerOffersByEmail);\r\n\r\n const activeMemberships = getActiveMemberships(membership);\r\n let uniqueMemberships = addMembershipType(activeMemberships, MembershipTypes.OneClub);\r\n\r\n if (userRegistrationData.mastercard) {\r\n uniqueMemberships = addMembershipType(activeMemberships, MembershipTypes.OneClubAdvantage);\r\n }\r\n\r\n const user = {\r\n membership: uniqueMemberships,\r\n title: getValueOrDefault(userRegistrationData[formConstants.title]),\r\n email: email.toLowerCase(),\r\n firstName: userRegistrationData[formConstants.firstName],\r\n lastName: userRegistrationData[formConstants.lastName],\r\n addresses: copyOfAccountData.addresses,\r\n raMemberId: copyOfAccountData.raMemberId,\r\n mobilePhone: getMobilePhone(userRegistrationData),\r\n countryCodeMobilePhonePrefix: getCountryCodeMobilePhonePrefix(userRegistrationData),\r\n currentWebsite: userRegistrationData[formConstants.ssoDomain],\r\n dateOfBirth: userRegistrationData[formConstants.dateOfBirth] ?\r\n getDateAsISOString(userRegistrationData[formConstants.dateOfBirth]) :\r\n null,\r\n interests: copyOfAccountData.interests,\r\n optIns: {\r\n optedTheOpenOffersByEmail,\r\n optedPartnerOffersByEmail,\r\n agreedToTermsAndConditions: userRegistrationData[formConstants.oneClubTermsAndServices],\r\n agreedToPrivacyPolicy: userRegistrationData[formConstants.oneClubTermsAndServices]\r\n },\r\n preferences: preferenceCentre,\r\n };\r\n\r\n return { formType, reCaptcha, user };\r\n}\r\n\r\nexport function getRaMembersFormattedUserDetailsData(userRegistrationData, accountData) {\r\n const { membership, email } = accountData;\r\n const copyOfAccountData = deepCopyObject(accountData);\r\n\r\n copyOfAccountData.addresses = updateMainAddress(userRegistrationData, copyOfAccountData.addresses);\r\n\r\n const optedTheOpenOffersByEmail = !userRegistrationData[formConstants.refuseOffers];\r\n const optedPartnerOffersByEmail = userRegistrationData[formConstants.acceptOffers];\r\n const preferenceCentre =\r\n getPreferenceCentreBasedOnOptIns(accountData.preferences, optedTheOpenOffersByEmail, optedPartnerOffersByEmail);\r\n\r\n const activeMemberships = getActiveMemberships(membership);\r\n const uniqueMemberships = addMembershipType(activeMemberships, MembershipTypes.OneClub);\r\n\r\n const user = {\r\n membership: uniqueMemberships,\r\n title: getValueOrDefault(userRegistrationData[formConstants.title]),\r\n email: email.toLowerCase(),\r\n firstName: userRegistrationData[formConstants.firstName],\r\n lastName: userRegistrationData[formConstants.lastName],\r\n addresses: copyOfAccountData.addresses,\r\n raMemberId: userRegistrationData.raMemberId,\r\n mobilePhone: getMobilePhone(userRegistrationData),\r\n countryCodeMobilePhonePrefix: getCountryCodeMobilePhonePrefix(userRegistrationData),\r\n currentWebsite: userRegistrationData[formConstants.ssoDomain],\r\n dateOfBirth: userRegistrationData[formConstants.dateOfBirth] ?\r\n getDateAsISOString(userRegistrationData[formConstants.dateOfBirth]) :\r\n null,\r\n interests: copyOfAccountData.interests,\r\n optIns: {\r\n optedTheOpenOffersByEmail,\r\n optedPartnerOffersByEmail,\r\n agreedToTermsAndConditions: userRegistrationData[formConstants.oneClubTermsAndServices],\r\n agreedToPrivacyPolicy: userRegistrationData[formConstants.oneClubTermsAndServices]\r\n },\r\n preferences: preferenceCentre,\r\n };\r\n\r\n return { user };\r\n}\r\n\r\nfunction getValueOrDefault(title) {\r\n if (isEmpty(title.defaultValue)) { return title; }\r\n\r\n return title.defaultValue;\r\n}\r\n\r\nexport function getFormattedJoinTheOneClubData(userRegistrationData, accountData) {\r\n const { membership, becomeOneClubMember } = userRegistrationData;\r\n const copyOfAccountData = deepCopyObject(accountData);\r\n const activeMemberships = getActiveMemberships(membership);\r\n let isOneClubMember = membership.includes(MembershipTypes.OneClub);\r\n\r\n copyOfAccountData.addresses = updateMainAddressToJoinOneClub(userRegistrationData, copyOfAccountData.addresses);\r\n\r\n const user = {\r\n membership,\r\n title: userRegistrationData[formConstants.title],\r\n email: getFormattedEmailRemoveSpaces(accountData[formConstants.email]),\r\n firstName: accountData[formConstants.firstName],\r\n lastName: accountData[formConstants.lastName],\r\n addresses: copyOfAccountData.addresses,\r\n raMemberId: accountData.raMemberId,\r\n mobilePhone: accountData.mobilePhone,\r\n countryCodeMobilePhonePrefix: accountData.countryCodeMobilePhonePrefix,\r\n dateOfBirth: userRegistrationData[formConstants.dateOfBirth] ?\r\n getDateAsISOString(userRegistrationData[formConstants.dateOfBirth]) :\r\n accountData.dateOfBirth,\r\n optIns: {\r\n optedTheOpenOffersByEmail: accountData.optIns.optedTheOpenOffersByEmail,\r\n optedPartnerOffersByEmail: accountData.optIns.optedPartnerOffersByEmail,\r\n agreedToTermsAndConditions: userRegistrationData[formConstants.oneClubTermsAndServices],\r\n agreedToPrivacyPolicy: userRegistrationData[formConstants.oneClubTermsAndServices] === true ? userRegistrationData[formConstants.oneClubTermsAndServices] : accountData.optIns.agreedToPrivacyPolicy\r\n },\r\n preferences: accountData.preferences\r\n };\r\n\r\n if (!becomeOneClubMember && isOneClubMember) {\r\n isOneClubMember = false;\r\n const oneClubIndex = activeMemberships.indexOf(MembershipTypes.OneClub);\r\n activeMemberships.splice(oneClubIndex, 1);\r\n user.membership = activeMemberships.join(';');\r\n }\r\n\r\n if (becomeOneClubMember && !isOneClubMember) {\r\n isOneClubMember = true;\r\n activeMemberships.push(MembershipTypes.OneClub);\r\n user.membership = activeMemberships.join(';');\r\n }\r\n\r\n user.interests = updateInterests(userRegistrationData, user.interests);\r\n\r\n return { user };\r\n}\r\n\r\nfunction getActiveMemberships(membership) {\r\n return membership.split(';');\r\n}\r\n\r\nexport function getFormattedNotificationSettingsData(userRegistrationData, accountData) {\r\n const channels = getChannelInterests(userRegistrationData);\r\n\r\n const optedTheOpenOffersByEmail = getOptInBasedOnChannels(accountData.optIns.optedTheOpenOffersByEmail, channels);\r\n const optedPartnerOffersByEmail = getOptInPartnersBasedOnChannels(accountData.optIns.optedPartnerOffersByEmail, channels);\r\n\r\n const user = {\r\n optIns: {\r\n optedTheOpenOffersByEmail,\r\n optedPartnerOffersByEmail\r\n },\r\n preferences: {\r\n championships: getChampionshipInterests(userRegistrationData),\r\n channels,\r\n interests: getUserInterests(userRegistrationData)\r\n }\r\n };\r\n\r\n return user;\r\n}\r\n\r\nfunction getOptInBasedOnChannels(optInValue, channels) {\r\n let value = false;\r\n\r\n Object.keys(channels).forEach((key) => {\r\n if (channels[key]) value = true;\r\n });\r\n\r\n return value;\r\n}\r\n\r\nfunction getOptInPartnersBasedOnChannels(optInValue, channels) {\r\n let value = false;\r\n\r\n Object.keys(channels).forEach((key) => {\r\n if (channels[key]) { value = optInValue; }\r\n });\r\n\r\n return value;\r\n}\r\n\r\nfunction getDefaultChampionships(userRegistrationData) {\r\n const { championshipSection } = userRegistrationData.ssoEmailNotificationSettingsFields;\r\n const { choices } = championshipSection;\r\n\r\n return choices.map((element) => {\r\n return {\r\n id: element.id,\r\n value: true\r\n };\r\n });\r\n}\r\n\r\nfunction getDefaultInterests(userRegistrationData) {\r\n const { interestsSection } = userRegistrationData.ssoEmailNotificationSettingsFields;\r\n const { choices } = interestsSection;\r\n\r\n const obj = {};\r\n\r\n choices.forEach((element) => {\r\n obj[element.id] = true;\r\n });\r\n\r\n return obj;\r\n}\r\n\r\nfunction getChampionshipInterests(userRegistrationData) {\r\n const { championshipSection } = userRegistrationData;\r\n const { choices, defaultValue } = userRegistrationData.formData.championshipSection;\r\n\r\n return choices.map((element) => {\r\n return {\r\n Id: element.id,\r\n Value: isInSelection(element.id, championshipSection, defaultValue)\r\n };\r\n });\r\n}\r\n\r\nfunction isInSelection(id, array, defaultValue) {\r\n let selectedValue = [];\r\n\r\n if (array != null) { selectedValue = array; } else {\r\n selectedValue = defaultValue;\r\n }\r\n\r\n if (selectedValue == null) { return false; }\r\n\r\n const item = selectedValue.find((o) => o.toUpperCase() === id.toUpperCase());\r\n\r\n return !(item == null);\r\n}\r\n\r\nfunction getChannelInterests(userRegistrationData) {\r\n const { channelSection } = userRegistrationData;\r\n const { choices, defaultValue } = userRegistrationData.formData.channelSection;\r\n\r\n const obj = {};\r\n\r\n choices.forEach((element) => {\r\n obj[element.id] = isInSelection(element.id, channelSection, defaultValue);\r\n });\r\n\r\n return obj;\r\n}\r\n\r\nfunction getUserInterests(userRegistrationData) {\r\n const { interestSection } = userRegistrationData;\r\n const { choices, defaultValue } = userRegistrationData.formData.interestSection;\r\n\r\n const obj = {};\r\n\r\n choices.forEach((element) => {\r\n obj[element.id] = isInSelection(element.id, interestSection, defaultValue);\r\n });\r\n\r\n return obj;\r\n}\r\n\r\nfunction getPreferenceCentreBasedOnOptIns(preferences, optedTheOpenOffersByEmail,\r\n optedPartnerOffersByEmail) {\r\n if (optedPartnerOffersByEmail) { return getPreferencesForOptIn(preferences); }\r\n\r\n if (optedTheOpenOffersByEmail) { return preferences; }\r\n\r\n if (preferences.channels == null) { return preferences; }\r\n\r\n preferences = getPreferencesForOptOut(preferences);\r\n\r\n return preferences;\r\n}\r\n\r\nfunction getPreferencesForOptOut(preferences) {\r\n Object.keys(preferences.channels).forEach((key) => {\r\n if (preferences.channels[key] === true) { preferences.channels[key] = false; }\r\n });\r\n\r\n return preferences;\r\n}\r\n\r\nfunction getPreferencesForOptIn(preferences) {\r\n Object.keys(preferences.channels).forEach((key) => {\r\n preferences.channels[key] = true;\r\n });\r\n\r\n return preferences;\r\n}\r\n\r\nfunction updateMainAddress(userRegistrationData, addresses) {\r\n if (isEmpty(addresses)) {\r\n addresses = [];\r\n }\r\n\r\n let mainAddress = addresses.find((address) => address.main);\r\n const isNewAddress = isEmpty(mainAddress);\r\n const mainAddressIndex = isNewAddress ? 0 : getAddressIndex(mainAddress, addresses);\r\n\r\n mainAddress = {\r\n addressLine1: userRegistrationData[formConstants.addressLine1],\r\n addressLine2: userRegistrationData[formConstants.addressLine2],\r\n addressLine3: userRegistrationData[formConstants.addressLine3],\r\n postcode: userRegistrationData[formConstants.postcode],\r\n city: userRegistrationData[formConstants.city],\r\n country: userRegistrationData[formConstants.country],\r\n county: userRegistrationData[formConstants.county],\r\n state: userRegistrationData[formConstants.state],\r\n main: isNewAddress ? true : mainAddress.main,\r\n shippingAddress: isNewAddress ? true : mainAddress.shippingAddress,\r\n billingAddress: isNewAddress ? true : mainAddress.billingAddress\r\n };\r\n\r\n addresses[mainAddressIndex] = mainAddress;\r\n return addresses;\r\n}\r\n\r\nfunction updateMainAddressToJoinOneClub(userRegistrationData, addresses) {\r\n if (isEmpty(addresses)) {\r\n addresses = [];\r\n }\r\n\r\n let mainAddress = addresses.find((address) => address.main);\r\n const isNewAddress = isEmpty(mainAddress);\r\n const mainAddressIndex = isNewAddress ? 0 : getAddressIndex(mainAddress, addresses);\r\n mainAddress = isNewAddress ? {} : mainAddress;\r\n\r\n mainAddress = {\r\n addressLine1: mainAddress[formConstants.addressLine1],\r\n addressLine2: mainAddress[formConstants.addressLine2],\r\n addressLine3: mainAddress[formConstants.addressLine3],\r\n postcode: userRegistrationData[formConstants.postcode],\r\n city: mainAddress[formConstants.city],\r\n country: userRegistrationData[formConstants.country],\r\n county: userRegistrationData[formConstants.county],\r\n state: userRegistrationData[formConstants.state],\r\n main: isNewAddress ? true : mainAddress.main,\r\n shippingAddress: isNewAddress ? true : mainAddress.shippingAddress,\r\n billingAddress: isNewAddress ? true : mainAddress.billingAddress\r\n };\r\n\r\n addresses[mainAddressIndex] = mainAddress;\r\n return addresses;\r\n}\r\n\r\nfunction getAddressIndex(addressForFind, addresses) {\r\n const addressForFindJSON = JSON.stringify(addressForFind);\r\n let addressIndex = -1;\r\n\r\n if (isEmpty(addresses)) {\r\n return -1;\r\n }\r\n\r\n addresses.forEach((address, index) => {\r\n if (addressForFindJSON === JSON.stringify(address)) {\r\n addressIndex = index;\r\n }\r\n });\r\n\r\n return addressIndex;\r\n}\r\n\r\nexport function getFormattedOrders(orders) {\r\n return orders.map((order) => {\r\n if (isEmpty(order.lastUpdate)) {\r\n order.formattedLastUpdate = formMessageConstants.emptyString;\r\n return order;\r\n }\r\n const lastUpdateDate = createDateFromExisting(order.lastUpdate);\r\n order.formattedLastUpdate = getFormattedDate(lastUpdateDate);\r\n order.formattedFileAmount = getFormattedMonetaryAmount(order.fileAmount);\r\n order.orderTypeIndex = orderType[order.orderType];\r\n order.fileStateIndex = fileState[order.status];\r\n return order;\r\n });\r\n}\r\n\r\nexport function getFormattedHomePageTicketsData(ticketsData, ssoDomain) {\r\n ticketsData.actionItems = isEmpty(ticketsData.actionItems) ? [] : ticketsData.actionItems.map((actionItem) => {\r\n if (ssoDomain === domainConstants.theOpen &&\r\n orderType[actionItem.orderType] === orderType.SALE &&\r\n fileState[actionItem.fileState] === fileState.IN_RESERVATION) {\r\n actionItem.orderTypeIndex = orderType.RESERVATION;\r\n } else {\r\n actionItem.orderTypeIndex = orderType[actionItem.orderType];\r\n }\r\n return actionItem;\r\n });\r\n\r\n if (_.isEmpty(ticketsData.lastOrder)) {\r\n ticketsData.lastOrder = {\r\n orderType: formMessageConstants.defaultNumberValue,\r\n fileStateIndex: formMessageConstants.defaultNumberValue,\r\n formattedFileAmount: formMessageConstants.defaultNumberValue\r\n };\r\n }\r\n\r\n ticketsData.lastOrder.orderTypeIndex = orderType[ticketsData.lastOrder.orderType];\r\n ticketsData.lastOrder.fileStateIndex = fileState[ticketsData.lastOrder.status];\r\n ticketsData.lastOrder.formattedFileAmount = getFormattedMonetaryAmount(ticketsData.lastOrder.fileAmount);\r\n return ticketsData;\r\n}\r\n\r\nexport function getFormattedOrderDetails(orderDetails) {\r\n orderDetails.formattedFileAmount = getFormattedMonetaryAmount(orderDetails.fileAmount);\r\n orderDetails.orderTypeIndex = orderType[orderDetails.orderType];\r\n\r\n if (!isEmpty(orderDetails.paymentSummary)) {\r\n orderDetails.paymentSummary.formattedTotalAmountPaid = getFormattedMonetaryAmount(orderDetails.paymentSummary.totalAmountPaid);\r\n orderDetails.paymentSummary.formattedAmountInvoiced = getFormattedMonetaryAmount(orderDetails.paymentSummary.amountInvoiced);\r\n orderDetails.paymentSummary.formattedLastPaymentDate = getFormattedDate(orderDetails.paymentSummary.lastPaymentDate);\r\n orderDetails.paymentSummary.installments = orderDetails.paymentSummary.installments.map((installment) => {\r\n installment.formattedDueDate = getFormattedDate(installment.dueDate);\r\n installment.formattedAmountDue = getFormattedMonetaryAmount(installment.amountDue);\r\n installment.formattedAmountPaid = getFormattedMonetaryAmount(installment.amountPaid);\r\n return installment;\r\n });\r\n }\r\n\r\n orderDetails.delivery = isEmpty(orderDetails.delivery) ? {} : orderDetails.delivery;\r\n\r\n orderDetails.history = isEmpty(orderDetails.history) ? [] : orderDetails.history.map((currentHistory) => {\r\n currentHistory.formattedConfirmed = getFormattedMonetaryAmount(currentHistory.confirmed);\r\n currentHistory.formattedOpen = getFormattedMonetaryAmount(currentHistory.open);\r\n currentHistory.orderTypeIndex = orderType[currentHistory.orderType];\r\n return currentHistory;\r\n });\r\n\r\n orderDetails.files = isEmpty(orderDetails.files) ? [] : orderDetails.files.map((file) => {\r\n file.formattedTotalAmount = getFormattedMonetaryAmount(file.total);\r\n file.fileContentItems = file.fileContentItems.map((fileContentItem) => {\r\n fileContentItem.formattedUnitPrice = getFormattedMonetaryAmount(fileContentItem.unitPrice);\r\n fileContentItem.formattedSubTotal = getFormattedMonetaryAmount(fileContentItem.subtotal);\r\n return fileContentItem;\r\n });\r\n return file;\r\n });\r\n\r\n return orderDetails;\r\n}\r\n\r\nexport function getFormattedMonetaryAmount(amount) {\r\n const amountToFormat = amount || 0;\r\n return new Intl.NumberFormat('en', {\r\n style: 'currency',\r\n currency: currencyIsoCodes.GBP\r\n }).format(amountToFormat);\r\n}\r\n\r\nexport function getFormattedDate(date) {\r\n if (isEmpty(date)) {\r\n return formMessageConstants.emptyString;\r\n }\r\n\r\n const dateToFormat = createDateFromExisting(date);\r\n return new Intl.DateTimeFormat(formDateConstants.region, formDateConstants.options).format(dateToFormat);\r\n}\r\n\r\nexport function getFormattedVerifyEmailData(verifyEmailData) {\r\n return verifyEmailData[formConstants.verificationCode];\r\n}\r\n\r\nfunction getCountryCodeMobilePhonePrefix(data) {\r\n return data[formConstants.mobilePhone] && data[formConstants.mobilePhone].selectedCountry ? data[formConstants.mobilePhone].selectedCountry.code : formMessageConstants.emptyString;\r\n}\r\n\r\nfunction getMobilePhone(data) {\r\n return data[formConstants.mobilePhone] && data[formConstants.mobilePhone].selectedCountry && !isEmpty(data[formConstants.mobilePhone].phoneNumber) ?\r\n `${data[formConstants.mobilePhone].selectedCountry.phonePrefix}${data[formConstants.mobilePhone].phoneNumber}` : formMessageConstants.emptyString;\r\n}\r\n\r\nexport function getFormattedUserDetailsAddressesData(userDetails) {\r\n userDetails.dateOfBirth = getDateAsISOString(userDetails[formConstants.dateOfBirth]);\r\n return { user: userDetails };\r\n}\r\n\r\nexport function getFormattedEmailRemoveSpaces(email) {\r\n const value = isEmpty(email.defaultValue) ? email : email.defaultValue;\r\n\r\n const formattedEmail = value.replace(/ /g, '');\r\n\r\n return formattedEmail.toLowerCase();\r\n}\r\n\r\nexport function getFormattedSaveUserToAddressBookRequest(formData = {}, accountData = {}) {\r\n if (!hasValue(formData) || !hasValue(accountData)) {\r\n return undefined;\r\n }\r\n\r\n const { dotDigitalAddressBookData } = formData;\r\n const { email } = accountData;\r\n\r\n const formattedUserDetails = getUserDetailsForSaveToAddressBookRequest(accountData);\r\n\r\n return getSaveUserToAddressBookRequestModel(formattedUserDetails, email, dotDigitalAddressBookData);\r\n}\r\n\r\nfunction addMembershipType(activeMemberships, membershipToAdd) {\r\n if (!activeMemberships.includes(membershipToAdd)) { activeMemberships.push(membershipToAdd); }\r\n\r\n const uniqueMemberships = activeMemberships.filter((v, i) => activeMemberships.indexOf(v) === i);\r\n\r\n const newMemberships = uniqueMemberships.join(';');\r\n\r\n return newMemberships;\r\n}\r\n\r\nfunction getUserZoneInfo(registerFormData) {\r\n if (registerFormData) { return registerFormData.zoneInfo; }\r\n\r\n return null;\r\n}\r\n\r\nfunction getUpgradeToOneClubFormType(userDetails) {\r\n const { activeMemberships } = userDetails;\r\n const userDetailsFormType = get(userDetails, formConstants.formType, null);\r\n\r\n if (hasValue(activeMemberships) && isNullOrUndefined(userDetailsFormType)) {\r\n const computedFormType = userService.hasTicketingAccount(userDetails) ?\r\n ssoFormTypes.UpgradeToOneClubAccountFromTicketing :\r\n ssoFormTypes.UpgradeToOneClubAccountFromDefault;\r\n\r\n return computedFormType;\r\n }\r\n\r\n return userDetailsFormType;\r\n}\r\n","export const userDataCookieConstants = {\r\n USER_DATA_COOKIE_CHANGE_EVENT: 'userDataCookieChange',\r\n USER_DATA_COOKIE_NAME: window.appState.ssoConfig.cookieStorage.userDataCookieName\r\n};\r\n","import { Auth } from 'aws-amplify';\r\nimport { hasValue, safeParseJSON } from '../../../../../general/js/general-helpers';\r\nimport * as cookieHelper from '../../../helpers/cookie-helper';\r\nimport userService from '../../../../../general/js/user/user-service';\r\nimport { userDataCookieConstants } from './user-data-cookie-constants';\r\nimport eventBus from '../../../../../general/js/event-bus';\r\nimport { MembershipTypes } from '../../../../../general/js/utils';\r\n\r\nexport const getUserDataCookie = () => {\r\n const cookie = cookieHelper.getCookie(userDataCookieConstants.USER_DATA_COOKIE_NAME);\r\n\r\n if (!hasValue(cookie)) {\r\n return undefined;\r\n }\r\n\r\n return safeParseJSON(cookie);\r\n};\r\n\r\nexport const getIsOneClubMemberFromCookie = () => {\r\n const userData = getUserDataCookie();\r\n\r\n if (!hasValue(userData)) {\r\n return false;\r\n }\r\n\r\n return userData.isOneClubMember;\r\n};\r\n\r\nexport const updateUserDataCookie = async (emitEventBusEvent = false, bypassCache = false) => {\r\n await Auth.currentAuthenticatedUser({\r\n bypassCache\r\n })\r\n .then((user) => {\r\n updateUserDetailsCookie(user, emitEventBusEvent);\r\n })\r\n .catch((e) => {\r\n console.log(e);\r\n });\r\n};\r\n\r\nexport const updateUserDetailsCookie = (user, emitEventBusEvent = false) => {\r\n if (!hasValue(user) || !hasValue(user.attributes)) {\r\n return;\r\n }\r\n const { attributes } = user;\r\n const isOneClub = attributes['custom:Membership'].includes(MembershipTypes.OneClub);\r\n const userDataCookieValue = JSON.stringify({\r\n firstName: attributes.given_name,\r\n lastName: attributes.family_name,\r\n isSignedIn: true,\r\n isOneClubMember: isOneClub,\r\n isRandaMember: false,\r\n hasRaMemberId: !!((attributes['custom:RAMemberId'] !== null && attributes['custom:RAMemberId'] !== undefined))\r\n });\r\n\r\n userService.setUserDataCookie(userDataCookieValue);\r\n\r\n if (emitEventBusEvent) {\r\n eventBus.emit(userDataCookieConstants.USER_DATA_COOKIE_CHANGE_EVENT);\r\n }\r\n};\r\n","/* eslint-disable no-dupe-class-members */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable default-case */\r\nimport { Auth, Hub } from 'aws-amplify';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport { AmplifyClient } from 'project/amplify-client';\r\nimport Cookies from 'js-cookie';\r\nimport app from 'general/js/app';\r\nimport _ from 'lodash';\r\nimport { USER_ID, LAST_VISIT_DATE, SECUTIX_CONTACT_ID } from '../../../general/js/user/constants';\r\nimport userService from '../../../general/js/user/user-service';\r\nimport Oauth from '../../sso/components/oauth';\r\nimport { isNullOrUndefined } from '../../../general/js/general-helpers';\r\nimport { getLastLogInData } from '../../sso/components/forms/helpers/form-helpers/sign-in-form-helpers';\r\nimport { getSSOSignInFormData, updateUserSignInDetails } from '../../sso/store/api/sign-in-form-api';\r\nimport { getFormattedUserSignInDetailsData } from '../../sso/store/actions/helpers/data-format-helper';\r\nimport {\r\n MembershipTypes, OauthQueryConstants, checkOauthFlow, setOauthSignOutReturnUrl\r\n} from '../../../general/js/utils';\r\nimport { CookieNames } from '../../../general/js/utils/cookies';\r\nimport { updateUserDetailsCookie } from '../../sso/components/utils/user-data-cookie/user-data-cookie-helpers';\r\nimport * as cookieHelper from '../../sso/helpers/cookie-helper';\r\n\r\nexport default class Account extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.isUseCognito = false;\r\n this.cookie = this.options.cookieName;\r\n this.userOrderHistoryCallbackUrl = this.options.userOrderHistoryCallbackUrl;\r\n this.ssoDomain = this.options.ssoDomain;\r\n\r\n this.init();\r\n this.checkSignIn();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return [\r\n 'signInLink',\r\n 'button',\r\n 'name',\r\n 'signOut'\r\n ];\r\n }\r\n\r\n init() {\r\n this.isUseCognito = this.options.useCognito;\r\n\r\n AmplifyClient.init();\r\n\r\n this.getUserState();\r\n\r\n // This method needed for trigger hide/show tooltip\r\n this.addListener(this.refs.button, 'click', this.onUserButtonClick);\r\n\r\n this.addListener(this.refs.signOut, 'click', this.onSignOut);\r\n this.addListener(this.refs.signInLink, 'click', this.onUserButtonClick);\r\n\r\n this.addListener(document, 'keydown', this.onkeydown);\r\n this.addListener(document, 'click', this.outerClickHandle);\r\n this.addListener(document, 'touchstart', this.outerClickHandle);\r\n this.addListener(document, 'tochDataChanged', this.tochDataChangedHandle);\r\n\r\n Oauth.handleOauthSignedOut({ allowReload: false, purgeValue: true, useDefaultRedirectUri: false });\r\n\r\n if (\r\n checkOauthFlow(OauthQueryConstants.COMPLETE_FORGOT_PASSWORD) ||\r\n checkOauthFlow(OauthQueryConstants.COMPLETE_REGISTER)\r\n ) {\r\n Oauth.handleOauthCompleteFlow();\r\n }\r\n\r\n Hub.listen('auth', ({ payload: { event } }) => {\r\n switch (event) {\r\n case 'signIn':\r\n this.getUserStateCognito();\r\n break;\r\n case 'tokenRefresh':\r\n this.updateLastVisitInfo();\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n\r\n getUserState() {\r\n if (this.isUseCognito) {\r\n this.getUserStateCognito();\r\n } else {\r\n this.getUserStateSecutix();\r\n }\r\n }\r\n\r\n signInLinkShow() {\r\n this.refs.signInLink.classList.add('is-visible');\r\n this.element.classList.remove('is-signed-in');\r\n }\r\n\r\n accountinfoShow(user) {\r\n this.refs.name.forEach((name) => {\r\n name.innerHTML = user;\r\n });\r\n this.refs.button.classList.add('is-visible');\r\n this.element.classList.add('is-signed-in');\r\n\r\n this.refs.signInLink.classList.remove('is-visible');\r\n }\r\n\r\n getUserStateSecutix() {\r\n const cookieStx = Cookies.get(this.cookie);\r\n\r\n if (!cookieStx) {\r\n this.signInLinkShow();\r\n return;\r\n }\r\n\r\n const userData = JSON.parse(cookieStx);\r\n\r\n this.accountinfoShow(userData.firstName);\r\n }\r\n\r\n getUserStateCognito() {\r\n const bypassCache = userService.shouldCheckAuthUser();\r\n Auth.currentAuthenticatedUser({ bypassCache })\r\n .then((user) => {\r\n updateUserDetailsCookie(user);\r\n this.accountinfoShow(user.attributes.given_name);\r\n Oauth.handleOauthSignedIn({ allowReload: false, useDefaultRedirectUri: false });\r\n\r\n userService.setDataInLocalStorage(USER_ID, user.attributes.sub);\r\n cookieHelper.setCookiOnDomain(CookieNames.UserId, user.attributes.sub);\r\n if(bypassCache) {\r\n userService.setCheckedUser();\r\n }\r\n\r\n const ticketingAccountId = user.attributes['custom:TicketingAccountId'];\r\n\r\n if (ticketingAccountId) {\r\n userService.setDataInLocalStorage(SECUTIX_CONTACT_ID, ticketingAccountId);\r\n }\r\n\r\n const newMembershipList = user.attributes['custom:Membership'];\r\n const showOneClubHubLink = newMembershipList.split(';').includes(MembershipTypes.OneClub);\r\n const oldMembershipList = JSON.parse(userService.getDataFromLocalStorage(CookieNames.TOCH_USER_MEMBERSHIPS));\r\n\r\n if (newMembershipList !== oldMembershipList) {\r\n userService.setTOCHUserMembershipsInLocalStorage(JSON.stringify(newMembershipList));\r\n this.updateMyOneClubLink(showOneClubHubLink);\r\n }\r\n })\r\n .catch(() => {\r\n this.signInLinkShow();\r\n });\r\n }\r\n\r\n getUserOrderHistory() {\r\n return Auth.currentAuthenticatedUser()\r\n .then(() => {\r\n userService.loadUserOrderHistory(this.userOrderHistoryCallbackUrl, this.ssoDomain);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n onSignOut = (event) => {\r\n event.preventDefault();\r\n\r\n setOauthSignOutReturnUrl();\r\n\r\n userService.signOut();\r\n\r\n userService.removeDataFromLocalStorage(SECUTIX_CONTACT_ID);\r\n userService.removeDataFromLocalStorage(USER_ID);\r\n\r\n cookieHelper.removeCookie(CookieNames.UserId);\r\n };\r\n\r\n getRedirectUrl() {\r\n if (window.location.href.includes('account/profile')) {\r\n return encodeURIComponent(window.location.origin);\r\n }\r\n\r\n return encodeURIComponent(window.location.href);\r\n }\r\n\r\n onUserButtonClick = () => {\r\n if (!this.refs.tooltip) return;\r\n\r\n if (this.refs.tooltip.classList.contains('is-visible')) {\r\n this.refs.tooltip.classList.remove('is-visible');\r\n } else {\r\n this.refs.tooltip.classList.add('is-visible');\r\n }\r\n };\r\n\r\n onkeydown = (event) => {\r\n if (event.keyCode === 27) {\r\n if (!this.refs.tooltip) return;\r\n this.refs.tooltip.classList.remove('is-visible');\r\n }\r\n };\r\n\r\n outerClickHandle = (event) => {\r\n if (\r\n (this.refs.tooltip && !this.refs.tooltip.contains(event.target)) &&\r\n (this.refs.button && !this.refs.button.contains(event.target)) &&\r\n (this.refs.signInLink && !this.refs.signInLink.contains(event.target))\r\n ) {\r\n this.refs.tooltip.classList.remove('is-visible');\r\n }\r\n };\r\n\r\n tochDataChangedHandle = (event) => {\r\n this.updateMyOneClubLink(event.detail.showOneClubHubLink);\r\n userService.setTOCHUserMembershipsInLocalStorage(JSON.stringify(event.detail.membership));\r\n };\r\n\r\n updateMyOneClubLink(showOneClubHubLink) {\r\n const oneClubHeaderElement = document.getElementById('my-one-club-link');\r\n\r\n if (isNullOrUndefined(oneClubHeaderElement)) {\r\n return;\r\n }\r\n\r\n if (showOneClubHubLink) {\r\n oneClubHeaderElement.classList.remove('hidden');\r\n } else {\r\n oneClubHeaderElement.classList.add('hidden');\r\n }\r\n }\r\n\r\n checkSignIn() {\r\n const userDataCookie = Cookies.get(app.state.userDataCookieName);\r\n if (_.isEmpty(userDataCookie)) {\r\n return;\r\n }\r\n\r\n const userData = JSON.parse(userDataCookie);\r\n if (_.isEmpty(userData)) {\r\n return;\r\n }\r\n\r\n if (!userData.isSignedIn) {\r\n return;\r\n }\r\n\r\n this.getUserOrderHistory();\r\n userService.loadTicketsInfo(this.options.userTicketsCallbackUrl);\r\n\r\n this.element.classList.add('is-signed-in');\r\n this.refs.button.classList.add('is-signed-in');\r\n this.refs.tooltip.classList.add('is-signed-in');\r\n if (!_.isEmpty(this.refs.username)) {\r\n this.refs.username.textContent += ' ' + userData.firstName;\r\n }\r\n }\r\n\r\n needsToUpdateLastVisit() {\r\n const storedLastVisitDate = userService.getDataFromLocalStorage(LAST_VISIT_DATE);\r\n if (storedLastVisitDate) {\r\n const storedDate = new Date(storedLastVisitDate);\r\n const currentDate = new Date();\r\n\r\n if (storedDate.toDateString() === currentDate.toDateString()) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n updateLastVisitInfo() {\r\n const needsUpdate = this.needsToUpdateLastVisit();\r\n\r\n if (!needsUpdate) {\r\n return;\r\n }\r\n\r\n const { lastLoginDate, lastLoginPlatform, lastLoginDevice } = getLastLogInData();\r\n getSSOSignInFormData()\r\n .then((response) => {\r\n const { lastLoggedInDataCallBackUrl } = response.data;\r\n updateUserSignInDetails(\r\n getFormattedUserSignInDetailsData(lastLoginDate, lastLoginDevice, lastLoginPlatform),\r\n lastLoggedInDataCallBackUrl\r\n ).then((updateUserResponse) => {\r\n if (updateUserResponse.hasErrors) return;\r\n userService.setDataInLocalStorage(LAST_VISIT_DATE, lastLoginDate);\r\n })\r\n .catch((updateUserError) => {\r\n console.error(updateUserError);\r\n });\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n needsToUpdateLastVisit() {\r\n const storedLastVisitDate = userService.getDataFromLocalStorage(LAST_VISIT_DATE);\r\n if (storedLastVisitDate) {\r\n const storedDate = new Date(storedLastVisitDate);\r\n const currentDate = new Date();\r\n\r\n if (storedDate.toDateString() === currentDate.toDateString()) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n updateLastVisitInfo() {\r\n const needsUpdate = this.needsToUpdateLastVisit();\r\n\r\n if (!needsUpdate) {\r\n return;\r\n }\r\n\r\n const { lastLoginDate, lastLoginPlatform, lastLoginDevice } = getLastLogInData();\r\n getSSOSignInFormData()\r\n .then((response) => {\r\n const { lastLoggedInDataCallBackUrl } = response.data;\r\n updateUserSignInDetails(\r\n getFormattedUserSignInDetailsData(lastLoginDate, lastLoginDevice, lastLoginPlatform),\r\n lastLoggedInDataCallBackUrl\r\n ).then((updateUserResponse) => {\r\n if (updateUserResponse.hasErrors) return;\r\n userService.setDataInLocalStorage(LAST_VISIT_DATE, lastLoginDate);\r\n })\r\n .catch((updateUserError) => {\r\n console.error(updateUserError);\r\n });\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n}\r\n","import UrlHelper from 'foundation/url-helper';\r\nimport ModalTriggerComponent from '../../modal/js/modal-trigger.component';\r\nimport { QueryConstants } from '../../../general/js/utils/query-constants';\r\n\r\nexport default class ModalTriggerLoginComponent extends ModalTriggerComponent {\r\n getAsyncTargetUrl() {\r\n const asyncUrl = super.getAsyncTargetUrl();\r\n const failedReturnUrlParam = this.getAttribute(this.element, 'failed-return-url-param');\r\n return UrlHelper.getUrlByParams(\r\n asyncUrl,\r\n {\r\n [failedReturnUrlParam]: UrlHelper.getUrlByParams(\r\n UrlHelper.getRelativeUrl(window.location), { [QueryConstants.SHOW_POPUP]: UrlHelper.getUrlByParams(asyncUrl, { status: 'LoginFailed' }) }\r\n )\r\n }\r\n );\r\n }\r\n}\r\n","import { Auth, Hub } from 'aws-amplify';\r\nimport { AmplifyClient } from '../../../project/amplify-client';\r\nimport BaseComponent from '../../../foundation/base-component';\r\nimport userService from '../../../general/js/user/user-service';\r\nimport { isEmpty } from '../../sso/components/utils/obj-utils';\r\n\r\nexport default class OauthHandlerComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init = () => {\r\n AmplifyClient.init();\r\n Hub.listen('auth', ({ payload: { event } }) => {\r\n switch (event) {\r\n case 'signIn':\r\n this.handleCustomOAuthState();\r\n break;\r\n case 'customOAuthState':\r\n this.handleCustomOAuthState();\r\n break;\r\n // case 'signOut':\r\n // this.handleRedirectAfterSignOut();\r\n // break;\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n\r\n handleRedirectAfterSignOut() {\r\n userService.redirectAfterSignOut();\r\n }\r\n\r\n handleCustomOAuthState() {\r\n Auth.currentAuthenticatedUser({ bypassCache: true })\r\n .then(() => {\r\n const returnUrl = userService.getHostedUIReturnUrlFromSessionStorage(true);\r\n\r\n if (!isEmpty(returnUrl) && window.location.href !== returnUrl) {\r\n window.location.href = returnUrl;\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport AccountComponent from './js/account.component';\r\nimport ModalTriggerLoginComponent from './js/modal-trigger-login.component';\r\nimport SSOSignInComponent from './js/sso-sign-in.component';\r\nimport OauthHandlerComponent from './js/oauth-handler.component';\r\n\r\nComponentsFactory.getInstance().define('account', AccountComponent);\r\nComponentsFactory.getInstance().define('modal-trigger-login', ModalTriggerLoginComponent);\r\nComponentsFactory.getInstance().define('sso-sign-in', SSOSignInComponent);\r\nComponentsFactory.getInstance().define('oauth-handler', OauthHandlerComponent);\r\n","import get from 'lodash/get';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport userService from '../../../general/js/user/user-service';\r\nimport createEvent from '../../../general/js/create-event';\r\nimport pageSpinner from '../../../general/js/page-spinner';\r\nimport { redirectTo } from '../../../general/js/utils';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\n\r\nconst INPUTS_SELECTOR = 'input, textarea, select';\r\nconst INPUTS_SELECTOR_EXCLUDED = 'input[type=button], input[type=submit], input[type=reset], input[type=hidden]';\r\n\r\nconst BIND_ATTRIBUTE = 'user-bind';\r\nconst BIND_MULTIPLE_ATTRIBUTE = 'user-bind-multiple';\r\nconst CONDITION_ATTRIBUTE = 'user-if';\r\n\r\nexport default class AccountProfileComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return [];\r\n }\r\n\r\n init() {\r\n pageSpinner.show();\r\n const isLoggedInPromise = userService.isSecuTixLoggedIn();\r\n userService.getCurrentUser().then((user) => {\r\n this.setStylesProfileBlock(user);\r\n this._user = user;\r\n isLoggedInPromise.then((status) => {\r\n this._isLoggedInToSecuTix = status;\r\n this.applyModel();\r\n this.element.classList.add('is-visible');\r\n pageSpinner.hide();\r\n });\r\n }, () => {\r\n this.rejectUser();\r\n });\r\n }\r\n\r\n setStylesProfileBlock(user) {\r\n if (!user.isOneClubMember) return;\r\n this.refs.profileBlock[0].classList.add('is-one-club-member');\r\n this.refs.username.insertAdjacentHTML('afterend', '
one club member
');\r\n }\r\n\r\n rejectUser() {\r\n redirectTo(hasValue(this.options.signInUrl) ? this.options.signInUrl : '/');\r\n }\r\n\r\n isLoggedInToSecuTix() {\r\n return this._isLoggedInToSecuTix;\r\n }\r\n\r\n getModel() {\r\n const user = this._user;\r\n let optedTheOpenOffersByEmail = get(user, 'optIns.optedTheOpenOffersByEmail', true);\r\n if (optedTheOpenOffersByEmail === null) {\r\n optedTheOpenOffersByEmail = true;\r\n }\r\n\r\n return {\r\n ...user,\r\n hasTicketingAccount: userService.hasTicketingAccount(user),\r\n loggedInToSecuTix: this.isLoggedInToSecuTix(),\r\n initials: user.firstName && user.lastName ? `${user.firstName[0]}${user.lastName[0]}` : '',\r\n doNotOptedTheOpenOffersByEmail: !optedTheOpenOffersByEmail\r\n };\r\n }\r\n\r\n applyModel() {\r\n this.applyOneClubStyling();\r\n this.applyConditions();\r\n this.applyBindings();\r\n }\r\n\r\n applyConditions() {\r\n const conditionElements = [...this.element.querySelectorAll(`[${CONDITION_ATTRIBUTE}]`)];\r\n conditionElements.forEach((el) => {\r\n let cond = false;\r\n let inverse = false;\r\n\r\n let prop = el.getAttribute(CONDITION_ATTRIBUTE);\r\n if (prop) {\r\n if (prop[0] === '!') {\r\n inverse = true;\r\n prop = prop.substring(1);\r\n }\r\n cond = this.getModelValue(prop, false);\r\n }\r\n\r\n cond = inverse ? !cond : cond;\r\n if (!cond) {\r\n el.style.display = 'none';\r\n }\r\n });\r\n }\r\n\r\n applyBindings() {\r\n const bindElements = [...this.element.querySelectorAll(`[${BIND_ATTRIBUTE}]`)];\r\n const inputElements = [];\r\n const textElements = [];\r\n\r\n bindElements.forEach((element) => {\r\n if (element.matches(INPUTS_SELECTOR) && !element.matches(INPUTS_SELECTOR_EXCLUDED)) {\r\n inputElements.push(element);\r\n } else {\r\n textElements.push(element);\r\n }\r\n });\r\n\r\n this.applyInputsBindings(inputElements);\r\n this.applyTextBindings(textElements);\r\n }\r\n\r\n applyInputsBindings(elements) {\r\n elements.forEach((el) => {\r\n const prop = el.getAttribute(BIND_ATTRIBUTE);\r\n this.applyInputValue(el, this.getModelValue(prop));\r\n });\r\n }\r\n\r\n applyInputValue(input, value) {\r\n switch (input.type) {\r\n case 'checkbox':\r\n this.applyCheckboxValue(input, value);\r\n break;\r\n case 'radio':\r\n break;\r\n case 'select-multiple':\r\n break;\r\n default:\r\n input.value = value || '';\r\n }\r\n input.dispatchEvent(createEvent('change'));\r\n }\r\n\r\n applyCheckboxValue(input, value) {\r\n if (input.hasAttribute(BIND_MULTIPLE_ATTRIBUTE)) {\r\n const modelValue = value || [];\r\n const inputValue = input.value;\r\n input.checked = modelValue.includes(inputValue);\r\n } else {\r\n input.checked = value || false;\r\n }\r\n }\r\n\r\n getModelValue(prop, defaultValue) {\r\n return get(this.getModel(), prop, defaultValue);\r\n }\r\n\r\n applyTextBindings(elements) {\r\n elements.forEach((el) => {\r\n const prop = el.getAttribute(BIND_ATTRIBUTE);\r\n if (prop) {\r\n el.innerHTML = this.getModelValue(prop, '');\r\n }\r\n });\r\n }\r\n\r\n applyOneClubStyling() {\r\n const { isOneClubMember } = this.getModel();\r\n if (isOneClubMember) {\r\n this.element.classList.add(this.options.oneClubClass);\r\n }\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport AccountProfileComponent from './js/account-profile.component';\r\n\r\nComponentsFactory.getInstance().define('account-profile', AccountProfileComponent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport gtm from 'general/js/gtm';\r\n\r\nconst AlertBar = ({ model }) => {\r\n const onClickLink = () => {\r\n gtm.push('Alert bar', 'Read More', model.title);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {model.title}\r\n  {model.subtitle}\r\n {\r\n model.linkUrl &&\r\n \r\n {model.linkText}\r\n \r\n }\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nAlertBar.propTypes = {\r\n model: PropTypes.shape({\r\n title: PropTypes.string,\r\n subtitle: PropTypes.string,\r\n linkUrl: PropTypes.string,\r\n linkText: PropTypes.string,\r\n })\r\n};\r\n\r\nexport default AlertBar;\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport ArrayHelper from 'foundation/array-helper';\r\nimport ScoringLoader, { endpointNames } from 'general/js/loaders/scoring-loader';\r\nimport AlertBar from './alert-bar';\r\n\r\nclass AlertBarsLayout extends React.Component {\r\n componentDidMount() {\r\n ScoringLoader.subscribe(endpointNames.LIVE_SCANNER);\r\n }\r\n\r\n componentWillUnmount() {\r\n ScoringLoader.unsubscribe(endpointNames.LIVE_SCANNER);\r\n }\r\n\r\n render() {\r\n const { liveScanner } = this.props;\r\n\r\n if (!liveScanner || ArrayHelper.isEmpty(liveScanner.alertBars)) return null;\r\n\r\n return liveScanner.alertBars.map((alertBar) => {\r\n return ;\r\n });\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n liveScanner: state.scoring[endpointNames.LIVE_SCANNER],\r\n});\r\n\r\nconst AlertBarsLayoutContainer = connect(\r\n mapStateToProps,\r\n null\r\n)(AlertBarsLayout);\r\n\r\nexport default AlertBarsLayoutContainer;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport store from 'general/js/store';\r\nimport AlertBarsLayout from './alert-bars-layout';\r\n\r\nclass AlertBarsComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n destroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default AlertBarsComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport AlertBarsComponent from './js/alert-bars.component';\r\n\r\nComponentsFactory.getInstance().define('alert-bars', AlertBarsComponent);\r\n","import axios from 'axios';\r\nimport Cookies from 'js-cookie';\r\nimport BaseComponent from 'foundation/base-component';\r\n\r\nconst COOKIE_MAX_AGE = 2147483647;\r\n\r\nclass AntiForgeryTokenComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n if (!this.options.endpointUrl) {\r\n throw new Error('You must provide endpointUrl');\r\n }\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.updateToken(this.getOldToken());\r\n }\r\n\r\n getOldToken() {\r\n return Cookies.get(this.options.cookieName);\r\n }\r\n\r\n updateToken(oldToken) {\r\n const url = `${this.options.endpointUrl}?oldCookieToken=${oldToken}`;\r\n\r\n axios\r\n .get(url)\r\n .then((response) => {\r\n const { formInputToken, cookieTokenValue } = response.data;\r\n\r\n this.refs.tokenInput.value = formInputToken;\r\n\r\n if (cookieTokenValue !== null) {\r\n Cookies.set(this.options.cookieName, cookieTokenValue, { expires: COOKIE_MAX_AGE, secure: true });\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default AntiForgeryTokenComponent;\r\n","//import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport AntiForgeryTokenComponent from './js/anti-forgery-token.component';\r\n\r\nComponentsFactory.getInstance().define('anti-forgery-token', AntiForgeryTokenComponent);\r\n","export const PRODUCT_TYPE_TICKET = 'Ticket';\r\nexport const PRODUCT_TYPE_HOSPITALITY = 'Hospitality';\r\nexport const PRODUCT_TYPE_PARKING = 'Parking';\r\nexport const PRODUCT_TYPE_EXTRAS = 'Extras';\r\n\r\nexport const PRODUCT_TAG_ADULT = 'Adult';\r\nexport const PRODUCT_TAG_YOUTH = 'Youth';\r\nexport const PRODUCT_TAG_JUNIOR = 'Junior';\r\nexport const PRODUCT_TAG_CAR = 'CarParking';\r\nexport const PRODUCT_TAG_MOTORCYCLE = 'MotorcycleParking';\r\nexport const PRODUCT_TAG_COACH = 'CoachParking';\r\nexport const PRODUCT_TAG_MINIBUS = 'MinibusParking';\r\nexport const PRODUCT_TAG_EXTRAS = 'Extras';\r\nexport const PRODUCT_TAG_SWING_BADGE = 'SwingBadge';\r\nexport const PRODUCT_TAG_SWING_BADGE_GUEST = 'SwingBadgeGuest';\r\nexport const PRODUCT_TAG_SWING_BADGE_ADDITIONAL_GUEST = 'SwingBadgeAdditionalGuest';\r\n\r\nexport const MAX_STANDART_TICKETS = 12;\r\nexport const MAX_STANDART_TICKETS_AVAILABLE = 16;\r\nexport const MAX_STANDART_TICKETS_JUNIOR_AVAILABLE = 4;\r\nexport const MAX_HOSPITALITY_TICKETS = 10;\r\nexport const MAX_HOSPITALITY_TICKETS_AVAILABLE = 10;\r\nexport const MAX_SWING_BADGE_AVAILABLE = 1;\r\nexport const MAX_SWING_BADGE_GUEST_AVAILABLE = 3;\r\nexport const MAX_SWING_BADGE_ADDITIONAL_GUEST_AVAILABLE = 2;\r\nexport const MAX_HOSPITALITY_TICKET_PLUS = 4;\r\nexport const MAX_HOSPITALITY_TICKET_PLUS_EXTRA = 1;\r\n\r\nexport const PRODUCT_TAG_SCORERS_PREMIUM = 'ScorersPremium';\r\nexport const PRODUCT_TAG_ENGRAVERS = 'Engravers';\r\nexport const PRODUCT_TAG_TICKET_PLUS = 'TicketPlus';\r\nexport const PRODUCT_TAG_TICKET_PLUS_EXTRA = 'TicketPlusExtra';\r\nexport const PRODUCT_SECUTIX_ID_ENGRAVERS_SUNDAY = '101322505327';\r\nexport const MAX_SCORERS_PREMIUM_TICKETS_AVAILABLE = 10;\r\n\r\nexport const HOSPITALITY_PRODUCTS = {};\r\n\r\nexport const BASKET_STORAGE_KEY = 'ticketBasket2019';\r\nexport const BALLOT_BASKET_STORAGE_KEY = 'ticketBasketBallot';\r\nexport const BASKET_DATE_CREATED_KEY = 'ticketBasket2019DateCreated';\r\nexport const BALLOT_BASKET_DATE_CREATED_KEY = 'ticketBallotBasketDateCreated';\r\nexport const BALLOT_RESERVED_PRODUCTS_STORAGE_KEY = 'ballotReservedProducts';\r\nexport const BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME = 'ballotOrdersFileNumber';\r\n// 30 days\r\nexport const BASKET_TTL_MS = 2592000000;\r\n\r\nexport const CHECKOUT_URL_KEY = 'checkoutUrl';\r\nexport const DEFAULT_BASKET = {\r\n productGroups: {},\r\n isEmpty: true\r\n};\r\n","import {\r\n MAX_HOSPITALITY_TICKETS, MAX_HOSPITALITY_TICKETS_AVAILABLE,\r\n MAX_STANDART_TICKETS, MAX_STANDART_TICKETS_AVAILABLE, MAX_STANDART_TICKETS_JUNIOR_AVAILABLE, PRODUCT_TAG_ADULT, PRODUCT_TAG_JUNIOR,\r\n PRODUCT_TAG_YOUTH, PRODUCT_TYPE_EXTRAS,\r\n PRODUCT_TYPE_HOSPITALITY,\r\n PRODUCT_TYPE_TICKET,\r\n PRODUCT_TAG_SWING_BADGE,\r\n MAX_SWING_BADGE_AVAILABLE,\r\n PRODUCT_TAG_SWING_BADGE_GUEST,\r\n PRODUCT_TAG_SWING_BADGE_ADDITIONAL_GUEST,\r\n MAX_SWING_BADGE_GUEST_AVAILABLE,\r\n MAX_SWING_BADGE_ADDITIONAL_GUEST_AVAILABLE\r\n} from './constants';\r\n\r\nexport default class ValidationHelper {\r\n static getPreparedProductsList(products) {\r\n const totalSelected = products\r\n .filter((ticket) => ticket.tag === PRODUCT_TAG_ADULT || ticket.tag === PRODUCT_TAG_YOUTH)\r\n .reduce((total, curProducts) => (curProducts.quantity ? total + curProducts.quantity : total), 0);\r\n\r\n products\r\n .sort((a, b) => a.sortOrder - b.sortOrder)\r\n .forEach((product) => {\r\n if (product.type === PRODUCT_TYPE_HOSPITALITY ||\r\n product.type === PRODUCT_TYPE_EXTRAS\r\n ) {\r\n switch (product.tag) {\r\n case PRODUCT_TAG_SWING_BADGE:\r\n product.maxQuantity = MAX_STANDART_TICKETS_AVAILABLE;\r\n product.maxAvailable = MAX_SWING_BADGE_AVAILABLE;\r\n break;\r\n case PRODUCT_TAG_SWING_BADGE_GUEST:\r\n product.maxQuantity = MAX_STANDART_TICKETS_AVAILABLE;\r\n product.maxAvailable = MAX_SWING_BADGE_GUEST_AVAILABLE;\r\n break;\r\n case PRODUCT_TAG_SWING_BADGE_ADDITIONAL_GUEST:\r\n product.maxQuantity = MAX_STANDART_TICKETS_AVAILABLE;\r\n product.maxAvailable = MAX_SWING_BADGE_ADDITIONAL_GUEST_AVAILABLE;\r\n break;\r\n default:\r\n product.maxQuantity = MAX_HOSPITALITY_TICKETS;\r\n }\r\n } else {\r\n product.maxQuantity = MAX_STANDART_TICKETS;\r\n }\r\n\r\n if (product.type === PRODUCT_TYPE_TICKET ||\r\n product.type === PRODUCT_TYPE_HOSPITALITY\r\n ) {\r\n product.maxAvailable = 0;\r\n let totalAvailable = 0;\r\n\r\n if (product.type === PRODUCT_TYPE_TICKET) {\r\n totalAvailable = MAX_STANDART_TICKETS_AVAILABLE - totalSelected - MAX_STANDART_TICKETS_JUNIOR_AVAILABLE;\r\n }\r\n\r\n if (product.type === PRODUCT_TYPE_HOSPITALITY) {\r\n totalAvailable = MAX_HOSPITALITY_TICKETS_AVAILABLE - totalSelected;\r\n }\r\n\r\n product.maxAvailable = product.quantity + totalAvailable;\r\n\r\n if (product.tag === PRODUCT_TAG_JUNIOR) {\r\n product.maxQuantity = MAX_STANDART_TICKETS_JUNIOR_AVAILABLE;\r\n product.maxAvailable = (totalSelected * 2 > MAX_STANDART_TICKETS_JUNIOR_AVAILABLE ? MAX_STANDART_TICKETS_JUNIOR_AVAILABLE : totalSelected * 2);\r\n }\r\n }\r\n });\r\n\r\n return products;\r\n }\r\n\r\n static isNeedResetJunior(updatedProductType, updatedProductTag) {\r\n return (updatedProductType === PRODUCT_TYPE_TICKET &&\r\n (updatedProductTag === PRODUCT_TAG_ADULT || updatedProductTag === PRODUCT_TAG_YOUTH)) ||\r\n (updatedProductType === PRODUCT_TYPE_EXTRAS &&\r\n (updatedProductTag === PRODUCT_TAG_SWING_BADGE));\r\n }\r\n\r\n static resetJuniorProducts(productGroups, setToZero = false) {\r\n Object.keys(productGroups).forEach((groupId) => {\r\n const basketProductGroup = productGroups[groupId];\r\n\r\n const juniorProductsList = basketProductGroup.products.filter((product) =>\r\n (product.type === PRODUCT_TYPE_TICKET &&\r\n product.tag === PRODUCT_TAG_JUNIOR) ||\r\n (product.type === PRODUCT_TYPE_EXTRAS &&\r\n product.tag === PRODUCT_TAG_SWING_BADGE_GUEST));\r\n\r\n juniorProductsList.forEach((juniorProduct) => {\r\n const basketJuniorProduct = basketProductGroup.products.find((curBasketProduct) =>\r\n curBasketProduct.type === juniorProduct.type &&\r\n curBasketProduct.tag === juniorProduct.tag);\r\n\r\n if (basketJuniorProduct) {\r\n if (setToZero) {\r\n basketJuniorProduct.quantity = 0;\r\n } else {\r\n basketJuniorProduct.quantity = 1;\r\n }\r\n }\r\n });\r\n });\r\n }\r\n}\r\n","class ThrottleMessage {\r\n constructor() {\r\n }\r\n\r\n show() {\r\n this.throttleElement = document.querySelector('.throttle');\r\n if (this.throttleElement) {\r\n this.throttleElement.classList.add('is-shown'); \r\n }\r\n }\r\n\r\n hide() {\r\n this.throttleElement = document.querySelector('.throttle');\r\n if (this.throttleElement && this.throttleElement.classList.contains('is-shown'))\r\n {\r\n this.throttleElement.classList.remove('is-shown');\r\n } \r\n }\r\n}\r\n\r\nconst instance = new ThrottleMessage();\r\nexport default instance;","/* eslint-disable no-unused-expressions */\r\n/* eslint-disable consistent-return */\r\nimport api, { isResponseHandled } from '../api';\r\nimport app from '../app';\r\nimport { throttle, THROTTLE_TIME_INTERVAL, THROTTLE_RETRY_ATTEMPTS } from '../helpers';\r\nimport userService from '../user/user-service';\r\nimport { getOauthReturnUrl } from '../utils';\r\n\r\nimport {\r\n BASKET_STORAGE_KEY,\r\n BALLOT_BASKET_STORAGE_KEY,\r\n BASKET_DATE_CREATED_KEY,\r\n BALLOT_BASKET_DATE_CREATED_KEY,\r\n BASKET_TTL_MS,\r\n CHECKOUT_URL_KEY,\r\n DEFAULT_BASKET\r\n} from './constants';\r\n\r\nclass BasketService {\r\n constructor() {\r\n this.onBasketUpdateSubscribers = [];\r\n this.onBallotBasketUpdateSubscribers = [];\r\n this._basket = null;\r\n this._ballotbasket = null;\r\n this._dateCreated = null;\r\n this._ballotBasketDateCreated = null;\r\n }\r\n\r\n getBasketDateCreated(isConfiguredForBallot) {\r\n if (isConfiguredForBallot) {\r\n if (this._ballotBasketDateCreated === null) {\r\n const ballotBasketDateCreated = localStorage.getItem(BALLOT_BASKET_DATE_CREATED_KEY);\r\n if (ballotBasketDateCreated) {\r\n this._ballotBasketDateCreated = parseInt(ballotBasketDateCreated, 10);\r\n }\r\n }\r\n return this._ballotBasketDateCreated;\r\n }\r\n if (this._dateCreated === null) {\r\n const dateCreated = localStorage.getItem(BASKET_DATE_CREATED_KEY);\r\n if (dateCreated) {\r\n this._dateCreated = parseInt(dateCreated, 10);\r\n }\r\n }\r\n return this._dateCreated;\r\n }\r\n\r\n updateBasketDateCreated(isConfiguredForBallot) {\r\n isConfiguredForBallot ? localStorage.setItem(BALLOT_BASKET_DATE_CREATED_KEY, Date.now()) :\r\n localStorage.setItem(BASKET_DATE_CREATED_KEY, Date.now());\r\n }\r\n\r\n getBasket(isConfiguredForBallot) {\r\n if (isConfiguredForBallot) {\r\n if (this._ballotbasket === null) {\r\n const storedProductGroups = JSON.parse(localStorage.getItem(BALLOT_BASKET_STORAGE_KEY));\r\n const ballotBasketDateCreated = this.getBasketDateCreated(isConfiguredForBallot);\r\n\r\n if (storedProductGroups) this.setBasket({ productGroups: storedProductGroups }, isConfiguredForBallot);\r\n else this._ballotbasket = DEFAULT_BASKET;\r\n if (ballotBasketDateCreated && this.isBasketExpired(ballotBasketDateCreated)) this.cleanBasket(isConfiguredForBallot);\r\n }\r\n\r\n return this._ballotbasket;\r\n }\r\n if (this._basket === null) {\r\n const storedProductGroups = JSON.parse(localStorage.getItem(BASKET_STORAGE_KEY));\r\n const dateCreated = this.getBasketDateCreated(isConfiguredForBallot);\r\n\r\n if (storedProductGroups) this.setBasket({ productGroups: storedProductGroups }, isConfiguredForBallot);\r\n else this._basket = DEFAULT_BASKET;\r\n if (dateCreated && this.isBasketExpired(dateCreated)) { this.cleanBasket(isConfiguredForBallot); }\r\n }\r\n\r\n return this._basket;\r\n }\r\n\r\n setBasket(basket, isConfiguredForBallot) {\r\n if (isConfiguredForBallot) {\r\n this._ballotbasket = basket;\r\n this._ballotbasket.isEmpty = this._ballotbasket ? Object.keys(basket.productGroups).length === 0 :\r\n false;\r\n } else {\r\n this._basket = basket;\r\n this._basket.isEmpty = this._basket ? Object.keys(basket.productGroups).length === 0 :\r\n false;\r\n }\r\n }\r\n\r\n isBasketExpired(dateCreated) {\r\n return Date.now() > (dateCreated + BASKET_TTL_MS);\r\n }\r\n\r\n saveProductGroups(productGroups, isConfiguredForBallot) {\r\n if (localStorage) {\r\n const dateCreated = this.getBasketDateCreated(isConfiguredForBallot);\r\n\r\n if (!dateCreated || this.isBasketExpired(dateCreated)) this.updateBasketDateCreated(isConfiguredForBallot);\r\n\r\n (isConfiguredForBallot) ? localStorage.setItem(BALLOT_BASKET_STORAGE_KEY, JSON.stringify(productGroups)) :\r\n localStorage.setItem(BASKET_STORAGE_KEY, JSON.stringify(productGroups));\r\n\r\n this.setBasket({ productGroups }, isConfiguredForBallot);\r\n this.triggerOnBasketUpdate(isConfiguredForBallot);\r\n }\r\n }\r\n\r\n getProductGroups(isConfiguredForBallot) {\r\n return this.getBasket(isConfiguredForBallot).productGroups;\r\n }\r\n\r\n checkout(productGroups, mc) {\r\n const products = Object.keys(productGroups).reduce((result, groupId) => {\r\n const productGroup = productGroups[groupId];\r\n\r\n if (productGroup.products && productGroup.products.length > 0) {\r\n const preparedProducts = productGroup.products.map((product) => ({\r\n type: product.type,\r\n productId: product.productId,\r\n quantity: product.quantity,\r\n passId: product.passId,\r\n audienceSubcategoryId: mc && product.audienceSubcategoryIdMc ?\r\n product.audienceSubcategoryIdMc :\r\n product.audienceSubcategoryId,\r\n }));\r\n\r\n result = [...result, ...preparedProducts];\r\n }\r\n\r\n return result;\r\n }, []);\r\n\r\n return this.throttleCheckout(products);\r\n }\r\n\r\n throttleCheckout(products) {\r\n return new Promise(async (resolve, reject) => {\r\n const token = await userService.getUserAccessToken();\r\n\r\n throttle(() => api.post(app.getRequiredConfig(CHECKOUT_URL_KEY), {\r\n redirectUri: getOauthReturnUrl({ noUrlAnchor: false }),\r\n recievedBasket: products\r\n }, {\r\n headers: {\r\n 'content-type': 'application/json',\r\n authorization: `Bearer ${token}`\r\n }\r\n }), THROTTLE_TIME_INTERVAL, THROTTLE_RETRY_ATTEMPTS)\r\n .then((response) => {\r\n if (!isResponseHandled(response)) {\r\n return reject(new Error('unknown result from async data'));\r\n }\r\n\r\n resolve();\r\n }, (error) => {\r\n if (error && error.code && error.code === 429) {\r\n return reject(new Error('429'));\r\n }\r\n return reject();\r\n });\r\n });\r\n }\r\n\r\n onBasketUpdate(callback) {\r\n callback(this.getBasket(false));\r\n this.onBasketUpdateSubscribers.push(callback);\r\n\r\n return () => {\r\n this.onBasketUpdateSubscribers = this.onBasketUpdateSubscribers.filter((item) =>\r\n item !== callback);\r\n };\r\n }\r\n\r\n onBallotBasketUpdate(callback) {\r\n callback(this.getBasket(true));\r\n this.onBallotBasketUpdateSubscribers.push(callback);\r\n\r\n return () => {\r\n this.onBallotBasketUpdateSubscribers = this.onBallotBasketUpdateSubscribers.filter((item) =>\r\n item !== callback);\r\n };\r\n }\r\n\r\n triggerOnBasketUpdate(isConfiguredForBallot) {\r\n isConfiguredForBallot ? this.onBallotBasketUpdateSubscribers.forEach((cb) => cb(this.getBasket(isConfiguredForBallot))) :\r\n this.onBasketUpdateSubscribers.forEach((cb) => cb(this.getBasket(isConfiguredForBallot)));\r\n }\r\n\r\n cleanBasket(isConfiguredForBallot) {\r\n if (isConfiguredForBallot) {\r\n this._ballotbasket = DEFAULT_BASKET;\r\n if (localStorage) {\r\n localStorage.removeItem(BALLOT_BASKET_STORAGE_KEY);\r\n localStorage.removeItem(BALLOT_BASKET_DATE_CREATED_KEY);\r\n }\r\n } else {\r\n this._basket = DEFAULT_BASKET;\r\n if (localStorage) {\r\n localStorage.removeItem(BASKET_STORAGE_KEY);\r\n localStorage.removeItem(BASKET_DATE_CREATED_KEY);\r\n }\r\n }\r\n\r\n this.triggerOnBasketUpdate(isConfiguredForBallot);\r\n }\r\n}\r\n\r\nexport default new BasketService();\r\n","import React from 'react';\r\nimport Cookies from 'js-cookie';\r\nimport ValidationHelper from './validation-helper';\r\nimport pageSpinner from '../page-spinner';\r\nimport throttleMessage from '../throttle-message';\r\nimport basketService from './basket-service';\r\nimport CurrencyHelper from './currency-helper';\r\nimport { PRODUCT_TAG_TICKET_PLUS, PRODUCT_TAG_TICKET_PLUS_EXTRA, PRODUCT_TYPE_TICKET } from './constants';\r\n\r\nconst TEST_LOCALSTORAGE_KEY = 'oAQNNl0Hd@mH';\r\nconst CHECKOUT_CONFIG_COOKIE = 'checkoutConfig';\r\n\r\nexport default class BasketController extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n const basket = this.getPreparedBasket(basketService.getProductGroups(this.props.isConfiguredForBallot));\r\n this.state = {\r\n basket\r\n };\r\n\r\n this.isCheckoutInProgress = false;\r\n this.setCheckoutConfigCookies();\r\n this.onProductGroupsUpdate = this.onProductGroupsUpdate.bind(this);\r\n this.onUpdateProductQuantity = this.onUpdateProductQuantity.bind(this);\r\n this.onCheckout = this.onCheckout.bind(this);\r\n this.redirectToBasket = this.redirectToBasket.bind(this);\r\n }\r\n\r\n setCheckoutConfigCookies() {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n if (!urlParams.has('checkoutConfig')) {\r\n return;\r\n }\r\n\r\n const checkoutConfigUid = urlParams.get('checkoutConfig');\r\n const regexCookieValidation = /(\\.{2}\\/|\\.\\/|\\.{2}|\\.|\\/)/g;\r\n\r\n if (checkoutConfigUid.match(regexCookieValidation) !== null) {\r\n return;\r\n }\r\n\r\n Cookies.set(CHECKOUT_CONFIG_COOKIE, checkoutConfigUid, { secure: true });\r\n }\r\n\r\n onProductGroupsUpdate(productGroups, resetJunior = false) {\r\n this.setProductGroups(productGroups, resetJunior, true);\r\n }\r\n\r\n setProductGroups(productGroups, resetJunior, setToZero = false) {\r\n if (resetJunior) {\r\n ValidationHelper.resetJuniorProducts(productGroups, setToZero);\r\n }\r\n this.clearEmptyProductGroups(productGroups);\r\n basketService.saveProductGroups(productGroups, this.props.isConfiguredForBallot);\r\n const preparedBasket = this.getPreparedBasket(productGroups);\r\n this.setState({ basket: preparedBasket });\r\n }\r\n\r\n /**\r\n * Remove products which have zero quantity and remove empty product groups as well\r\n * @param productGroups\r\n */\r\n clearEmptyProductGroups(productGroups) {\r\n Object.values(productGroups).forEach((productGroup) => {\r\n productGroup.products = productGroup.products.filter((product) => product.quantity && product.quantity > 0);\r\n if (productGroup.products.length === 0) {\r\n delete productGroups[productGroup.id];\r\n }\r\n });\r\n }\r\n\r\n getPreparedBasket(productGroups) {\r\n let total = 0;\r\n let hasStandardTickets = false;\r\n\r\n Object.keys(productGroups).forEach((productGroupId) => {\r\n let basketProductSum = 0;\r\n // sort\r\n productGroups[productGroupId].products.sort((a, b) => a.sortOrder - b.sortOrder)\r\n .forEach((basketProduct) => {\r\n const productSum = basketProduct.price * basketProduct.quantity;\r\n // add sum to every product in basket\r\n basketProduct.sum = productSum;\r\n // calculate subtotal\r\n basketProductSum += productSum;\r\n\r\n // calculate total\r\n total += productSum;\r\n\r\n if (basketProduct.type === PRODUCT_TYPE_TICKET) {\r\n hasStandardTickets = true;\r\n }\r\n });\r\n productGroups[productGroupId].sum = basketProductSum;\r\n });\r\n\r\n const basket = {\r\n productGroups,\r\n total,\r\n };\r\n\r\n if (hasStandardTickets) {\r\n basket.totalMc = CurrencyHelper.getTotalMcFromTotal(total, this.props.masterCardDiscount);\r\n }\r\n\r\n return basket;\r\n }\r\n\r\n\r\n onUpdateProductQuantity(product, productGroup, quantity) {\r\n const basketProductGroups = this.state.basket.productGroups;\r\n\r\n // add product group to basket if it isn't there yet\r\n if (!basketProductGroups[productGroup.id]) {\r\n basketProductGroups[productGroup.id] = { ...productGroup };\r\n basketProductGroups[productGroup.id].products = [];\r\n }\r\n\r\n const basketProductGroup = basketProductGroups[productGroup.id];\r\n const basketProduct = basketProductGroup.products.find((bProduct) => bProduct.id === product.id);\r\n\r\n if (basketProduct) {\r\n if (basketProduct.tag === PRODUCT_TAG_TICKET_PLUS && quantity === 0) {\r\n const basketProductExtra = basketProductGroup.products.find((bProduct) => bProduct.tag === PRODUCT_TAG_TICKET_PLUS_EXTRA);\r\n\r\n if (basketProductExtra) {\r\n basketProductExtra.quantity = quantity;\r\n }\r\n }\r\n\r\n basketProduct.quantity = quantity;\r\n } else {\r\n // add product with the passed quantity\r\n basketProductGroups[productGroup.id].products.push({\r\n ...product,\r\n quantity\r\n });\r\n }\r\n\r\n this.setProductGroups(basketProductGroups, ValidationHelper.isNeedResetJunior(product.type, product.tag));\r\n }\r\n\r\n onCheckout(mc = false) {\r\n throttleMessage.hide();\r\n\r\n if (!this.isCheckoutInProgress) {\r\n this.isCheckoutInProgress = true;\r\n pageSpinner.show();\r\n basketService.checkout(this.state.basket.productGroups, mc)\r\n .then(() => {\r\n pageSpinner.hide();\r\n this.isCheckoutInProgress = false;\r\n }, (error) => {\r\n pageSpinner.hide();\r\n if (error.message === '429') {\r\n throttleMessage.show();\r\n }\r\n this.isCheckoutInProgress = false;\r\n }).catch(() => {\r\n pageSpinner.hide();\r\n this.isCheckoutInProgress = false;\r\n });\r\n }\r\n }\r\n\r\n redirectToBasket() {\r\n window.location = this.props.basketUrl;\r\n }\r\n\r\n isLocalStorageAvailable() {\r\n try {\r\n localStorage.setItem(TEST_LOCALSTORAGE_KEY, '1');\r\n localStorage.removeItem(TEST_LOCALSTORAGE_KEY);\r\n return true;\r\n } catch (error) {\r\n return false;\r\n }\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n {\r\n this.isLocalStorageAvailable() ?\r\n this.props.render({\r\n basket: this.state.basket,\r\n onProductGroupsUpdate: this.onProductGroupsUpdate,\r\n onUpdateProductQuantity: this.onUpdateProductQuantity,\r\n onCheckout: this.props.redirectToBasketOnPay ? this.redirectToBasket : this.onCheckout\r\n }) :\r\n
\r\n Something went wrong. Sorry for the inconvenience. In case you are using the private mode for your browser, please, try to switch it off.\r\n
\r\n }\r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport CurrencyHelper, { CURRENCY_RATIO, currencyIsoCodes } from '../../../general/js/basket/currency-helper';\r\nimport gtm, { ecommerceEventTypes } from '../../../general/js/gtm';\r\nimport {\r\n PRODUCT_TAG_SCORERS_PREMIUM,\r\n PRODUCT_TAG_ENGRAVERS,\r\n PRODUCT_TAG_CAR,\r\n PRODUCT_TAG_MOTORCYCLE,\r\n PRODUCT_TAG_COACH,\r\n PRODUCT_TAG_MINIBUS,\r\n HOSPITALITY_PRODUCTS\r\n} from '../../../general/js/basket/constants';\r\n\r\nexport default class BasketProduct extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onRemoveClick = this.onRemoveClick.bind(this);\r\n this.onQuantityChange = this.onQuantityChange.bind(this);\r\n this.carProductsArray = [PRODUCT_TAG_CAR, PRODUCT_TAG_MOTORCYCLE, PRODUCT_TAG_COACH, PRODUCT_TAG_MINIBUS];\r\n }\r\n\r\n onQuantityChange(e) {\r\n let quantity = parseInt(e.target.value, 10);\r\n quantity = !Number.isNaN(quantity) ? quantity : 0;\r\n\r\n const product = this.props.product;\r\n const oldQuantity = product.quantity;\r\n\r\n let eventType = '';\r\n let quantityDelta = 0;\r\n\r\n if (quantity > oldQuantity) {\r\n eventType = ecommerceEventTypes.ADD_TO_CART;\r\n quantityDelta = quantity - oldQuantity;\r\n } else if (quantity < oldQuantity) {\r\n eventType = ecommerceEventTypes.REMOVE_FROM_CART;\r\n quantityDelta = oldQuantity - quantity;\r\n }\r\n\r\n const productGroupYear = this.props.productGroup.title.split(' ')[3];\r\n const productPrice = product.price / CURRENCY_RATIO;\r\n\r\n gtm.pushEcommerceEvent(eventType, {\r\n currency: currencyIsoCodes.GBP,\r\n value: productPrice * quantityDelta,\r\n items: [\r\n {\r\n item_id: product.productId,\r\n item_name: `${product.title} ${productGroupYear}`,\r\n price: productPrice,\r\n quantity: quantityDelta\r\n }\r\n ]\r\n });\r\n\r\n this.props.onQuantityUpdate(quantity);\r\n }\r\n\r\n onRemoveClick() {\r\n const product = this.props.product;\r\n const productPrice = product.price / CURRENCY_RATIO;\r\n const productGroupYear = this.props.productGroup.title.split(' ')[3];\r\n\r\n gtm.pushEcommerceEvent(ecommerceEventTypes.REMOVE_FROM_CART, {\r\n currency: currencyIsoCodes.GBP,\r\n value: productPrice * product.quantity,\r\n items: [\r\n {\r\n item_id: product.productId,\r\n item_name: `${product.title} ${productGroupYear}`,\r\n price: productPrice,\r\n quantity: product.quantity\r\n }\r\n ]\r\n });\r\n\r\n this.props.onQuantityUpdate(0);\r\n }\r\n\r\n getProductQuantities(product) {\r\n const result = [];\r\n let startQuantity = 1;\r\n\r\n if (product.tag === PRODUCT_TAG_ENGRAVERS) {\r\n startQuantity = 2;\r\n }\r\n\r\n const hospitalityProduct = HOSPITALITY_PRODUCTS[product.tag];\r\n\r\n if (hospitalityProduct !== undefined) {\r\n if (hospitalityProduct.quantityMultiplier % 2 === 0) {\r\n startQuantity = 2;\r\n }\r\n }\r\n\r\n for (let i = startQuantity; i <= product.maxQuantity; i += startQuantity) {\r\n result.push(i);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n renderControl(product, hasBallotConfiguration) {\r\n return (\r\n !hasBallotConfiguration ?\r\n product.tag === PRODUCT_TAG_SCORERS_PREMIUM ?\r\n \r\n {\r\n {product.quantity}\r\n }\r\n \r\n :\r\n \r\n {\r\n this.getProductQuantities(product).map((quantity) =>\r\n product.maxAvailable}\r\n value={quantity}>{quantity})\r\n }\r\n \r\n\r\n :\r\n (this.carProductsArray.indexOf(product.tag) > -1) ?\r\n this.props.groupHasMoreTypesOfProducts ?\r\n
\r\n {product.quantity}\r\n
\r\n :\r\n \r\n {\r\n this.getProductQuantities(product).map((quantity) =>\r\n product.maxAvailable}\r\n value={quantity}>{quantity})\r\n }\r\n \r\n :\r\n
\r\n {product.quantity}\r\n
\r\n );\r\n }\r\n\r\n render() {\r\n const { product } = this.props;\r\n return (\r\n
\r\n
\r\n {product.title}\r\n
\r\n
\r\n {CurrencyHelper.convertToPounds(product.price)}\r\n
\r\n
\r\n Qty:\r\n {this.renderControl(product, this.props.hasBallotConfiguration)}\r\n {!this.props.hasBallotConfiguration ?\r\n \r\n remove product from basket\r\n \r\n \r\n \r\n \r\n :\r\n (this.carProductsArray.indexOf(product.tag) > -1) ?\r\n this.props.groupHasMoreTypesOfProducts ?\r\n \r\n :\r\n
\r\n
\r\n {\r\n product.price > 0 ?\r\n CurrencyHelper.convertToPounds(product.sum) :\r\n 'Free'\r\n }\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nBasketProduct.propTypes = {\r\n product: PropTypes.object.isRequired,\r\n productGroup: PropTypes.object.isRequired,\r\n onQuantityUpdate: PropTypes.func,\r\n hasBallotConfiguration: PropTypes.bool,\r\n groupHasMoreTypesOfProducts: PropTypes.bool\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport CurrencyHelper from '../../../general/js/basket/currency-helper';\r\nimport BasketProduct from './basket-product';\r\nimport ValidationHelper from '../../../general/js/basket/validation-helper';\r\nimport {\r\n PRODUCT_TAG_CAR,\r\n PRODUCT_TAG_MOTORCYCLE,\r\n PRODUCT_TAG_MINIBUS,\r\n PRODUCT_TAG_COACH\r\n} from '../../../general/js/basket/constants';\r\n\r\nexport default class BasketProductGroup extends React.Component {\r\n render() {\r\n const { productGroup } = this.props;\r\n\r\n // apply validation rules\r\n const products = ValidationHelper.getPreparedProductsList(productGroup.products);\r\n const groupHasDifferentTypesOfProducts = this.existOtherProductsThanParkingInGroup(products);\r\n\r\n return (\r\n
\r\n

\r\n {productGroup.title}\r\n

\r\n {\r\n products.length > 0 ?\r\n
\r\n {products.map((product) =>\r\n
\r\n this.props.onUpdateProductQuantity(product, productGroup, quantity)}\r\n hasBallotConfiguration={this.props.hasBallotConfiguration}\r\n groupHasMoreTypesOfProducts={groupHasDifferentTypesOfProducts} />\r\n
)}\r\n
: null\r\n }\r\n
\r\n Sub-total:\r\n {CurrencyHelper.convertToPounds(productGroup.sum)}\r\n
\r\n
\r\n );\r\n }\r\n\r\n existOtherProductsThanParkingInGroup(products) {\r\n let existOtherProductsThanParking = false;\r\n products.forEach((productElement) => {\r\n if (productElement.tag !== PRODUCT_TAG_CAR &&\r\n productElement.tag !== PRODUCT_TAG_MOTORCYCLE &&\r\n productElement.tag !== PRODUCT_TAG_MINIBUS &&\r\n productElement.tag !== PRODUCT_TAG_COACH) {\r\n existOtherProductsThanParking = true;\r\n }\r\n });\r\n\r\n return existOtherProductsThanParking;\r\n }\r\n}\r\n\r\nBasketProductGroup.propTypes = {\r\n productGroup: PropTypes.object.isRequired,\r\n onUpdateProductQuantity: PropTypes.func.isRequired,\r\n hasBallotConfiguration: PropTypes.bool\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport BasketProductGroup from './basket-product-group';\r\n\r\nexport default class BasketGroups extends React.Component {\r\n render() {\r\n return (\r\n
\r\n {this.props.productGroups.map((productGroup) =>\r\n
\r\n \r\n
)}\r\n
\r\n );\r\n }\r\n}\r\n\r\nBasketGroups.propTypes = {\r\n productGroups: PropTypes.array.isRequired,\r\n onUpdateProductQuantity: PropTypes.func.isRequired,\r\n hasBallotConfiguration : PropTypes.bool\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport CurrencyHelper from '../../../general/js/basket/currency-helper';\r\n\r\nexport default class BasketTotal extends React.Component {\r\n render() {\r\n return (\r\n
\r\n
\r\n Total:\r\n {CurrencyHelper.convertToPounds(this.props.basket.total)}\r\n
\r\n {'totalMc' in this.props.basket ?
\r\n \r\n Total with: \r\n {CurrencyHelper.convertToPounds(this.props.basket.totalMc)}\r\n
: null}\r\n
\r\n );\r\n }\r\n}\r\n\r\nBasketTotal.propTypes = {\r\n basket: PropTypes.object.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport parse from \"html-react-parser\";\r\nimport _ from 'lodash';\r\n\r\nfunction BulletPointList({ listItems }) {\r\n return
    \r\n {listItems.map((listItem) => {\r\n return
  • {parse(listItem)}
  • ;\r\n })}\r\n
;\r\n}\r\n\r\nBulletPointList.propTypes = {\r\n listItems: PropTypes.array.isRequired\r\n};\r\n\r\nexport default BulletPointList;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport BulletPointList from '../../../components/sso/components/common/utility/BulletPointList';\r\nimport { getMultilineText } from '../utils';\r\n\r\nfunction BasketDialogBoxContentBody({\r\n basketDialogBoxTitle,\r\n basketDialogBoxMessage,\r\n basketDialogBoxLogo\r\n}) {\r\n const basketDialogBoxMessageSplit = getMultilineText(basketDialogBoxMessage);\r\n const hasBoxTitle = basketDialogBoxTitle !== '' && basketDialogBoxTitle !== null;\r\n const hasBoxLogo = basketDialogBoxLogo !== null || basketDialogBoxLogo !== undefined;\r\n return (\r\n
\r\n {hasBoxLogo &&\r\n \r\n }\r\n {hasBoxTitle &&\r\n

{basketDialogBoxTitle}

\r\n }\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nBasketDialogBoxContentBody.propTypes = {\r\n basketDialogBoxTitle: PropTypes.string,\r\n basketDialogBoxMessage: PropTypes.string\r\n};\r\n\r\nexport default BasketDialogBoxContentBody;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { Fragment } from 'react';\r\nimport _ from 'lodash';\r\n\r\nfunction RegisterFormBanner(props) {\r\n return displayBanner(props);\r\n}\r\n\r\nconst displayBanner = (props) => {\r\n\r\n if (_.isEmpty(props) || _.isEmpty(props.formBanner))\r\n return \"\";\r\n\r\n const { bannerTitle, bannerMessage, bannerBackgroundImageSrc,\r\n displayMessageUnderImage, displayHeadingOverImage, headingColor, textColor } = props.formBanner;\r\n\r\n if (displayMessageUnderImage) {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n {displayBannerTitle(bannerTitle, headingColor)}\r\n {displayBannerMessage(bannerMessage, textColor)}\r\n
\r\n
\r\n );\r\n }\r\n\r\n if (displayHeadingOverImage) {\r\n return (\r\n \r\n
\r\n {displayBannerTitle(bannerTitle, headingColor)}\r\n
\r\n {displayBannerMessageWithCssClass(bannerMessage, textColor, false)}\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n {displayBannerTitle(bannerTitle, headingColor)}\r\n {displayBannerMessage(bannerMessage, textColor)}\r\n
\r\n );\r\n}\r\n\r\nconst displayBannerMessageWithCssClass = (bannerMessage, textColor, addMarginTop) => {\r\n if (_.isEmpty(bannerMessage))\r\n return null;\r\n\r\n return
\r\n {displayBannerMessage(bannerMessage, textColor, addMarginTop)}\r\n
;\r\n}\r\n\r\nconst displayBannerMessage = (bannerMessage, textColor, addMarginTop = true) => {\r\n if (_.isEmpty(bannerMessage)) {\r\n return \"\";\r\n }\r\n\r\n const colorValue = getColor(textColor);\r\n\r\n return
;\r\n}\r\n\r\nconst displayBannerTitle = (bannerTitle, headingColor) => {\r\n if (_.isEmpty(bannerTitle))\r\n return \"\";\r\n\r\n const colorValue = getColor(headingColor);\r\n\r\n return

{bannerTitle || formMessageConstants.formBannerTitle}

;\r\n}\r\n\r\nconst getColor = (color) => {\r\n return _.isEmpty(color) ? 'black' : color;\r\n}\r\n\r\nRegisterFormBanner.propTypes = {\r\n formBanner: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default RegisterFormBanner;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ReactModal from '../../../../modal/js/react-modal';\r\nimport RegisterFormBanner from '../../forms/one-club-register/RegisterFormBanner';\r\n\r\nfunction ConfirmationModal({\r\n isOpen,\r\n children,\r\n inputText,\r\n onModalClose,\r\n onApproveClick,\r\n isApproveDanger,\r\n isApproveButtonDisabled,\r\n onCancelClick,\r\n isCancelButtonDisabled,\r\n masterCardDialogBoxBanner\r\n}) {\r\n function displayModal() {\r\n if (!isOpen) {\r\n return null;\r\n }\r\n \r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n {children}\r\n
\r\n {!isCancelButtonDisabled && \r\n \r\n {'Cancel'}\r\n \r\n \r\n \r\n \r\n }\r\n {!isApproveButtonDisabled &&\r\n \r\n \r\n {inputText}\r\n \r\n \r\n \r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n
);\r\n }\r\n\r\n return displayModal();\r\n}\r\n\r\n\r\nConfirmationModal.propTypes = {\r\n isOpen: PropTypes.bool.isRequired,\r\n inputText: PropTypes.string.isRequired,\r\n onModalClose: PropTypes.func.isRequired,\r\n onApproveClick: PropTypes.func.isRequired,\r\n isApproveDanger: PropTypes.bool,\r\n isApproveButtonDisabled: PropTypes.bool.isRequired,\r\n onCancelClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default ConfirmationModal;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport BasketDialogBoxContentBody from '../../../general/js/basket/basket-dialog-box-content-body';\r\nimport userService from '../../../general/js/user/user-service';\r\nimport ConfirmationModal from '../../sso/components/common/utility/ConfirmationModal';\r\nimport { BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME } from '../../../general/js/user/constants';\r\n\r\nexport default class BasketPayButtons extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showModal: false\r\n };\r\n this.toggleConfirmationModal = this.toggleConfirmationModal.bind(this);\r\n this.toggleCloseModal = this.toggleCloseModal.bind(this);\r\n }\r\n\r\n toggleConfirmationModal() {\r\n userService.removeDataCookie(BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME);\r\n if (this.props.showAlertBoxBeforePayment) {\r\n this.setState({ showModal: true });\r\n } else {\r\n this.setState({ showModal: false });\r\n this.props.onCheckout();\r\n }\r\n }\r\n\r\n toggleCloseModal() {\r\n this.setState({ showModal: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n \r\n
\r\n We are experiencing high volumes of traffic at the minute. Please try again.\r\n
\r\n
\r\n this.props.onCheckout()}\r\n isApproveDanger={false}\r\n isApproveButtonDisabled={false}\r\n onCancelClick={this.toggleCloseModal}\r\n isCancelButtonDisabled={true}\r\n masterCardDialogBoxBanner={this.props.dialogBoxBanner}\r\n >\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nBasketPayButtons.propTypes = {\r\n basket: PropTypes.object.isRequired,\r\n onCheckout: PropTypes.func.isRequired,\r\n showAlertBoxBeforePayment: PropTypes.bool.isRequired,\r\n dialogBoxTitle: PropTypes.string,\r\n dialogBoxMessage: PropTypes.string,\r\n dialogBoxLogo: PropTypes.string\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default class BasketErrors extends React.Component {\r\n render() {\r\n return this.props.errors.length > 0 ? (\r\n
\r\n {this.props.errors.map((error, i) =>
\r\n {error.errorMessage} {error.productName ? `for ${error.productName}` : null} {error.audienceSubcategoryName ? `(${error.audienceSubcategoryName})` : null}\r\n
)}\r\n
\r\n ) : null;\r\n }\r\n}\r\n\r\nBasketErrors.propTypes = {\r\n errors: PropTypes.array.isRequired,\r\n};\r\n","import flatten from 'lodash/flatten';\r\nimport { CURRENCY_RATIO } from './currency-helper';\r\n\r\nexport default class TrackingHelper {\r\n static getBasketTotalValue = (productGroups) => {\r\n return productGroups.reduce((accumulator, productGroup) => {\r\n return accumulator + productGroup.sum / CURRENCY_RATIO;\r\n }, 0);\r\n };\r\n\r\n static getBasketProducts = (productGroups) => {\r\n return flatten(productGroups.map((productGroup) =>\r\n productGroup.products.map((product) => ({\r\n item_id: product.productId,\r\n item_name: `${product.tag} - ${productGroup.title}`,\r\n price: product.price / CURRENCY_RATIO,\r\n quantity: product.quantity\r\n }))));\r\n };\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport BasketGroups from './basket-groups';\r\nimport BasketTotal from './basket-total';\r\nimport BasketPayButtons from './basket-pay-buttons';\r\nimport BasketErrors from './basket-errors';\r\nimport gtm, { ecommerceEventTypes } from '../../../general/js/gtm';\r\nimport TrackingHelper from '../../../general/js/basket/tracking-helper';\r\nimport { CURRENCY_RATIO, currencyIsoCodes } from '../../../general/js/basket/currency-helper';\r\n\r\nexport default class Basket extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onCheckout = this.onCheckout.bind(this);\r\n }\r\n\r\n renderEmpty() {\r\n return (\r\n
Your basket is empty
\r\n );\r\n }\r\n\r\n onCheckout() {\r\n const productGroupList = this.getProductGroupList(this.props.basket.productGroups);\r\n const basketItems = TrackingHelper.getBasketProducts(productGroupList);\r\n\r\n gtm.pushEcommerceEvent(ecommerceEventTypes.BEGIN_CHECKOUT, {\r\n currency: currencyIsoCodes.GBP,\r\n value: this.props.basket.total / CURRENCY_RATIO,\r\n items: basketItems\r\n });\r\n\r\n this.props.onCheckout();\r\n }\r\n\r\n getProductGroupList(productGroups) {\r\n return Object.keys(productGroups).map((id) => productGroups[id]);\r\n }\r\n\r\n render() {\r\n const productsGroupList = this.getProductGroupList(this.props.basket.productGroups);\r\n\r\n return (\r\n
\r\n {productsGroupList.length > 0 ?\r\n \r\n \r\n \r\n \r\n \r\n : this.renderEmpty()\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nBasket.propTypes = {\r\n basket: PropTypes.object.isRequired,\r\n onUpdateProductQuantity: PropTypes.func.isRequired,\r\n onCheckout: PropTypes.func.isRequired,\r\n errors: PropTypes.array,\r\n hasBallotConfiguration: PropTypes.bool,\r\n showAlertBoxBeforePayment: PropTypes.bool,\r\n dialogBoxTitle: PropTypes.string,\r\n dialogBoxMessage: PropTypes.string,\r\n dialogBoxLogo: PropTypes.string\r\n};\r\n","import Cookies from 'js-cookie';\r\nimport {\r\n BALLOT_BASKET_STORAGE_KEY,\r\n BALLOT_RESERVED_PRODUCTS_STORAGE_KEY,\r\n BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME\r\n} from './constants';\r\n\r\nexport default class BasketProductsHelper {\r\n static setSecutixReservedProducts(secutixBallotReservedProducts) {\r\n if (localStorage) {\r\n this.getCookie(BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME) !== '' ? this.addReservedProductsToBallotProductsList(secutixBallotReservedProducts) :\r\n this.removeReservedProductsFromBallotProductsList();\r\n }\r\n }\r\n\r\n static addReservedProductsToBallotProductsList(secutixBallotReservedProducts) {\r\n if (Object.keys(secutixBallotReservedProducts).length !== 0) {\r\n const ballotBasketReservedProducts = {};\r\n\r\n secutixBallotReservedProducts.forEach((element) => {\r\n ballotBasketReservedProducts[element.id] = element;\r\n });\r\n\r\n if (localStorage.getItem(BALLOT_BASKET_STORAGE_KEY) === null) {\r\n localStorage.setItem(BALLOT_BASKET_STORAGE_KEY, JSON.stringify(ballotBasketReservedProducts));\r\n localStorage.setItem(BALLOT_RESERVED_PRODUCTS_STORAGE_KEY, JSON.stringify(ballotBasketReservedProducts));\r\n } else if (localStorage.getItem(BALLOT_RESERVED_PRODUCTS_STORAGE_KEY) === null) {\r\n const ballotBasket = JSON.parse(localStorage.getItem(BALLOT_BASKET_STORAGE_KEY));\r\n\r\n secutixBallotReservedProducts.forEach((element) => {\r\n if (!ballotBasket.hasOwnProperty(element.id)) {\r\n ballotBasket[element.id] = element;\r\n }\r\n });\r\n\r\n localStorage.setItem(BALLOT_BASKET_STORAGE_KEY, JSON.stringify(ballotBasket));\r\n localStorage.setItem(BALLOT_RESERVED_PRODUCTS_STORAGE_KEY, JSON.stringify(ballotBasketReservedProducts));\r\n }\r\n }\r\n }\r\n\r\n static removeReservedProductsFromBallotProductsList() {\r\n if (!this.isBallotLocalStorageEmpty()) {\r\n const basketBallot = JSON.parse(localStorage.getItem(BALLOT_BASKET_STORAGE_KEY));\r\n const secutixBallotProducts = JSON.parse(localStorage.getItem(BALLOT_RESERVED_PRODUCTS_STORAGE_KEY));\r\n const secutixBallotProductsList = [];\r\n\r\n for (const product in secutixBallotProducts) { secutixBallotProductsList.push(secutixBallotProducts[product]); }\r\n\r\n secutixBallotProductsList.forEach((element) => {\r\n if (basketBallot.hasOwnProperty(element.id)) {\r\n delete basketBallot[element.id];\r\n }\r\n });\r\n\r\n localStorage.removeItem(BALLOT_RESERVED_PRODUCTS_STORAGE_KEY);\r\n localStorage.setItem(BALLOT_BASKET_STORAGE_KEY, JSON.stringify(basketBallot));\r\n }\r\n }\r\n\r\n static isBallotLocalStorageEmpty() {\r\n if (localStorage.getItem(BALLOT_RESERVED_PRODUCTS_STORAGE_KEY) !== null &&\r\n localStorage.getItem(BALLOT_BASKET_STORAGE_KEY) !== null) { return false; }\r\n\r\n return true;\r\n }\r\n\r\n static getCookie(cookieName) {\r\n const cookie = Cookies.get(cookieName);\r\n return cookie && cookie !== '0' ? cookie : '';\r\n }\r\n}\r\n","/* eslint-disable no-unused-expressions */\r\nimport BaseComponent from 'foundation/base-component';\r\nimport React from 'react';\r\nimport { render } from 'react-dom';\r\nimport Cookies from 'js-cookie';\r\nimport BasketController from '../../../general/js/basket/basket-controller';\r\nimport Basket from './basket';\r\nimport basketProductsHelper from '../../../general/js/basket/basket-products-helper';\r\nimport { safeParseJSON, stringToBoolean } from '../../../general/js/general-helpers';\r\n\r\nexport default class BasketComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n const {\r\n isBallotBasketType, showAlertBoxBeforePayment, dialogBoxTitle, dialogBoxLogo, secutixBallotReservedProducts\r\n } = this.options;\r\n const dialogBoxBanner = {\r\n bannerBackgroundImageSrc: this.options.bannerBackgroundImageSrc,\r\n bannerMessage: this.options.bannerMessage,\r\n bannerTitle: this.options.bannerTitle,\r\n displayHeadingOverImage: stringToBoolean(this.options.displayHeadingOverImage),\r\n displayMessageUnderImage: stringToBoolean(this.options.displayMessageUnderImage),\r\n textColor: this.options.textColor,\r\n headingColor: this.options.headingColor\r\n };\r\n const errorsCookie = Cookies.get('validationErrors');\r\n const hasBallotConfiguration = JSON.parse(isBallotBasketType.toLowerCase());\r\n const hasAlertBoxBeforePayment = JSON.parse(showAlertBoxBeforePayment.toLowerCase());\r\n const dialogBoxMessage = this.options.dialogBoxMessage.split('newline').join('\\n');\r\n\r\n errorsCookie !== undefined ? this.errors = safeParseJSON(errorsCookie) : this.errors = [];\r\n\r\n basketProductsHelper.setSecutixReservedProducts(secutixBallotReservedProducts);\r\n\r\n render(\r\n (\r\n \r\n \r\n }>\r\n \r\n ),\r\n this.element\r\n );\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport BasketComponent from './js/basket.component';\r\n\r\nComponentsFactory.getInstance().define('basket', BasketComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport Cookies from 'js-cookie';\r\nimport app from '../../../general/js/app'; \r\n\r\nexport default class BasketBuyLinksComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n const secutixConfigCookie = Cookies.get('secutixConfig');\r\n\t\tif (secutixConfigCookie !== undefined) {\r\n const secutixConfig = JSON.parse(secutixConfigCookie);\r\n if (secutixConfig !== undefined) {\r\n\t\t\t\tif (this.refs.buyticketsurl !== undefined)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(secutixConfig.buyTicketsLink === undefined || secutixConfig.buyTicketsLink === ''){\r\n\t\t\t\t\t\tthis.refs.buyticketsurl.setAttribute('style','display:none;');\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tthis.refs.buyticketsurl.setAttribute('href', secutixConfig.buyTicketsLink);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif (this.refs.buyhospitalityurl !== undefined)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(secutixConfig.buyHospitalityLink === undefined || secutixConfig.buyHospitalityLink === ''){\r\n\t\t\t\t\t\tthis.refs.buyhospitalityurl.setAttribute('style','display:none;');\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tthis.refs.buyhospitalityurl.setAttribute('href', secutixConfig.buyHospitalityLink);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n }\r\n\t\t}\r\n\t\t\r\n\t\tconst userDataCookie = Cookies.get(app.state.userDataCookieName);\r\n\t\tif (userDataCookie !== undefined) {\r\n\t\t\tconst userData = JSON.parse(userDataCookie);\r\n\r\n\t\t\tif (userData !== undefined && userData.isRandaMember !== undefined && userData.isRandaMember) \r\n\t\t\t\t{\r\n\t\t\t\t\tthis.refs.buyticketsurl.setAttribute('href', '/ramembers');\r\n\t\t\t\t}\r\n\t\t}\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport BasketBuyLinksComponent from './js/basket-buy-links.component';\r\n\r\nComponentsFactory.getInstance().define('basket-buy-links', BasketBuyLinksComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport basketService from '../../../general/js/basket/basket-service';\r\n\r\nexport default class BasketCleanerComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n basketService.cleanBasket(true);\r\n basketService.cleanBasket(false);\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport BasketCleanerComponent from './js/basket-cleaner.component';\r\n\r\nComponentsFactory.getInstance().define('basket-cleaner', BasketCleanerComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport Cookies from 'js-cookie';\r\nimport basketService from '../../../general/js/basket/basket-service';\r\nimport { BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME } from '../../../general/js/basket/constants';\r\n\r\nexport default class BasketIcon extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n this.onBasketStateUpdate = this.onBasketStateUpdate.bind(this);\r\n this.onBallotBasketStateUpdate = this.onBallotBasketStateUpdate.bind(this);\r\n }\r\n\r\n static getRequiredRefs() {\r\n return [\r\n 'basketLink',\r\n 'basketTooltip'\r\n ];\r\n }\r\n\r\n init() {\r\n this.basketIsEmpty = true;\r\n this.ballotBasketIsEmpty = true;\r\n this.ballotBasketUrl = '';\r\n this.basketUrl = '';\r\n\r\n this.options.forEach((basketItem) => {\r\n basketItem.isBallotBasket ?\r\n this.ballotBasketUrl = basketItem.basketLink.url :\r\n this.basketUrl = basketItem.basketLink.url;\r\n });\r\n\r\n if (this.getCookie(BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME) !== '' &&\r\n this.ballotBasketUrl !== '') { this.ballotBasketIsEmpty = false; }\r\n\r\n basketService.onBasketUpdate(this.onBasketStateUpdate);\r\n basketService.onBallotBasketUpdate(this.onBallotBasketStateUpdate);\r\n }\r\n\r\n onBasketStateUpdate = (basket) => {\r\n if (basket === null) return;\r\n\r\n basket.isEmpty ? this.basketIsEmpty = true : this.basketIsEmpty = false;\r\n\r\n if (this.basketIsEmpty && this.ballotBasketIsEmpty) { this.element.classList.remove('is-filled'); }\r\n\r\n this.removeListeners();\r\n this.addListeners();\r\n };\r\n\r\n onBallotBasketStateUpdate = (basket) => {\r\n if (basket === null && this.getCookie(BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME) === '') return;\r\n\r\n if (this.ballotBasketUrl !== '') {\r\n basket.isEmpty && this.getCookie(BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME) === '' ? this.ballotBasketIsEmpty = true : this.ballotBasketIsEmpty = false;\r\n }\r\n\r\n if (this.basketIsEmpty && this.ballotBasketIsEmpty) { this.element.classList.remove('is-filled'); }\r\n\r\n this.removeListeners();\r\n this.addListeners();\r\n };\r\n\r\n addListeners() {\r\n if (this.basketIsEmpty && !this.ballotBasketIsEmpty) {\r\n this.element.classList.add('is-filled');\r\n this.addListener(this.refs.basketLink, 'click', () => { location.href = this.ballotBasketUrl; });\r\n }\r\n if (!this.basketIsEmpty && this.ballotBasketIsEmpty) {\r\n this.element.classList.add('is-filled');\r\n this.addListener(this.refs.basketLink, 'click', () => { location.href = this.basketUrl; });\r\n }\r\n if (!this.basketIsEmpty && !this.ballotBasketIsEmpty) {\r\n this.element.classList.add('is-filled');\r\n\r\n this.addListener(this.refs.basketLink, 'click', this.onUserButtonClick);\r\n this.addListener(document, 'keydown', this.onkeydown);\r\n this.addListener(document, 'click', this.outerClickHandle);\r\n this.addListener(document, 'touchstart', this.outerClickHandle);\r\n }\r\n }\r\n\r\n onUserButtonClick = () => {\r\n if (!this.refs.basketTooltip) return;\r\n if (this.refs.basketTooltip.classList.contains('is-visible')) { this.refs.basketTooltip.classList.remove('is-visible'); } else { this.refs.basketTooltip.classList.add('is-visible'); }\r\n };\r\n\r\n onkeydown = (event) => {\r\n if (event.keyCode === 27) {\r\n if (!this.refs.basketTooltip) return;\r\n this.refs.basketTooltip.classList.remove('is-visible');\r\n }\r\n };\r\n\r\n outerClickHandle = (event) => {\r\n if ((this.refs.basketTooltip && !this.refs.basketTooltip.contains(event.target)) &&\r\n (this.refs.basketLink && !this.refs.basketLink.contains(event.target))) { this.refs.basketTooltip.classList.remove('is-visible'); }\r\n };\r\n\r\n getCookie(cookieName) {\r\n const cookie = Cookies.get(cookieName);\r\n return cookie && cookie !== '0' ? cookie : '';\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport BasketIconComponent from './js/basket-icon.componenet';\r\n\r\nComponentsFactory.getInstance().define('basket-icon', BasketIconComponent);\r\n","export const carouselEvents = Object.freeze({\r\n NEXT_SLIDE_CLICK: 'carousel:next-slide',\r\n PREV_SLIDE_CLICK: 'carousel:prev-slide'\r\n});\r\n","import BaseComponent from 'foundation/base-component';\r\nimport app from 'general/js/app';\r\n\r\nconst DEFAULT_GROUP_NAME = 'Default';\r\n\r\nclass ContextualManagerComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.state = {\r\n minToShowCount: this.options.minToShowCount || 0,\r\n mainCount: 0,\r\n replacementCount: this.getReplacementCount(),\r\n groups: {}\r\n };\r\n\r\n if (!app.isEditMode) {\r\n this.init();\r\n }\r\n }\r\n\r\n init() {\r\n if (Array.isArray(this.refs.main)) {\r\n this.splitMainToGroups();\r\n this.state.mainCount = this.getMainCount();\r\n this.showMain();\r\n }\r\n\r\n if (this.state.mainCount < this.options.minToShowCount) {\r\n this.showReplacement();\r\n }\r\n }\r\n\r\n splitMainToGroups() {\r\n this.refs.main.forEach((ref) => {\r\n const groupName = this.getAttribute(ref, 'group');\r\n\r\n if (!groupName) return;\r\n\r\n if (!this.state.groups[groupName]) {\r\n this.state.groups[groupName] = [];\r\n }\r\n\r\n this.state.groups[groupName].push(ref);\r\n });\r\n }\r\n\r\n getMainCount() {\r\n const totalRefs = this.refs.main.length;\r\n const totalRefsInGroups = Object.keys(this.state.groups).reduce((prev, groupName) => {\r\n if (groupName === DEFAULT_GROUP_NAME) return prev;\r\n //eslint-disable-next-line no-return-assign\r\n return prev += this.state.groups[groupName].length;\r\n }, 0);\r\n const totalGroups = Object.keys(this.state.groups).length - 1;\r\n\r\n return totalRefs - totalRefsInGroups + totalGroups;\r\n }\r\n\r\n getReplacementCount() {\r\n return (this.refs.replacement && this.refs.replacement.length) || 0;\r\n }\r\n\r\n // this is bad but there is no way to set ref on a wrapper in Sitecore way :(\r\n makeVisible(ref) {\r\n const hiddenWrapper = ref.closest('.is-hidden');\r\n\r\n if (hiddenWrapper) {\r\n hiddenWrapper.classList.remove('is-hidden');\r\n }\r\n }\r\n\r\n showRandomInGroup(group) {\r\n const randomIndex = Math.round(Math.random() * (group.length - 1));\r\n this.makeVisible(group[randomIndex]);\r\n }\r\n\r\n showMain() {\r\n Object.keys(this.state.groups).forEach((groupName) => {\r\n const group = this.state.groups[groupName];\r\n\r\n if (groupName === DEFAULT_GROUP_NAME) {\r\n group.forEach((ref) => this.makeVisible(ref));\r\n } else {\r\n this.showRandomInGroup(group);\r\n }\r\n });\r\n }\r\n\r\n showReplacement() {\r\n if (!Array.isArray(this.refs.replacement)) return;\r\n\r\n let replacementStack = [...this.refs.replacement];\r\n let diff = this.state.minToShowCount - this.state.mainCount;\r\n\r\n while (replacementStack.length > 0 && diff > 0) {\r\n const randomIndex = Math.round(Math.random() * (replacementStack.length - 1));\r\n const replacementRef = replacementStack[randomIndex];\r\n\r\n replacementStack = replacementStack.filter((ref, index) => index !== randomIndex);\r\n\r\n if (replacementRef) {\r\n this.makeVisible(replacementRef);\r\n }\r\n diff--;\r\n }\r\n }\r\n}\r\n\r\nexport default ContextualManagerComponent;\r\n","//import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport ContextualManagerComponent from './js/contextual-manager.component';\r\n\r\nComponentsFactory.getInstance().define('contextual-manager', ContextualManagerComponent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport get from 'lodash/get';\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport ScoringLoader, { endpointNames } from 'general/js/loaders/scoring-loader';\r\nimport { getRoundById } from 'general/js/helpers';\r\nimport { LiveStatsCardContainer, statsTypes, getStatsCards } from 'components/live-stats';\r\nimport { BlockPlaceholder } from 'components/block-placeholder';\r\nimport { BlockSpinner } from 'components/block-spinner';\r\n\r\nclass ContextualStatsLayout extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const cardType = this.getType();\r\n const statsCards = getStatsCards();\r\n const filteredCards = statsCards.filter((statsCard) => statsCard.type === cardType);\r\n\r\n this.card = this.getRadomCard(filteredCards);\r\n }\r\n\r\n componentDidMount() {\r\n ScoringLoader.subscribe(endpointNames.LIVE_SCANNER);\r\n ScoringLoader.subscribe(endpointNames.STATISTICS);\r\n ScoringLoader.subscribe(endpointNames.COURSE);\r\n }\r\n\r\n componentWillUnmount() {\r\n ScoringLoader.unsubscribe(endpointNames.LIVE_SCANNER);\r\n ScoringLoader.unsubscribe(endpointNames.STATISTICS);\r\n ScoringLoader.unsubscribe(endpointNames.COURSE);\r\n }\r\n\r\n getRound() {\r\n const activeRoundId = get(this.props, 'liveScanner.activeRoundId');\r\n\r\n return getRoundById(this.props.scoringStats.rounds, activeRoundId);\r\n }\r\n\r\n getRandomType() {\r\n const statsTypesList = Object.keys(statsTypes);\r\n const len = statsTypesList.length;\r\n const randomIndex = Math.round(Math.random() * (len - 1));\r\n const key = statsTypesList[randomIndex];\r\n\r\n return statsTypes[key];\r\n }\r\n\r\n getType() {\r\n const { type, players, holes } = this.props.options;\r\n\r\n if (players.length && holes.length) {\r\n return this.getRandomType();\r\n }\r\n\r\n if (players.length) {\r\n return statsTypes.PLAYER;\r\n }\r\n\r\n if (holes.length) {\r\n return statsTypes.HOLE;\r\n }\r\n\r\n return type || this.getRandomType();\r\n }\r\n\r\n getRadomCard(list) {\r\n return list[Math.round(Math.random() * (list.length - 1))];\r\n }\r\n\r\n getSitecoreData(statsName) {\r\n return get(this.props.scoringStats, `sitecoreData[${statsName}]`, null);\r\n }\r\n\r\n getStats(card) {\r\n const { players, holes } = this.props.options;\r\n const round = this.getRound();\r\n const stats = get(round, `[${card.name}].stats`, []);\r\n\r\n // override state\r\n if (players.length || holes.length) {\r\n return card.type === statsTypes.PLAYER ?\r\n this.getStatsByIds(stats, players, 'playerId') :\r\n this.getStatsByIds(stats, holes, 'holeId');\r\n }\r\n\r\n return this.getTopStats(stats);\r\n }\r\n\r\n getTopStats(stats) {\r\n return stats.slice(0, 3);\r\n }\r\n\r\n getStatsByIds(stats, ids, idKey) {\r\n return ids\r\n .map((id) =>\r\n stats.find((statsModel) =>\r\n statsModel[idKey].toString() === id.toString()))\r\n .filter((mappedStat) => mappedStat !== undefined);\r\n }\r\n\r\n generateCard() {\r\n const { scoringStats } = this.props;\r\n\r\n if (!scoringStats) return null;\r\n\r\n const card = cloneDeep(this.card);\r\n\r\n card.sitecoreData = this.getSitecoreData(card.name);\r\n card.stats = this.getStats(card);\r\n card.targetUrl = this.props.options.viewAllUrl;\r\n\r\n return card;\r\n }\r\n\r\n render() {\r\n const { liveScanner, scoringStats } = this.props;\r\n\r\n if (liveScanner === undefined ||\r\n scoringStats === undefined\r\n ) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n if (!liveScanner ||\r\n !scoringStats ||\r\n !Array.isArray(scoringStats.rounds)\r\n ) {\r\n return null;\r\n }\r\n\r\n const card = this.generateCard();\r\n\r\n return ;\r\n }\r\n}\r\n\r\nContextualStatsLayout.propTypes = {\r\n options: PropTypes.object\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n liveScanner: state.scoring[endpointNames.LIVE_SCANNER],\r\n scoringStats: state.scoring[endpointNames.STATISTICS],\r\n courseStats: state.scoring[endpointNames.COURSE],\r\n});\r\n\r\nconst ContextualStatsLayoutContainer = connect(\r\n mapStateToProps,\r\n null\r\n)(ContextualStatsLayout);\r\n\r\nexport default ContextualStatsLayoutContainer;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport store from 'general/js/store';\r\nimport ContextualStatsLayout from './contextual-stats-layout';\r\n\r\nclass ContextualStats extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default ContextualStats;\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport ContextualStats from './js/contextual-stats.component';\r\n\r\nComponentsFactory.getInstance().define('contextual-stats', ContextualStats);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport Cookies from 'js-cookie';\r\nimport overlay from '../../../general/js/overlay';\r\nimport _ from 'lodash';\r\n\r\nconst COOKIE_WARNING_AGREED = 'cookie-warning-settings_agreed';\r\nconst COOKIE_WARNING_AGREE_BUTTON_CLASS = 'cookie-warning__agree-button';\r\nconst COOKIE_WARNING_AGREE_LINK_CLASS = 'cookie-warning__agree-link';\r\nconst COOKIE_CONTROL_EXPIRY_DAYS = 'cookieControlExpiryDaysValue';\r\n\r\nexport default class CookieWarningComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.onCloseCookieWarning = this.onCloseCookieWarning.bind(this);\r\n this.closeSlideoutCookiePanelHandler = this.closeSlideoutCookiePanelHandler.bind(this);\r\n this.acceptCookiesHandler = this.acceptCookiesHandler.bind(this);\r\n this.cookieWarningSettingsAgreedTitle = this.getCookieWarningOption('warningSettingsAgreed', COOKIE_WARNING_AGREED);\r\n this.requiredCookiesForGoogleAnalytics = this.getCookieWarningOption('requiredCookiesForGoogleAnalytics');\r\n this.init();\r\n }\r\n\r\n isSiteVisited() {\r\n const warningAgreedCookie = Cookies.get(this.cookieWarningSettingsAgreedTitle);\r\n const acceptedCookies = warningAgreedCookie !== undefined;\r\n return acceptedCookies;\r\n }\r\n\r\n init() {\r\n setTimeout(() => {\r\n if (!this.isSiteVisited()){\r\n this.element.classList.add('is-visible');\r\n overlay.show('overlay');\r\n\r\n const agreeButton = document.getElementsByClassName(COOKIE_WARNING_AGREE_BUTTON_CLASS)[0];\r\n const agreeLink = document.getElementsByClassName(COOKIE_WARNING_AGREE_LINK_CLASS)[0];\r\n let cookieExpiryDays = this.getCookieExpiryDays();\r\n \r\n this.addListener(agreeButton, 'click', () => {\r\n Cookies.set(this.cookieWarningSettingsAgreedTitle, '1', { expires: cookieExpiryDays, secure: true });\r\n this.onCloseCookieWarning();\r\n });\r\n this.addListener(agreeLink, 'click', () => {\r\n this.onCloseCookieWarning();\r\n });\r\n }\r\n }, 100);\r\n }\r\n\r\n onCloseCookieWarning() {\r\n setTimeout(() => {\r\n const { civicukCloseButtonId, civicukAcceptAllButtonId} = this.options;\r\n var slideoutCloseButton = null;\r\n var acceptAllButton = null; \r\n\r\n if (civicukCloseButtonId !== undefined && !_.isEmpty(civicukCloseButtonId)){\r\n slideoutCloseButton = document.getElementById(civicukCloseButtonId);\r\n }\r\n\r\n if (civicukAcceptAllButtonId !== undefined && !_.isEmpty(civicukAcceptAllButtonId)){\r\n acceptAllButton = document.getElementById(civicukAcceptAllButtonId);\r\n }\r\n\r\n this.addClickEventListener(slideoutCloseButton, this.closeSlideoutCookiePanelHandler);\r\n this.addClickEventListener(acceptAllButton, this.acceptCookiesHandler);\r\n\r\n this.element.classList.add('is-closed');\r\n this.element.classList.remove('is-visible');\r\n overlay.hide('overlay');\r\n }, 300);\r\n }\r\n\r\n addClickEventListener(element, callback){\r\n if(element !== null){\r\n element.addEventListener('click', callback, { once: true });\r\n }\r\n }\r\n\r\n getCookieExpiryDays(){\r\n var cookieExpiryDays = parseInt(localStorage.getItem(COOKIE_CONTROL_EXPIRY_DAYS));\r\n if (cookieExpiryDays === null || cookieExpiryDays === undefined)\r\n {\r\n cookieExpiryDays = 90;\r\n }\r\n\r\n return cookieExpiryDays;\r\n }\r\n\r\n closeSlideoutCookiePanelHandler(){\r\n let cookieExpiryDays = this.getCookieExpiryDays();\r\n let cookieControlValue = Cookies.get('CookieControl');\r\n let cookieControlObj = !_.isEmpty(cookieControlValue) ? JSON.parse(cookieControlValue) : {};\r\n var cookieWarningAgreedValue = '0';\r\n\r\n if(this.requiredCookiesForGoogleAnalytics && !_.isEmpty(cookieControlObj) && !_.isEmpty(cookieControlObj.optionalCookies)){\r\n this.requiredCookiesForGoogleAnalytics.forEach(requiredCookie => {\r\n if( Object.keys(cookieControlObj.optionalCookies).some((optionalCookie) => optionalCookie === requiredCookie )){\r\n cookieWarningAgreedValue = '1';\r\n }\r\n });\r\n }\r\n\r\n Cookies.set(this.cookieWarningSettingsAgreedTitle, cookieWarningAgreedValue, { expires: cookieExpiryDays, secure: true });\r\n }\r\n\r\n acceptCookiesHandler() {\r\n const cookieExpiryDays = this.getCookieExpiryDays();\r\n\r\n Cookies.set(this.cookieWarningSettingsAgreedTitle, '1', { expires: cookieExpiryDays, secure: true });\r\n }\r\n\r\n getCookieWarningOption(optionName, defaultValue = undefined){\r\n return this.options ? this.options[optionName] : defaultValue;\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport CookieWarningComponent from './js/cookie-warning.component';\r\n\r\nComponentsFactory.getInstance().define('cookie-warning', CookieWarningComponent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst SitecoreImageField = (props) => {\r\n const hasImageData = (props.img !== undefined && props.img !== '' && props.img.src !== undefined && props.img.src !== '');\r\n\r\n return (\r\n hasImageData &&\r\n \r\n );\r\n};\r\n\r\nSitecoreImageField.propTypes = {\r\n img: PropTypes.object,\r\n className: PropTypes.string\r\n};\r\n\r\nexport default SitecoreImageField;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst SitecoreLinkField = (props) => {\r\n \r\n\tconst hasLinkData = (props.link !== undefined && props.link !== \"\" && props.link.url !== undefined && props.link.url !== \"\");\r\n\t\r\n return (\r\n\t\thasLinkData &&\r\n \r\n {props.link.text}\r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nSitecoreLinkField.propTypes = {\r\n\tlink : PropTypes.object,\r\n className: PropTypes.string\r\n};\r\n\r\nexport default SitecoreLinkField;\r\n","/* eslint-disable eqeqeq */\r\n/* eslint-disable no-redeclare */\r\n/* eslint-disable no-var */\r\n/* eslint-disable block-scoped-var */\r\nimport Cookies from 'js-cookie';\r\nimport { isEmpty } from '../../../sso/components/utils/obj-utils';\r\nimport userService from '../../../../general/js/user/user-service';\r\nimport {\r\n TOCH_USER_ADDRESS_BOOK_LOCALSTORAGE_NAME\r\n} from '../../../../general/js/user/constants';\r\nimport { hasValue, safeParseJSON } from '../../../../general/js/general-helpers';\r\nimport { CookieNames } from '../../../../general/js/utils/cookies';\r\nimport { MembershipTypes } from '../../../../general/js/utils';\r\n\r\nexport const getComponentVisibility = (componentVisibility) => {\r\n const isMastercardUser = handleCheckIsMasterCardMember(CookieNames.TOCH_USER_MEMBERSHIPS);\r\n\r\n if (componentVisibility === 'mastercard' && !isMastercardUser) return false;\r\n\r\n if (componentVisibility === 'non-mastercard' && isMastercardUser) return true;\r\n\r\n return true;\r\n};\r\n\r\nexport const getTOCHMembershipArray = (userAccountData) => {\r\n if (!isEmpty(userAccountData)) return userAccountData.split(';');\r\n\r\n return null;\r\n};\r\n\r\nexport const handleCheckMembershipExists = (membershipArray, membership) => {\r\n if (membershipArray !== null) return membershipArray.includes(membership);\r\n\r\n return null;\r\n};\r\n\r\nexport const handleCheckIsMasterCardMember = (localStorageKey) => {\r\n const jsonUserMemberships = userService.getDataFromLocalStorage(localStorageKey);\r\n const userMembershipsArray = getTOCHMembershipArray(safeParseJSON(jsonUserMemberships));\r\n const isMasterCardUser = handleCheckMembershipExists(userMembershipsArray, MembershipTypes.OneClubAdvantage);\r\n\r\n return isMasterCardUser;\r\n};\r\n\r\nexport const getMasterCardRegisterObject = (masterCardData) => {\r\n const options = {\r\n backgroundImage: masterCardData.item.backgroundImage,\r\n masterCardLogo: masterCardData.item.masterCardBranding.mastercardLogo,\r\n masterCardText: masterCardData.item.masterCardBranding.mastercardText,\r\n masterCardNumberLabel: masterCardData.item.masterCardNumberLabel,\r\n nameLabel: masterCardData.item.nameLabel,\r\n title: masterCardData.item.title,\r\n bottomInfo: masterCardData.item.bottomInfo,\r\n postcodeLabel: masterCardData.item.postcodeLabel,\r\n ctaSignUpForMastercardLink: masterCardData.item.ctaSignUpForMasterCard,\r\n notMasterCardNumberErrorMessage: masterCardData.item.notMasterCardNumberErrorMessage,\r\n masterCardRegistrationSuccessTitle: masterCardData.item.masterCardRegistrationSuccess.title,\r\n masterCardRegistrationSuccessLabel: masterCardData.item.masterCardRegistrationSuccess.label,\r\n masterCardRegistrationSuccessDescription: masterCardData.item.masterCardRegistrationSuccess.description,\r\n masterCardRegistrationSuccessCTALink: masterCardData.item.masterCardRegistrationSuccess.ctaLink,\r\n callbackUrl: masterCardData.item.masterCardRegistrationSettings.callbackUrl,\r\n regexToVerifyMastercard: masterCardData.item.masterCardRegistrationSettings.cardVerificationRegex,\r\n soundToBePlayedAfterSuccessRegister: masterCardData.item.masterCardRegistrationSettings.soundToBePlayedAfterSuccessRegister.url\r\n };\r\n\r\n return options;\r\n};\r\n\r\nexport const checkIfDateIsBetweenDates = (endDate, startDate) => {\r\n const now = new Date();\r\n const end = new Date(endDate);\r\n const start = new Date(startDate);\r\n const dateTimeNowIsBetweenDates = now > start && now < end;\r\n\r\n return dateTimeNowIsBetweenDates;\r\n};\r\n\r\nexport const checkIfDateTimeNowIsHigherThanEndDate = (endDate) => {\r\n const now = new Date();\r\n const end = new Date(endDate);\r\n\r\n return now > end;\r\n};\r\n\r\nexport const handleCheckMasterCardFormDisplayStatus = (value) => {\r\n const hasFormBeenDisplayed = userService.getDataFromLocalStorage(value);\r\n\r\n return hasFormBeenDisplayed != null ? hasFormBeenDisplayed : null;\r\n};\r\n\r\nexport const handleMastercardRegistrationEnforce = (props) => {\r\n const {\r\n componentVisibility,\r\n enableMastercardRegistrationEnforce\r\n } = props;\r\n\r\n const enableEnforce = enableMastercardRegistrationEnforce.toLowerCase() === 'true';\r\n const componentVisibilityForUser = getComponentVisibility(componentVisibility);\r\n if (!componentVisibilityForUser && enableEnforce) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport const calculateRemainingDate = (countdownTimer) => {\r\n const countdownTimerDate = new Date(countdownTimer);\r\n\r\n const d = new Date();\r\n const utc = d.getTime() + (d.getTimezoneOffset() * 60000);\r\n const ukTimeNowAsDate = isBSTinEffect(d) ? new Date(utc + (3600000 * 1)) : new Date(utc);\r\n\r\n if (countdownTimerDate < ukTimeNowAsDate) {\r\n const newObject = {\r\n minutes: 0,\r\n hours: 0,\r\n days: 0\r\n };\r\n\r\n return newObject;\r\n }\r\n\r\n let delta = Math.abs(countdownTimerDate - ukTimeNowAsDate) / 1000;\r\n\r\n const days = Math.floor(delta / 86400);\r\n delta -= days * 86400;\r\n\r\n const hours = Math.floor(delta / 3600) % 24;\r\n delta -= hours * 3600;\r\n\r\n const minutes = Math.floor(delta / 60) % 60;\r\n delta -= minutes * 60;\r\n\r\n const newDate = {\r\n minutes,\r\n days,\r\n hours\r\n };\r\n\r\n return newDate;\r\n};\r\n\r\nexport const checkIfExpired = (countdownTimer) => {\r\n const countdownTimerDate = new Date(countdownTimer);\r\n\r\n const d = new Date();\r\n const utc = d.getTime() + (d.getTimezoneOffset() * 60000);\r\n const ukTimeNowAsDate = isBSTinEffect(d) ? new Date(utc + (3600000 * 1)) : new Date(utc);\r\n\r\n if (countdownTimerDate < ukTimeNowAsDate) return true;\r\n\r\n return false;\r\n};\r\n\r\nexport const isBSTinEffect = (d) => {\r\n let lSoM = null;\r\n let lSoO = null;\r\n\r\n // Loop over the 31 days of March for the current year\r\n for (var i = 31; i > 0; i--) {\r\n var tmp = new Date(d.getFullYear(), 2, i);\r\n // If it's Sunday\r\n if (tmp.getDay() == 0) {\r\n // last Sunday of March\r\n lSoM = tmp;\r\n break;\r\n }\r\n }\r\n\r\n // Loop over the 31 days of October for the current year\r\n for (var i = 31; i > 0; i--) {\r\n var tmp = new Date(d.getFullYear(), 9, i);\r\n // If it's Sunday\r\n if (tmp.getDay() == 0) {\r\n // last Sunday of October\r\n lSoO = tmp;\r\n break;\r\n }\r\n }\r\n\r\n // 0 = DST off (GMT)\r\n // 1 = DST on (BST)\r\n if (d < lSoM || d > lSoO) {\r\n return 0;\r\n }\r\n\r\n return 1;\r\n};\r\n\r\nexport const getVerificationEndpoint = (data) => {\r\n const { verificationEndpoint } = data;\r\n\r\n const email = userService.getDataFromLocalStorage(CookieNames.TOCH_USER_EMAIL);\r\n const updatedEndpoint = verificationEndpoint + email;\r\n\r\n return updatedEndpoint;\r\n};\r\n\r\nexport const getUserAddressBooks = () => {\r\n const userAddressBooks = userService.getDataFromLocalStorage(TOCH_USER_ADDRESS_BOOK_LOCALSTORAGE_NAME);\r\n\r\n if (userAddressBooks === null || userAddressBooks === undefined || userAddressBooks === '') return null;\r\n\r\n return userAddressBooks;\r\n};\r\n\r\nexport const verifyUserInAddressBook = (addressBookList, addressBookID) => {\r\n if (addressBookList === null) return false;\r\n\r\n const addressBooksList = JSON.parse(addressBookList);\r\n const addressBookIdAsInt = parseInt(addressBookID, 10);\r\n const isInAddressBook = addressBooksList.some((element) => element.AddressBookId === addressBookIdAsInt);\r\n\r\n return isInAddressBook;\r\n};\r\n\r\nexport const handlePersonalizedCompetitionList = (userAddressBooks, competitions) => {\r\n if (userAddressBooks === null) return null;\r\n\r\n for (let i = 0; i < competitions.length; i++) {\r\n const completedCompetitionIndex = userAddressBooks.findIndex((item) => item.AddressBookId === competitions[i].dotmailerDetails.addressBookID);\r\n\r\n if (completedCompetitionIndex !== -1) {\r\n competitions.splice(i, 1);\r\n i--;\r\n }\r\n }\r\n\r\n return competitions;\r\n};\r\n\r\nexport const addCompletedFormToAddressBookLocalStorage = (dotmailerId, dotmailerName) => {\r\n const userAddressBooks = getUserAddressBooks();\r\n const userAddressBooksObject = JSON.parse(userAddressBooks);\r\n const dotmailerObject = {\r\n AddressBookId: parseInt(dotmailerId, 10),\r\n AddressBookName: dotmailerName\r\n };\r\n\r\n if (userAddressBooksObject === null) return [dotmailerObject];\r\n\r\n userAddressBooksObject.push(dotmailerObject);\r\n\r\n return userAddressBooksObject;\r\n};\r\n\r\nexport const getUserDetailsFromCookie = () => {\r\n const cookie = Cookies.get(CookieNames.TOCH_USER_DATA);\r\n\r\n return safeParseJSON(cookie);\r\n};\r\n\r\nexport const getUserMainAddressPostcode = (userAccountData) => {\r\n if (userAccountData.addresses === null || userAccountData.addresses === undefined) return null;\r\n\r\n const userMainAddress = userAccountData.addresses.find((e) => e.main === true);\r\n\r\n return hasValue(userMainAddress) ? userMainAddress.postcode : undefined;\r\n};\r\n\r\nexport const getBecameMastercardDate = (userAccountData) => {\r\n const userBecameMastercardAttribute = userAccountData['custom:becameMasterCard'];\r\n\r\n const currentDate = new Date();\r\n return !hasValue(userBecameMastercardAttribute) ?\r\n new Date(currentDate.getFullYear(), 1, 1) :\r\n new Date(userBecameMastercardAttribute);\r\n};\r\n\r\nexport const getTochUserDataCookieValue = (userAccountData, membershipArray) => {\r\n const becameMasterCard = getBecameMastercardDate(userAccountData);\r\n\r\n return JSON.stringify({\r\n firstName: userAccountData.given_name,\r\n lastName: userAccountData.family_name,\r\n email: userAccountData.email,\r\n isOneClub: handleCheckMembershipExists(membershipArray, MembershipTypes.OneClub),\r\n isMasterCardExclusive: handleCheckMembershipExists(membershipArray, MembershipTypes.OneClubAdvantage),\r\n createdDate: userAccountData.createdDate,\r\n becameMasterCard,\r\n postcode: getUserMainAddressPostcode(userAccountData)\r\n });\r\n};\r\n\r\nexport const setTochUserDataCookie = (userAccountData) => {\r\n const membershipArray = getTOCHMembershipArray(userAccountData['custom:Membership']);\r\n const cookieValue = getTochUserDataCookieValue(userAccountData, membershipArray);\r\n\r\n userService.setTOCHUserDataCookie(cookieValue);\r\n userService.setTOCHUserMembershipsInLocalStorage(JSON.stringify(userAccountData['custom:Membership']));\r\n};\r\n","import React from 'react';\r\nimport { SitecoreImageField } from 'components/sitecore-fields';\r\nimport { isEmpty } from '../../../sso/components/utils/obj-utils';\r\nimport {\r\n calculateRemainingDate,\r\n checkIfExpired\r\n} from '../helpers/toch-helpers';\r\n\r\nclass CountdownAlertBar extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n countdownTimer: Date.now(),\r\n days: null,\r\n minutes: null,\r\n hours: null\r\n };\r\n\r\n this.getRemainingDate = this.getRemainingDate.bind(this);\r\n }\r\n\r\n getRemainingDate() {\r\n const { countdownTimer } = this.props.data;\r\n const newDate = calculateRemainingDate(countdownTimer);\r\n\r\n this.setState({ days: newDate.days, hours: newDate.hours, minutes: newDate.minutes });\r\n }\r\n\r\n componentDidMount() {\r\n const { refreshTime } = this.props.data;\r\n const refresh = (isEmpty(refreshTime) || refreshTime === null || refreshTime === undefined) ? 60000 : refreshTime;\r\n\r\n this.interval = setInterval(() => this.getRemainingDate(), refresh);\r\n }\r\n\r\n componentWillUnmount() {\r\n clearInterval(this.interval);\r\n }\r\n\r\n render() {\r\n const {\r\n countdownTimer,\r\n countdownDaysText,\r\n countdownHoursText,\r\n countdownMinutesText,\r\n link,\r\n linkText,\r\n logo,\r\n isInEditMode,\r\n text,\r\n } = this.props.data;\r\n const { days, hours, minutes } = this.state;\r\n\r\n const isExpired = checkIfExpired(countdownTimer);\r\n\r\n const newDate = (days === null && hours === null && minutes === null) ? calculateRemainingDate(countdownTimer) : null;\r\n const daysValue = (days === null || days === undefined) ? newDate.days : days;\r\n const hoursValue = (hours === null || hours === undefined) ? newDate.hours : hours;\r\n const minutesValue = (minutes === null || minutes === undefined) ? newDate.minutes : minutes;\r\n \r\n return (\r\n
\r\n
\r\n {text}\r\n {\r\n (!isExpired) &&\r\n \r\n {daysValue} {countdownDaysText.toLowerCase()}, {hoursValue} {countdownHoursText.toLowerCase()} and {minutesValue} {countdownMinutesText.toLowerCase()} \r\n \r\n }\r\n
\r\n
\r\n {\r\n (link.url !== null && link.url !== undefined) &&\r\n
\r\n {\r\n (logo.src !== null && logo.src !== undefined) &&\r\n \r\n \r\n {linkText}\r\n \r\n }\r\n {\r\n (logo.src === null || logo.src === undefined) &&\r\n \r\n {linkText}\r\n \r\n }\r\n
\r\n }\r\n {\r\n (link.url === null || link.url === undefined) &&\r\n \r\n }\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default CountdownAlertBar;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport store from 'general/js/store';\r\nimport CountdownAlertBar from './CountdownAlertBar';\r\n\r\nclass CountdownAlertBarComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default CountdownAlertBarComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport CountdownAlertBarComponent from './js/countdown-alertbar/countdown-alertbar.component';\r\n\r\nComponentsFactory.getInstance().define('countdown-alertbar', CountdownAlertBarComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport $ from 'jquery';\r\n\r\nexport default class CountriesComponent extends BaseComponent {\r\n constructor( ...args) {\r\n super(...args);\r\n\r\n this.onCountriesChange = this.onCountriesChange.bind(this);\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (this.refs.countries && this.refs.counties) {\r\n this.getCountriesList();\r\n this.addListener(this.refs.countries, 'change', this.onCountriesChange);\r\n }\r\n }\r\n\r\n getCountriesList() {\r\n const countriesSelect = this.refs.countries.querySelector('select');\r\n if (this.refs.county) {\r\n this.countries = [];\r\n this.refs.county.forEach((county) => {\r\n if (this.countries.indexOf(county.getAttribute('data-country')) === -1) {\r\n this.countries.push(county.getAttribute('data-country'));\r\n }\r\n });\r\n\r\n if (this.countries.indexOf(countriesSelect.value) !== -1) {\r\n this.filterCounties(countriesSelect.value);\r\n this.refs.counties.classList.add('is-visible');\r\n }\r\n }\r\n }\r\n\r\n onCountriesChange = (event) => {\r\n if (this.countries.indexOf(event.target.value) !== -1) {\r\n this.filterCounties(event.target.value);\r\n this.refs.counties.classList.add('is-visible'); \r\n this.refs.counties.querySelector('select').value = '-1';\r\n } else {\r\n this.refs.counties.classList.remove('is-visible');\r\n }\r\n };\r\n\r\n filterCounties(country) {\r\n $('#Address_County').empty();\r\n $('#Address_County').append('');\r\n \r\n this.refs.county.forEach((county) => {\r\n if (county.getAttribute('data-country') === country) {\r\n $('#Address_County').append(county); \r\n } \r\n });\r\n }\r\n}\r\n","import './scss/index.scss';\r\n\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport CountriesComponent from './js/countries.component';\r\n\r\nComponentsFactory.getInstance().define('countries', CountriesComponent);\r\n","import React, { Component } from 'react'\r\n\r\nexport default class StepFreeForm extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.updateResult = this.props.updateResult;\r\n\r\n this.state = { answerValue: this.props.initialResult };\r\n this.handleAnswerChange = this.handleAnswerChange.bind(this);\r\n }\r\n\r\n handleAnswerChange(event) {\r\n const {\r\n isOptional,\r\n itemDestinationName\r\n } = this.props.options;\r\n \r\n const { answerValue } = this.state;\r\n let answers = answerValue ? answerValue : {};\r\n answers[itemDestinationName] = event.target.value;\r\n\r\n this.setState({ answerValue: answers });\r\n this.updateResult(\r\n event.target.value !== '' || isOptional,\r\n itemDestinationName,\r\n event.target.value\r\n );\r\n }\r\n\r\n componentDidUpdate() {\r\n const {\r\n canGoToNextStep\r\n } = this.props;\r\n const {itemDestinationName} = this.props.options;\r\n\r\n if (!canGoToNextStep && (this.state.answerValue && this.state.answerValue[itemDestinationName] != '')) {\r\n this.updateResult(\r\n true\r\n );\r\n }\r\n }\r\n\r\n handleLabelClick = () => {\r\n this.inputElement.focus();\r\n }\r\n\r\n render() {\r\n const {\r\n itemLabel,\r\n answerFieldLabel,\r\n errorMessage,\r\n isOptional,\r\n itemDestinationName\r\n } = this.props.options;\r\n const {\r\n textMaximumLength,\r\n viewErrors\r\n } = this.props;\r\n const { answerValue } = this.state;\r\n\r\n const currentAnswer = answerValue && answerValue[itemDestinationName] ? answerValue[itemDestinationName] : \"\";\r\n\r\n const isFilled = currentAnswer && currentAnswer.length > 0;\r\n\r\n return (\r\n
\r\n
{itemLabel}
\r\n
\r\n this.inputElement = input}\r\n className={`form-field__input ${!isOptional && viewErrors && currentAnswer === '' ? 'is-error__border' : \"\"}`}\r\n value={currentAnswer}\r\n onChange={this.handleAnswerChange}\r\n rows=\"4\"\r\n maxLength={textMaximumLength}\r\n />\r\n \r\n {answerFieldLabel}\r\n \r\n {!isOptional && viewErrors && currentAnswer === '' ?
    \r\n
  • {errorMessage}
  • \r\n
: null}\r\n
\r\n
\r\n )\r\n }\r\n}\r\n","import React from 'react'\r\nexport default class StepDropdown extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.updateResult = this.props.updateResult;\r\n\r\n this.state = { answerValue: this.props.initialResult };\r\n }\r\n\r\n onChange = (event) => {\r\n const { itemDestinationName } = this.props.options;\r\n\r\n const { answerValue } = this.state;\r\n let answer = answerValue ? answerValue : {};\r\n answer[itemDestinationName] = event.target.value;\r\n\r\n this.setState({ answerValue: answer });\r\n this.updateResult(\r\n true,\r\n itemDestinationName,\r\n event.currentTarget.value\r\n );\r\n }\r\n\r\n render() {\r\n const {\r\n possibleChoices,\r\n itemLabel,\r\n defaultValue,\r\n errorMessage,\r\n itemDestinationName\r\n } = this.props.options;\r\n\r\n const {\r\n viewErrors,\r\n canGoToNextStep\r\n } = this.props;\r\n\r\n const { answerValue } = this.state;\r\n const currentAnswer = answerValue && answerValue[itemDestinationName] ? answerValue[itemDestinationName] : defaultValue;\r\n\r\n if (!canGoToNextStep && currentAnswer !== defaultValue) {\r\n this.updateResult(\r\n true\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
{itemLabel}
\r\n
\r\n \r\n \r\n {defaultValue}\r\n \r\n {possibleChoices.map((option, index) => {\r\n return (\r\n \r\n {option}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n
\r\n {viewErrors && currentAnswer === defaultValue ?
    \r\n
  • {errorMessage}
  • \r\n
: null}\r\n
\r\n )\r\n }\r\n}","export const formValidationConstants = {\r\n dateOfBirthErrorMessage: 'Please enter a valid date of birth.',\r\n membersMustBeOVer16: 'Members must be 16 or over.',\r\n\r\n minimumValidAge: 16,\r\n minimumValidMonth: 1,\r\n maximumValidMonth: 12,\r\n\r\n privacyPolicyErrorMessage: 'You need to agree to our Privacy Policy to continue.',\r\n oneClubTermsAndServicesErrorMessage: 'You need to agree to our Terms and Services to continue.',\r\n\r\n pleaseInputAValue: 'Please input a value.',\r\n /* eslint-disable-next-line */\r\n emailPattern: /^(([^<>()\\[\\]\\\\.,;:\\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,}))$/,\r\n emailAddressErrorMessage: 'This value should be a valid email.',\r\n blockedDomainMessage: 'Invalid email address. Please try again with a correct domain',\r\n confirmEmailErrorMessage: 'The email and the email confirmation should be the same.',\r\n\r\n passwordPattern: /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$/,\r\n passwordErrorMessage: 'The password should contain at least one small letter, one capital letter and digit. Minimum password length is 8 characters.',\r\n\r\n confirmPasswordErrorMessage: 'The password and the password confirmation should be the same.',\r\n newPasswordErrorMessage: 'The password and the new password should not be the same.',\r\n oldPasswordErrorMessage: 'The new and old password cannot have the same value.',\r\n none: 'None',\r\n\r\n titleErrorMessage: 'Please select a title.',\r\n countryErrorMessage: 'Please select your Country.',\r\n countyErrorMessage: 'Please select your County',\r\n stateErrorMessage: 'Please select your State',\r\n\r\n venuesErrorMessage: 'Please select venues you are interested in.',\r\n championshipSectionErrorMessage: 'Please select the championship you are interested in',\r\n channelSectionErrorMessage: 'Please select the channel you are interested in',\r\n interestSectionErrorMessage: 'Please select your prefered interests',\r\n firstNameErrorMessage: 'Please enter your First Name.',\r\n lastNameErrorMessage: 'Please enter your Last Name.',\r\n addressLine1ErrorMessage: 'Please enter your Address.',\r\n postcodeErrorMessage: 'Please enter your Post Code.',\r\n mobilePhoneErrorMessage: 'Phone number must be between 7 and 15 characters.',\r\n cityErrorMessage: 'Please enter your City.',\r\n favoritePlayerErrorMessage: 'Please specify your favorite golf player name.',\r\n verificationCodeErrorMessage: 'Please input the received verification code.',\r\n specialCharactersErrorMessage: 'Allowed: \\',-.a-z . Please start and finish just with letters.',\r\n specialCharactersNumbersErrorMessage: 'Allowed: \\',-.a-z0-9 . Please start and finish just with letters or numbers.',\r\n specialCharactersNumbersLettersErrorMessage: 'Allowed: a-z0-9 -. Please start and finish just with letters or numbers.',\r\n\r\n raMemberIdEmptyErrorMessage: 'Please enter your R&A Member Id',\r\n raMemberIdInvalidErrorMessage: 'Wrong ID format inputted',\r\n\r\n captchaInvalidErrorMessage: 'Please let us verify you are not a robot',\r\n\r\n suttonixDomain: '@suttontix',\r\n ecrypseDomain: '@ecrypse',\r\n dogpilezDomain: '@dogpilez'\r\n\r\n\r\n};\r\n","/* eslint-disable consistent-return */\r\n/* eslint-disable no-prototype-builtins */\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\nimport { formConstants } from '../components/utils/constants/form-constants';\r\nimport { formValidationConstants } from '../components/utils/constants/form-validation-constants';\r\nimport { getFormattedEmailRemoveSpaces } from '../store/actions/helpers/data-format-helper';\r\n\r\nexport function validateEmail(emailText) {\r\n if (isEmpty(emailText)) {\r\n return { isValid: false, errorMessage: formValidationConstants.pleaseInputAValue };\r\n }\r\n\r\n if (!isEmpty(emailText.defaultValue)) return { isValid: true };\r\n\r\n\r\n const email = getFormattedEmailRemoveSpaces(emailText);\r\n\r\n const emailPattern = formValidationConstants.emailPattern;\r\n if (!emailPattern.test(String(email))) {\r\n return { isValid: false, errorMessage: formValidationConstants.emailAddressErrorMessage };\r\n }\r\n\r\n if (emailText.includes(formValidationConstants.suttonixDomain) || emailText.includes(formValidationConstants.ecrypseDomain) || emailText.includes(formValidationConstants.dogpilezDomain)) {\r\n return { isValid: false, errorMessage: formValidationConstants.blockedDomainMessage };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateConfirmEmail(emailText, confirmEmail) {\r\n if (emailText !== confirmEmail) {\r\n return { isValid: false, errorMessage: formValidationConstants.confirmEmailErrorMessage };\r\n }\r\n\r\n if (isEmpty(confirmEmail)) {\r\n return { isValid: false, errorMessage: formValidationConstants.pleaseInputAValue };\r\n }\r\n\r\n const emailPattern = formValidationConstants.emailPattern;\r\n if (!emailPattern.test(String(confirmEmail).toLowerCase())) {\r\n return { isValid: false, errorMessage: formValidationConstants.emailAddressErrorMessage };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validatePassword(passwordText) {\r\n if (isEmpty(passwordText)) {\r\n return { isValid: false, errorMessage: formValidationConstants.pleaseInputAValue };\r\n }\r\n\r\n const passwordPattern = formValidationConstants.passwordPattern;\r\n if (!passwordPattern.test(String(passwordText))) {\r\n return { isValid: false, errorMessage: formValidationConstants.passwordErrorMessage };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateNewPassword(password, newPassword) {\r\n if (password === newPassword) {\r\n return { isValid: false, errorMessage: formValidationConstants.newPasswordErrorMessage };\r\n }\r\n\r\n if (isEmpty(newPassword)) {\r\n return { isValid: false, errorMessage: formValidationConstants.pleaseInputAValue };\r\n }\r\n\r\n const passwordPattern = formValidationConstants.passwordPattern;\r\n if (!passwordPattern.test(String(newPassword))) {\r\n return { isValid: false, errorMessage: formValidationConstants.passwordErrorMessage };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateOldPassword(password, oldPassword) {\r\n if (password === oldPassword) {\r\n return { isValid: false, errorMessage: formValidationConstants.oldPasswordErrorMessage };\r\n }\r\n\r\n if (isEmpty(oldPassword)) {\r\n return { isValid: false, errorMessage: formValidationConstants.pleaseInputAValue };\r\n }\r\n\r\n const passwordPattern = formValidationConstants.passwordPattern;\r\n if (!passwordPattern.test(String(oldPassword))) {\r\n return { isValid: false, errorMessage: formValidationConstants.passwordErrorMessage };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateConfirmPassword(password, confirmPassword) {\r\n if (password !== confirmPassword) {\r\n return { isValid: false, errorMessage: formValidationConstants.confirmPasswordErrorMessage };\r\n }\r\n\r\n if (isEmpty(confirmPassword)) {\r\n return { isValid: false, errorMessage: formValidationConstants.pleaseInputAValue };\r\n }\r\n\r\n const passwordPattern = formValidationConstants.passwordPattern;\r\n if (!passwordPattern.test(String(confirmPassword))) {\r\n return { isValid: false, errorMessage: formValidationConstants.passwordErrorMessage };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateSelectedCounty(selectedCounty, selectedCountryCode, county) {\r\n const availableCounties = county.options.filter(\r\n (x) => x.countryCode === selectedCountryCode\r\n );\r\n const hasCounties = availableCounties && availableCounties.length > 0;\r\n\r\n if (hasCounties) {\r\n return validateCounty(selectedCounty);\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateSelectedState(selectedState, selectedCountryCode, stateField = null) {\r\n const availableStates = hasValue(stateField) ?\r\n stateField.options.filter(\r\n (s) => s.countryCode === selectedCountryCode\r\n ) :\r\n [];\r\n const hasStates = availableStates && availableStates.length > 0;\r\n\r\n if (hasStates) {\r\n return validateState(selectedState);\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateTitle(title) {\r\n if (isEmpty(title) || title === formValidationConstants.none) {\r\n return { isValid: false, errorMessage: formValidationConstants.titleErrorMessage };\r\n }\r\n\r\n if (title.hasOwnProperty(formConstants.defaultValuePropertyName)) {\r\n if (isEmpty(title[formConstants.defaultValuePropertyName])) {\r\n return { isValid: false, errorMessage: formValidationConstants.titleErrorMessage };\r\n }\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateCountry(country) {\r\n if (isEmpty(country) || country === formValidationConstants.none) {\r\n return { isValid: false, errorMessage: formValidationConstants.countryErrorMessage };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateCounty(county) {\r\n if (isEmpty(county) || county === formValidationConstants.none) {\r\n return { isValid: false, errorMessage: formValidationConstants.countyErrorMessage };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateState(stateValue) {\r\n if (isEmpty(stateValue) || stateValue === formValidationConstants.none) {\r\n return { isValid: false, errorMessage: formValidationConstants.stateErrorMessage };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateBecomeOneClubMember() {\r\n return noValidationRequired();\r\n}\r\n\r\nexport function validateFirstName(text) {\r\n const validateEmptyString = validateTextValue(text, formValidationConstants.firstNameErrorMessage);\r\n if (!validateEmptyString.isValid) {\r\n return validateEmptyString;\r\n }\r\n\r\n //validation for special characters\r\n if (!new RegExp('^[A-Za-z]+((([,.][ ]{0,1})|([ \\'-]))[A-Za-z]+)*$').test(String(text))) {\r\n return { isValid: false, errorMessage: formValidationConstants.specialCharactersErrorMessage };\r\n }\r\n}\r\n\r\nexport function validateLastName(text) {\r\n const validateEmptyString = validateTextValue(text, formValidationConstants.lastNameErrorMessage);\r\n if (!validateEmptyString.isValid) {\r\n return validateEmptyString;\r\n }\r\n\r\n //validation for special characters\r\n if (!new RegExp('^[A-Za-z]+((([,.][ ]{0,1})|([ \\'-]))[A-Za-z]+)*$').test(String(text))) {\r\n return { isValid: false, errorMessage: formValidationConstants.specialCharactersErrorMessage };\r\n }\r\n}\r\n\r\nexport function validateAddressLine1(text) {\r\n const validateEmptyString = validateTextValue(text, formValidationConstants.addressLine1ErrorMessage);\r\n if (!validateEmptyString.isValid) {\r\n return validateEmptyString;\r\n }\r\n\r\n //validation for special characters\r\n if (!new RegExp('^[A-Za-z0-9]+((([,.][ ]{0,1})|([ \\'-]))[A-Za-z0-9]+)*$').test(String(text))) {\r\n return { isValid: false, errorMessage: formValidationConstants.specialCharactersNumbersErrorMessage };\r\n }\r\n}\r\n\r\nexport function validateAddressLine2() {\r\n return noValidationRequired();\r\n}\r\n\r\nexport function validateAddressLine3() {\r\n return noValidationRequired();\r\n}\r\n\r\nexport function validatePostcode(postCodeText) {\r\n const validateEmptyString = validateTextValue(postCodeText, formValidationConstants.postcodeErrorMessage);\r\n if (!validateEmptyString.isValid) {\r\n return validateEmptyString;\r\n }\r\n\r\n //validation for special characters\r\n if (!new RegExp('^[A-Za-z0-9]+(([ -])[A-Za-z0-9]+)*$').test(String(postCodeText))) {\r\n return { isValid: false, errorMessage: formValidationConstants.specialCharactersNumbersLettersErrorMessage };\r\n }\r\n}\r\n\r\nexport function validateMobilePhone(mobilePhoneValue, isOptional) {\r\n if (!isOptional) {\r\n if (isEmpty(mobilePhoneValue) || mobilePhoneValue.length <= 0) {\r\n return { isValid: false, errorMessage: formValidationConstants.mobilePhoneErrorMessage };\r\n }\r\n }\r\n\r\n if ((mobilePhoneValue.length > 0 && mobilePhoneValue.length < 7) || mobilePhoneValue.length > 15) {\r\n return {\r\n isValid: false, errorMessage: formValidationConstants.mobilePhoneErrorMessage\r\n };\r\n }\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateCity(text) {\r\n const validateEmptyString = validateTextValue(text, formValidationConstants.cityErrorMessage);\r\n if (!validateEmptyString.isValid) {\r\n return validateEmptyString;\r\n }\r\n\r\n //validation for special characters\r\n if (!new RegExp('^[A-Za-z]+((([,.][ ]{0,1})|([ \\'-]))[A-Za-z]+)*$').test(String(text))) {\r\n return { isValid: false, errorMessage: formValidationConstants.specialCharactersErrorMessage };\r\n }\r\n}\r\n\r\nexport function validateMainAddress() {\r\n return noValidationRequired();\r\n}\r\n\r\nexport function validateShippingAddress() {\r\n return noValidationRequired();\r\n}\r\n\r\nexport function validateBillingAddress() {\r\n return noValidationRequired();\r\n}\r\n\r\nexport function validateFavoritePlayer(text) {\r\n const validateEmptyString = validateTextValue(text, formValidationConstants.favoritePlayerErrorMessage);\r\n if (!validateEmptyString.isValid) {\r\n return validateEmptyString;\r\n }\r\n\r\n //validation for special characters\r\n if (!new RegExp('^[A-Za-z]+((([,.][ ]{0,1})|([ \\'-]))[A-Za-z]+)*$').test(String(text))) {\r\n return { isValid: false, errorMessage: formValidationConstants.specialCharactersErrorMessage };\r\n }\r\n}\r\n\r\nexport function validateVenues(venues) { return validateUserChoices(venues, formValidationConstants.venuesErrorMessage); }\r\nexport function validateChampionship(championships) { return validateUserChoices(championships, formValidationConstants.championshipSectionErrorMessage); }\r\nexport function validateChannels(channels) { return validateUserChoices(channels, formValidationConstants.channelSectionErrorMessage); }\r\nexport function validateInterests(interests) { return validateUserChoices(interests, formValidationConstants.interestSectionErrorMessage); }\r\n\r\nfunction validateUserChoices(choices, message) {\r\n if (!choices || choices.length < 1) {\r\n return {\r\n isValid: false, errorMessage: message\r\n };\r\n }\r\n\r\n if (choices.every((x) => x === false)) {\r\n return {\r\n isValid: false, errorMessage: message\r\n };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\nexport function validateVerificationCode(verificationCode) {\r\n const validateEmptyString = validateTextValue(verificationCode, formValidationConstants.verificationCodeErrorMessage);\r\n if (!validateEmptyString.isValid) {\r\n return validateEmptyString;\r\n }\r\n\r\n //validation for special characters\r\n if (!new RegExp('^[A-Za-z0-9]+(([ -])[A-Za-z0-9]+)*$').test(String(verificationCode))) {\r\n return { isValid: false, errorMessage: formValidationConstants.specialCharactersNumbersLettersErrorMessage };\r\n }\r\n}\r\n\r\nexport function noValidationRequired() {\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateRaMemberId(text) {\r\n if (isEmpty(text)) {\r\n return {\r\n isValid: false, errorMessage: formValidationConstants.raMemberIdEmptyErrorMessage\r\n };\r\n }\r\n\r\n if (text.length !== 4 || !Number(text) || hasWhiteSpace(text)) {\r\n return {\r\n isValid: false, errorMessage: formValidationConstants.raMemberIdInvalidErrorMessage\r\n };\r\n }\r\n}\r\n\r\nexport function validateCaptchaBox(isValid) {\r\n if (isValid) return { isValid: true };\r\n\r\n return {\r\n isValid: false, errorMessage: formValidationConstants.captchaInvalidErrorMessage\r\n };\r\n}\r\n\r\nexport function validateMastercard(mastercardNumber, mastercardRegex, notMastercardMessage) {\r\n if (!isEmpty(mastercardNumber)) {\r\n if (mastercardRegex !== undefined && !new RegExp(mastercardRegex).test(String(mastercardNumber))) {\r\n return { isValid: false, errorMessage: notMastercardMessage };\r\n }\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\n\r\nfunction validateTextValue(text, errorMessage) {\r\n if (isEmpty(text)) {\r\n return {\r\n isValid: false, errorMessage\r\n };\r\n }\r\n return { isValid: true };\r\n}\r\n\r\nfunction isEmpty(text) {\r\n return !text || text === '';\r\n}\r\n\r\nfunction hasWhiteSpace(text) {\r\n return text.indexOf(' ') >= 0;\r\n}\r\n","import React from \"react\";\r\nimport { validateEmail } from \"../../../sso/validators/text-validators\";\r\n\r\nconst RandomSeedMaxValue = 10000000;\r\n\r\nexport default class ContactInfoStep extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const { emailAddress, initialResult } = this.props;\r\n const {\r\n firstnameField,\r\n lastnameField,\r\n checkbox1Field,\r\n checkbox2Field,\r\n additionalField1,\r\n additionalField2,\r\n } = this.props.options;\r\n\r\n const result = initialResult ? initialResult : {};\r\n\r\n this.state = {\r\n randomSeedNumber: Math.floor(Math.random() * RandomSeedMaxValue),\r\n firstName: result[firstnameField] ? result[firstnameField] : \"\",\r\n lastName: result[lastnameField] ? result[lastnameField] : \"\",\r\n additional1: result[additionalField1]\r\n ? result[additionalField1]\r\n : \"\",\r\n additional2: result[additionalField2]\r\n ? result[additionalField2]\r\n : \"\",\r\n emailAddress: emailAddress ? emailAddress : \"\",\r\n agreedToC1: result[checkbox1Field] ? result[checkbox1Field] : false,\r\n agreedToC2: result[checkbox2Field] ? result[checkbox2Field] : false,\r\n };\r\n\r\n this.handleFirstnameChange = this.handleFirstnameChange.bind(this);\r\n this.handleLastnameChange = this.handleLastnameChange.bind(this);\r\n this.handleEmailChange = this.handleEmailChange.bind(this);\r\n this.handleCheckbox1Change = this.handleCheckbox1Change.bind(this);\r\n this.handleCheckbox2Change = this.handleCheckbox2Change.bind(this);\r\n this.handleAdditional1Change = this.handleAdditional1Change.bind(this);\r\n this.handleAdditional2Change = this.handleAdditional2Change.bind(this);\r\n\r\n this.isValid = this.isValid.bind(this);\r\n\r\n this.updateResult = this.props.updateResult;\r\n }\r\n\r\n isValid() {\r\n const {\r\n nameFieldsAreOptional,\r\n hideNameFields,\r\n checkbox1IsOptional,\r\n hideCheckbox1,\r\n checkbox2IsOptional,\r\n hideCheckbox2,\r\n additionalField1IsOptional,\r\n hideAdditionalField1,\r\n additionalField2IsOptional,\r\n hideAdditionalField2,\r\n } = this.props.options;\r\n\r\n const {\r\n firstName,\r\n lastName,\r\n emailAddress,\r\n agreedToC1,\r\n agreedToC2,\r\n additional1,\r\n additional2,\r\n } = this.state;\r\n\r\n return (\r\n (nameFieldsAreOptional ||\r\n hideNameFields ||\r\n (firstName !== \"\" && lastName !== \"\")) &&\r\n validateEmail(emailAddress).isValid &&\r\n (checkbox1IsOptional || hideCheckbox1 || agreedToC1 === true) &&\r\n (checkbox2IsOptional || hideCheckbox2 || agreedToC2 === true) &&\r\n (additionalField1IsOptional ||\r\n hideAdditionalField1 ||\r\n additional1 !== \"\") &&\r\n (additionalField2IsOptional ||\r\n hideAdditionalField2 ||\r\n additional2 !== \"\")\r\n );\r\n }\r\n\r\n handleFirstnameChange(event) {\r\n this.setState({\r\n randomSeedNumber: this.state.randomSeedNumber,\r\n firstName: event.target.value,\r\n lastName: this.state.lastName,\r\n emailAddress: this.state.emailAddress,\r\n agreedToC1: this.state.agreedToC1,\r\n agreedToC2: this.state.agreedToC2,\r\n additional1: this.state.additional1,\r\n additional2: this.state.additional2,\r\n });\r\n\r\n const { firstnameField } = this.props.options;\r\n\r\n this.updateResult(this.isValid(), firstnameField, event.target.value);\r\n }\r\n\r\n handleLastnameChange(event) {\r\n this.setState({\r\n randomSeedNumber: this.state.randomSeedNumber,\r\n firstName: this.state.firstName,\r\n lastName: event.target.value,\r\n emailAddress: this.state.emailAddress,\r\n agreedToC1: this.state.agreedToC1,\r\n agreedToC2: this.state.agreedToC2,\r\n additional1: this.state.additional1,\r\n additional2: this.state.additional2,\r\n });\r\n\r\n const { lastnameField } = this.props.options;\r\n\r\n this.updateResult(this.isValid(), lastnameField, event.target.value);\r\n }\r\n\r\n handleEmailChange(event) {\r\n this.setState({\r\n randomSeedNumber: this.state.randomSeedNumber,\r\n firstName: this.state.firstName,\r\n lastName: this.state.lastName,\r\n emailAddress: event.target.value,\r\n agreedToC1: this.state.agreedToC1,\r\n agreedToC2: this.state.agreedToC2,\r\n additional1: this.state.additional1,\r\n additional2: this.state.additional2,\r\n });\r\n\r\n this.updateResult(this.isValid(), \"emailAddress\", event.target.value);\r\n }\r\n\r\n handleCheckbox1Change(event) {\r\n this.setState({\r\n randomSeedNumber: this.state.randomSeedNumber,\r\n firstName: this.state.firstName,\r\n lastName: this.state.lastName,\r\n emailAddress: this.state.emailAddress,\r\n agreedToC1: event.target.checked,\r\n agreedToC2: this.state.agreedToC2,\r\n additional1: this.state.additional1,\r\n additional2: this.state.additional2,\r\n });\r\n\r\n const { checkbox1Field } = this.props.options;\r\n\r\n this.updateResult(this.isValid(), checkbox1Field, event.target.checked);\r\n }\r\n\r\n handleCheckbox2Change(event) {\r\n this.setState({\r\n randomSeedNumber: this.state.randomSeedNumber,\r\n firstName: this.state.firstName,\r\n lastName: this.state.lastName,\r\n emailAddress: this.state.emailAddress,\r\n agreedToC1: this.state.agreedToC1,\r\n agreedToC2: event.target.checked,\r\n additional1: this.state.additional1,\r\n additional2: this.state.additional2,\r\n });\r\n\r\n const { checkbox2Field } = this.props.options;\r\n\r\n this.updateResult(this.isValid(), checkbox2Field, event.target.checked);\r\n }\r\n\r\n handleAdditional1Change(event) {\r\n this.setState({\r\n randomSeedNumber: this.state.randomSeedNumber,\r\n firstName: this.state.firstName,\r\n lastName: this.state.lastName,\r\n emailAddress: this.state.emailAddress,\r\n agreedToC1: this.state.agreedToC1,\r\n agreedToC2: this.state.agreedToC2,\r\n additional1: event.target.value,\r\n additional2: this.state.additional2,\r\n });\r\n\r\n const { additionalField1 } = this.props.options;\r\n\r\n this.updateResult(this.isValid(), additionalField1, event.target.value);\r\n }\r\n\r\n handleAdditional2Change(event) {\r\n this.setState({\r\n randomSeedNumber: this.state.randomSeedNumber,\r\n firstName: this.state.firstName,\r\n lastName: this.state.lastName,\r\n emailAddress: this.state.emailAddress,\r\n agreedToC1: this.state.agreedToC1,\r\n agreedToC2: this.state.agreedToC2,\r\n additional1: this.state.additional1,\r\n additional2: event.target.value,\r\n });\r\n\r\n const { additionalField2 } = this.props.options;\r\n\r\n this.updateResult(this.isValid(), additionalField2, event.target.value);\r\n }\r\n\r\n createMarkup = (param) => {\r\n return { __html: param };\r\n };\r\n\r\n componentDidUpdate() {\r\n const { canGoToNextStep } = this.props;\r\n\r\n if (!canGoToNextStep && this.isValid()) {\r\n this.updateResult(this.isValid());\r\n }\r\n }\r\n\r\n focusOnElement = (element) => {\r\n element.focus();\r\n };\r\n\r\n render() {\r\n const { options } = this.props;\r\n\r\n const {\r\n firstnameLabel,\r\n firstnameError,\r\n lastnameLabel,\r\n lastnameError,\r\n nameFieldsAreOptional,\r\n hideNameFields,\r\n emailLabel,\r\n emailError,\r\n checkbox1IsOptional,\r\n hideCheckbox1,\r\n checkbox1Label,\r\n checkbox1Error,\r\n checkbox2Label,\r\n checkbox2Error,\r\n checkbox2IsOptional,\r\n hideCheckbox2,\r\n additionalField1Label,\r\n additionalField1Error,\r\n additionalField1IsOptional,\r\n hideAdditionalField1,\r\n additionalField2Label,\r\n additionalField2Error,\r\n additionalField2IsOptional,\r\n hideAdditionalField2,\r\n } = options;\r\n\r\n const {\r\n randomSeedNumber,\r\n firstName,\r\n lastName,\r\n emailAddress,\r\n agreedToC1,\r\n agreedToC2,\r\n additional1,\r\n additional2,\r\n } = this.state;\r\n\r\n const { textMaximumLength, viewErrors } = this.props;\r\n\r\n const isFilledFirstname = firstName && firstName.length > 0;\r\n const isFilledLastname = lastName && lastName.length > 0;\r\n const isFilledEmail = emailAddress && emailAddress.length > 0;\r\n const isValidEmail = validateEmail(emailAddress).isValid;\r\n const isFilledAdditionalField1 = additional1 && additional1.length > 0;\r\n const isFilledAdditionalField2 = additional2 && additional2.length > 0;\r\n\r\n const checkbox1withRandomSeed = \"checkbox1\" + randomSeedNumber;\r\n const checkbox2withRandomSeed = \"checkbox2\" + randomSeedNumber;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {hideNameFields !== true && (\r\n
\r\n \r\n \r\n (this.inputFirstnameElement = input)\r\n }\r\n className=\"form-field__input\"\r\n type=\"text\"\r\n value={firstName}\r\n maxLength={textMaximumLength}\r\n onChange={this.handleFirstnameChange}\r\n />\r\n \r\n this.focusOnElement(\r\n this.inputFirstnameElement\r\n )\r\n }\r\n >\r\n {firstnameLabel}\r\n \r\n {viewErrors &&\r\n !nameFieldsAreOptional &&\r\n !isFilledFirstname ? (\r\n
    \r\n
  • \r\n {firstnameError}\r\n
  • \r\n
\r\n ) : null}\r\n
\r\n \r\n \r\n (this.inputLastnameElement = input)\r\n }\r\n className=\"form-field__input\"\r\n type=\"text\"\r\n value={lastName}\r\n maxLength={textMaximumLength}\r\n onChange={this.handleLastnameChange}\r\n />\r\n \r\n this.focusOnElement(\r\n this.inputLastnameElement\r\n )\r\n }\r\n >\r\n {lastnameLabel}\r\n \r\n {viewErrors &&\r\n !nameFieldsAreOptional &&\r\n !isFilledLastname ? (\r\n
    \r\n
  • \r\n {lastnameError}\r\n
  • \r\n
\r\n ) : null}\r\n
\r\n
\r\n )}\r\n\r\n {hideAdditionalField1 !== true && (\r\n \r\n \r\n (this.inputAdditional1Element = input)\r\n }\r\n className=\"form-field__input\"\r\n type=\"text\"\r\n value={additional1}\r\n maxLength={textMaximumLength}\r\n onChange={this.handleAdditional1Change}\r\n />\r\n \r\n this.focusOnElement(\r\n this.inputAdditional1Element\r\n )\r\n }\r\n >\r\n {additionalField1Label}\r\n \r\n {viewErrors &&\r\n !additionalField1IsOptional &&\r\n !isFilledAdditionalField1 ? (\r\n
    \r\n
  • \r\n {additionalField1Error}\r\n
  • \r\n
\r\n ) : null}\r\n
\r\n )}\r\n\r\n {hideAdditionalField2 !== true && (\r\n \r\n \r\n (this.inputAdditional2Element = input)\r\n }\r\n className=\"form-field__input\"\r\n type=\"text\"\r\n value={additional2}\r\n maxLength={textMaximumLength}\r\n onChange={this.handleAdditional2Change}\r\n />\r\n \r\n this.focusOnElement(\r\n this.inputAdditional2Element\r\n )\r\n }\r\n >\r\n {additionalField2Label}\r\n \r\n {viewErrors &&\r\n !additionalField2IsOptional &&\r\n !isFilledAdditionalField2 ? (\r\n
    \r\n
  • \r\n {additionalField2Error}\r\n
  • \r\n
\r\n ) : null}\r\n \r\n )}\r\n\r\n \r\n \r\n (this.inputEmailElement = input)\r\n }\r\n className=\"form-field__input\"\r\n type=\"email\"\r\n value={emailAddress}\r\n maxLength={textMaximumLength}\r\n onChange={this.handleEmailChange}\r\n />\r\n \r\n this.focusOnElement(this.inputEmailElement)\r\n }\r\n >\r\n {emailLabel}\r\n \r\n {viewErrors && !isValidEmail ? (\r\n
    \r\n
  • \r\n {emailError}\r\n
  • \r\n
\r\n ) : null}\r\n \r\n \r\n \r\n {hideCheckbox1 !== true && (\r\n
\r\n \r\n \r\n \r\n \r\n {viewErrors &&\r\n !checkbox1IsOptional &&\r\n !agreedToC1 ? (\r\n
    \r\n
  • \r\n {checkbox1Error}\r\n
  • \r\n
\r\n ) : null}\r\n
\r\n )}\r\n {hideCheckbox2 !== true && (\r\n
\r\n \r\n \r\n \r\n \r\n {viewErrors &&\r\n !checkbox2IsOptional &&\r\n !agreedToC2 ? (\r\n
    \r\n
  • \r\n {checkbox2Error}\r\n
  • \r\n
\r\n ) : null}\r\n
\r\n )}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from 'react'\r\nexport default class StepFinishStatus extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n const {message, statusClass} = this.props;\r\n\r\n return (\r\n
\r\n )\r\n }\r\n}\r\n","import React, { Component } from 'react'\r\n\r\nexport default class StepQuiz extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.updateResult = this.props.updateResult;\r\n\r\n this.state = { answerValue: this.props.initialResult };\r\n this.updateResult(\r\n true\r\n );\r\n \r\n this.handleChange = this.handleChange.bind(this);\r\n }\r\n\r\n handleChange(event) {\r\n event.preventDefault();\r\n const { name, checked } = event.target;\r\n if (!checked) {\r\n return;\r\n }\r\n const { itemDestinationName } = this.props.options;\r\n\r\n this.updateResult(\r\n true,\r\n itemDestinationName,\r\n name\r\n );\r\n\r\n const { answerValue } = this.state;\r\n let answer = answerValue ? answerValue : {};\r\n answer[itemDestinationName] = name;\r\n\r\n this.setState(() => ({\r\n answerValue: answer\r\n }));\r\n }\r\n\r\n render() {\r\n const { answerValue } = this.state;\r\n const {\r\n possibleChoices,\r\n itemLabel,\r\n itemDestinationName\r\n } = this.props.options;\r\n\r\n const currentAnswer = answerValue && answerValue[itemDestinationName] ? answerValue[itemDestinationName] : possibleChoices[0];\r\n \r\n return (\r\n
\r\n
{itemLabel}
\r\n
\r\n {possibleChoices.map((option, index) => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction FormSpinner({ spinnerRef }) {\r\n return (
);\r\n}\r\n\r\nFormSpinner.propTypes = {\r\n spinnerRef: PropTypes.object\r\n};\r\n\r\nexport default FormSpinner;\r\n","import React from 'react';\r\n\r\n// This function takes a component...\r\nexport function withDataCapture(WrappedComponent, selectData) {\r\n // ...and returns another component...\r\n return class extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.handleDataCapture = this.handleDataCapture.bind(this);\r\n this.buildApiData = this.buildApiData.bind(this);\r\n this.state = {\r\n loading: false,\r\n responseReceived: false,\r\n data: {},\r\n errors: {}\r\n };\r\n }\r\n\r\n buildApiData(obj) {\r\n if (!obj) {\r\n return [];\r\n }\r\n\r\n return Object.keys(obj).map(key => ({\r\n \"key\": key,\r\n \"value\": obj[key].toString()\r\n }))\r\n }\r\n\r\n handleDataCapture(result, emailAddress, addressBookId) {\r\n const dataCapture = {\r\n \"emailAddress\": emailAddress,\r\n \"addressBookID\": addressBookId,\r\n \"apiData\": this.buildApiData(result)\r\n };\r\n\r\n this.setState({ loading: true }, () => {\r\n fetch('/api/sitecore/DataCollection/SendDataCapture', {\r\n method: 'POST',\r\n headers: { 'content-type': 'application/json' },\r\n body: JSON.stringify(dataCapture)\r\n })\r\n .then((response) => {\r\n this.setState({\r\n loading: false,\r\n responseReceived: true,\r\n succeeded: response.ok\r\n })\r\n })\r\n .catch((error) => {\r\n this.setState({\r\n loading: false,\r\n responseReceived: true,\r\n succeeded: false\r\n })\r\n });\r\n })\r\n }\r\n\r\n render() {\r\n const { succeeded, loading, responseReceived } = this.state;\r\n return ;\r\n }\r\n };\r\n}","import React from 'react';\r\nimport StepFreeForm from './step-free-form';\r\nimport StepDropdown from './step-dropdown';\r\nimport StepDetails from './step-details';\r\nimport StepFinishStatus from './step-finish-status';\r\nimport StepQuiz from './step-quiz';\r\nimport { withDataCapture } from './with-data-capture';\r\nimport FormSpinner from '../../../sso/components/common/utility/FormSpinner';\r\n\r\nclass WizardDashboard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n const { steps } = props.options;\r\n\r\n let initialResult = {};\r\n for (let i = 0; i < steps.length; i++) {\r\n const item = steps[i];\r\n initialResult[item.itemDestinationName] = item.templateName === \"RadioField\" ? item.possibleChoices[0] : \"\";\r\n }\r\n\r\n this.state = {\r\n wizardIndex: 0,\r\n canGoToNextStep: steps && steps[0] && steps[0].isOptional,\r\n viewErrors: false,\r\n emailAddress: \"\",\r\n result: initialResult\r\n };\r\n this.handleNextButtonClick = this.handleNextButtonClick.bind(this);\r\n this.handlePreviousButtonClick = this.handlePreviousButtonClick.bind(this);\r\n this.displayCurrentStep = this.displayCurrentStep.bind(this);\r\n this.updateResult = this.updateResult.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (!nextProps.loading && nextProps.responseReceived) {\r\n this.setState({\r\n wizardIndex: this.state.wizardIndex + 1,\r\n canGoToNextStep: false,\r\n viewErrors: this.state.viewErrors,\r\n emailAddress: this.state.emailAddress,\r\n result: this.state.result\r\n });\r\n }\r\n }\r\n\r\n handleNextButtonClick(event) {\r\n event.preventDefault();\r\n const { wizardIndex, canGoToNextStep } = this.state;\r\n const { steps } = this.props.options;\r\n\r\n if (!canGoToNextStep) {\r\n this.setState({\r\n wizardIndex: this.state.wizardIndex,\r\n canGoToNextStep: false,\r\n viewErrors: true,\r\n emailAddress: this.state.emailAddress,\r\n result: this.state.result\r\n });\r\n return;\r\n }\r\n //validate if can go next\r\n\r\n if (wizardIndex == steps.length) {\r\n this.props.handleDataCapture(this.state.result, this.state.emailAddress, this.props.options.addressBookID);\r\n return;\r\n }\r\n const nextStep = this.props.options.steps[this.state.wizardIndex + 1];\r\n\r\n this.setState({\r\n wizardIndex: this.state.wizardIndex + 1,\r\n canGoToNextStep: nextStep && (nextStep.isOptional || nextStep.templateName === \"RadioField\"),\r\n viewErrors: false,\r\n emailAddress: this.state.emailAddress,\r\n result: this.state.result\r\n });\r\n }\r\n\r\n handlePreviousButtonClick(event) {\r\n event.preventDefault();\r\n\r\n this.setState({\r\n wizardIndex: this.state.wizardIndex - 1,\r\n canGoToNextStep: true,\r\n viewErrors: false,\r\n emailAddress: this.state.emailAddress,\r\n result: this.state.result\r\n });\r\n }\r\n\r\n updateResult = (canGoToNextStep, parameterName, parameterValue) => {\r\n\r\n if (!parameterName) {\r\n this.setState({\r\n wizardIndex: this.state.wizardIndex,\r\n canGoToNextStep: canGoToNextStep,\r\n viewErrors: this.state.viewErrors,\r\n emailAddress: this.state.emailAddress,\r\n result: this.state.result\r\n });\r\n return;\r\n }\r\n\r\n const newEmailAddress = (parameterName === 'emailAddress') ? parameterValue : this.state.emailAddress;\r\n\r\n if (parameterName !== 'emailAddress' && this.state.result[parameterName] !== parameterValue) {\r\n let partialResult = this.state.result;\r\n partialResult[parameterName] = parameterValue;\r\n this.setState({\r\n wizardIndex: this.state.wizardIndex,\r\n canGoToNextStep: canGoToNextStep,\r\n viewErrors: this.state.viewErrors,\r\n emailAddress: newEmailAddress,\r\n result: partialResult\r\n });\r\n }\r\n else {\r\n this.setState({\r\n wizardIndex: this.state.wizardIndex,\r\n canGoToNextStep: canGoToNextStep,\r\n viewErrors: this.state.viewErrors,\r\n emailAddress: newEmailAddress,\r\n result: this.state.result\r\n });\r\n }\r\n }\r\n\r\n displayCurrentStep() {\r\n const { options, succeeded } = this.props;\r\n const { wizardIndex, emailAddress, canGoToNextStep, result, viewErrors } = this.state;\r\n\r\n // TODO: Verify steps\r\n // TODO: If wizardIndex equals steps length set Details as the current step\r\n\r\n if (wizardIndex === options.steps.length) {\r\n return ;\r\n }\r\n\r\n if (wizardIndex === options.steps.length + 1) {\r\n const message = succeeded ? options.successfullySubmittedMessage : options.errorSubmissionMessage;\r\n const statusClass = succeeded ? \"message-success\" : \"message-error\";\r\n\r\n return ;\r\n }\r\n const item = options.steps[wizardIndex];\r\n\r\n if (item.templateName === \"DropdownField\") {\r\n return \r\n }\r\n\r\n if (item.templateName === \"RadioField\") {\r\n return \r\n }\r\n\r\n if (item.templateName === \"TextField\") {\r\n return \r\n }\r\n }\r\n\r\n render() {\r\n const { options, loading } = this.props;\r\n const {\r\n nextButtonText,\r\n submitButtonText,\r\n hasTheOneClubLayout,\r\n pagesBackgroundImageSource\r\n } = options;\r\n const { wizardIndex } = this.state;\r\n\r\n let showNextButton = wizardIndex < options.steps.length + 1;\r\n let showBackButton = wizardIndex > 0 && wizardIndex < options.steps.length + 1;\r\n\r\n let nextSubmitButtonText =\r\n wizardIndex === options.steps.length ? submitButtonText : nextButtonText;\r\n\r\n return (\r\n \r\n {loading ? : null}\r\n
{options.title}
\r\n
{options.description}
\r\n
\r\n {this.displayCurrentStep()}\r\n
\r\n {\r\n showBackButton &&\r\n \r\n {options.backButtonText}\r\n \r\n }\r\n {\r\n showNextButton &&\r\n \r\n {nextSubmitButtonText}\r\n \r\n }\r\n
\r\n
\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withDataCapture(WizardDashboard);\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport store from 'general/js/store';\r\nimport WizardDashboard from './data-capture-wizard/wizard-dashboard';\r\n\r\nclass DataCaptureComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n const options = this.options;\r\n if (!options.steps) {\r\n options.steps = [];\r\n }\r\n const { imageSource } = options;\r\n ReactDOM.render(\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default DataCaptureComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport DataCaptureComponent from './js/data-capture.component';\r\n\r\nComponentsFactory.getInstance().define('data-capture', DataCaptureComponent);\r\n","import generate from 'nanoid/generate';\r\nimport BaseComponent from 'foundation/base-component';\r\n\r\nclass DfpBanner extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.targetId = generate('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 10);\r\n this.element.id = this.targetId;\r\n\r\n window.googletag = window.googletag || {};\r\n window.gptAdSlots = [];\r\n window.googletag.cmd = window.googletag.cmd || [];\r\n window.googletag.cmd.push(() => {\r\n const bottomAdSizes = window.googletag.sizeMapping()\r\n .addSize([768, 0], this.options.adUnitDesktopSize)\r\n .addSize([0, 0], this.options.adUnitMobileSize)\r\n .build();\r\n\r\n window.gptAdSlots[0] = window.googletag\r\n .defineSlot(\r\n this.options.slot, [\r\n this.options.adUnitMobileSize,\r\n this.options.adUnitDesktopSize\r\n ],\r\n this.targetId\r\n );\r\n\r\n if (window.gptAdSlots[0]) {\r\n window.gptAdSlots[0].defineSizeMapping(bottomAdSizes)\r\n .addService(window.googletag.pubads());\r\n }\r\n\r\n window.googletag.pubads().enableSingleRequest();\r\n window.googletag.companionAds().setRefreshUnfilledSlots(true);\r\n window.googletag.pubads().enableVideoAds();\r\n window.googletag.enableServices();\r\n\r\n setInterval(() => {\r\n window.googletag.pubads().refresh();\r\n }, this.options.refreshRate);\r\n });\r\n\r\n window.googletag.cmd.push(() => {\r\n window.googletag.display(this.targetId);\r\n });\r\n\r\n this.loadScipt();\r\n }\r\n\r\n loadScipt() {\r\n if (window.googletag && window.googletag.apiReady) return;\r\n\r\n const script = document.createElement('script');\r\n script.src = '//www.googletagservices.com/tag/js/gpt.js';\r\n script.async = true;\r\n document.body.appendChild(script);\r\n }\r\n}\r\n\r\nexport default DfpBanner;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport DfpBanner from './js/dfp-banner.component';\r\n\r\nComponentsFactory.getInstance().define('dfp-banner', DfpBanner);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport { SchemaOrg } from 'project/schema-org';\r\n\r\nimport { ContentType } from 'components/content-type';\r\nimport { mediaTypes } from 'components/posts';\r\n\r\nclass NewsCard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.rootRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n ComponentsFactory.getInstance().init(this.rootRef.current);\r\n }\r\n\r\n componentWillUnmount() {\r\n ComponentsFactory.getInstance().destroy(this.rootRef.current);\r\n }\r\n\r\n onClickRoot = () => {\r\n const { onCardLinkClick, model } = this.props;\r\n onCardLinkClick(model);\r\n }\r\n\r\n getFullTitle() {\r\n const { title, subtitle } = this.props.model;\r\n return title + (subtitle ? ` / ${subtitle}` : '');\r\n }\r\n\r\n getTrackingCategory(contentType) {\r\n switch (contentType) {\r\n case mediaTypes.VIDEO_PLAYER:\r\n return 'Video Player';\r\n case mediaTypes.GALLERY:\r\n return 'Gallery';\r\n default:\r\n return 'Article';\r\n }\r\n }\r\n\r\n renderContentType(model) {\r\n if (model.type === mediaTypes.GALLERY ||\r\n model.type === mediaTypes.VIDEO_PLAYER\r\n ) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n render() {\r\n const { model, bemModifiers } = this.props;\r\n let bemCss = '';\r\n\r\n if (Array.isArray(bemModifiers)) {\r\n bemCss = bemModifiers.map((x) => `news-card--${x}`).join(' ');\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n {this.renderContentType(model)}\r\n
\r\n
\r\n
\r\n

{model.label}

\r\n

\r\n {model.title}\r\n /\r\n {model.subtitle}\r\n

\r\n
\r\n {model.ctaText}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nNewsCard.propTypes = {\r\n model: PropTypes.object.isRequired,\r\n bemModifiers: PropTypes.array,\r\n onCardLinkClick: PropTypes.func,\r\n};\r\n\r\nexport default NewsCard;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\n\r\nclass FactCard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.rootRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n ComponentsFactory.getInstance().init(this.rootRef.current);\r\n }\r\n\r\n componentWillUnmount() {\r\n ComponentsFactory.getInstance().destroy(this.rootRef.current);\r\n }\r\n\r\n onClickRoot = () => {\r\n const { onCardLinkClick, model } = this.props;\r\n onCardLinkClick(model);\r\n }\r\n\r\n render() {\r\n const { model, bemModifiers } = this.props;\r\n let bemCss = '';\r\n\r\n if (Array.isArray(bemModifiers)) {\r\n if (model.isDark) {\r\n bemModifiers.push('dark');\r\n }\r\n\r\n bemCss = bemModifiers.map((x) => `fact-card--${x}`).join(' ');\r\n }\r\n\r\n return (\r\n \r\n
\r\n

{model.label}

\r\n

\r\n {model.title}\r\n

\r\n
\r\n {model.ctaText}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nFactCard.propTypes = {\r\n model: PropTypes.object.isRequired,\r\n bemModifiers: PropTypes.array,\r\n onCardLinkClick: PropTypes.func,\r\n};\r\n\r\nexport default FactCard;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport { ContentType } from 'components/content-type';\r\nimport { mediaTypes } from 'components/posts';\r\n\r\nclass PlayerCard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.rootRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n ComponentsFactory.getInstance().init(this.rootRef.current);\r\n }\r\n\r\n componentWillUnmount() {\r\n ComponentsFactory.getInstance().destroy(this.rootRef.current);\r\n }\r\n\r\n onClickRoot = () => {\r\n const { onCardLinkClick, model } = this.props;\r\n onCardLinkClick(model);\r\n }\r\n\r\n renderContentType(model) {\r\n if (model.type === mediaTypes.GALLERY ||\r\n model.type === mediaTypes.VIDEO_PLAYER\r\n ) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n render() {\r\n const { model, bemModifiers } = this.props;\r\n let bemCss = '';\r\n\r\n if (Array.isArray(bemModifiers)) {\r\n bemCss = bemModifiers.map((x) => `player-card--${x}`).join(' ');\r\n }\r\n\r\n return (\r\n \r\n
\r\n \"\"\r\n
\r\n {\r\n model.frontImage &&\r\n
\r\n \"\"\r\n
\r\n }\r\n\r\n
\r\n
\r\n

{model.label}

\r\n

\r\n {model.title}\r\n {model.subtitle && /}\r\n {model.subtitle && {model.subtitle}}\r\n

\r\n
\r\n {model.ctaText}\r\n \r\n \r\n \r\n
\r\n {this.renderContentType(model)}\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nPlayerCard.propTypes = {\r\n model: PropTypes.object.isRequired,\r\n bemModifiers: PropTypes.array,\r\n onCardLinkClick: PropTypes.func,\r\n};\r\n\r\nexport default PlayerCard;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport app from 'general/js/app';\r\nimport gtm from 'general/js/gtm';\r\nimport { themeNames } from 'components/news-feed/js/enums';\r\n\r\nclass SocialCard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.rootRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n this.rootRef.current.addEventListener('click', this.onClickRoot);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.rootRef.current.removeEventListener('click', this.onClickRoot);\r\n }\r\n\r\n onClickRoot = (event) => {\r\n const label = `${this.getFullTitle()} > ${window.location.href}`;\r\n gtm.push('Social Post', 'Click', label);\r\n\r\n if (app.isEditMode) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n getFullTitle() {\r\n const { title, subtitle } = this.props.model;\r\n return title + (subtitle ? ` / ${subtitle}` : '');\r\n }\r\n\r\n getIconCssName(theme) {\r\n switch (theme) {\r\n case themeNames.TWITTER:\r\n return 'twitter';\r\n case themeNames.INSTAGRAM:\r\n return 'instagram';\r\n case themeNames.FACEBOOK:\r\n return 'facebook';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n renderArticle(model) {\r\n let template = null;\r\n\r\n if (model.theme !== themeNames.INSTAGRAM) {\r\n template = (\r\n
\r\n {model.description}\r\n
\r\n );\r\n } else {\r\n template = null;\r\n }\r\n\r\n return template;\r\n }\r\n\r\n renderTheme(model) {\r\n const iconCssName = this.getIconCssName(model.theme);\r\n\r\n if (!iconCssName) return null;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n render() {\r\n const { model, bemModifiers } = this.props;\r\n let bemCss = '';\r\n\r\n if (Array.isArray(bemModifiers)) {\r\n bemCss = bemModifiers.map((x) => `social-card--${x}`).join(' ');\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {this.renderTheme(model)}\r\n
\r\n
\r\n
\r\n {this.renderTheme(model)}\r\n
\r\n

\r\n {model.title}\r\n {model.subtitle}\r\n

\r\n {this.renderArticle(model)}\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nSocialCard.propTypes = {\r\n model: PropTypes.object.isRequired,\r\n bemModifiers: PropTypes.array\r\n};\r\n\r\nexport default SocialCard;\r\n","export const themeNames = {\r\n NEWS: 'News',\r\n PLAYER: 'Player',\r\n FACT: 'Fact',\r\n STANDALONE_FACT: 'Standalone Fact',\r\n TWITTER: 'Twitter',\r\n INSTAGRAM: 'Instagram',\r\n FACEBOOK: 'Facebook'\r\n};\r\n\r\nexport default {\r\n themeNames\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\n\r\nclass StandaloneFactCard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.rootRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n ComponentsFactory.getInstance().init(this.rootRef.current);\r\n }\r\n\r\n componentWillUnmount() {\r\n ComponentsFactory.getInstance().destroy(this.rootRef.current);\r\n }\r\n\r\n render() {\r\n const { model, bemModifiers } = this.props;\r\n let bemCss = '';\r\n\r\n if (Array.isArray(bemModifiers)) {\r\n if (model.isDark) {\r\n bemModifiers.push('dark');\r\n }\r\n\r\n bemCss = bemModifiers.map((x) => `fact-card--${x}`).join(' ');\r\n }\r\n\r\n return (\r\n \r\n
\r\n

{model.label}

\r\n

\r\n {model.title}\r\n

\r\n
\r\n
\r\n \"\"\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nStandaloneFactCard.propTypes = {\r\n model: PropTypes.object.isRequired,\r\n bemModifiers: PropTypes.array,\r\n};\r\n\r\nexport default StandaloneFactCard;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport gtm from 'general/js/gtm';\r\nimport { mediaTypes } from 'components/posts';\r\nimport NewsCard from '../../cards/js/news-card';\r\nimport FactCard from '../../cards/js/fact-card';\r\nimport PlayerCard from '../../cards/js/player-card';\r\nimport SocialCard from '../../cards/js/social-card';\r\nimport StandaloneFactCard from '../../cards/js/standalone-fact-card';\r\nimport { themeNames } from './enums';\r\n\r\nclass NewsFeedListing extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onCardLinkClick = this.onCardLinkClick.bind(this);\r\n }\r\n\r\n getCardByTheme(model, slotModifiers) {\r\n switch (model.theme) {\r\n case themeNames.NEWS:\r\n return (\r\n \r\n );\r\n case themeNames.PLAYER:\r\n return (\r\n \r\n );\r\n case themeNames.FACT:\r\n return (\r\n \r\n );\r\n case themeNames.STANDALONE_FACT:\r\n return (\r\n \r\n );\r\n case themeNames.TWITTER:\r\n return (\r\n \r\n );\r\n case themeNames.INSTAGRAM:\r\n return (\r\n \r\n );\r\n case themeNames.FACEBOOK:\r\n return (\r\n \r\n );\r\n default:\r\n console.log(`Unknown card theme: ${model.theme}, rendering has been ignored.`);\r\n return null;\r\n }\r\n }\r\n\r\n onCardLinkClick(model) {\r\n const actionClick = 'Click';\r\n const fullTitle = this.getFullTitle(model);\r\n const currentLocation = window.location.href;\r\n const trackingCategory = this.getTrackingCategory(model.type);\r\n const label = `${fullTitle} > ${currentLocation}`;\r\n\r\n gtm.push(trackingCategory, actionClick, label);\r\n }\r\n\r\n getFullTitle(model) {\r\n const { title, subtitle } = model;\r\n return title + (subtitle ? ` / ${subtitle}` : '');\r\n }\r\n\r\n getTrackingCategory(contentType) {\r\n switch (contentType) {\r\n case mediaTypes.VIDEO_PLAYER:\r\n return 'Video Player';\r\n case mediaTypes.GALLERY:\r\n return 'Gallery';\r\n default:\r\n return 'Article';\r\n }\r\n }\r\n\r\n getRowPattern(itemIndex) {\r\n const pattern = this.props.pattern;\r\n\r\n if (!Array.isArray(pattern)) return null;\r\n\r\n const totalSlots = pattern.reduce((acc, cur) => acc + cur.slots.length, 0);\r\n const slotIndex = itemIndex % totalSlots;\r\n let total = 0;\r\n\r\n for (let i = 0; i < pattern.length; i++) {\r\n const row = pattern[i];\r\n\r\n total += row.slots.length;\r\n\r\n if (slotIndex <= total - 1) {\r\n return row;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n renderRow(pattern, cardsList, index) {\r\n const rowCss = pattern.modifiers.map((x) => `news-feed-row--${x}`).join(' ');\r\n const gridCss = pattern.modifiers.map((x) => `news-feed-grid--${x}`).join(' ');\r\n\r\n return (\r\n
\r\n
\r\n {\r\n cardsList.map((card, i) => {\r\n const slot = pattern.slots[i];\r\n const slotCss = slot.modifiers.map((x) => `news-feed-slot--${x}`).join(' ');\r\n\r\n return (\r\n
\r\n {this.getCardByTheme(card, slot.modifiers)}\r\n
\r\n );\r\n })\r\n }\r\n
\r\n
\r\n );\r\n }\r\n\r\n renderCards() {\r\n const cardsList = this.props.items || [];\r\n const grid = [];\r\n let i = 0;\r\n let index = 0;\r\n\r\n while (i < cardsList.length) {\r\n const rowPattern = this.getRowPattern(i);\r\n\r\n if (!rowPattern) return null;\r\n\r\n grid.push(this.renderRow(\r\n rowPattern,\r\n cardsList.slice(i, i + rowPattern.slots.length),\r\n index,\r\n ));\r\n\r\n i += rowPattern.slots.length;\r\n index++;\r\n }\r\n\r\n return grid;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.renderCards()}\r\n \r\n );\r\n }\r\n}\r\n\r\nNewsFeedListing.propTypes = {\r\n items: PropTypes.array.isRequired,\r\n pattern: PropTypes.array.isRequired\r\n};\r\n\r\nexport default NewsFeedListing;\r\n","import { DEVICE_TYPE_DESKTOP_WIDE } from '../../../general/js/app';\r\n\r\nexport const rowNames = {\r\n TALL: 'TALL',\r\n TALL_REVERSE: 'TALL_REVERSE',\r\n NARROW: 'NARROW',\r\n NARROW_REVERSE: 'NARROW_REVERSE',\r\n TWO_THIRDS_AND_ONE_THIRD: 'TWO_THIRDS_AND_ONE_THIRD',\r\n ONE_THIRD_AND_TWO_THIRDS: 'ONE_THIRD_AND_TWO_THIRDS',\r\n DOUBLE_TWO_THIRDS: 'DOUBLE_TWO_THIRDS',\r\n TRIPLE_ONE_THIRD: 'TRIPLE_ONE_THIRD'\r\n};\r\n\r\nconst rowPattern = {\r\n [rowNames.TALL]: {\r\n modifiers: ['tall'],\r\n slots: [\r\n {\r\n type: 'tall',\r\n modifiers: ['tall'],\r\n }\r\n ]\r\n },\r\n [rowNames.TALL_REVERSE]: {\r\n modifiers: ['tall-reverse'],\r\n slots: [\r\n {\r\n type: 'tall',\r\n modifiers: ['tall', 'tall-reverse'],\r\n }\r\n ]\r\n },\r\n [rowNames.NARROW]: {\r\n modifiers: ['narrow'],\r\n slots: [\r\n {\r\n type: 'narrow',\r\n modifiers: ['narrow']\r\n }\r\n ]\r\n },\r\n [rowNames.NARROW_REVERSE]: {\r\n modifiers: ['narrow-reverse'],\r\n slots: [\r\n {\r\n type: 'narrow',\r\n modifiers: ['narrow', 'narrow-reverse']\r\n }\r\n ]\r\n },\r\n [rowNames.TWO_THIRDS_AND_ONE_THIRD]: {\r\n modifiers: ['two-thirds-and-one-third'],\r\n slots: [\r\n {\r\n type: 'two-thirds',\r\n modifiers: ['two-thirds']\r\n },\r\n {\r\n type: 'one-third',\r\n modifiers: ['one-third']\r\n }\r\n ]\r\n },\r\n [rowNames.ONE_THIRD_AND_TWO_THIRDS]: {\r\n modifiers: ['one-third-and-two-thirds'],\r\n slots: [\r\n {\r\n type: 'one-third',\r\n modifiers: ['one-third']\r\n },\r\n {\r\n type: 'two-thirds',\r\n modifiers: ['two-thirds']\r\n }\r\n ]\r\n },\r\n [rowNames.DOUBLE_TWO_THIRDS]: {\r\n modifiers: ['double-two-thirds'],\r\n slots: [\r\n {\r\n type: 'two-thirds',\r\n modifiers: ['two-thirds']\r\n },\r\n {\r\n type: 'two-thirds',\r\n modifiers: ['two-thirds']\r\n }\r\n ]\r\n },\r\n [rowNames.TRIPLE_ONE_THIRD]: {\r\n modifiers: ['triple-one-third'],\r\n slots: [\r\n {\r\n type: 'one-third',\r\n modifiers: ['one-third']\r\n },\r\n {\r\n type: 'one-third',\r\n modifiers: ['one-third']\r\n },\r\n {\r\n type: 'one-third',\r\n modifiers: ['one-third']\r\n }\r\n ]\r\n }\r\n};\r\n\r\nconst getTall = (deviceType) => {\r\n switch (deviceType) {\r\n default:\r\n return rowPattern[rowNames.TALL];\r\n }\r\n};\r\n\r\nconst getTallReverse = (deviceType) => {\r\n switch (deviceType) {\r\n default:\r\n return rowPattern[rowNames.TALL_REVERSE];\r\n }\r\n};\r\n\r\nconst getNarrow = (deviceType) => {\r\n switch (deviceType) {\r\n default:\r\n return rowPattern[rowNames.NARROW];\r\n }\r\n};\r\n\r\nconst getNarrowReverse = (deviceType) => {\r\n switch (deviceType) {\r\n default:\r\n return rowPattern[rowNames.NARROW_REVERSE];\r\n }\r\n};\r\n\r\nconst getTwoThirdsAndOneThird = (deviceType) => {\r\n switch (deviceType) {\r\n case DEVICE_TYPE_DESKTOP_WIDE:\r\n return rowPattern[rowNames.TWO_THIRDS_AND_ONE_THIRD];\r\n default:\r\n return rowPattern[rowNames.DOUBLE_TWO_THIRDS];\r\n }\r\n};\r\n\r\nconst getOneThirdAndTwoThirds = (deviceType) => {\r\n switch (deviceType) {\r\n case DEVICE_TYPE_DESKTOP_WIDE:\r\n return rowPattern[rowNames.ONE_THIRD_AND_TWO_THIRDS];\r\n default:\r\n return rowPattern[rowNames.DOUBLE_TWO_THIRDS];\r\n }\r\n};\r\n\r\nconst getTrippleOneThird = (deviceType) => {\r\n switch (deviceType) {\r\n default:\r\n return rowPattern[rowNames.TRIPLE_ONE_THIRD];\r\n }\r\n};\r\n\r\nexport const getPatternByDeviceType = (patternName, deviceType) => {\r\n switch (patternName) {\r\n case rowNames.TALL:\r\n return getTall(deviceType);\r\n case rowNames.TALL_REVERSE:\r\n return getTallReverse(deviceType);\r\n case rowNames.NARROW:\r\n return getNarrow(deviceType);\r\n case rowNames.NARROW_REVERSE:\r\n return getNarrowReverse(deviceType);\r\n case rowNames.TWO_THIRDS_AND_ONE_THIRD:\r\n return getTwoThirdsAndOneThird(deviceType);\r\n case rowNames.ONE_THIRD_AND_TWO_THIRDS:\r\n return getOneThirdAndTwoThirds(deviceType);\r\n case rowNames.TRIPLE_ONE_THIRD:\r\n return getTrippleOneThird(deviceType);\r\n default:\r\n console.log('Unknown row pattern name');\r\n return null;\r\n }\r\n};\r\n\r\nexport default rowPattern;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport app, { EVENT_DEVICE_TYPE_CHANGED } from '../../../general/js/app';\r\nimport NewsFeedListing from '../../news-feed/js/news-feed-listing';\r\nimport { getPatternByDeviceType } from '../../news-feed/js/row-patterns';\r\nimport eventBus from '../../../general/js/event-bus';\r\n\r\nclass FeatureContentCopmonent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.data = this.getData();\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return [];\r\n }\r\n\r\n init() {\r\n this.render();\r\n\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.onChangeDeviceType);\r\n }\r\n\r\n getData() {\r\n const data = [];\r\n\r\n if (!Array.isArray(this.refs.row)) return data;\r\n\r\n this.refs.row.forEach((row) => {\r\n const rowData = this.getRowData(row);\r\n\r\n if (rowData && Array.isArray(rowData.items)) {\r\n const pattern = [getPatternByDeviceType(\r\n rowData.patternName,\r\n app.deviceTypeByViewport\r\n )];\r\n\r\n this.removeDataAttr(row);\r\n\r\n data.push({\r\n pattern: pattern || [],\r\n patternName: rowData.patternName,\r\n items: rowData.items,\r\n node: row\r\n });\r\n }\r\n });\r\n\r\n return data;\r\n }\r\n\r\n getRowData(row) {\r\n let data = null;\r\n\r\n try {\r\n data = JSON.parse(this.getAttribute(row, 'json'));\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n return data;\r\n }\r\n\r\n removeDataAttr(row) {\r\n this.removeAttribute(row, 'json');\r\n }\r\n\r\n onChangeDeviceType = () => {\r\n this.updatePattern();\r\n this.render();\r\n }\r\n\r\n updatePattern() {\r\n this.data.forEach((row) => {\r\n row.pattern = [getPatternByDeviceType(row.patternName, app.deviceTypeByViewport)];\r\n });\r\n }\r\n\r\n render() {\r\n this.data.forEach((row) => {\r\n ReactDOM.render(\r\n ,\r\n row.node\r\n );\r\n });\r\n }\r\n\r\n onDestroy() {\r\n this.data.forEach((row) => {\r\n ReactDOM.unmountComponentAtNode(row.node);\r\n });\r\n }\r\n}\r\n\r\nexport default FeatureContentCopmonent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport FeatureContentComponent from './js/feature-content.component';\r\n\r\nComponentsFactory.getInstance().define('feature-content', FeatureContentComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport Cookies from 'js-cookie';\r\nimport { RANDA_MEMBER, STANDARD, THEONECLUB } from './constants';\r\nimport app from '../../../general/js/app';\r\nimport { RA_MEMBER_UPDATED_INFO } from '../../../general/js/user/constants';\r\nimport { redirectTo } from '../../../general/js/utils';\r\n\r\nexport default class ForceSignInComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.accountType = this.getAttribute(this.element, 'account-type');\r\n this.redirectUrl = this.getAttribute(this.element, 'redirect-url');\r\n this.checkIsUserLoggedIn();\r\n }\r\n\r\n checkIsUserLoggedIn() {\r\n const userDataCookie = Cookies.get(app.state.userDataCookieName);\r\n const raMemberUpdatedInfoCookie = Cookies.get(RA_MEMBER_UPDATED_INFO);\r\n\r\n switch (this.accountType) {\r\n case RANDA_MEMBER:\r\n if (this.isUserLoggedIn(userDataCookie)) {\r\n if (this.isRandaMemberLoggedIn(userDataCookie, raMemberUpdatedInfoCookie)) {\r\n return true;\r\n }\r\n if (this.redirectUrl === '') {\r\n redirectTo(app.state.memberLoginFailedLink);\r\n return false;\r\n }\r\n }\r\n\r\n redirectTo(this.redirectUrl === '' ? app.state.memberLoginFailedLink : this.redirectUrl);\r\n return false;\r\n case STANDARD:\r\n return true;\r\n case THEONECLUB:\r\n return true;\r\n default: return false;\r\n }\r\n }\r\n\r\n isUserLoggedIn(userDataCookie) {\r\n if (userDataCookie !== undefined) {\r\n const userData = JSON.parse(userDataCookie);\r\n if (userData !== undefined && userData.isSignedIn) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n isRandaMemberLoggedIn(userDataCookie, raMemberUpdatedInfoCookie) {\r\n const userData = JSON.parse(userDataCookie);\r\n\r\n if (userData.isRandaMember !== undefined && userData.isRandaMember) {\r\n return true;\r\n }\r\n if (userData.hasRaMemberId !== undefined && userData.hasRaMemberId) {\r\n return true;\r\n }\r\n if (raMemberUpdatedInfoCookie && raMemberUpdatedInfoCookie === 'true') {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","export const RANDA_MEMBER = 'RANDAMEMBER';\r\nexport const STANDARD = 'STANDARD';\r\nexport const THEONECLUB = 'THEONECLUB';","import ComponentsFactory from 'foundation/components-factory';\r\nimport ForceSignInComponent from './js/force-sign-in.component';\r\n\r\nComponentsFactory.getInstance().define('force-sign-in', ForceSignInComponent);\r\n","class Facebook {\r\n load = (appId) => {\r\n return new Promise((resolve) => {\r\n if (!window.FB) {\r\n const script = document.createElement('script');\r\n script.src = 'https://connect.facebook.net/en_US/sdk.js';\r\n script.async = true;\r\n script.onload = () => {\r\n this.init(appId).then(() => {\r\n resolve();\r\n });\r\n };\r\n document.body.appendChild(script);\r\n }\r\n resolve();\r\n });\r\n };\r\n\r\n init = (appId) => {\r\n return new Promise((resolve) => {\r\n window.FB.init({\r\n appId,\r\n status: true,\r\n cookie: true,\r\n xfbml: true,\r\n version: 'v3.2'\r\n });\r\n resolve();\r\n });\r\n };\r\n\r\n signIn() {\r\n const fb = window.FB;\r\n\r\n return new Promise((resolve, reject) => {\r\n fb.getLoginStatus((response) => {\r\n if (response.status === 'connected') {\r\n resolve(response.authResponse);\r\n }\r\n\r\n fb.login((loginResponse) => {\r\n if (!loginResponse || !loginResponse.authResponse) {\r\n reject();\r\n }\r\n const accessToken = loginResponse.authResponse.accessToken;\r\n const expiresIn = loginResponse.authResponse.expiresIn;\r\n const authObject = {\r\n accessToken,\r\n expiresIn\r\n };\r\n resolve(authObject);\r\n },\r\n {\r\n // the authorized scopes\r\n scope: 'email'\r\n });\r\n });\r\n });\r\n }\r\n\r\n getUserObject() {\r\n const fb = window.FB;\r\n\r\n return new Promise((resolve) => {\r\n fb.api('/me?fields=id,name,email', (response) => {\r\n const username = response.name.replace(/\\s/g, '');\r\n const id = response.id;\r\n const user = {\r\n id,\r\n username\r\n };\r\n resolve(user);\r\n });\r\n });\r\n }\r\n}\r\n\r\nconst instance = new Facebook();\r\n\r\nexport default instance;\r\n","class Google {\r\n load = (appId) => {\r\n return new Promise((resolve, reject) => {\r\n const meta1 = document.createElement('meta');\r\n meta1.name = \"google-signin-scope\";\r\n meta1.content = \"profile email\";\r\n document.head.appendChild(meta1);\r\n\r\n const clientIdString = appId + '.apps.googleusercontent.com';\r\n const meta2 = document.createElement('meta');\r\n meta2.name = \"google-signin-client_id\";\r\n meta2.content = clientIdString;\r\n document.head.appendChild(meta2);\r\n\r\n const script = document.createElement('script');\r\n script.src = 'https://apis.google.com/js/platform.js';\r\n script.async = true;\r\n script.defer = true;\r\n script.onload = () => {\r\n this.init(appId).then(() => {\r\n resolve();\r\n });\r\n };\r\n document.body.appendChild(script);\r\n });\r\n };\r\n\r\n init = (appId) => {\r\n const clientIdString = appId + '.apps.googleusercontent.com';\r\n\r\n return new Promise((resolve, reject) => {\r\n gapi.load('client:auth2', () => {\r\n //Retrieve the singleton for the GoogleAuth library and set up the client.\r\n this.auth2 = gapi.auth2.init({\r\n client_id: clientIdString,\r\n cookiepolicy: 'single_host_origin',\r\n });\r\n resolve();\r\n });\r\n });\r\n };\r\n\r\n signIn(element) {\r\n return new Promise((resolve, reject) => {\r\n this.auth2.attachClickHandler(element, {},\r\n (googleUser) => {\r\n this.googleUser = googleUser;\r\n const authResponse = googleUser.getAuthResponse();\r\n const accessToken = authResponse['id_token'];\r\n const expiresIn = authResponse['expires_in'];\r\n const authObject = {\r\n accessToken,\r\n expiresIn\r\n };\r\n resolve(authObject);\r\n }, (error) => {\r\n reject(JSON.stringify(error, undefined, 2));\r\n });\r\n });\r\n }\r\n\r\n getUserObject() {\r\n return new Promise((resolve) => {\r\n const profile = this.googleUser.getBasicProfile();\r\n const id = profile.getId();\r\n const username = profile.getGivenName() + '_' + profile.getFamilyName();\r\n const email = profile.getEmail();\r\n const user = {\r\n id,\r\n username,\r\n email\r\n };\r\n resolve(user);\r\n });\r\n }\r\n}\r\n\r\nconst instance = new Google();\r\n\r\nexport default instance;\r\n","import {Auth} from 'aws-amplify';\r\n\r\nclass Amazon {\r\n load = (appId) => {\r\n const domain = window.location.href.toString().split(window.location.host)[1];\r\n return new Promise((resolve) => {\r\n window.onAmazonLoginReady = () => {\r\n amazon.Login.setClientId(appId);\r\n amazon.Login.setSiteDomain('randa.deletestaging.com');\r\n };\r\n\r\n (function(d) {\r\n const a = d.createElement('script');\r\n a.type = 'text/javascript';\r\n a.async = true;\r\n a.id = 'amazon-login-sdk';\r\n a.src = 'https://assets.loginwithamazon.com/sdk/na/login1.js';\r\n a.onload = () => {\r\n resolve();\r\n };\r\n d.body.appendChild(a);\r\n })(document);\r\n });\r\n };\r\n\r\n signIn() {\r\n const options = { scope : 'profile' };\r\n\r\n return new Promise((resolve, reject) => {\r\n amazon.Login.authorize(options, (response) => {\r\n if (response.error) {\r\n reject(response.error);\r\n }\r\n const accessToken = response['access_token'];\r\n const expiresIn = response['expires_in'];\r\n const authObject = {\r\n accessToken,\r\n expiresIn\r\n };\r\n resolve(authObject);\r\n });\r\n });\r\n }\r\n\r\n getUserObject() {\r\n return new Promise((resolve) => {\r\n amazon.Login.retrieveProfile((response) => {\r\n const id = response.profile.CustomerId;\r\n const username = response.profile.Name.replace(/\\s/g, '');\r\n const email = response.profile.PrimaryEmail;\r\n const user = {\r\n id,\r\n username,\r\n email\r\n };\r\n resolve(user);\r\n });\r\n });\r\n }\r\n}\r\n\r\nconst instance = new Amazon();\r\n\r\nexport default instance;\r\n","import { Auth } from 'aws-amplify';\r\nimport 'jquery-serializejson';\r\nimport axios from 'axios';\r\nimport get from 'lodash/get';\r\nimport qs from 'qs';\r\nimport HtmlHelper from 'foundation/html-helper';\r\nimport { AmplifyClient } from 'project/amplify-client';\r\nimport FormComponent from './form.component';\r\nimport facebook from '../../social-provider/js/facebook';\r\nimport google from '../../social-provider/js/google';\r\nimport amazon from '../../social-provider/js/amazon';\r\nimport pageSpinner from '../../../general/js/page-spinner';\r\nimport userService from '../../../general/js/user/user-service';\r\nimport errorsSummaryTemplate from '../html/errors-summary.hbs';\r\nimport GTM from '../../../general/js/gtm';\r\nimport { redirectTo } from '../../../general/js/utils';\r\n\r\nconst api = axios.create({\r\n timeout: 60000,\r\n withCredentials: true,\r\n});\r\n\r\nconst PROFILE_API_URL = window.appState.ssoConfig.userProfileApiUrl;\r\nconst CHECK_EMAIL_URL = PROFILE_API_URL + 'UserProfile/checkEmail';\r\nconst REGISTRATION_URL = PROFILE_API_URL + 'UserProfile';\r\nconst UPDATE_ACCOUNT_URL = PROFILE_API_URL + 'UserProfile';\r\nconst GET_USER_PROFILE_URL = PROFILE_API_URL + 'UserProfile';\r\nconst CREATE_TICKET_ACCOUNT_URL = PROFILE_API_URL + 'UserProfile/createTicketingAccount';\r\nconst CHANGE_PASSWORD_URL = PROFILE_API_URL + 'UserProfile/changePassword';\r\nconst CONFIRM_PASSWORD_URL = PROFILE_API_URL + 'UserProfile/confirmForgotPassword';\r\nconst FORGOT_PASSWORD_URL = PROFILE_API_URL + 'UserProfile/forgotPassword';\r\n\r\nconst HEADERS = {\r\n 'Access-Control-Allow-Origin': window.location.origin,\r\n 'Content-Type': 'application/json'\r\n};\r\n\r\nconst SERVER_ERROR_MESSAGE = 'Something went wrong';\r\nconst USER_NOT_FOUND_ERROR_MESSAGE = 'Your login attempt was unsuccessfull. Please try again.';\r\n\r\nconst GENERATE_PASSWORD_URL = '/api/sitecore/account/generatepassword';\r\nconst ASYNC_ACTION_SAML = 'SamlRequest';\r\n\r\nexport default class FormSsoComponent extends FormComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.formData = {};\r\n this.formNode = this.refs.form ? this.refs.form : this.element;\r\n\r\n AmplifyClient.init();\r\n\r\n this.setFormFieldTracking();\r\n\r\n this.setUrl();\r\n this.setFormType();\r\n this.addListeners();\r\n // this.initProviders();\r\n }\r\n\r\n setUrl() {\r\n this.ACCOUNT_SIGNIN_URL = this.getAttribute(this.element, 'signin-url');\r\n this.COMPLETE_DETAILS_URL = this.getAttribute(this.element, 'complete-details-url');\r\n this.SIGN_OUT_URL = this.refs.signOut ? this.getAttribute(this.refs.signOut, 'signout') : '';\r\n this.DEFAULT_REDIRECT_URL = '/';\r\n }\r\n\r\n setFormType() {\r\n this.getAccessToken();\r\n\r\n if (this.getAttribute(this.element, 'type') === 'register') {\r\n this.formType = 'register';\r\n this.formNode = this.refs.form;\r\n } else if (this.getAttribute(this.element, 'type') === 'register-light') {\r\n this.formType = 'register-light';\r\n this.formNode = this.refs.form;\r\n } else if (this.getAttribute(this.element, 'type') === 'signin') {\r\n this.formType = 'signin';\r\n this.addListener(this.refs.forgotPasswordLink, 'click', this.onShowForgotPassword);\r\n this.formNode = this.refs.form;\r\n }\r\n }\r\n\r\n addListeners() {\r\n this.addListener(this.element, 'submit', this.onSubmit);\r\n\r\n if (this.refs.submitButton) {\r\n this.addListener(this.refs.submitButton, 'click', this.onSubmit);\r\n }\r\n\r\n if (this.refs.optInToOneClub) {\r\n this.addListener(this.refs.optInToOneClub, 'click', this.onOptInOneClub);\r\n }\r\n\r\n if (this.refs.signOut) {\r\n this.addListener(this.refs.signOut, 'click', this.onSignOut);\r\n }\r\n\r\n if (this.refs.updateButton) {\r\n this.addListener(this.refs.updateButton, 'click', this.onUpdateConsents);\r\n }\r\n\r\n if (this.refs.changePassword) {\r\n this.addListener(this.refs.changePassword, 'click', this.onChangePassword);\r\n }\r\n\r\n if (this.refs.updateAddressSubmit) {\r\n this.addListener(this.refs.updateAddressSubmit, 'click', this.onUpdateAddress);\r\n }\r\n\r\n if (this.refs.updateDetailsSubmit) {\r\n this.addListener(this.refs.updateDetailsSubmit, 'click', this.onUpdateDetails);\r\n }\r\n\r\n if (this.refs.completeDetailsSubmit) {\r\n this.addListener(this.refs.completeDetailsSubmit, 'click', this.onCompleteDetails);\r\n }\r\n\r\n if (this.refs.emailInput) {\r\n this.addListener(this.refs.emailInput, 'focusout', this.onEmailFocusOut);\r\n }\r\n }\r\n\r\n initProviders() {\r\n facebook.load(this.options.facebook.appId).then(() => {\r\n if (!this.refs.facebook) return;\r\n this.addListener(this.refs.facebook, 'click', this.onSocialSignin.bind(this, 'facebook'));\r\n });\r\n\r\n google.load(this.options.google.clientId).then(() => {\r\n if (!this.refs.google) return;\r\n this.onSocialSignin('google');\r\n });\r\n\r\n amazon.load(this.options.amazon.clientId).then(() => {\r\n if (!this.refs.amazon) return;\r\n this.addListener(this.refs.amazon, 'click', this.onSocialSignin.bind(this, 'amazon'));\r\n });\r\n }\r\n\r\n onSocialSignin = (provider) => {\r\n if (provider === 'facebook') {\r\n facebook.signIn().then((authObject) => {\r\n facebook.getUserObject().then((user) => {\r\n //this.federatedSignIn(provider, authObject.accessToken, authObject.expiresIn, `${user.username}.${user.id}`);\r\n this.federatedSignIn(provider, authObject.accessToken, authObject.expiresIn, user.username, user.id);\r\n });\r\n });\r\n } else if (provider === 'google') {\r\n google.signIn(this.refs.google).then((authObject) => {\r\n google.getUserObject().then((user) => {\r\n //this.federatedSignIn(provider, authObject.accessToken, authObject.expiresIn, `${user.username}.${user.id}`);\r\n this.federatedSignIn(provider, authObject.accessToken, authObject.expiresIn, user.username, user.id);\r\n });\r\n }, (error) => {\r\n console.log(error);\r\n });\r\n } else if (provider === 'amazon') {\r\n amazon.signIn().then((authObject) => {\r\n amazon.getUserObject().then((user) => {\r\n //this.federatedSignIn(provider, authObject.accessToken, authObject.expiresIn, `${user.username}.${user.id}`);\r\n this.federatedSignIn(provider, authObject.accessToken, authObject.expiresIn, user.username, user.id);\r\n });\r\n }, (error) => {\r\n console.log(error);\r\n });\r\n }\r\n };\r\n\r\n federatedSignIn = (socialProvider, accessToken, expiresIn, username) => {\r\n const date = new Date();\r\n const expiresAt = expiresIn * 1000 + date.getTime();\r\n\r\n pageSpinner.show();\r\n\r\n Auth.federatedSignIn(socialProvider, { token: accessToken, expiresAt }, username)\r\n .then((credentials) => {\r\n console.log(credentials);\r\n this.requestGeneratedPassword().then((generatedPassword) => {\r\n const password = generatedPassword.data.toString();\r\n this.signIn(username, password, socialProvider);\r\n });\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n if (err === 'not authenticated') {\r\n this.requestGeneratedPassword().then((generatedPassword) => {\r\n const password = generatedPassword.data.toString();\r\n this.showCompleteRegister(socialProvider, username, password);\r\n });\r\n }\r\n });\r\n };\r\n\r\n hideErrorsSummary() {\r\n if (this.errorsSummary) {\r\n this.errorsSummary.forEach((errorsSummary) => {\r\n errorsSummary.classList.remove('is-shown');\r\n });\r\n }\r\n }\r\n\r\n onSubmit = (event) => {\r\n event.preventDefault();\r\n\r\n if (this.refs.form && this.refs.form.classList.contains('is-hidden')) return false;\r\n\r\n this.hideErrorsSummary();\r\n this.revalidateForm().then(() => {\r\n pageSpinner.show();\r\n\r\n if (this.formType === 'register') {\r\n const title = this.formData.Title ? this.formData.Title : '';\r\n const firstName = this.formData.FirstName;\r\n const lastName = this.formData.Surname;\r\n const email = this.formData.EmailAddress.toLowerCase();\r\n const address = {\r\n addressLine1: this.formData.AddressLine1 ? this.formData.AddressLine1 : '',\r\n addressLine2: this.formData.AddressLine2 ? this.formData.AddressLine2 : '',\r\n postcode: this.formData.Postcode ? this.formData.Postcode : '',\r\n city: this.formData.City ? this.formData.City : '',\r\n country: this.formData.Country,\r\n county: this.formData.County ? this.formData.County : '',\r\n };\r\n const dateOfBirth = this.getDateOfBirth();\r\n const password = this.formData.Password;\r\n const interests = this.getVenuesObject();\r\n const checkboxesValuesObject = this.collectCheckboxesData();\r\n const optIns = {\r\n optedTheOpenOffersByEmail: !checkboxesValuesObject.OptedTheOpenOffersByEmail,\r\n optedPartnerOffersByEmail: checkboxesValuesObject.OptedPartnersOffersByEmail,\r\n agreedToPrivacyPolicy: checkboxesValuesObject.AgreedToPrivacyPolicy\r\n };\r\n const isOneClubMember = this.refs.isOneClubMember ? this.refs.isOneClubMember.value : false;\r\n const createTicketingAccount = (this.getAttribute(this.element, 'checkout') === 'true');\r\n const antiForgeryToken = this.element.querySelector('input[name=\"__RequestVerificationToken\"]') ? this.element.querySelector('input[name=\"__RequestVerificationToken\"]').value : '';\r\n const raMemberId = this.formData.raMemberId;\r\n const fieldsData = {\r\n user: {\r\n title,\r\n email,\r\n firstName,\r\n lastName,\r\n address,\r\n dateOfBirth,\r\n optIns,\r\n interests,\r\n ticketingAccountId: '',\r\n isOneClubMember\r\n },\r\n password,\r\n createTicketingAccount,\r\n raMemberId\r\n };\r\n\r\n this.register(fieldsData, antiForgeryToken);\r\n } else if (this.formType === 'register-light') {\r\n const title = '';\r\n const firstName = this.formData.FirstName;\r\n const lastName = this.formData.Surname;\r\n const dateOfBirth = this.getDateOfBirth();\r\n const email = this.formData.EmailAddress.toLowerCase();\r\n const address = {\r\n country: this.formData.Country,\r\n county: this.formData.County ? this.formData.County : ''\r\n };\r\n const password = this.formData.Password;\r\n const checkboxesValuesObject = this.collectCheckboxesData();\r\n const optIns = {\r\n optedTheOpenOffersByEmail: !checkboxesValuesObject.OptedTheOpenOffersByEmail,\r\n optedPartnerOffersByEmail: checkboxesValuesObject.OptedPartnersOffersByEmail,\r\n agreedToPrivacyPolicy: checkboxesValuesObject.AgreedToPrivacyPolicy\r\n };\r\n const isOneClubMember = true;\r\n const createTicketingAccount = false;\r\n const antiForgeryToken = this.element.querySelector('input[name=\"__RequestVerificationToken\"]') ? this.element.querySelector('input[name=\"__RequestVerificationToken\"]').value : '';\r\n const fieldsData = {\r\n user: {\r\n title,\r\n email,\r\n firstName,\r\n lastName,\r\n dateOfBirth,\r\n address,\r\n optIns,\r\n ticketingAccountId: '',\r\n isOneClubMember\r\n },\r\n password,\r\n createTicketingAccount\r\n };\r\n\r\n this.register(fieldsData, antiForgeryToken);\r\n } else if (this.formType === 'signin') {\r\n const username = this.formData.EmailAddress.toLowerCase();\r\n const password = this.formData.Password;\r\n const antiForgeryToken = this.element.querySelector('input[name=\"__RequestVerificationToken\"]') ? this.element.querySelector('input[name=\"__RequestVerificationToken\"]').value : '';\r\n this.signIn(username, password, antiForgeryToken);\r\n }\r\n\r\n return false;\r\n });\r\n\r\n return false;\r\n };\r\n\r\n register(fieldsData, antiForgeryToken) {\r\n api.post(REGISTRATION_URL, fieldsData, {\r\n headers: HEADERS\r\n })\r\n .then((result) => {\r\n pageSpinner.hide();\r\n this.sendFormTracking();\r\n const errors = get(result.data, 'errors', null);\r\n if (errors) {\r\n this.showServerError(errors.general);\r\n } else if (this.getAttribute(this.element, 'checkout') === 'true') {\r\n this.signIn(fieldsData.user.email, fieldsData.password, antiForgeryToken);\r\n } else {\r\n userService.signOut()\r\n .then(() => {\r\n this.onUserNotConfirmed();\r\n })\r\n .catch((err) => {\r\n this.showServerError(err);\r\n });\r\n }\r\n }, (err) => {\r\n if (err.response.status === 409) {\r\n pageSpinner.hide();\r\n this.showServerError(err.response.data);\r\n } else {\r\n pageSpinner.hide();\r\n this.showServerError(SERVER_ERROR_MESSAGE);\r\n }\r\n });\r\n }\r\n\r\n requestGeneratedPassword() {\r\n return api.get(GENERATE_PASSWORD_URL)\r\n .then((response) => {\r\n return Promise.resolve(response);\r\n }, (error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n signIn(username, password, antiForgeryToken, socialProvider = '') {\r\n const userName = username.trim();\r\n\r\n this.checkSignIn().then(() => {\r\n Auth.signIn(userName, password).then((user) => {\r\n this.user = user;\r\n\r\n if (user.challengeName === 'SMS_MFA' ||\r\n user.challengeName === 'SOFTWARE_TOKEN_MFA') {\r\n // You need to get the code from the UI inputs\r\n // and then trigger the following function with a button click\r\n //const code = getCodeFromUserInput();\r\n // If MFA is enabled, sign-in should be confirmed with the confirmation code\r\n // (async () => {\r\n // const loggedUser = await Auth.confirmSignIn(\r\n // user, // Return object from Auth.signIn()\r\n // code, // Confirmation code\r\n // mfaType // MFA Type e.g. SMS, TOTP.\r\n // );\r\n // })();\r\n } else if (user.challengeName === 'NEW_PASSWORD_REQUIRED') {\r\n this.onShowCompletePassword(user);\r\n } else if (user.challengeName === 'MFA_SETUP') {\r\n // This happens when the MFA method is TOTP\r\n // The user needs to setup the TOTP before using it\r\n // More info please check the Enabling MFA part\r\n Auth.setupTOTP(user);\r\n } else {\r\n // The user directly signs in\r\n const emailAddress = username;\r\n const returnUrl = this.refs.returnUrl ? this.refs.returnUrl.value : '/';\r\n const loginFailedReturnUrl = this.refs.loginFailedReturnUrl ? this.refs.loginFailedReturnUrl.value : '/';\r\n\r\n this.getAccessToken().then((token) => {\r\n this.getCurrentUser(token).then((currentUser) => {\r\n const secuTixSignInRequest = {\r\n emailAddress,\r\n password,\r\n returnUrl,\r\n loginFailedReturnUrl,\r\n __RequestVerificationToken: antiForgeryToken\r\n };\r\n\r\n if (this.getAttribute(this.element, 'checkout') === 'true') {\r\n if (currentUser.ticketingAccountId) {\r\n this.secutixSignIn(secuTixSignInRequest);\r\n } else if (!this.checkRequiredSecutixFields(currentUser)) {\r\n redirectTo(this.COMPLETE_DETAILS_URL);\r\n } else {\r\n const headers = this.setAuthorizationHeader(token);\r\n\r\n api.post(CREATE_TICKET_ACCOUNT_URL, { emailAddress, password }, {\r\n headers\r\n })\r\n .then(() => {\r\n this.secutixSignIn(secuTixSignInRequest);\r\n }, () => {\r\n this.showServerError(SERVER_ERROR_MESSAGE);\r\n });\r\n }\r\n } else {\r\n this.sendFormTracking();\r\n this.redirect();\r\n }\r\n });\r\n });\r\n }\r\n }, (err) => {\r\n if (err.code === 'UserNotConfirmedException' && socialProvider) {\r\n // The error happens if the user didn't finish the confirmation step when signing up\r\n // In this case you need to resend the code and confirm the user\r\n // About how to resend the code and confirm the user, please check the signUp part\r\n this.showCompleteRegister(socialProvider, username, password);\r\n } else if (err.code === 'UserNotConfirmedException') {\r\n this.onUserNotConfirmed(username, password);\r\n } else if (err.code === 'PasswordResetRequiredException') {\r\n // The error happens when the password is reset in the Cognito console\r\n // In this case you need to call forgotPassword to reset the password\r\n // Please check the Forgot Password part.\r\n this.onShowForgotPassword();\r\n } else if (err.code === 'UserNotFoundException' && socialProvider) {\r\n this.showCompleteRegister(socialProvider, username, password);\r\n } else if (err.code === 'UserNotFoundException') {\r\n this.showServerError(USER_NOT_FOUND_ERROR_MESSAGE);\r\n } else {\r\n this.showServerError(err);\r\n }\r\n });\r\n });\r\n }\r\n\r\n secutixSignIn(signInRequest) {\r\n const formData = qs.stringify(signInRequest);\r\n\r\n fetch(this.ACCOUNT_SIGNIN_URL, {\r\n headers: {\r\n 'content-type': 'application/x-www-form-urlencoded'\r\n },\r\n method: 'POST',\r\n body: formData\r\n }).then((response) => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n\r\n throw new Error('invalid signin response');\r\n }).then((data) => {\r\n this.sendFormTracking();\r\n if (data.action === ASYNC_ACTION_SAML) {\r\n const formString = data.content.match(//i);\r\n\r\n if (!formString || !formString.length) {\r\n throw new Error('Server doesn\\'t returned form');\r\n }\r\n\r\n const syncForm = HtmlHelper.createElement(formString[0]);\r\n\r\n document.body.appendChild(syncForm);\r\n syncForm.submit();\r\n }\r\n });\r\n }\r\n\r\n checkRequiredSecutixFields(user) {\r\n return (\r\n user.title &&\r\n user.address.addressLine1 &&\r\n user.address.postcode &&\r\n user.address.city &&\r\n user.address.country &&\r\n user.interests.venues &&\r\n user.optIns.agreedToPrivacyPolicy\r\n );\r\n }\r\n\r\n updateUserObject(userAttributesObject, token) {\r\n pageSpinner.show();\r\n\r\n const headers = this.setAuthorizationHeader(token);\r\n\r\n api.put(UPDATE_ACCOUNT_URL, userAttributesObject, {\r\n headers\r\n })\r\n .then(() => {\r\n pageSpinner.hide();\r\n this.redirect();\r\n }, (err) => {\r\n console.log(JSON.stringify(err.response.data.errors));\r\n pageSpinner.hide();\r\n if (err.response.status === 400) {\r\n this.showServerError(err.response.data.errors);\r\n } else {\r\n this.showServerError(SERVER_ERROR_MESSAGE);\r\n }\r\n });\r\n }\r\n\r\n onUserNotConfirmed(username, password) {\r\n if (this.options.emailConfirmationWorkflow === 'code') {\r\n this.showRegistrationCodeField(username, password);\r\n } else {\r\n this.showSuccessMessage();\r\n }\r\n }\r\n\r\n showRegistrationCodeField(username, password) {\r\n this.refs.form.classList.add('is-hidden');\r\n this.refs.codeWrap.classList.add('is-visible');\r\n this.formNode = this.refs.codeWrap;\r\n this.setFormFieldTracking();\r\n\r\n this.addListener(this.refs.registrationCodeSubmit, 'click', (event) => {\r\n event.preventDefault();\r\n\r\n const code = this.refs.code.value;\r\n pageSpinner.show();\r\n // After retrieving the confirmation code from the user\r\n Auth.confirmSignUp(username, code)\r\n .then(() => {\r\n this.signIn(username, password);\r\n })\r\n .catch((err) => {\r\n pageSpinner.hide();\r\n this.showServerError(err);\r\n });\r\n\r\n return false;\r\n });\r\n }\r\n\r\n showSuccessMessage() {\r\n pageSpinner.hide();\r\n this.refs.form.classList.add('is-hidden');\r\n this.refs.successMessage.classList.add('is-visible');\r\n this.refs.complete.classList.remove('is-visible');\r\n }\r\n\r\n showCompleteRegister(socialProvider, username, password) {\r\n pageSpinner.hide();\r\n this.refs.form.classList.add('is-hidden');\r\n this.refs.complete.classList.add('is-visible');\r\n this.formNode = this.refs.complete;\r\n this.setFormFieldTracking();\r\n\r\n this.addListener(this.refs.completeButton, 'click', (event) => {\r\n event.preventDefault();\r\n\r\n this.revalidateForm().then(() => {\r\n const firstName = this.formData.FirstName;\r\n const lastName = this.formData.Surname;\r\n const email = this.formData.EmailAddress;\r\n const checkboxesValuesObject = this.collectCheckboxesData();\r\n const optIns = {\r\n optedTheOpenOffersByEmail: !checkboxesValuesObject.OptedTheOpenOffersByEmail,\r\n optedPartnerOffersByEmail: checkboxesValuesObject.OptedPartnersOffersByEmail,\r\n agreedToPrivacyPolicy: checkboxesValuesObject.AgreedToPrivacyPolicy\r\n };\r\n const interests = this.getVenuesObject();\r\n const isOneClubMember = false;\r\n\r\n this.register({\r\n user: {\r\n title: '',\r\n email,\r\n firstName,\r\n lastName,\r\n address: '',\r\n dateOfBirth: '',\r\n optIns,\r\n interests,\r\n ticketingAccountId: '',\r\n isOneClubMember\r\n },\r\n password,\r\n createTicketingAccount: false\r\n });\r\n\r\n return false;\r\n });\r\n });\r\n }\r\n\r\n onShowForgotPassword = (event) => {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n\r\n this.refs.passwordResetSuccess.classList.remove('is-visible');\r\n this.refs.forgotPasswordInput.value = '';\r\n\r\n if (this.errorsSummary) {\r\n this.errorsSummary.forEach((errorsSummary) => {\r\n errorsSummary.innerHTML = '';\r\n errorsSummary.classList.remove('is-shown');\r\n });\r\n }\r\n\r\n this.refs.form.classList.add('is-hidden');\r\n\r\n this.refs.forgotPassword.classList.add('is-visible');\r\n\r\n this.formNode = this.refs.forgotPassword;\r\n\r\n this.setFormFieldTracking();\r\n\r\n this.addListener(this.refs.forgotPasswordSubmit, 'click', (e) => {\r\n e.preventDefault();\r\n\r\n this.revalidateForm().then(() => {\r\n const email = {\r\n emailAddress: this.formData.EmailAddress\r\n };\r\n pageSpinner.show();\r\n api.post(FORGOT_PASSWORD_URL, email, {\r\n headers: HEADERS\r\n })\r\n .then(() => {\r\n pageSpinner.hide();\r\n this.sendFormTracking();\r\n this.showPasswordCodeField(email);\r\n this.hideErrorsSummary();\r\n }, (error) => {\r\n pageSpinner.hide();\r\n\r\n if (error.response && error.response.status === 404) {\r\n this.sendFormTracking();\r\n this.showPasswordCodeField(email);\r\n } else if (error.response && error.response.status === 429) {\r\n this.showServerError(error, true);\r\n } else {\r\n this.showServerError(error);\r\n }\r\n });\r\n });\r\n });\r\n };\r\n\r\n onShowCompletePassword = (user) => {\r\n pageSpinner.hide();\r\n this.refs.form.classList.add('is-hidden');\r\n this.refs.completePassword.classList.add('is-visible');\r\n this.formNode = this.refs.completePassword;\r\n this.setFormFieldTracking();\r\n\r\n this.addListener(this.refs.completePasswordSubmit, 'click', (e) => {\r\n e.preventDefault();\r\n\r\n this.revalidateForm().then(() => {\r\n const newPassword = this.formData.Password;\r\n\r\n pageSpinner.show();\r\n Auth.completeNewPassword(\r\n user,\r\n newPassword,\r\n {\r\n email: user.email\r\n }\r\n ).then(() => {\r\n pageSpinner.hide();\r\n this.sendFormTracking();\r\n this.redirect();\r\n }).catch(() => {\r\n pageSpinner.hide();\r\n this.showServerError(SERVER_ERROR_MESSAGE);\r\n });\r\n });\r\n });\r\n };\r\n\r\n showPasswordCodeField(email) {\r\n this.refs.form.classList.add('is-hidden');\r\n this.refs.forgotPassword.classList.remove('is-visible');\r\n this.refs.codeWrap.classList.add('is-visible');\r\n this.formNode = this.refs.codeWrap;\r\n this.setFormFieldTracking();\r\n\r\n this.refs.code.value = '';\r\n this.refs.newPasswordInput.value = '';\r\n this.refs.newPasswordInputConfirm.value = '';\r\n\r\n this.addListener(this.refs.codeSubmit, 'click', (event) => {\r\n event.preventDefault();\r\n\r\n this.revalidateForm().then(() => {\r\n pageSpinner.show();\r\n\r\n api.post(CONFIRM_PASSWORD_URL, {\r\n emailAddress: email.emailAddress,\r\n confirmationCode: this.formData.Code,\r\n newPassword: this.formData.Password\r\n }, {\r\n headers: HEADERS\r\n })\r\n .then(() => {\r\n pageSpinner.hide();\r\n this.sendFormTracking();\r\n this.refs.passwordResetSuccess.classList.add('is-visible');\r\n this.refs.form.classList.remove('is-hidden');\r\n this.refs.codeWrap.classList.remove('is-visible');\r\n this.hideErrorsSummary();\r\n this.formNode = this.refs.form;\r\n this.setFormFieldTracking();\r\n }, (err) => {\r\n pageSpinner.hide();\r\n this.showServerError(err.response.data);\r\n });\r\n });\r\n });\r\n }\r\n\r\n onChangePassword = (event) => {\r\n event.preventDefault();\r\n\r\n this.revalidateForm().then(() => {\r\n const oldPassword = this.formData.OldPassword;\r\n const newPassword = this.formData.Password;\r\n\r\n this.getAccessToken()\r\n .then((token) => {\r\n const headers = this.setAuthorizationHeader(token);\r\n\r\n api.post(CHANGE_PASSWORD_URL, {\r\n oldPassword,\r\n newPassword\r\n }, {\r\n headers\r\n })\r\n .then(() => {\r\n if (this.refs.changePasswordSuccess) {\r\n this.refs.form.classList.add('is-hidden');\r\n this.refs.changePasswordSuccess.classList.add('is-visible');\r\n this.formNode = this.refs.changePasswordSuccess;\r\n this.hideErrorsSummary();\r\n this.setFormFieldTracking();\r\n } else {\r\n this.redirect();\r\n }\r\n }, (error) => {\r\n if (error.response && error.response.data) {\r\n this.showServerError(error.response.data);\r\n } else {\r\n this.showServerError(error);\r\n }\r\n });\r\n })\r\n .catch(() => {\r\n this.showServerError(SERVER_ERROR_MESSAGE);\r\n });\r\n });\r\n };\r\n\r\n onSignOut = (event) => {\r\n event.preventDefault();\r\n\r\n userService.setHostedUIReturnUrl(this.SIGN_OUT_URL);\r\n\r\n userService.signOut()\r\n .then(() => {\r\n })\r\n .catch((err) => {\r\n this.showServerError(err);\r\n });\r\n };\r\n\r\n onOptInOneClub = (event) => {\r\n event.preventDefault();\r\n\r\n this.revalidateForm().then(() => {\r\n const checkboxesValuesObject = this.collectCheckboxesData();\r\n const optInValue = checkboxesValuesObject.OptInToTheOneClub;\r\n\r\n this.getAccessToken().then((token) => {\r\n const userAttributesObject = {\r\n user: {\r\n isOneClubMember: optInValue\r\n }\r\n };\r\n this.updateUserObject(userAttributesObject, token);\r\n });\r\n });\r\n };\r\n\r\n onUpdateConsents = (event) => {\r\n event.preventDefault();\r\n\r\n this.revalidateForm().then(() => {\r\n const checkboxesValuesObject = this.collectCheckboxesData();\r\n const interests = this.getVenuesObject();\r\n\r\n const optIns = {\r\n optedTheOpenOffersByEmail: !checkboxesValuesObject.OptedTheOpenOffersByEmail,\r\n optedPartnerOffersByEmail: checkboxesValuesObject.OptedPartnersOffersByEmail\r\n };\r\n\r\n this.getAccessToken().then((token) => {\r\n const userAttributesObject = {\r\n user: {\r\n interests,\r\n optIns\r\n }\r\n };\r\n\r\n this.updateUserObject(userAttributesObject, token);\r\n });\r\n });\r\n };\r\n\r\n onUpdateAddress = (event) => {\r\n event.preventDefault();\r\n\r\n this.revalidateForm().then(() => {\r\n const address = {\r\n addressLine1: this.formData.AddressLine1,\r\n addressLine2: this.formData.AddressLine2,\r\n postcode: this.formData.Postcode,\r\n city: this.formData.City,\r\n country: this.formData.Country,\r\n county: this.formData.County ? this.formData.County : ''\r\n };\r\n\r\n this.getAccessToken().then((token) => {\r\n const userAttributesObject = {\r\n user: {\r\n address\r\n }\r\n };\r\n\r\n this.updateUserObject(userAttributesObject, token);\r\n });\r\n });\r\n };\r\n\r\n onUpdateDetails = (event) => {\r\n event.preventDefault();\r\n const dateOfBirth = this.getDateOfBirth();\r\n\r\n this.revalidateForm().then(() => {\r\n this.getAccessToken().then((token) => {\r\n const userAttributesObject = {\r\n user: {\r\n title: this.formData.Title,\r\n firstName: this.formData.FirstName,\r\n lastName: this.formData.LastName,\r\n email: this.formData.Email,\r\n dateOfBirth\r\n }\r\n };\r\n\r\n this.updateUserObject(userAttributesObject, token);\r\n });\r\n });\r\n };\r\n\r\n onCompleteDetails = (event) => {\r\n event.preventDefault();\r\n\r\n this.revalidateForm().then(() => {\r\n this.setFormFieldTracking();\r\n let dateOfBirth;\r\n\r\n if (this.element.querySelector('[data-dc-form-date-ref=\"day\"]')) {\r\n dateOfBirth = this.getDateOfBirth();\r\n } else {\r\n dateOfBirth = this.element.querySelector('[name=DateOfBirth]').value;\r\n }\r\n\r\n const firstName = this.formData.FirstName;\r\n const lastName = this.formData.LastName;\r\n\r\n const interests = this.getVenuesObject();\r\n\r\n const address = {\r\n addressLine1: this.formData.AddressLine1,\r\n addressLine2: this.formData.AddressLine2,\r\n postcode: this.formData.Postcode,\r\n city: this.formData.City,\r\n country: this.formData.Country,\r\n county: this.formData.County ? this.formData.County : ''\r\n };\r\n\r\n this.getAccessToken().then((token) => {\r\n const userAttributesObject = {\r\n user: {\r\n title: this.formData.Title,\r\n firstName,\r\n lastName,\r\n address,\r\n dateOfBirth,\r\n interests\r\n },\r\n createTicketingAccount: this.refs.createTicketingAccount ? this.refs.createTicketingAccount.value : false\r\n };\r\n\r\n this.sendFormTracking();\r\n this.updateUserObject(userAttributesObject, token);\r\n });\r\n });\r\n };\r\n\r\n onEmailFocusOut = () => {\r\n this.getParsleyForm().destroy();\r\n this._parsleyForm = null;\r\n this.getParsleyForm().fields.forEach((field) => {\r\n const name = field.$element[0].name;\r\n if (name) {\r\n const fieldName = name.substring(name.indexOf('.') + 1);\r\n this.formData[fieldName] = field.$element[0].value;\r\n }\r\n });\r\n\r\n const emailRequest = {\r\n emailAddress: this.formData.EmailAddress ? this.formData.EmailAddress : this.formData.Email\r\n };\r\n const emailJson = JSON.stringify(emailRequest);\r\n\r\n api.post(CHECK_EMAIL_URL, emailJson, {\r\n headers: HEADERS\r\n })\r\n .then(() => {\r\n const errorList = this.refs.emailInput.querySelector('ul');\r\n if (errorList) {\r\n errorList.remove();\r\n }\r\n })\r\n .catch((error) => {\r\n if (error.response.status === 409) {\r\n this.showFieldError(this.refs.emailInput, error.response.data);\r\n } else {\r\n this.showServerError(SERVER_ERROR_MESSAGE);\r\n }\r\n });\r\n };\r\n\r\n revalidateForm() {\r\n return new Promise((resolve) => {\r\n this.getParsleyForm().destroy();\r\n this._parsleyForm = null;\r\n this.getParsleyForm().fields.forEach((field) => {\r\n const name = field.$element[0].name;\r\n if (name) {\r\n const fieldName = name.substring(name.indexOf('.') + 1);\r\n this.formData[fieldName] = field.$element[0].value;\r\n }\r\n });\r\n\r\n this.getParsleyForm().on('field:error', this.onFieldError);\r\n if (this.getParsleyForm().validate() === true) {\r\n resolve();\r\n }\r\n });\r\n }\r\n\r\n collectCheckboxesData() {\r\n const checkboxesInputs = [...this.formNode.querySelectorAll('input[type=\"checkbox\"]')];\r\n\r\n function isArrayOrObject(name) {\r\n return /(.+)\\[(.*)\\]/.test(name);\r\n }\r\n\r\n return checkboxesInputs.reduce((result, checkbox) => {\r\n if (!isArrayOrObject(checkbox.name)) {\r\n result[checkbox.name] = checkbox.checked;\r\n }\r\n return result;\r\n }, {});\r\n }\r\n\r\n showErrorsSummary(groupped) {\r\n if (this.errorsSummary) {\r\n this.errorsSummary.forEach((errorsSummary) => {\r\n if (Object.keys(groupped).length) {\r\n const errors = Object.keys(groupped).reduce((groupErrors, key) =>\r\n [...groupErrors, ...groupped[key]], []);\r\n errorsSummary.innerHTML = errorsSummaryTemplate({ errors });\r\n errorsSummary.classList.add('is-shown');\r\n } else {\r\n this.hideErrorsSummary();\r\n }\r\n });\r\n }\r\n }\r\n\r\n showServerError(err, data = false) {\r\n pageSpinner.hide();\r\n\r\n if (this.errorsSummary) {\r\n this.errorsSummary.forEach((errorsSummary) => {\r\n if (data) {\r\n errorsSummary.innerHTML = err.response.data ? err.response.data : err;\r\n } else {\r\n errorsSummary.innerHTML = err.message ? err.message : err;\r\n }\r\n\r\n errorsSummary.classList.add('is-shown');\r\n });\r\n }\r\n }\r\n\r\n showFieldError(inputElement, errors) {\r\n const errorListOld = inputElement.querySelector('ul');\r\n if (errorListOld) {\r\n errorListOld.remove();\r\n }\r\n const errorList = document.createElement('ul');\r\n errorList.classList.add('form-field__error-list');\r\n errorList.classList.add('filled');\r\n inputElement.appendChild(errorList);\r\n if (typeof errors === 'string') {\r\n this.createErrorItem(errors, errorList);\r\n } else if (typeof errors === 'object') {\r\n Object.values(errors).forEach((error) => {\r\n this.createErrorItem(error, errorList);\r\n });\r\n }\r\n }\r\n\r\n createErrorItem(error, errorList) {\r\n const errorItem = document.createElement('li');\r\n errorItem.classList.add('form-field__error-item');\r\n errorItem.innerHTML = error;\r\n errorList.appendChild(errorItem);\r\n }\r\n\r\n redirect() {\r\n const returnUrl = this.refs.returnUrl ? this.refs.returnUrl.value : this.getAttribute(this.element, 'return-url');\r\n\r\n redirectTo(returnUrl || this.DEFAULT_REDIRECT_URL);\r\n }\r\n\r\n sendFormTracking() {\r\n if (this.getAttribute(this.formNode, 'track')) {\r\n GTM.push(this.getTrackCategory(), this.getTrackAction(), this.getTrackLabel());\r\n }\r\n }\r\n\r\n setFormFieldTracking() {\r\n if (this.refs.trackFields && this.getAttribute(this.formNode, 'track')) {\r\n this.refs.trackFields.forEach((field) => {\r\n if (this.formNode.contains(field)) {\r\n field.addEventListener('focusin', this.sendFormFieldTracking);\r\n }\r\n });\r\n }\r\n }\r\n\r\n sendFormFieldTracking(e) {\r\n const target = e.target;\r\n if (this.refs.trackFields && this.refs.trackFields.indexOf(target) !== -1) {\r\n const label = this.getAttribute(target, 'track-label');\r\n if (label) {\r\n GTM.push(this.getTrackCategory(), 'Field Entry', label);\r\n }\r\n }\r\n }\r\n\r\n setAuthorizationHeader(token) {\r\n return Object.assign(HEADERS, { Authorization: 'Bearer ' + token });\r\n }\r\n\r\n getTrackCategory() {\r\n this._trackCategory = this.getAttribute(this.formNode, 'track-category');\r\n return this._trackCategory;\r\n }\r\n\r\n getTrackAction() {\r\n this._trackAction = this.getAttribute(this.formNode, 'track-action');\r\n return this._trackAction;\r\n }\r\n\r\n getTrackLabel() {\r\n this._trackLabel = this.getAttribute(this.formNode, 'track-label');\r\n return this._trackLabel;\r\n }\r\n\r\n getAccessToken() {\r\n return userService.getAccessToken();\r\n }\r\n\r\n getCurrentUser(token) {\r\n const headers = this.setAuthorizationHeader(token);\r\n\r\n return api.get(GET_USER_PROFILE_URL, {\r\n headers\r\n })\r\n .then((response) => {\r\n return Promise.resolve(response.data);\r\n })\r\n .catch(() => {\r\n this.showServerError(SERVER_ERROR_MESSAGE);\r\n });\r\n }\r\n\r\n checkSignIn() {\r\n return Auth.currentSession()\r\n .then(() => {\r\n userService.signOut().catch((err) => {\r\n this.showServerError(err);\r\n });\r\n })\r\n .catch(() => {\r\n return Promise.resolve();\r\n });\r\n }\r\n\r\n getDateOfBirth() {\r\n const day = this.element.querySelector('[data-dc-form-date-ref=\"day\"]').value;\r\n const month = this.element.querySelector('[data-dc-form-date-ref=\"month\"]').value;\r\n const year = this.element.querySelector('[data-dc-form-date-ref=\"year\"]').value;\r\n return `${year}-${month}-${day}`;\r\n }\r\n\r\n getVenuesObject() {\r\n const interests = {\r\n venues: []\r\n };\r\n this.refs.venues.forEach((venue) => {\r\n if (venue.checked) {\r\n interests.venues.push(venue.value);\r\n }\r\n });\r\n return interests;\r\n }\r\n}\r\n","import './scss/index.scss';\r\n\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport FormComponent from './js/form.component';\r\nimport FormSsoComponent from './js/form-sso.component';\r\n\r\nComponentsFactory.getInstance().define('form', FormComponent);\r\nComponentsFactory.getInstance().define('form-sso', FormSsoComponent);\r\n","export default class ChoicesWrapper {\r\n constructor(element, options) {\r\n this.element = element;\r\n // workaround https://github.com/jshjohnson/Choices/issues/457\r\n const isDisabled = this.element.disabled;\r\n if (isDisabled) {\r\n this.element.disabled = false;\r\n }\r\n\r\n this.choicesInstance = new window.Choices(element, options);\r\n if (isDisabled) {\r\n this.element.disabled = true;\r\n this.choicesInstance.disable();\r\n }\r\n\r\n this.addListeners();\r\n }\r\n\r\n getChoicesInstance() {\r\n return this.choicesInstance;\r\n }\r\n\r\n addListeners() {\r\n this.observer = new MutationObserver((mutations) => {\r\n mutations.forEach((mutation) => {\r\n if (mutation.type === 'attributes' && mutation.attributeName === 'disabled') {\r\n this.updateChoicesDisabled(this.element.disabled);\r\n }\r\n });\r\n });\r\n this.observer.observe(this.element, { attributes: true });\r\n }\r\n\r\n updateChoicesDisabled(isDisabled) {\r\n if (isDisabled) {\r\n this.choicesInstance.disable();\r\n } else {\r\n this.choicesInstance.enable();\r\n }\r\n }\r\n\r\n destroy() {\r\n this.observer.disconnect();\r\n }\r\n}\r\n","import BaseComponent from 'foundation/base-component';\r\nimport ChoicesWrapper from './choices-wrapper';\r\nimport baseItemTemplate from '../html/item.hbs';\r\nimport baseChoiseTemplate from '../html/choise.hbs';\r\n\r\nexport default class FormCustomSelectComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['native'];\r\n }\r\n\r\n init() {\r\n this.choicesWrapperInstance = new ChoicesWrapper(this.refs.native, {\r\n placeholderValue: this.options.placeholder,\r\n removeItemButton: ('removeItemButton' in this.options) ? this.options.removeItemButton : false,\r\n shouldSort: false,\r\n itemSelectText: '',\r\n classNames: {\r\n hiddenState: 'visually-hidden'\r\n },\r\n callbackOnCreateTemplates(strToEl) {\r\n const itemSelectText = this.config.itemSelectText;\r\n return {\r\n item(classNames, data, removeItemButton) {\r\n return strToEl(baseItemTemplate({\r\n classNames,\r\n data,\r\n content: data.label,\r\n removeItemButton\r\n }));\r\n },\r\n choice(classNames, data) {\r\n return strToEl(baseChoiseTemplate({\r\n classNames,\r\n data,\r\n itemSelectText,\r\n content: data.label\r\n }));\r\n },\r\n };\r\n },\r\n });\r\n this.choicesInstance = this.choicesWrapperInstance.getChoicesInstance();\r\n // hide dropdown on every select\r\n this.refs.native.addEventListener('choice', () => {\r\n this.choicesInstance.hideDropdown();\r\n }, false);\r\n }\r\n\r\n onDestroy() {\r\n this.choicesWrapperInstance.destroy();\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport FormCustomSelectComponent from './js/form-custom-select.component';\r\n\r\nComponentsFactory.getInstance().define('form-custom-select', FormCustomSelectComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport eventBus from '../../../general/js/event-bus';\r\n\r\nexport default class FormFieldComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.onChange = this.onChange.bind(this);\r\n this.onFocus = this.onFocus.bind(this);\r\n this.onBlur = this.onBlur.bind(this);\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['native'];\r\n }\r\n\r\n init() {\r\n eventBus.addListener('hide-form-field-tooltip', this.hideFormFieldTooltip.bind(this));\r\n\r\n this.addListeners();\r\n this.checkFill();\r\n }\r\n\r\n hideFormFieldTooltip() {\r\n if (!this.refs.tooltip) return false;\r\n this.refs.tooltip.classList.add('is-hidden');\r\n }\r\n\r\n addListeners() {\r\n this.addListener(this.refs.native, 'change', this.onChange);\r\n this.addListener(this.refs.native, 'focus', this.onFocus);\r\n this.addListener(this.refs.native, 'blur', this.onBlur);\r\n }\r\n\r\n onChange() {\r\n this.checkFill();\r\n }\r\n\r\n onFocus() {\r\n this.element.classList.add('is-focused');\r\n this.element.classList.add('is-placeholder-visible');\r\n\r\n if (!this.refs.tooltip || this.element.classList.contains('is-invalid')) {\r\n return false;\r\n }\r\n\r\n this.refs.tooltip.classList.remove('is-hidden');\r\n }\r\n\r\n onBlur() {\r\n this.element.classList.remove('is-focused');\r\n this.element.classList.remove('is-placeholder-visible');\r\n this.checkFill();\r\n\r\n if (!this.refs.tooltip) return false;\r\n\r\n this.refs.tooltip.classList.add('is-hidden');\r\n }\r\n\r\n checkFill() {\r\n if (this.refs.native.value === '') {\r\n this.element.classList.remove('is-filled');\r\n this.element.classList.add('is-empty');\r\n } else {\r\n this.element.classList.add('is-filled');\r\n this.element.classList.remove('is-empty');\r\n }\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport FormFieldComponent from './js/form-field.component';\r\n\r\nComponentsFactory.getInstance().define('form-field', FormFieldComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\n\r\nexport default class FormFileComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.defaultCaption = this.element.dataset.placeholder || 'No file chosen';\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['native', 'caption'];\r\n }\r\n\r\n init() {\r\n this.fileInput = this.refs.native;\r\n this.captionContainer = this.refs.caption;\r\n\r\n this.caption = document.createElement('span');\r\n this.captionContainer.appendChild(this.caption);\r\n\r\n\r\n this.fileInput.addEventListener('change', this.onFileChange.bind(this));\r\n this.updateCaption();\r\n }\r\n\r\n onFileChange() {\r\n this.updateCaption();\r\n }\r\n\r\n updateCaption() {\r\n let caption = '';\r\n if (this.fileInput.files && this.fileInput.files.length > 1) {\r\n caption = `${this.fileInput.files.length} files selected`;\r\n } else {\r\n caption = this.fileInput.value.split('\\\\').pop();\r\n }\r\n if (caption) {\r\n this.caption.innerHTML = caption;\r\n } else {\r\n this.caption.innerHTML = this.defaultCaption;\r\n }\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport FormFileComponent from './js/form-file.component';\r\n\r\nComponentsFactory.getInstance().define('form-file', FormFileComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport baseItemTemplate from '../../form-custom-select/html/item.hbs';\r\nimport itemContentTemplate from '../html/item.hbs';\r\nimport baseChoiseTemplate from '../../form-custom-select/html/choise.hbs';\r\nimport choiseContentTemplate from '../html/choise.hbs';\r\nimport ChoicesWrapper from '../../form-custom-select/js/choices-wrapper';\r\n\r\nexport default class FormPhoneInputComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.countries = this.options.countries || [];\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['country'];\r\n }\r\n\r\n init() {\r\n this.choicesWrapperInstance = new ChoicesWrapper(this.refs.country, {\r\n choices: this.getChoices(),\r\n searchEnabled: false,\r\n shouldSort: false,\r\n itemSelectText: '',\r\n callbackOnCreateTemplates(strToEl) {\r\n const itemSelectText = this.config.itemSelectText;\r\n return {\r\n item(classNames, data) {\r\n return strToEl(baseItemTemplate({\r\n classNames,\r\n data,\r\n content: itemContentTemplate({ classNames, data })\r\n }));\r\n },\r\n choice(classNames, data) {\r\n return strToEl(baseChoiseTemplate({\r\n classNames,\r\n data,\r\n itemSelectText,\r\n content: choiseContentTemplate({ classNames, data, itemSelectText })\r\n }));\r\n },\r\n };\r\n },\r\n });\r\n }\r\n\r\n getChoices() {\r\n return this.countries.map(({\r\n value, label, image, selected = false\r\n }) => ({\r\n value,\r\n label,\r\n selected,\r\n disabled: false,\r\n customProperties: { image }\r\n }));\r\n }\r\n\r\n onDestroy() {\r\n this.choicesWrapperInstance.destroy();\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport FormPhoneInputComponent from './js/form-phone-input.component';\r\n\r\nComponentsFactory.getInstance().define('form-phone-input', FormPhoneInputComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport gtm from '../../../general/js/gtm';\r\n\r\nexport default class GtmTriggerComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.category = null;\r\n this.action = null;\r\n this.label = null;\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.addListener(this.element, 'click', this.onClick);\r\n }\r\n\r\n onClick = () => {\r\n gtm.push(this.getCategory(), this.getAction(), this.getLabel());\r\n }\r\n\r\n\r\n getCategory() {\r\n if (this.category === null) {\r\n this.category = this.getAttribute(this.element, 'category');\r\n }\r\n return this.category;\r\n }\r\n\r\n getAction() {\r\n if (this.action === null) {\r\n this.action = this.getAttribute(this.element, 'action');\r\n }\r\n return this.action;\r\n }\r\n\r\n getLabel() {\r\n if (this.label === null) {\r\n this.label = this.getAttribute(this.element, 'label');\r\n }\r\n return this.label;\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport GtmTriggerComponent from './js/gtm-trigger.component';\r\n\r\nComponentsFactory.getInstance().define('gtm', GtmTriggerComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport anime from 'animejs';\r\nimport gtm from 'general/js/gtm';\r\nimport eventBus from '../../../general/js/event-bus';\r\nimport { EVENT_DEVICE_TYPE_CHANGED } from '../../../general/js/app';\r\n\r\nconst EASING = 'easeOutQuad';\r\nconst DURATION_OPEN = 400;\r\nconst DURATION_CLOSE = 300;\r\nconst DURATION_SLIDE = 284;\r\n\r\nexport default class Header extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.visibleLocation = false;\r\n this.visibleLocationLatest = false;\r\n this.locationPanelHeight = this.refs.location.offsetHeight;\r\n this.headerCanBeAnimated = true;\r\n this.menuCanBeAnimated = true;\r\n this.keyboardEvent = false;\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (this.refs.dynamicButton) {\r\n this.refs.dynamicButton.forEach((button) => {\r\n this.addListener(button, 'click', this.onClickDynamicButton);\r\n this.addListener(button, 'keypress', this.onKeypressDynamicButton);\r\n });\r\n }\r\n\r\n if (this.refs.dynamicButtonLatest) {\r\n this.refs.dynamicButtonLatest.forEach((button) => {\r\n this.addListener(button, 'click', this.onClickDynamicButtonLatest);\r\n this.addListener(button, 'keypress', this.onKeypressDynamicButtonLatest);\r\n });\r\n }\r\n\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.onChangeDeviceType);\r\n this.addListener(this.refs.gtmLeftMenuClick, 'click', this.saveActionToGtm);\r\n this.addListener(this.refs.gtmDynamicMenuClick, 'click', this.saveActionToGtm);\r\n }\r\n\r\n onDestroy() {\r\n eventBus.removeListener(EVENT_DEVICE_TYPE_CHANGED, this.onChangeDeviceType);\r\n }\r\n\r\n saveActionToGtm = (event) => {\r\n const clickedItem = event.target;\r\n const itemText = clickedItem.innerText || clickedItem.textContent;\r\n\r\n gtm.push('Top Ribbon', 'Click', itemText);\r\n }\r\n\r\n onChangeDeviceType = () => {\r\n this.refs.location.classList.remove('is-hidden');\r\n this.refs.locationLatest.classList.remove('is-hidden');\r\n this.locationPanelHeight = this.refs.location.offsetHeight;\r\n\r\n if (!this.visibleLocation) {\r\n anime({\r\n targets: this.refs.location,\r\n marginTop: -this.locationPanelHeight,\r\n duration: 0,\r\n easing: EASING\r\n });\r\n }\r\n if (!this.visibleLocationLatest) {\r\n anime({\r\n targets: this.refs.locationLatest,\r\n marginTop: -this.locationPanelHeight,\r\n duration: 0,\r\n easing: EASING\r\n });\r\n }\r\n }\r\n\r\n setAnimation(arrayItems, boolean) {\r\n if (boolean) {\r\n [...arrayItems].forEach((item) => {\r\n item.classList.add('is-animation');\r\n });\r\n } else {\r\n [...arrayItems].forEach((item) => {\r\n item.classList.remove('is-animation');\r\n });\r\n }\r\n }\r\n\r\n ariaExpandedTrigger(array, state) {\r\n array.forEach((item) => {\r\n item.setAttribute('aria-expanded', state);\r\n });\r\n }\r\n\r\n async toggleLocationsPanel(location, dynamicButton, cb) {\r\n this.locationPanelHeight = location.offsetHeight;\r\n\r\n if (this.headerCanBeAnimated) {\r\n this.headerCanBeAnimated = false;\r\n\r\n switch (location.className.includes('__latest')) {\r\n case true:\r\n if (this.visibleLocationLatest) {\r\n this.closingMenuAnimation(location, dynamicButton);\r\n this.visibleLocationLatest = false;\r\n } else {\r\n if (this.closeOtherMenuAnimation(location)) {\r\n await this.timeout(DURATION_SLIDE);\r\n }\r\n\r\n this.openingMenuAnimation(location, dynamicButton, cb);\r\n this.visibleLocationLatest = true;\r\n }\r\n break;\r\n case false:\r\n if (this.visibleLocation) {\r\n this.closingMenuAnimation(location, dynamicButton);\r\n this.visibleLocation = false;\r\n } else {\r\n if (this.closeOtherMenuAnimation(location)) {\r\n await this.timeout(DURATION_SLIDE);\r\n }\r\n\r\n this.openingMenuAnimation(location, dynamicButton, cb);\r\n this.visibleLocation = true;\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n onKeypressDynamicButton = (event) => {\r\n this.keyboardEvent = true;\r\n event.preventDefault();\r\n this.toggleLocationsPanel(this.refs.location, this.refs.dynamicButton, this.setFocus(this.refs.locationLink));\r\n }\r\n\r\n onKeypressDynamicButtonLatest = (event) => {\r\n this.keyboardEvent = true;\r\n\r\n event.preventDefault();\r\n this.toggleLocationsPanel(this.refs.locationLatest, this.refs.dynamicButtonLatest, this.setFocus(this.refs.locationLinkLatest));\r\n }\r\n\r\n onClickDynamicButton = (event) => {\r\n if (this.keyboardEvent) return;\r\n\r\n event.preventDefault();\r\n this.toggleLocationsPanel(this.refs.location, this.refs.dynamicButton);\r\n }\r\n\r\n onClickDynamicButtonLatest = (event) => {\r\n if (this.keyboardEvent) return;\r\n\r\n event.preventDefault();\r\n this.toggleLocationsPanel(this.refs.locationLatest, this.refs.dynamicButtonLatest);\r\n }\r\n\r\n openingMenuAnimation(location, dynamicButton, cb) {\r\n this.ariaExpandedTrigger(dynamicButton, 'true');\r\n\r\n location.classList.remove('is-hidden');\r\n location.classList.add('is-visible');\r\n\r\n if (location.className.includes('__latest')) {\r\n this.setAnimation(this.refs.dynamicIconsLatest, true);\r\n window.setTimeout(() => {\r\n this.setAnimation(this.refs.locationItemLatest, true);\r\n }, 1);\r\n this.setAnimation(this.refs.locationLinkLatest, true);\r\n } else {\r\n this.setAnimation(this.refs.dynamicIcons, true);\r\n window.setTimeout(() => {\r\n this.setAnimation(this.refs.locationItem, true);\r\n }, 1);\r\n this.setAnimation(this.refs.locationLink, true);\r\n }\r\n\r\n anime({\r\n targets: location,\r\n marginTop: 0,\r\n duration: DURATION_OPEN,\r\n easing: EASING,\r\n complete: () => {\r\n this.keyboardEvent = false;\r\n this.headerCanBeAnimated = true;\r\n if (typeof cb === 'function') {\r\n cb();\r\n }\r\n }\r\n });\r\n }\r\n\r\n closingMenuAnimation(location, dynamicButton) {\r\n this.ariaExpandedTrigger(dynamicButton, 'false');\r\n\r\n if (location.className.includes('__latest')) {\r\n this.setAnimation(this.refs.dynamicIconsLatest, false);\r\n this.setAnimation(this.refs.locationItemLatest, false);\r\n this.setAnimation(this.refs.locationLinkLatest, false);\r\n } else {\r\n this.setAnimation(this.refs.dynamicIcons, false);\r\n this.setAnimation(this.refs.locationItem, false);\r\n this.setAnimation(this.refs.locationLink, false);\r\n }\r\n\r\n anime({\r\n targets: location,\r\n marginTop: -this.locationPanelHeight,\r\n duration: DURATION_CLOSE,\r\n easing: EASING,\r\n complete: () => {\r\n location.classList.remove('is-visible');\r\n location.classList.add('is-hidden');\r\n this.keyboardEvent = false;\r\n this.headerCanBeAnimated = true;\r\n }\r\n });\r\n }\r\n\r\n closeOtherMenuAnimation(location) {\r\n if (location.className.includes('__latest')) {\r\n if (this.visibleLocation) {\r\n this.closingMenuAnimation(this.refs.location, this.refs.dynamicButton);\r\n this.visibleLocation = false;\r\n return true;\r\n }\r\n } else if (this.visibleLocationLatest) {\r\n this.closingMenuAnimation(this.refs.locationLatest, this.refs.dynamicButtonLatest);\r\n this.visibleLocationLatest = false;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n async timeout(interval) {\r\n return new Promise((resolve) => setTimeout(resolve, interval));\r\n }\r\n\r\n setFocus = (locationLink) => {\r\n locationLink[0].focus();\r\n };\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport HeaderComponent from './js/header.component';\r\n\r\nComponentsFactory.getInstance().define('header', HeaderComponent);\r\n","import anime from 'animejs';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport Scroller from '../../../general/js/scroller';\r\nimport * as cookieHelper from '../../sso/helpers/cookie-helper';\r\n\r\nexport default class Hero extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.state = {\r\n isOneClubMember: this.getOneClubMemberValueFromCookie()\r\n };\r\n\r\n this.sticky = this.refs.sticky;\r\n this.stickyIsShown = false;\r\n this.observerIsCreated = false;\r\n this.promptScroller = null;\r\n\r\n this.onResize = this.onResize.bind(this);\r\n this.onClickPrompt = this.onClickPrompt.bind(this);\r\n\r\n this.onResize();\r\n this.init();\r\n}\r\n\r\n init() {\r\n this.disableButtonsWhenUserIsOneClubMember();\r\n this.checkViewportWidth();\r\n this.addBottomPadding();\r\n\r\n this.addListener(window, 'resize', this.onResize);\r\n\r\n if (this.refs.prompt) {\r\n this.initScroller();\r\n }\r\n }\r\n\r\n getOneClubMemberValueFromCookie() {\r\n const cookie = cookieHelper.getCookie('userData');\r\n const parsedCookie = JSON.parse(cookie);\r\n\r\n if (parsedCookie != null) {\r\n return parsedCookie.isOneClubMember;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n disableButtonsWhenUserIsOneClubMember() {\r\n if (this.state.isOneClubMember && this.options.disableCta1 === 'true') {\r\n this.refs.cta1.classList.add('hidden');\r\n this.refs.cta1sticky.classList.add('hidden');\r\n }\r\n\r\n if (this.state.isOneClubMember && this.options.disableCta2 === 'true') {\r\n this.refs.cta2.classList.add('hidden');\r\n this.refs.cta2sticky.classList.add('hidden');\r\n }\r\n }\r\n\r\n checkViewportWidth() {\r\n this.viewportWidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\r\n }\r\n\r\n onResize() {\r\n this.checkViewportWidth();\r\n\r\n if (this.viewportWidth > 767 && !this.observerIsCreated) {\r\n this.removeBottomPadding();\r\n this.createObserver();\r\n } else if (this.viewportWidth < 768 && this.observerIsCreated) {\r\n this.addBottomPadding();\r\n this.observer.disconnect();\r\n this.sticky.classList.remove('is-shown');\r\n this.observerIsCreated = false;\r\n }\r\n }\r\n\r\n createObserver() {\r\n this.observer = new IntersectionObserver((changes) => {\r\n const change = changes[0];\r\n if (change.intersectionRatio > 0) {\r\n this.hideSticky();\r\n } else if (!this.state.isOneClubMember) {\r\n this.showSticky();\r\n } else if (this.options.disableStickyHeader === 'false') {\r\n this.showSticky();\r\n }\r\n });\r\n this.observer.observe(this.element);\r\n this.observerIsCreated = true;\r\n }\r\n\r\n showSticky() {\r\n this.stickyIsShown = true;\r\n this.sticky.classList.add('is-shown');\r\n\r\n anime({\r\n targets: this.sticky,\r\n translateY: [-100, 0],\r\n duration: 500,\r\n easing: 'linear'\r\n });\r\n }\r\n\r\n hideSticky() {\r\n if (this.stickyIsShown) {\r\n this.stickyIsShown = false;\r\n anime({\r\n targets: this.sticky,\r\n translateY: [0, -100],\r\n duration: 300,\r\n easing: 'linear',\r\n complete: () => {\r\n this.sticky.classList.remove('is-shown');\r\n }\r\n });\r\n }\r\n }\r\n\r\n initScroller() {\r\n const elementId = this.refs.prompt.getAttribute('href');\r\n const blockToShow = document.querySelector(elementId);\r\n\r\n if (blockToShow) {\r\n this.promptScroller = new Scroller(blockToShow);\r\n this.addListener(this.refs.prompt, 'click', this.onClickPrompt);\r\n }\r\n }\r\n\r\n onClickPrompt(event) {\r\n event.preventDefault();\r\n this.promptScroller.scrollToTop();\r\n }\r\n\r\n addBottomPadding() {\r\n this.blankElement = document.createElement('div');\r\n this.blankElement.style.height = `${this.sticky.clientHeight}px`;\r\n document.body.appendChild(this.blankElement);\r\n }\r\n\r\n removeBottomPadding() {\r\n if (this.blankElement) {\r\n document.body.removeChild(this.blankElement);\r\n }\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport HeroComponent from './js/hero.component';\r\n\r\nComponentsFactory.getInstance().define('hero', HeroComponent);\r\n","\r\nimport BaseComponent from 'foundation/base-component';\r\n\r\nexport default class ImageGallery extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.total = this.refs.slides.length;\r\n this.setImage(0);\r\n\r\n this.refs.prev.addEventListener('click', () => {\r\n this.setImage(((this.current - 1) + this.total) % this.total);\r\n });\r\n\r\n this.refs.next.addEventListener('click', () => {\r\n this.setImage(((this.current + 1)) % this.total);\r\n });\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['slides'];\r\n }\r\n\r\n setImage(current) {\r\n this.current = current;\r\n\r\n this.refs.slides.forEach((slide, index) => {\r\n if (this.current === index) {\r\n slide.classList.add('is-active');\r\n } else {\r\n slide.classList.remove('is-active');\r\n }\r\n });\r\n\r\n const labelCurrent = this.current < 9 ? ('0' + (this.current + 1)) : (this.current + 1).toString();\r\n const labelTotal = this.total < 10 ? ('0' + this.total) : this.total.toString();\r\n\r\n this.refs.counter.innerHTML = labelCurrent + ' / ' + labelTotal;\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport ImgeGallery from './js/image-gallery.component';\r\nimport './scss/index.scss';\r\n\r\nComponentsFactory.getInstance().define('image-gallery', ImgeGallery);\r\n","import {\r\n hasValue,\r\n isNullOrUndefined,\r\n setHtmlIdAttribute,\r\n} from '../../../general/js/general-helpers';\r\n\r\nexport const initialiseEventCentreInstance =\r\n (clipTag, eventCenterParams) => (state) => {\r\n const { shotViewElement } = state;\r\n\r\n if (hasValue(eventCenterParams) && isNullOrUndefined(shotViewElement)) {\r\n return {\r\n ...state,\r\n shotViewElement: clipTag.eventCentre(eventCenterParams),\r\n };\r\n }\r\n\r\n return {\r\n ...state,\r\n };\r\n };\r\n\r\nexport const setClipTagContainerId = (\r\n liveShotViewConfig,\r\n clipTagContainerDiv\r\n) => {\r\n if (!hasValue(liveShotViewConfig)) return;\r\n\r\n const { eventCentreParameters } = liveShotViewConfig;\r\n\r\n if (!hasValue(eventCentreParameters)) return;\r\n\r\n const { targetElement } = eventCentreParameters;\r\n\r\n setHtmlIdAttribute(clipTagContainerDiv, targetElement);\r\n};\r\n\r\nexport const formatEventCentreParameters = (eventCentreParameters = null) => {\r\n const formattedParams = isValidEventCentreParameters(eventCentreParameters) ?\r\n {\r\n operator: eventCentreParameters.operator,\r\n sport: eventCentreParameters.sport,\r\n eventId: eventCentreParameters.eventId,\r\n targetModule: eventCentreParameters.targetModule,\r\n version: eventCentreParameters.imgaVersion,\r\n language: eventCentreParameters.imgaLanguage,\r\n targetElementSelector: `#${eventCentreParameters.targetElementSelector}`,\r\n } :\r\n {};\r\n\r\n if (!hasValue(formattedParams)) {\r\n return formattedParams;\r\n }\r\n\r\n if (hasValue(eventCentreParameters.environment)) {\r\n formattedParams.env = eventCentreParameters.environment;\r\n }\r\n\r\n if (hasValue(eventCentreParameters.contextView)) {\r\n formattedParams.initialContext = {\r\n view: eventCentreParameters.contextView,\r\n };\r\n }\r\n\r\n return formattedParams;\r\n};\r\n\r\nexport const isValidEventCentreParameters = (eventCentreParameters = null) => {\r\n return (\r\n hasValue(eventCentreParameters) &&\r\n hasValue(eventCentreParameters.operator) &&\r\n hasValue(eventCentreParameters.sport) &&\r\n hasValue(eventCentreParameters.eventId) &&\r\n hasValue(eventCentreParameters.targetModule) &&\r\n hasValue(eventCentreParameters.imgaVersion) &&\r\n hasValue(eventCentreParameters.imgaLanguage) &&\r\n hasValue(eventCentreParameters.targetElementSelector)\r\n );\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n hasValue,\r\n isScriptEmbedded,\r\n embedScript,\r\n} from '../../../general/js/general-helpers';\r\nimport {\r\n initialiseEventCentreInstance,\r\n setClipTagContainerId,\r\n formatEventCentreParameters,\r\n} from './imga-iframe-helpers';\r\n\r\nimport {\r\n getIMGArenaESModuleScriptInnerHTML,\r\n shouldLoadRouteToHoleClipTag,\r\n} from '../../shot-tracker/js/shot-tracker-helpers';\r\n\r\nclass IMGAiFrameHolder extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n shotViewElement: null,\r\n };\r\n\r\n this.clipTagContainerDiv = React.createRef();\r\n\r\n this.loadRouteToHoleClipTag = this.loadRouteToHoleClipTag.bind(this);\r\n this.updateProps = this.updateProps.bind(this);\r\n\r\n window.frontRowSeatESModuleCallback = this.loadRouteToHoleClipTag;\r\n }\r\n\r\n componentDidMount() {\r\n this.updateProps();\r\n this.initHolderDivId();\r\n this.loadShotViewScripts();\r\n }\r\n\r\n updateProps() {\r\n const { eventCentreParameters } = this.props;\r\n\r\n if (\r\n eventCentreParameters !== undefined &&\r\n eventCentreParameters !== null\r\n ) {\r\n eventCentreParameters.targetElementSelector =\r\n eventCentreParameters.targetElement;\r\n }\r\n }\r\n\r\n initHolderDivId() {\r\n const { eventCentreParameters } = this.props;\r\n if (hasValue(eventCentreParameters)) {\r\n setClipTagContainerId(this.props, this.clipTagContainerDiv.current);\r\n }\r\n }\r\n\r\n loadRouteToHoleClipTag() {\r\n const clipTag = window.frontRowSeat;\r\n const routeHolder = this.clipTagContainerDiv.current;\r\n const { eventCentreParameters } = this.props;\r\n\r\n if (shouldLoadRouteToHoleClipTag(routeHolder, clipTag)) {\r\n const formattedEventCenterParams = formatEventCentreParameters(\r\n eventCentreParameters\r\n );\r\n\r\n this.setState(\r\n initialiseEventCentreInstance(\r\n clipTag,\r\n formattedEventCenterParams,\r\n routeHolder\r\n )\r\n );\r\n }\r\n }\r\n\r\n loadShotViewScripts() {\r\n const { shotViewScripts } = this.props;\r\n\r\n if (!hasValue(shotViewScripts)) {\r\n return;\r\n }\r\n\r\n shotViewScripts.forEach((script) => {\r\n const { scriptSourceUrl, scriptType } = script;\r\n let innerHTML = '';\r\n\r\n if (scriptType === 'module') {\r\n innerHTML = getIMGArenaESModuleScriptInnerHTML(scriptSourceUrl);\r\n }\r\n\r\n if (!isScriptEmbedded(scriptSourceUrl, innerHTML)) {\r\n const { loadScriptAsync, useNoModule } = script;\r\n\r\n embedScript(\r\n scriptSourceUrl,\r\n loadScriptAsync,\r\n this.loadRouteToHoleClipTag,\r\n useNoModule,\r\n scriptType,\r\n innerHTML\r\n );\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nIMGAiFrameHolder.propTypes = {\r\n eventCentreParameters: PropTypes.object,\r\n shotViewScripts: PropTypes.array,\r\n};\r\n\r\nexport default IMGAiFrameHolder;\r\n","export function isMobile() {\r\n return window.innerWidth <= 767;\r\n}\r\n","import React, { Fragment } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport IMGAiFrameHolder from './imga-iframe-holder';\r\nimport { isMobile } from '../../../general/js/utils/screen-size-utils';\r\n\r\nclass IMGAiFrameComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n this.updateIframeSize();\r\n }\r\n\r\n updateIframeSize() {\r\n const {\r\n iFrameAspectRatioWdith,\r\n iFrameAspectRatioHeight,\r\n mobileIFrameAspectRatioHeight,\r\n mobileIFrameAspectRatioWidth\r\n } = this.options;\r\n\r\n if (iFrameAspectRatioHeight === '0' &&\r\n iFrameAspectRatioWdith === '0' &&\r\n mobileIFrameAspectRatioHeight === '0' &&\r\n mobileIFrameAspectRatioWidth === '0'\r\n ) {\r\n this.element.style.height = '640px';\r\n } else {\r\n const desktopPaddingTopPercent = `${(iFrameAspectRatioHeight / iFrameAspectRatioWdith) * 100}%`;\r\n const mobilePaddingTopPercent = `${(mobileIFrameAspectRatioHeight / mobileIFrameAspectRatioWidth) * 100}%`;\r\n\r\n this.element.style.paddingTop = isMobile() ? mobilePaddingTopPercent : desktopPaddingTopPercent;\r\n }\r\n }\r\n\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n const { shotViewScripts, eventCentreParameters } = this.options;\r\n\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default IMGAiFrameComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport IMGAiFrameComponent from './js/imga-iframe.component';\r\n\r\nComponentsFactory.getInstance().define('imga-iframe', IMGAiFrameComponent);\r\n","export const base64Decoder = {\r\n convert(input) {\r\n return getAtob()(input);\r\n },\r\n};\r\n\r\nexport const base64UrlDecode = (str) => {\r\n const base64 = str.replace(/-/g, '+').replace(/_/g, '/');\r\n\r\n return decodeURIComponent(\r\n base64Decoder\r\n .convert(base64)\r\n .split('')\r\n .map((char) => `%${`00${char.charCodeAt(0).toString(16)}`.slice(-2)}`)\r\n .join('')\r\n );\r\n};\r\n\r\nexport const getAtob = () => {\r\n // browser\r\n if (typeof window !== 'undefined' && typeof window.atob === 'function') {\r\n return window.atob;\r\n }\r\n\r\n // Next.js global polyfill\r\n if (typeof atob === 'function') {\r\n return atob;\r\n }\r\n\r\n return undefined;\r\n};\r\n","import KJUR from 'jsrsasign';\r\nimport { hasValue, safeParseJSON } from '../general-helpers';\r\nimport { base64UrlDecode } from './decode-utils';\r\n\r\nexport const decodeJWT = (token) => {\r\n if (!hasValue(token)) {\r\n return undefined;\r\n }\r\n\r\n const tokenParts = token.split('.');\r\n\r\n if (tokenParts.length !== 3) {\r\n console.error('Invalid Token');\r\n return undefined;\r\n }\r\n\r\n try {\r\n const header = safeParseJSON(base64UrlDecode(tokenParts[0]));\r\n const payload = safeParseJSON(base64UrlDecode(tokenParts[1]));\r\n const signature = tokenParts[2];\r\n\r\n return {\r\n toString: () => token,\r\n header,\r\n payload,\r\n signature\r\n };\r\n } catch (err) {\r\n console.error(err);\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const encodeJWT = (header, payload, secret = '') => {\r\n try {\r\n const sHeader = JSON.stringify(header);\r\n const sPayload = JSON.stringify(payload);\r\n const sJWT = KJUR.jws.JWS.sign(null, sHeader, sPayload, secret);\r\n\r\n return sJWT;\r\n } catch (error) {\r\n console.error('Error encoding JWT:', error);\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const stripToken = (token, allowedAttributes, secret = '', overWriteHeader = undefined) => {\r\n const decoded = decodeJWT(token);\r\n\r\n if (!decoded) {\r\n console.error('Invalid token');\r\n return undefined;\r\n }\r\n\r\n const { header, payload } = decoded;\r\n\r\n const filteredPayload = Object.keys(payload)\r\n .filter((key) => allowedAttributes.includes(key))\r\n .reduce((obj, key) => {\r\n obj[key] = payload[key];\r\n return obj;\r\n }, {});\r\n\r\n const headerToEncode = {\r\n ...header,\r\n ...overWriteHeader\r\n };\r\n\r\n return encodeJWT(headerToEncode, filteredPayload, secret);\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { getCurrentUserAttributes } from '../../sso/components/oauth/auth-provider-methods';\r\nimport { stripToken } from '../../../general/js/utils/jwt-utils';\r\nimport { hasValue, safeParseJSON, stringToArray } from '../../../general/js/general-helpers';\r\nimport { addQueryParams } from '../../../general/js/utils';\r\n\r\nexport function IMGAMatchupsGameLayout(props) {\r\n const {\r\n allowedUserAttributes,\r\n iFrameDatasource,\r\n tokenHeader,\r\n tokenQueryKey\r\n } = props;\r\n\r\n const [userIdTokenShortened, setUserIdTokenShortened] = useState(undefined);\r\n\r\n useEffect(() => {\r\n getCurrentUserAttributes()\r\n .then((user) => {\r\n setUserIdTokenShortened(\r\n stripToken(\r\n user.idToken,\r\n stringToArray(allowedUserAttributes),\r\n '',\r\n safeParseJSON(tokenHeader)\r\n )\r\n );\r\n })\r\n .catch((e) => {\r\n console.error(e);\r\n });\r\n }, []);\r\n\r\n if (\r\n !hasValue(userIdTokenShortened) ||\r\n !hasValue(iFrameDatasource) ||\r\n !hasValue(iFrameDatasource.source)) {\r\n return null;\r\n }\r\n\r\n const iFrameSrc = addQueryParams(iFrameDatasource.source, [\r\n {\r\n key: tokenQueryKey,\r\n value: userIdTokenShortened\r\n }\r\n ]);\r\n\r\n return (\r\n \r\n );\r\n}\r\n","import React, { Fragment } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport { IMGAMatchupsGameLayout } from './imga-matchups-game-layout';\r\nimport { isMobile } from '../../../general/js/utils/screen-size-utils';\r\n\r\nclass IMGAMatchupsGameComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.updatePaddingTop();\r\n this.render();\r\n }\r\n\r\n updatePaddingTop() {\r\n const {\r\n iFrameAspectRatioWidth,\r\n iFrameAspectRatioHeight,\r\n mobileIFrameAspectRatioHeight,\r\n mobileIFrameAspectRatioWidth\r\n } = this.options;\r\n\r\n const desktopPaddingTopPercent = `${(iFrameAspectRatioHeight / iFrameAspectRatioWidth) * 100}%`;\r\n const mobilePaddingTopPercent = `${(mobileIFrameAspectRatioHeight / mobileIFrameAspectRatioWidth) * 100}%`;\r\n\r\n this.element.style.paddingTop = isMobile() ? mobilePaddingTopPercent : desktopPaddingTopPercent;\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default IMGAMatchupsGameComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from '../../foundation/components-factory';\r\nimport IMGAMatchupsGameComponent from './js/imga-matchups-game.component';\r\n\r\nComponentsFactory.getInstance().define('imga-matchups-game', IMGAMatchupsGameComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport eventBus from '../../../general/js/event-bus';\r\n\r\nexport default class LargeHero extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n eventBus.emit('large-hero-init', {\r\n largeHeroStickyRef: this.refs.sticky\r\n });\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport LargeHero from './js/large-hero.component';\r\n\r\nComponentsFactory.getInstance().define('large-hero', LargeHero);\r\n","import get from 'lodash/get';\r\nimport has from 'lodash/has';\r\nimport { cellTypes } from '../enums';\r\n\r\nconst sortAsc = (players, property, checkRule) => {\r\n return [...players].sort((a, b) => {\r\n if (property !== \"position.sortValue\") {\r\n let compareCutResult = compareByCut(a, b);\r\n\r\n if (compareCutResult != 0) {\r\n return compareCutResult;\r\n }\r\n }\r\n\r\n let aVal = 0;\r\n let bVal = 0;\r\n if (has(a, property)) {\r\n const aPropValue = get(a, property);\r\n if (checkRule !== null && checkRule !== undefined) {\r\n aVal = checkRule(aPropValue);\r\n } else {\r\n aVal = parseInt(aPropValue, 10);\r\n }\r\n }\r\n if (has(b, property)) {\r\n const bPropValue = get(b, property);\r\n if (checkRule !== null && checkRule !== undefined) {\r\n bVal = checkRule(bPropValue);\r\n } else {\r\n bVal = parseInt(bPropValue, 10);\r\n }\r\n }\r\n\r\n return aVal - bVal;\r\n });\r\n};\r\n\r\nconst sortDesc = (players, property, checkRule) => {\r\n return [...players].sort((a, b) => {\r\n if (property !== \"position.sortValue\") {\r\n let compareCutResult = compareByCut(a, b);\r\n\r\n if (compareCutResult != 0) {\r\n return compareCutResult;\r\n }\r\n }\r\n\r\n let aVal = 0;\r\n let bVal = 0;\r\n if (has(a, property)) {\r\n const aPropValue = get(a, property);\r\n if (checkRule !== null && checkRule !== undefined) {\r\n aVal = checkRule(aPropValue);\r\n } else {\r\n aVal = parseInt(aPropValue, 10);\r\n }\r\n }\r\n if (has(b, property)) {\r\n const bPropValue = get(b, property);\r\n if (checkRule !== null && checkRule !== undefined) {\r\n bVal = checkRule(bPropValue);\r\n } else {\r\n bVal = parseInt(bPropValue, 10);\r\n }\r\n }\r\n\r\n return bVal - aVal;\r\n });\r\n};\r\n\r\nexport const sortAscAZ = (players, property) => {\r\n return [...players].sort((a, b) => {\r\n if (property !== \"position.sortValue\") {\r\n let compareCutResult = compareByCut(a, b);\r\n\r\n if (compareCutResult != 0) {\r\n return compareCutResult;\r\n }\r\n }\r\n\r\n let aVal = 'z';\r\n let bVal = 'z';\r\n if (has(a, property)) {\r\n aVal = get(a, property);\r\n }\r\n if (has(b, property)) {\r\n bVal = get(b, property);\r\n }\r\n return aVal.toLowerCase() > bVal.toLowerCase() ? 1 : -1;\r\n });\r\n};\r\n\r\nconst sortDescAZ = (players, property) => {\r\n return [...players].sort((a, b) => {\r\n if (property !== \"position.sortValue\") {\r\n let compareCutResult = compareByCut(a, b);\r\n\r\n if (compareCutResult != 0) {\r\n return compareCutResult;\r\n }\r\n }\r\n\r\n let aVal = '';\r\n let bVal = '';\r\n if (has(a, property)) {\r\n aVal = get(a, property);\r\n }\r\n if (has(b, property)) {\r\n bVal = get(b, property);\r\n }\r\n return bVal.toLowerCase() > aVal.toLowerCase() ? 1 : -1;\r\n });\r\n};\r\n\r\nfunction compareByCut(playerA, playerB) {\r\n let cutProperty = \"position.displayValue\";\r\n let aCutVal = 'z';\r\n let bCutVal = 'z';\r\n\r\n if (has(playerA, cutProperty)) {\r\n aCutVal = get(playerA, cutProperty);\r\n }\r\n if (has(playerB, cutProperty)) {\r\n bCutVal = get(playerB, cutProperty);\r\n }\r\n\r\n if (aCutVal == null || bCutVal == null) {\r\n return 0;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'unknown');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'rtd');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'mcdnp');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'dqc');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'wdc');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'dns');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'dq');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'wd');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n let statusCompare = compareByStatus(aCutVal, bCutVal, 'cut');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n return 0;\r\n}\r\n\r\nfunction compareByStatus(playerAStatus, playerBStatus, status) {\r\n if (playerAStatus.toLowerCase() === status && playerBStatus.toLowerCase() != status) {\r\n return 1;\r\n }\r\n\r\n if (playerAStatus.toLowerCase() != status && playerBStatus.toLowerCase() === status) {\r\n return -1;\r\n }\r\n\r\n return 0;\r\n}\r\n\r\nexport const sortingStrategies = {\r\n [cellTypes.POSITION]: {\r\n filteringFunc: (players, isAsc) => {\r\n return isAsc ?\r\n sortAsc(players, 'position.sortValue') :\r\n sortDesc(players, 'position.sortValue');\r\n }\r\n },\r\n [cellTypes.MOVERS]: {\r\n filteringFunc: (players, isAsc) => {\r\n return isAsc ? sortAsc(players, 'movers') : sortDesc(players, 'movers');\r\n }\r\n },\r\n [cellTypes.PLAYER]: {\r\n filteringFunc: (players, isAsc) => {\r\n return isAsc ?\r\n sortAscAZ(players, 'sitecoreData.lastName') :\r\n sortDescAZ(players, 'sitecoreData.lastName');\r\n }\r\n },\r\n [cellTypes.PAR]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n // make toParworse to move in the end\r\n if (!val || val.toUpperCase() === 'WD') return 1000;\r\n\r\n return val === 'E' ? 0 : parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'toPar', checkRule) :\r\n sortDesc(players, 'toPar', checkRule);\r\n }\r\n },\r\n [cellTypes.HOLE]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') {\r\n return 0;\r\n }\r\n\r\n return val === 'F' ? 19 : parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'hole', checkRule) : sortDesc(players, 'hole', checkRule);\r\n }\r\n },\r\n [cellTypes.TOTAL]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'total', checkRule) : sortDesc(players, 'total', checkRule);\r\n }\r\n },\r\n [cellTypes.TODAY]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n // make player par worse to move in the end\r\n if (!val || val === '-') return 1000;\r\n\r\n return val === 'E' ? 0 : parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'today', checkRule) :\r\n sortDesc(players, 'today', checkRule);\r\n }\r\n },\r\n [cellTypes.R1]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ? sortAsc(players, 'r1', checkRule) : sortDesc(players, 'r1', checkRule);\r\n }\r\n },\r\n [cellTypes.R2]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ? sortAsc(players, 'r2', checkRule) : sortDesc(players, 'r2', checkRule);\r\n }\r\n },\r\n [cellTypes.R3]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ? sortAsc(players, 'r3', checkRule) : sortDesc(players, 'r3', checkRule);\r\n }\r\n },\r\n [cellTypes.R4]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ? sortAsc(players, 'r4', checkRule) : sortDesc(players, 'r4', checkRule);\r\n }\r\n }\r\n};\r\n","import React from 'react';\r\nimport { CountryFlag } from 'project/country-flag';\r\nimport { livePlayer } from 'components/live-player';\r\nimport { sortAscAZ } from './sortingStrategies';\r\n\r\nclass LeaderboardAlphaList extends React.Component {\r\n renderRow(player) {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n livePlayer.show(player.playerId)}\r\n >\r\n \r\n
\r\n
{player.lastName}
\r\n ,\r\n
{player.firstName}
\r\n { player.isAmateur && (a) }\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n );\r\n }\r\n\r\n render() {\r\n const { players } = this.props;\r\n\r\n if (!Array.isArray(players)) return null;\r\n\r\n const sortedPlayers = sortAscAZ(players, 'lastName');\r\n\r\n return (\r\n
\r\n {sortedPlayers.map((player) => this.renderRow(player))}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default LeaderboardAlphaList;\r\n","import React from 'react';\r\nimport { SpriteSvg } from 'project/sprite-svg';\r\n\r\nconst FavoriteButton = ({ childCss, onClick, stateFavoriteButton }) => {\r\n const getState = () => {\r\n let stateFavoriteButtonClassName = '';\r\n if (stateFavoriteButton) {\r\n stateFavoriteButtonClassName = 'is-active';\r\n }\r\n return stateFavoriteButtonClassName;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nFavoriteButton.defaultProps = {\r\n childCss: '',\r\n};\r\n\r\nexport default FavoriteButton;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { LazyImage } from 'project/lazy-image';\r\nimport { SpriteSvg } from 'project/sprite-svg';\r\nimport { viewTypes } from '../enums';\r\nimport { FLAG_IMAGE_PATH } from 'general/js/constants';\r\n\r\nconst LeaderboardHbhButton = ({ view, toggleHoleByHoleView }) => {\r\n const stateCss = classNames({\r\n 'is-active': view === viewTypes.HOLE_BY_HOLE,\r\n });\r\n\r\n return (\r\n \r\n \r\n Hole By Hole\r\n {\r\n view === viewTypes.HOLE_BY_HOLE &&\r\n \r\n }\r\n {\r\n view !== viewTypes.HOLE_BY_HOLE &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n );\r\n};\r\n\r\nexport default LeaderboardHbhButton;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { cellTypes } from '../enums';\r\n\r\nconst LeaderboardCellHoleTitle = ({ sortingHandlerProps, processingState }) => {\r\n const isActive = processingState.sortingType === cellTypes.HOLE;\r\n const stateCss = classNames({\r\n 'is-active': isActive,\r\n 'is-top': isActive && processingState.isSortingAscending\r\n });\r\n\r\n return (\r\n
\r\n sortingHandlerProps(cellTypes.HOLE)}\r\n >\r\n
hole
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n\r\n
\r\n hole\r\n
\r\n
\r\n );\r\n};\r\nexport default LeaderboardCellHoleTitle;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { viewTypes } from '../enums';\r\n\r\nconst LeaderboardRScore = ({ view, toggleRScore }) => {\r\n const renderContentRScore = () => {\r\n if (view !== viewTypes.R_SCORE) {\r\n return (\r\n \r\n
round score
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const stateCss = classNames({\r\n 'is-close': view === viewTypes.R_SCORE\r\n });\r\n\r\n return (\r\n \r\n
\r\n {renderContentRScore()}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default LeaderboardRScore;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport LeaderboardRScore from './leaderboard-r-score';\r\nimport { viewTypes, cellTypes } from '../enums';\r\n\r\nconst LeaderboardCellPlayerTitle = (\r\n {\r\n view,\r\n toggleRScore,\r\n sortingHandlerProps,\r\n processingState,\r\n }\r\n) => {\r\n const isActive = processingState.sortingType === cellTypes.PLAYER;\r\n const stateCss = classNames({\r\n 'is-active': isActive,\r\n 'is-top': isActive && processingState.isSortingAscending\r\n });\r\n\r\n return (\r\n \r\n sortingHandlerProps(cellTypes.PLAYER)}\r\n >\r\n
player
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {\r\n view !== viewTypes.HOLE_BY_HOLE &&\r\n \r\n }\r\n\r\n
player
\r\n \r\n );\r\n};\r\n\r\nexport default LeaderboardCellPlayerTitle;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { cellTypes } from '../enums';\r\n\r\nconst LeaderboardCellMoversTitle = ({ sorted, processingState }) => {\r\n const isActive = processingState.sortingType === cellTypes.MOVERS;\r\n const stateCss = classNames({\r\n 'is-active': isActive,\r\n 'is-top': isActive && processingState.isSortingAscending\r\n });\r\n\r\n return (\r\n \r\n sorted(cellTypes.MOVERS)}\r\n >\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default LeaderboardCellMoversTitle;\r\n","import React from 'react';\r\n\r\nconst LeaderboardCellScoresTitle = ({ scoringCourseRound }) => {\r\n return (\r\n
\r\n {\r\n scoringCourseRound.holePars.map((holePar) => {\r\n return (\r\n
\r\n
{holePar.holeId}
\r\n
{holePar.par}
\r\n
\r\n );\r\n })\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellScoresTitle;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { getCellModifierByType, getTitleByType } from '../enums';\r\n\r\nconst LeaderboardCellTitleBasic = (\r\n {\r\n type,\r\n sortingHandler,\r\n processingState\r\n }\r\n) => {\r\n const isActive = processingState.sortingType === type;\r\n const stateCss = classNames({\r\n 'is-active': isActive,\r\n 'is-top': isActive && processingState.isSortingAscending\r\n });\r\n\r\n const modifier = getCellModifierByType(type);\r\n const title = getTitleByType(type);\r\n\r\n return (\r\n \r\n sortingHandler(type)}\r\n >\r\n
{title}
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
{title}
\r\n \r\n );\r\n};\r\n\r\nexport default LeaderboardCellTitleBasic;\r\n","import React from 'react';\r\nimport { cellTypes, viewTypes } from '../enums';\r\nimport LeaderboardCellHoleTitle from './leaderboard-cell-hole-title';\r\nimport LeaderboardCellPlayerTitle from './leaderboard-cell-player-title';\r\nimport LeaderboardCellMoversTitle from './leaderboard-cell-movers-title';\r\nimport LeaderboardCellScoresTitle from './leaderboard-cell-scores-title';\r\nimport LeaderboardCellTitleBasic from './leaderboard-cell-title-basic';\r\n\r\nconst LeaderboardRowTitle = (\r\n {\r\n view,\r\n scoringCourseRound,\r\n toggleRScore,\r\n sortingHandlerProps,\r\n processingState,\r\n }\r\n) => {\r\n const renderTitleBasic = (type, sortingHandler) => {\r\n return (\r\n \r\n );\r\n };\r\n\r\n return (\r\n
\r\n\r\n {renderTitleBasic(cellTypes.POSITION, sortingHandlerProps, processingState)}\r\n\r\n \r\n\r\n \r\n\r\n {renderTitleBasic(cellTypes.PAR, sortingHandlerProps, processingState)}\r\n\r\n {view === viewTypes.R_SCORE && renderTitleBasic(cellTypes.R1, sortingHandlerProps, processingState)}\r\n {view === viewTypes.R_SCORE && renderTitleBasic(cellTypes.R2, sortingHandlerProps, processingState)}\r\n {view === viewTypes.R_SCORE && renderTitleBasic(cellTypes.R3, sortingHandlerProps, processingState)}\r\n {view === viewTypes.R_SCORE && renderTitleBasic(cellTypes.R4, sortingHandlerProps, processingState)}\r\n\r\n {view === viewTypes.HOLE_BY_HOLE && }\r\n\r\n {\r\n view !== viewTypes.R_SCORE &&\r\n view !== viewTypes.HOLE_BY_HOLE &&\r\n \r\n }\r\n\r\n {view === viewTypes.R_SCORE && renderTitleBasic(cellTypes.TOTAL, sortingHandlerProps, processingState)}\r\n {view !== viewTypes.R_SCORE && renderTitleBasic(cellTypes.TODAY, sortingHandlerProps, processingState)}\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardRowTitle;\r\n","import React from 'react';\r\n\r\nconst LeaderboardCellPos = ({ data }) => {\r\n const position = (data.position && data.position.displayValue) || '-';\r\n\r\n return (\r\n
\r\n
{position}
\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellPos;\r\n","import React from 'react';\r\n\r\nconst LeaderboardMoversBasicIcon = ({ stateIcon }) => {\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardMoversBasicIcon;\r\n","import React from 'react';\r\n\r\nconst LeaderboardMoversExtendedIcon = ({ stateIcon }) => {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardMoversExtendedIcon;\r\n","import React from 'react';\r\nimport LeaderboardMoversBasicIcon from './leaderboard-movers-basic-icon';\r\nimport LeaderboardMoversExtendedIcon from './leaderboard-movers-extended-icon';\r\n\r\nconst LeaderboardCellSort = ({ data, options }) => {\r\n const renderArrows = (movers) => {\r\n\r\n if (movers < 0 && Math.abs(movers) >= options.threshold) {\r\n return ;\r\n }\r\n\r\n if (movers < 0 && Math.abs(movers) < options.threshold) {\r\n return ;\r\n }\r\n\r\n if (movers > 0 && Math.abs(movers) >= options.threshold) {\r\n return ;\r\n }\r\n\r\n if (movers > 0 && Math.abs(movers) < options.threshold) {\r\n return ;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n const getMovers = (movers) => {\r\n let moversValue = '-';\r\n\r\n if (!movers || movers === 0) {\r\n return moversValue;\r\n }\r\n\r\n if (movers > 0) {\r\n moversValue = movers;\r\n }\r\n\r\n if (movers < 0) {\r\n moversValue = movers.toString().replace('-', '');\r\n }\r\n\r\n return moversValue;\r\n };\r\n\r\n return (\r\n
\r\n
\r\n {/*
*/}\r\n
\r\n {renderArrows(data.movers)}\r\n {getMovers(data.movers)}\r\n
\r\n {/*
*/}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellSort;\r\n","import React from 'react';\r\nimport { SpriteSvg } from 'project/sprite-svg';\r\n\r\nconst LeaderboardFeaturedGroupLive = ({ targetUrl }) => {\r\n if (!targetUrl) return null;\r\n\r\n return (\r\n \r\n
\r\n Featured group\r\n
\r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default LeaderboardFeaturedGroupLive;\r\n","import React from 'react';\r\nimport get from 'lodash/get';\r\nimport eventBus from 'general/js/event-bus';\r\nimport app, { EVENT_DEVICE_TYPE_CHANGED, DEVICE_TYPE_MOBILE } from 'general/js/app';\r\nimport { playerSitecoreData } from 'components/live-player';\r\nimport LeaderboardFeaturedGroupLive from './leaderboard-featured-group-live';\r\nimport LeaderboardTeeTimesGroup from './leaderboard-tee-times-group';\r\nimport { playOffStatuses, viewTypes } from '../enums';\r\n\r\n\r\nclass LeaderboardCellPlayerExtra extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n deviceType: app.deviceTypeByViewport\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.onDeviceTypeChanged);\r\n }\r\n\r\n componentWillUnmount() {\r\n eventBus.removeListener(EVENT_DEVICE_TYPE_CHANGED, this.onDeviceTypeChanged);\r\n }\r\n\r\n onDeviceTypeChanged = (oldDeviceType, newDeviceType) => {\r\n this.setState({\r\n deviceType: newDeviceType\r\n });\r\n }\r\n\r\n renderPlayOffStatus() {\r\n const { player, hasChampion } = this.props;\r\n const playerSD = player.sitecoreData || playerSitecoreData;\r\n\r\n if (hasChampion) return null;\r\n\r\n if (playerSD.suddenDeathStatus &&\r\n playerSD.suddenDeathStatus !== playOffStatuses.NOT_PLAYING) {\r\n return 'Sudden death';\r\n }\r\n\r\n if (playerSD.playOffStatus &&\r\n playerSD.playOffStatus !== playOffStatuses.NOT_PLAYING) {\r\n return 'Play off';\r\n }\r\n\r\n return null;\r\n }\r\n\r\n render() {\r\n const { player, view, isPlayOff, currentRound, scoringLeaderboard } = this.props;\r\n const selectedRound = get(scoringLeaderboard, 'currentRound');\r\n const featuredGroupLiveUrl = get(player, 'sitecoreData.featuredGroupLiveUrl');\r\n\r\n return (\r\n
\r\n \r\n {\r\n (currentRound == selectedRound) &&\r\n \r\n }\r\n {\r\n isPlayOff &&\r\n view === viewTypes.HOLE_BY_HOLE &&\r\n
{this.renderPlayOffStatus()}
\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default LeaderboardCellPlayerExtra;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { favoritePlayerService } from 'general/js/services';\r\nimport {\r\n DEVICE_TYPE_MOBILE,\r\n DEVICE_TYPE_MOBILE_WIDE,\r\n DEVICE_TYPE_TABLET,\r\n} from 'general/js/app';\r\nimport { CountryFlag } from 'project/country-flag';\r\nimport { LazyImage } from 'project/lazy-image';\r\nimport FavoritePlayerButton from 'components/favorite-player-button';\r\nimport { livePlayer } from 'components/live-player';\r\nimport {\r\n renderSitecoreData,\r\n} from '../actions/renderData';\r\n\r\nimport LeaderboardCellPlayerExtra from './leaderboard-cell-player-extra';\r\n\r\nconst LeaderboardCellPlayerBasic = ({\r\n deviceTypeByViewport,\r\n player,\r\n ...rest\r\n}) => {\r\n const renderNameComponent = () => {\r\n const playerSD = player.sitecoreData;\r\n\r\n if (!playerSD) return null;\r\n\r\n let firstName = playerSD.firstName;\r\n\r\n if (deviceTypeByViewport === DEVICE_TYPE_MOBILE ||\r\n deviceTypeByViewport === DEVICE_TYPE_MOBILE_WIDE ||\r\n deviceTypeByViewport === DEVICE_TYPE_TABLET) {\r\n firstName = firstName.charAt(0);\r\n }\r\n\r\n const fullnameCss = classNames({\r\n //'is-long': playerSD.lastName.length > 10,\r\n 'is-lengthy': playerSD.lastName.length > 12,\r\n });\r\n\r\n return (\r\n
\r\n
\r\n {playerSD.lastName}\r\n
\r\n {\r\n firstName &&\r\n ,\r\n }\r\n
\r\n {firstName}\r\n
\r\n {\r\n playerSD.isAmateur &&\r\n (a)\r\n }\r\n
\r\n );\r\n };\r\n\r\n const favouriteTheme = {};\r\n\r\n if (favoritePlayerService.isFavourite(player.id.toString())) {\r\n favouriteTheme.isWhite = true;\r\n } else {\r\n favouriteTheme.isDark = true;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n livePlayer.show(player.id)}\r\n >\r\n \r\n {renderNameComponent()}\r\n {\r\n player.sitecoreData &&\r\n player.sitecoreData.sponsorLogoSrc &&\r\n
\r\n \r\n
\r\n }\r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellPlayerBasic;\r\n","export const renderSitecoreData = (data, title) => {\r\n if (data.sitecoreData) {\r\n return data.sitecoreData[title];\r\n }\r\n\r\n return null;\r\n};\r\n","import React from 'react';\r\nimport { ScorePlayerCell } from 'components/scores';\r\n\r\nclass LeaderboardPlayerResult extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.rootRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n this.setScrollToEnd();\r\n }\r\n\r\n componentDidUpdate() {\r\n this.setScrollToEnd();\r\n }\r\n\r\n setScrollToEnd = () => {\r\n const { scrollWidth, offsetWidth } = this.rootRef.current;\r\n\r\n this.rootRef.current.scrollLeft = scrollWidth - offsetWidth;\r\n };\r\n\r\n playerResult = () => {\r\n const { playOffRound } = this.props;\r\n\r\n if (!playOffRound || !Array.isArray(playOffRound.info)) return null;\r\n\r\n return (\r\n playOffRound.info.map((item, index) => {\r\n return (\r\n \r\n
\r\n
{item.holeId}
\r\n
\r\n
\r\n
{item.holePar}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n })\r\n );\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n {this.playerResult()}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default LeaderboardPlayerResult;\r\n","import React from 'react';\r\nimport get from 'lodash/get';\r\nimport classNames from 'classnames';\r\nimport ArrayHelper from 'foundation/array-helper';\r\nimport { favoritePlayerService } from 'general/js/services';\r\nimport { getRoundById } from 'general/js/helpers';\r\nimport { LazyImage } from 'project/lazy-image';\r\nimport { CountryFlag } from 'project/country-flag';\r\nimport { livePlayer, playerSitecoreData } from 'components/live-player';\r\nimport FavoritePlayerButton from 'components/favorite-player-button';\r\nimport { ScorePlayerCell } from 'components/scores';\r\nimport LeaderboardPlayerResult from './leaderboard-player-result';\r\nimport LeaderboardCellPlayerExtra from './leaderboard-cell-player-extra';\r\n\r\nconst LeaderboardCellPlayerLeaders = (\r\n {\r\n player,\r\n scoringCourseRound,\r\n currentRound,\r\n isPlayOff,\r\n liveScanner,\r\n ...rest\r\n }\r\n) => {\r\n if (!player || ArrayHelper.isEmpty(player.rounds)) return null;\r\n\r\n const playerSD = player.sitecoreData || playerSitecoreData;\r\n const foundRound = getRoundById(player.rounds, currentRound);\r\n const playOffRoundId = liveScanner.liveComponents.leaderboard !== undefined ? liveScanner.liveComponents.leaderboard.playoffRoundId : 401;\r\n\r\n const renderIndicators = () => {\r\n return scoringCourseRound.holePars.map((holePar, i) => {\r\n const playerPar = get(foundRound, `info[${i}].playerPar`) || null;\r\n\r\n return (\r\n \r\n );\r\n });\r\n };\r\n\r\n const renderIndicatorsComponent = () => {\r\n if (!foundRound || ArrayHelper.isEmpty(foundRound.info)) return null;\r\n\r\n if (isPlayOff) {\r\n const playOffRound = getRoundById(player.rounds, playOffRoundId);\r\n\r\n return ;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n r{currentRound}\r\n
\r\n
\r\n {renderIndicators()}\r\n
\r\n
\r\n );\r\n };\r\n\r\n\r\n const favouriteTheme = {};\r\n\r\n if (favoritePlayerService.isFavourite(player.id.toString())) {\r\n favouriteTheme.isWhite = true;\r\n } else {\r\n favouriteTheme.isDark = true;\r\n }\r\n\r\n const lastNameCss = classNames({\r\n 'is-long': playerSD.lastName.length > 12\r\n });\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n\r\n livePlayer.show(player.id)}\r\n >\r\n
\r\n {playerSD.firstName}\r\n
\r\n
\r\n
\r\n {playerSD.lastName}\r\n {\r\n playerSD.isAmateur &&\r\n (a)\r\n }\r\n
\r\n {\r\n playerSD.sponsorLogoSrc &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n \r\n\r\n {renderIndicatorsComponent()}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellPlayerLeaders;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport app from 'general/js/app';\r\nimport LeaderboardCellPlayerBasic from './leaderboard-cell-player-basic.js';\r\nimport LeaderboardCellPlayerLeaders from './leaderboard-cell-player-leaders.js';\r\nimport { viewTypes } from '../enums';\r\n\r\nconst LeaderboardCellPlayer = (\r\n {\r\n player,\r\n view,\r\n isChampion,\r\n isPlayOff,\r\n isEnhanced,\r\n liveScanner,\r\n ...rest\r\n }\r\n) => {\r\n let playOffHoles = null;\r\n const playOffRoundId = liveScanner.liveComponents.leaderboard !== undefined ? liveScanner.liveComponents.leaderboard.playoffRoundId : 401;\r\n\r\n if (Array.isArray(player.rounds)) {\r\n playOffHoles = player.rounds.find((round) => round.id === playOffRoundId);\r\n }\r\n\r\n const renderPlayOffView = () => {\r\n if (!isPlayOff || isChampion) return false;\r\n\r\n return playOffHoles && playOffHoles.length > 6;\r\n };\r\n\r\n const getIsChampionPlayOff = () => {\r\n return isChampion &&\r\n view !== viewTypes.HOLE_BY_HOLE &&\r\n playOffHoles &&\r\n playOffHoles.length > 6;\r\n };\r\n\r\n const renderPlayerContent = () => {\r\n if (isEnhanced && view !== viewTypes.HOLE_BY_HOLE) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n const renderChampionStatus = () => {\r\n if (!isChampion || view === viewTypes.HOLE_BY_HOLE) return null;\r\n\r\n return (\r\n

\r\n
{app.state.championLabels.mobile}
\r\n
\r\n
{app.state.championLabels.desktop}
\r\n
\r\n

\r\n );\r\n };\r\n\r\n const cellStateCss = classNames({\r\n 'is-leaders': view !== viewTypes.HOLE_BY_HOLE && isEnhanced,\r\n 'is-play-off': isPlayOff && view !== viewTypes.HOLE_BY_HOLE,\r\n 'is-play-off-res': renderPlayOffView(),\r\n 'is-champion': isChampion,\r\n 'is-champion-play-off': getIsChampionPlayOff()\r\n });\r\n\r\n return (\r\n
\r\n
\r\n {renderChampionStatus()}\r\n
\r\n {renderPlayerContent()}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellPlayer;\r\n","import React from 'react';\r\nimport { ScoreTotalCell } from 'components/scores';\r\nimport { viewTypes } from '../enums';\r\n\r\nconst LeaderboardCellToPar = (\r\n {\r\n player,\r\n playerSD,\r\n view,\r\n isPlayOff\r\n }\r\n) => {\r\n const renderInfo = () => {\r\n let playOffText = '';\r\n\r\n if (playerSD.suddenDeathStatus) {\r\n playOffText = 'Sudden death';\r\n } else if (playerSD.playOffStatus) {\r\n playOffText = 'PlayOff';\r\n }\r\n\r\n return (\r\n
\r\n
{playOffText}
\r\n \r\n
\r\n );\r\n };\r\n\r\n return (\r\n
\r\n \r\n {\r\n isPlayOff &&\r\n view !== viewTypes.HOLE_BY_HOLE &&\r\n renderInfo()\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellToPar;\r\n","import React from 'react';\r\nimport { ScoreTodayCell } from 'components/scores';\r\n\r\nconst LeaderboardCellToday = ({ data }) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellToday;\r\n","import React from 'react';\r\nimport { ScoreCell } from 'components/scores';\r\n\r\nconst LeaderboardCellTotal = ({ data }) => {\r\n return (\r\n
\r\n
\r\n {data.total || '-'}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellTotal;\r\n","import React from 'react';\r\nimport { ScoreCell } from 'components/scores';\r\n\r\nconst LeaderboardCellHole = ({ data }) => {\r\n return (\r\n
\r\n {data.hole || '-'}\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellHole;\r\n","import React from 'react';\r\nimport get from 'lodash/get';\r\nimport { ScorePlayerCell } from 'components/scores';\r\n\r\nconst LeaderboardCellScores = ({ scoringCourseRound, scoringPlayerRound }) => {\r\n return (\r\n
\r\n {\r\n scoringCourseRound.holePars.map((holePar, i) => {\r\n const playerPar = get(scoringPlayerRound, `info[${i}].playerPar`) || null;\r\n\r\n return ;\r\n })\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellScores;\r\n","import React from 'react';\r\nimport { ScoreCell } from 'components/scores';\r\n\r\nconst LeaderboardCellRound = ({ data }) => {\r\n let scoreText = data;\r\n\r\n if (!data || data === '0') {\r\n scoreText = '-';\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {scoreText}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellRound;\r\n","import React from 'react';\r\nimport { getTotalBemClass, ScoreCell } from 'components/scores';\r\n\r\nconst LeaderboardCellRoundTotal = ({ scoringCourseRound, player, currentRound }) => {\r\n const playerTotal = player[`r${currentRound}`];\r\n const roundTotal = scoringCourseRound.totalPar;\r\n const difference = playerTotal - roundTotal;\r\n let bemList = ['default', 'has-border'];\r\n\r\n if (playerTotal && roundTotal && !Number.isNaN(difference)) {\r\n bemList = [getTotalBemClass(difference), 'has-border'];\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {playerTotal || '-'}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellRoundTotal;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { favoritePlayerService } from 'general/js/services';\r\nimport { getRoundById } from 'general/js/helpers';\r\nimport { LazyImage } from 'project/lazy-image';\r\nimport { playerSitecoreData } from 'components/live-player';\r\nimport { playOffStatuses, viewTypes } from '../enums';\r\nimport LeaderboardCellPos from './leaderboard-cell-pos';\r\nimport LeaderboardCellSort from './leaderboard-cell-sort';\r\nimport LeaderboardCellPlayer from './leaderboard-cell-player';\r\nimport LeaderboardCellToPar from './leaderboard-cell-to-par';\r\nimport LeaderboardCellToday from './leaderboard-cell-today';\r\nimport LeaderboardCellTotal from './leaderboard-cell-total';\r\nimport LeaderboardCellHole from './leaderboard-cell-hole';\r\nimport LeaderboardCellScores from './leaderboard-cell-scores';\r\nimport LeaderboardCellRound from './leaderboard-cell-round';\r\nimport LeaderboardCellRoundTotal from './leaderboard-cell-round-total';\r\nimport { CHAMPION_IMAGE_PATH } from 'general/js/constants';\r\n\r\nconst LeaderboardRows = (\r\n {\r\n options,\r\n scoringCourseRound,\r\n scoringLeaderboard,\r\n currentRound,\r\n cutStatus,\r\n deviceTypeByViewport,\r\n players,\r\n playersCut,\r\n view,\r\n hasChampion,\r\n isPlayOffMode,\r\n liveScanner\r\n }\r\n) => {\r\n const getIsPlayOff = (playerSD) => {\r\n if (!playerSD) return false;\r\n\r\n if (playerSD.playOffStatus &&\r\n playerSD.playOffStatus !== playOffStatuses.NOT_PLAYING\r\n ) {\r\n return true;\r\n }\r\n\r\n return !!(playerSD.suddenDeathStatus &&\r\n playerSD.suddenDeathStatus !== playOffStatuses.NOT_PLAYING);\r\n };\r\n\r\n const getIsLostPlayOff = (playerSD) => {\r\n if (!playerSD) return false;\r\n\r\n if (playerSD.playOffStatus &&\r\n playerSD.playOffStatus === playOffStatuses.LOST\r\n ) {\r\n return true;\r\n }\r\n\r\n return !!(playerSD.suddenDeathStatus &&\r\n playerSD.suddenDeathStatus === playOffStatuses.LOST);\r\n };\r\n\r\n const getIsEnhanced = (isPlayOff, isChampion, isFavorite) => {\r\n return isChampion || isPlayOff || isFavorite;\r\n };\r\n\r\n const renderRows = (playersList) => {\r\n return playersList.map((player, index) => {\r\n const scoringPlayerRound = getRoundById(player.rounds, currentRound);\r\n const playerSD = player.sitecoreData || playerSitecoreData;\r\n const isChampion = playerSD.isChampion || false;\r\n const isPlayOff = getIsPlayOff(playerSD);\r\n const isLostPlayOff = getIsLostPlayOff(playerSD);\r\n const isFavorite = favoritePlayerService.isFavourite(player.id);\r\n const isEnhanced = player.isEnhancedListings ||\r\n getIsEnhanced(isChampion, isPlayOff, isFavorite);\r\n\r\n let isCut = player.status !== 1;\r\n\r\n if (isPlayOffMode && !hasChampion) {\r\n if (!isPlayOff || (isPlayOff && isLostPlayOff)) {\r\n isCut = true;\r\n }\r\n }\r\n\r\n const rowStateCss = classNames({\r\n 'is-cut': isCut,\r\n 'is-leaders': view !== viewTypes.HOLE_BY_HOLE && isEnhanced,\r\n 'is-play-off': isPlayOff,\r\n 'is-champion': isChampion,\r\n 'is-favorite': isFavorite,\r\n });\r\n if (playerSD.firstName) {\r\n return (\r\n
\r\n {\r\n isChampion &&\r\n view !== viewTypes.HOLE_BY_HOLE &&\r\n \r\n }\r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n {view === viewTypes.R_SCORE && }\r\n {view === viewTypes.R_SCORE && }\r\n {view === viewTypes.R_SCORE && }\r\n {view === viewTypes.R_SCORE && }\r\n\r\n {\r\n view === viewTypes.HOLE_BY_HOLE &&\r\n \r\n }\r\n\r\n {view === viewTypes.SUMMARY && }\r\n\r\n {view === viewTypes.SUMMARY && }\r\n {view === viewTypes.R_SCORE && }\r\n {\r\n view === viewTypes.HOLE_BY_HOLE &&\r\n \r\n }\r\n
\r\n );\r\n }\r\n });\r\n };\r\n\r\n const renderProjectedCut = () => {\r\n return
PROJECTED CUT
;\r\n };\r\n\r\n const renderCut = () => {\r\n return
CUT
;\r\n };\r\n\r\n return (\r\n \r\n {renderRows(players)}\r\n {cutStatus === 'projected' && renderProjectedCut()}\r\n {cutStatus === 'cut' && renderCut()}\r\n {renderRows(playersCut)}\r\n \r\n );\r\n};\r\n\r\nexport default LeaderboardRows;\r\n","import React from 'react';\r\nimport ArrayHelper from 'foundation/array-helper';\r\nimport classNames from 'classnames';\r\nimport { getRoundById, checkIfRoundHasTeeTimes } from 'general/js/helpers';\r\nimport LeaderboardRowTitle from './leaderboard-row-title';\r\nimport LeaderboardRows from './leaderboard-rows';\r\n\r\nconst LeaderboardTable = ({\r\n options,\r\n scoringCourse,\r\n currentRound,\r\n deviceTypeByViewport,\r\n players,\r\n playersCut,\r\n favoritePlayers,\r\n favoriteState,\r\n activeRoundId,\r\n toggleRScore,\r\n sortingHandlerProps,\r\n processingState,\r\n liveScanner,\r\n ...rest\r\n}) => {\r\n const scoringCourseRound = getRoundById(scoringCourse.courseRounds, currentRound);\r\n\r\n if (!scoringCourseRound || ArrayHelper.isEmpty(scoringCourseRound.holePars)) return null;\r\n\r\n const hasTeeTime = checkIfRoundHasTeeTimes(players);\r\n\r\n const stateCss = classNames({\r\n 'is-active-mobile': !hasTeeTime\r\n });\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardTable;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport Scrollable from 'general/js/scrollable';\r\nimport LeaderboardTable from '../components/leaderboard-table';\r\nimport { viewTypes } from '../enums';\r\n\r\nclass LeaderboardTableWrapper extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.rootRef = React.createRef();\r\n this.wrapperRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n this.scrollable = new Scrollable(\r\n this.rootRef.current,\r\n this.wrapperRef.current,\r\n );\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.scrollable) {\r\n this.scrollable.update();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.scrollable) {\r\n this.scrollable.destroy();\r\n }\r\n }\r\n\r\n getViewState = () => {\r\n const { view } = this.props;\r\n\r\n let viewState = '';\r\n\r\n switch (view) {\r\n case viewTypes.HOLE_BY_HOLE:\r\n viewState = 'leaderboard__table-wrapper--hole-by-hole';\r\n break;\r\n case viewTypes.R_SCORE:\r\n viewState = 'leaderboard__table-wrapper--r-score';\r\n break;\r\n default:\r\n viewState = '';\r\n }\r\n\r\n return viewState;\r\n };\r\n\r\n render() {\r\n const {\r\n favoriteState,\r\n isPlayOffMode,\r\n view,\r\n liveScanner,\r\n ...rest\r\n } = this.props;\r\n\r\n const tableWrapperStateCss = classNames({\r\n 'is-play-off': isPlayOffMode,\r\n 'is-favorite-state': view !== viewTypes.HOLE_BY_HOLE && favoriteState,\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default LeaderboardTableWrapper;\r\n","import React from 'react';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\n\r\nclass LeaderboardInfoButton extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.rootRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n ComponentsFactory.getInstance().init(this.rootRef.current);\r\n }\r\n\r\n componentWillUnmount() {\r\n ComponentsFactory.getInstance().destroy(this.rootRef.current);\r\n }\r\n\r\n onClick = () => {\r\n if (this.props.onClick) {\r\n this.props.onClick();\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default LeaderboardInfoButton;\r\n","import partition from 'lodash/partition';\r\n\r\nconst getCutLineData = (players, cutLine) => {\r\n return partition(players, (obj) => {\r\n let displayValue = null;\r\n if(obj.position.displayValue){\r\n displayValue = !isSpecialStatus(obj) ? parseInt(obj.position.displayValue.replace('T', ''), 10) : obj.position.displayValue;\r\n }\r\n else{\r\n displayValue = '';\r\n }\r\n\r\n\r\n if (isNaN(displayValue) || displayValue === ''){\r\n if(!isSpecialStatus(obj)){\r\n return true;\r\n }\r\n if(obj.position.sortValue > cutLine){\r\n return true;\r\n }\r\n }\r\n\r\n return displayValue > cutLine;\r\n });\r\n};\r\n\r\nconst getStatusData = (players) => {\r\n return partition(players, (player) => {\r\n return player.status !== 1;\r\n });\r\n};\r\n\r\nconst isSpecialStatus = (player) => {\r\n return player.position.displayValue === 'WD' || player.position.displayValue === 'RTD' || player.position.displayValue === 'DSQ' || player.position.displayValue === 'DQ';\r\n};\r\n\r\nexport const splitPlayers = (cutLineState, scoringPlayersCopy, cutLine = null) => {\r\n let playersAll = [];\r\n\r\n if (cutLineState) {\r\n playersAll = getCutLineData(scoringPlayersCopy, cutLine);\r\n } else {\r\n playersAll = getStatusData(scoringPlayersCopy);\r\n }\r\n\r\n return playersAll;\r\n};\r\n","import React from 'react';\r\nimport get from 'lodash/get';\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport classNames from 'classnames';\r\nimport eventBus from 'general/js/event-bus';\r\nimport app,\r\n{\r\n EVENT_DEVICE_TYPE_CHANGED,\r\n DEVICE_TYPE_DESKTOP,\r\n DEVICE_TYPE_DESKTOP_WIDE,\r\n} from 'general/js/app';\r\nimport { favoritePlayerService } from 'general/js/services';\r\nimport {\r\n EVENT_FAVOURITE_PLAYER_SERVICE_ADD,\r\n EVENT_FAVOURITE_PLAYER_SERVICE_REMOVE\r\n} from 'general/js/services/favorite-player-services';\r\nimport {\r\n generateBemCss,\r\n isRoundChoicesEqual,\r\n isRoundChoiceAvailable,\r\n setSelectedChoice\r\n} from 'general/js/helpers';\r\nimport gtm from 'general/js/gtm';\r\nimport { LazyImage } from 'project/lazy-image';\r\nimport { LiveEventSelect } from 'components/live-event-select';\r\nimport { LivePreMessage } from 'components/live-pre-message';\r\nimport {\r\n SearchAutocomplete,\r\n getSuggestionList,\r\n getDefaultCallback,\r\n} from 'components/search-autocomplete';\r\nimport { PlayerSuggestion, CountrySuggestion } from 'components/search-suggestions';\r\nimport { FavoriteButton } from 'components/favorite-button';\r\nimport LeaderboardHbhButton from './components/leaderboard-hbh-button';\r\nimport LeaderboardTableWrapper from './containers/leaderboard-table-wrapper';\r\nimport LeaderboardInfoButton from './components/leaderboard-info-button';\r\nimport { sortingStrategies } from './components/sortingStrategies';\r\nimport { splitPlayers } from './actions/get-players-data';\r\nimport { viewTypes, cellTypes, noFavoriteMessage } from './enums';\r\n\r\nconst SUBLAYOUT_FULLWIDTH_ENABLE = 'SUBLAYOUT_FULLWIDTH_ENABLE';\r\nconst SUBLAYOUT_FULLWIDTH_DISABLE = 'SUBLAYOUT_FULLWIDTH_DISABLE';\r\n\r\nclass LeaderboardContainer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n view: viewTypes.SUMMARY,\r\n roundChoices: null,\r\n selectedRoundId: null,\r\n favoritePlayerList: favoritePlayerService.getAll(),\r\n sortingType: cellTypes.POSITION,\r\n isSortingAscending: true,\r\n isPredictive: false,\r\n predictiveSearchResults: [],\r\n applyFavourite: false,\r\n notify: true\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n eventBus.addListener(EVENT_FAVOURITE_PLAYER_SERVICE_ADD, this.renderFavoritePlayers);\r\n eventBus.addListener(EVENT_FAVOURITE_PLAYER_SERVICE_REMOVE, this.renderFavoritePlayers);\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.changedRenderedViews);\r\n this.updateChoices();\r\n }\r\n\r\n componentDidUpdate() {\r\n this.updateChoices();\r\n }\r\n\r\n componentWillUnmount() {\r\n eventBus.removeListener(EVENT_FAVOURITE_PLAYER_SERVICE_ADD, this.renderFavoritePlayers);\r\n eventBus.removeListener(EVENT_FAVOURITE_PLAYER_SERVICE_REMOVE, this.renderFavoritePlayers);\r\n eventBus.removeListener(EVENT_DEVICE_TYPE_CHANGED, this.changedRenderedViews);\r\n }\r\n\r\n updateChoices() {\r\n const { liveScanner } = this.props;\r\n const { selectedRoundId } = this.state;\r\n\r\n if (!liveScanner) return;\r\n\r\n const prevChoices = this.state.roundChoices;\r\n const roundChoices = get(liveScanner, 'liveComponents.leaderboard.roundChoices');\r\n\r\n if (this.state.selectedRoundId &&\r\n isRoundChoiceAvailable(roundChoices, selectedRoundId)\r\n ) {\r\n setSelectedChoice(cloneDeep(roundChoices), selectedRoundId);\r\n\r\n if (!isRoundChoicesEqual(prevChoices, roundChoices)) {\r\n this.setState({ roundChoices });\r\n }\r\n return;\r\n }\r\n\r\n if (isRoundChoicesEqual(prevChoices, roundChoices)) return;\r\n\r\n this.setState({\r\n roundChoices,\r\n selectedRoundId: null,\r\n });\r\n }\r\n\r\n toggleHoleByHoleView = () => {\r\n let view = viewTypes.HOLE_BY_HOLE;\r\n\r\n if (this.state.view === viewTypes.HOLE_BY_HOLE) {\r\n view = viewTypes.SUMMARY;\r\n eventBus.emit(SUBLAYOUT_FULLWIDTH_DISABLE);\r\n } else {\r\n eventBus.emit(SUBLAYOUT_FULLWIDTH_ENABLE);\r\n gtm.push('Leaderboard', 'Hole by Hole', 'Select Hole by Hole');\r\n }\r\n\r\n this.setState({ view, selectedRoundId: this.state.currentRound });\r\n }\r\n\r\n changedRenderedViews = () => {\r\n if (!(app.deviceTypeByViewport === DEVICE_TYPE_DESKTOP ||\r\n app.deviceTypeByViewport === DEVICE_TYPE_DESKTOP_WIDE) &&\r\n this.state.view !== viewTypes.HOLE_BY_HOLE\r\n ) {\r\n this.setState({\r\n view: viewTypes.SUMMARY,\r\n });\r\n }\r\n }\r\n\r\n toggleRScoreView = () => {\r\n let view = viewTypes.R_SCORE;\r\n\r\n if (this.state.view === viewTypes.R_SCORE) {\r\n view = viewTypes.SUMMARY;\r\n } else {\r\n gtm.push('Leaderboard', 'Select', 'Round Score');\r\n }\r\n\r\n this.setState({ view });\r\n }\r\n\r\n setRound = (roundId) => {\r\n this.setState({ selectedRoundId: roundId });\r\n }\r\n\r\n toggleFilterByFavourite = () => {\r\n if (!this.state.applyFavourite) {\r\n gtm.push('Leaderboard', 'Favourites', 'Select Favourites');\r\n }\r\n this.setState({ applyFavourite: !this.state.applyFavourite });\r\n }\r\n\r\n filterByFavorite = (playersData) => {\r\n return playersData.filter((player) =>\r\n favoritePlayerService.isFavourite(player.id.toString()));\r\n }\r\n\r\n sortStateInit = (playersData) => {\r\n const currentStrategy = sortingStrategies[this.state.sortingType];\r\n return currentStrategy.filteringFunc(playersData, this.state.isSortingAscending);\r\n }\r\n\r\n processData(players) {\r\n const { applyFavourite, predictiveSearchResults } = this.state;\r\n let processedPlayers = players;\r\n\r\n if (applyFavourite) {\r\n processedPlayers = this.filterByFavorite(processedPlayers);\r\n }\r\n\r\n if (predictiveSearchResults.length) {\r\n processedPlayers = processedPlayers.filter((player) => {\r\n return predictiveSearchResults.find((predictivePlayer) =>\r\n predictivePlayer.id === player.id);\r\n });\r\n }\r\n\r\n processedPlayers = this.sortStateInit(processedPlayers);\r\n\r\n return processedPlayers;\r\n }\r\n\r\n sortingHandler = (type) => {\r\n let isSortingAscending = this.state.isSortingAscending;\r\n\r\n if (this.state.sortingType === type) {\r\n isSortingAscending = !isSortingAscending;\r\n } else {\r\n isSortingAscending = true;\r\n }\r\n\r\n this.setState({\r\n sortingType: type,\r\n isSortingAscending\r\n });\r\n }\r\n\r\n renderFavoritePlayers = () => {\r\n this.setState({\r\n favoritePlayerList: favoritePlayerService.getAll()\r\n });\r\n }\r\n\r\n showPlayerCard = (playerId) => {\r\n this.setState({ activePlayerId: playerId, isModalOpen: true });\r\n }\r\n\r\n prepareSuggestions = (players) => {\r\n const completeSuggestions = getSuggestionList(\r\n players,\r\n 'id',\r\n ['sitecoreData.firstName', 'sitecoreData.lastName'],\r\n (item) => ,\r\n this.processSearchResults,\r\n true\r\n );\r\n\r\n const countries = getSuggestionList(\r\n players,\r\n 'sitecoreData.country',\r\n ['sitecoreData.country', 'sitecoreData.countryAliases'],\r\n (item) => ,\r\n this.processSearchResults\r\n );\r\n\r\n return completeSuggestions.concat(countries);\r\n }\r\n\r\n processSearchResults = (filteredDataList, terms) => {\r\n this.setState({ predictiveSearchResults: filteredDataList });\r\n if (terms && terms.length > 0) {\r\n gtm.push('Leaderboard', 'Search', terms.join(' '));\r\n }\r\n }\r\n\r\n onSearchToggleState = (isActive) => {\r\n this.setState({ isPredictive: isActive });\r\n }\r\n\r\n getCutStatus() {\r\n const { scoringLeaderboard } = this.props;\r\n const { currentRound, currentRoundStatus } = scoringLeaderboard;\r\n\r\n if ((currentRound === 2 &&\r\n (currentRoundStatus !== 5 && currentRoundStatus !== 6)) &&\r\n scoringLeaderboard.cutLine\r\n ) {\r\n return 'projected';\r\n }\r\n\r\n if ((currentRound > 2 ||\r\n (currentRound === 2 &&\r\n (currentRoundStatus === 5 || currentRoundStatus === 6))) &&\r\n scoringLeaderboard.cutLine\r\n ) {\r\n return 'cut';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n onInfoButtonClick = () => {\r\n gtm.push('Leaderboard', 'Information', 'Select Information');\r\n }\r\n\r\n render() {\r\n const {\r\n liveScanner,\r\n scoringLeaderboard,\r\n scoringCourse,\r\n hasChampion,\r\n options\r\n } = this.props;\r\n const { view, roundChoices, selectedRoundId } = this.state;\r\n\r\n let players = this.processData(scoringLeaderboard.players);\r\n let cutPlayers = [];\r\n let cutStatus = '';\r\n\r\n if (this.state.sortingType === cellTypes.POSITION &&\r\n this.state.isSortingAscending &&\r\n !this.state.predictiveSearchResults.length &&\r\n !this.state.applyFavourite\r\n ) {\r\n cutStatus = this.getCutStatus();\r\n\r\n if (cutStatus) {\r\n const splittedPlayers = splitPlayers(true, scoringLeaderboard.players, scoringLeaderboard.cutLine);\r\n\r\n players = splittedPlayers[1];\r\n cutPlayers = splittedPlayers[0];\r\n }\r\n }\r\n\r\n const bemList = [this.state.view];\r\n\r\n if (this.props.isPlayOffMode && !hasChampion) {\r\n bemList.push('play-off');\r\n }\r\n\r\n if (hasChampion) {\r\n bemList.push('has-champion');\r\n }\r\n\r\n const bemCss = generateBemCss('leaderboard', bemList);\r\n const controlPanelCss = classNames({\r\n 'is-predictive': this.state.isPredictive\r\n });\r\n\r\n let currentRound = liveScanner.activeRoundId;\r\n\r\n if (view === viewTypes.HOLE_BY_HOLE && this.state.selectedRoundId) {\r\n currentRound = selectedRoundId;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {\r\n view === viewTypes.HOLE_BY_HOLE &&\r\n \r\n {\r\n roundChoices.length === 1 &&\r\n
{roundChoices[0].label}
\r\n }\r\n {\r\n roundChoices.length > 1 &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n }\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n {\r\n this.state.applyFavourite &&\r\n !players.length &&\r\n \r\n }\r\n {\r\n players.length &&\r\n this.sortingHandler(type)}\r\n showPlayerCard={this.showPlayerCard}\r\n liveScanner={liveScanner}\r\n />\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default LeaderboardContainer;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport get from 'lodash/get';\r\nimport ArrayHelper from 'foundation/array-helper';\r\nimport ScoringLoader, { endpointNames } from 'general/js/loaders/scoring-loader';\r\nimport { getPlayerSitecoreData } from 'general/js/helpers';\r\nimport { BlockPlaceholder } from 'components/block-placeholder';\r\nimport { BlockSpinner } from 'components/block-spinner';\r\nimport { bemClasses, LivePreMessage } from 'components/live-pre-message';\r\nimport { playerSitecoreData } from 'components/live-player';\r\nimport LeaderboardAlphaList from './components/leaderboard-alpha-list';\r\nimport LeaderboardContainer from './leaderboard-container';\r\n\r\nclass LeaderboardLayout extends React.Component {\r\n componentDidMount() {\r\n ScoringLoader.subscribe(endpointNames.LIVE_SCANNER);\r\n ScoringLoader.subscribe(endpointNames.PLAYERS);\r\n ScoringLoader.subscribe(endpointNames.LEADERBOARD);\r\n ScoringLoader.subscribe(endpointNames.COURSE);\r\n }\r\n\r\n componentWillUnmount() {\r\n ScoringLoader.unsubscribe(endpointNames.LIVE_SCANNER);\r\n ScoringLoader.unsubscribe(endpointNames.PLAYERS);\r\n ScoringLoader.unsubscribe(endpointNames.LEADERBOARD);\r\n ScoringLoader.unsubscribe(endpointNames.COURSE);\r\n }\r\n\r\n isPlayOffMode() {\r\n return this.props.scoringLeaderboard.players.some((player) => {\r\n return (player.sitecoreData &&\r\n (player.sitecoreData.playOffStatus ||\r\n player.sitecoreData.suddenDeathtatus ||\r\n player.sitecoreData.isChampion));\r\n });\r\n }\r\n\r\n hasChampion() {\r\n return this.props.scoringLeaderboard.players.some((player) => {\r\n return player.sitecoreData && player.sitecoreData.isChampion;\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n liveScanner,\r\n scoringLeaderboard,\r\n scoringCourse,\r\n sitecorePlayers,\r\n options\r\n } = this.props;\r\n\r\n if (liveScanner === undefined ||\r\n sitecorePlayers === undefined ||\r\n scoringCourse === undefined ||\r\n scoringLeaderboard === undefined\r\n ) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n const config = get(liveScanner, 'liveComponents.leaderboard');\r\n\r\n if (!config.show ||\r\n !liveScanner.activeRoundId ||\r\n !sitecorePlayers ||\r\n !scoringCourse ||\r\n !scoringLeaderboard ||\r\n ArrayHelper.isEmpty(scoringCourse.courseRounds)\r\n ) {\r\n const messageModel = {\r\n title: config.title,\r\n body: config.subtitle,\r\n textColor: config.textColor\r\n };\r\n return ;\r\n }\r\n\r\n if (ArrayHelper.isEmpty(scoringLeaderboard.players)) {\r\n return ;\r\n }\r\n\r\n const isPlayOffMode = this.isPlayOffMode();\r\n const hasChampion = this.hasChampion();\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nLeaderboardLayout.propTypes = {\r\n options: PropTypes.object.isRequired\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n const sitecorePlayers = state.scoring[endpointNames.PLAYERS];\r\n const scoringLeaderboard = state.scoring[endpointNames.LEADERBOARD];\r\n\r\n if (sitecorePlayers === undefined) return {};\r\n\r\n // inject player sitecore data from players feed\r\n if (sitecorePlayers &&\r\n scoringLeaderboard &&\r\n !ArrayHelper.isEmpty(scoringLeaderboard.players)\r\n ) {\r\n scoringLeaderboard.players.forEach((player) => {\r\n player.sitecoreData =\r\n getPlayerSitecoreData(sitecorePlayers, player.id) ||\r\n playerSitecoreData;\r\n });\r\n }\r\n\r\n return ({\r\n liveScanner: state.scoring[endpointNames.LIVE_SCANNER],\r\n scoringCourse: state.scoring[endpointNames.COURSE],\r\n scoringLeaderboard,\r\n sitecorePlayers,\r\n });\r\n};\r\n\r\nconst LeaderboardLayoutWrapper = connect(\r\n mapStateToProps,\r\n null\r\n)(LeaderboardLayout);\r\n\r\nexport default LeaderboardLayoutWrapper;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport store from 'general/js/store';\r\nimport LeaderboardLayout from './leaderboard-layout.js';\r\n\r\nclass LeaderboardComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default LeaderboardComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport LeaderboardComponent from './js/leaderboard.component';\r\n\r\nComponentsFactory.getInstance().define('leaderboard', LeaderboardComponent);\r\n\r\nexport * from './js/components/sortingStrategies';\r\n","import React from 'react';\r\nimport { CountryFlag } from 'project/country-flag';\r\nimport { getPlayerExternalLink } from 'components/live-player';\r\nimport { sortAscAZ } from 'components/leaderboard';\r\n\r\nclass LeaderboardWidgetAlphaList extends React.Component {\r\n renderRow(player) {\r\n const { options } = this.props;\r\n let targetUrl = null;\r\n\r\n if (options.targetsConfig) {\r\n targetUrl = getPlayerExternalLink(options.targetsConfig.url, player.playerId);\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n
{player.lastName},
\r\n
{player.firstName}
\r\n
\r\n
\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const { players } = this.props;\r\n\r\n if (!Array.isArray(players)) return null;\r\n\r\n const sortedPlayers = sortAscAZ(players, 'lastName');\r\n\r\n return (\r\n
\r\n {sortedPlayers.slice(0, 10).map((player) => this.renderRow(player))}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default LeaderboardWidgetAlphaList;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport get from 'lodash/get';\r\nimport ArrayHelper from 'foundation/array-helper';\r\nimport ScoringLoader, { endpointNames } from 'general/js/loaders/scoring-loader';\r\nimport { getPlayerSitecoreData } from 'general/js/helpers';\r\nimport { BlockPlaceholder } from 'components/block-placeholder';\r\nimport { BlockSpinner } from 'components/block-spinner';\r\nimport { stateTypes } from './enums';\r\nimport LeaderboardWidget from './leaderboard-widget';\r\nimport LeaderboardWidgetAlphaList from './leaderboard-widget-alpha-list';\r\n\r\nclass LeaderboardWidgetLayout extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.players = [];\r\n this.topPlayersToShowState = true;\r\n this.numberOfCells = [\r\n { id: stateTypes.POSITION },\r\n { id: stateTypes.NAME },\r\n { id: stateTypes.TEE },\r\n { id: stateTypes.TO_PAR, textTitle: 'par' },\r\n { id: stateTypes.HOLE, textTitle: 'hole' },\r\n { id: stateTypes.TODAY, textTitle: 'today' }\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n ScoringLoader.subscribe(endpointNames.LIVE_SCANNER);\r\n ScoringLoader.subscribe(endpointNames.PLAYERS);\r\n ScoringLoader.subscribe(endpointNames.LEADERBOARD);\r\n }\r\n\r\n componentWillUnmount() {\r\n ScoringLoader.unsubscribe(endpointNames.LIVE_SCANNER);\r\n ScoringLoader.unsubscribe(endpointNames.PLAYERS);\r\n ScoringLoader.unsubscribe(endpointNames.LEADERBOARD);\r\n }\r\n\r\n getPlayers = (players) => {\r\n const { options } = this.props;\r\n let playersList = [];\r\n\r\n if (!ArrayHelper.isEmpty(options.playerIds)) {\r\n this.topPlayersToShowState = false;\r\n playersList = players.filter((player) => (options.playerIds.includes(player.id)));\r\n\r\n return playersList;\r\n }\r\n\r\n if (ArrayHelper.isEmpty(players)) { return playersList; }\r\n\r\n return players.slice(0, options.topPlayersToShow);\r\n }\r\n\r\n render() {\r\n const {\r\n options,\r\n liveScanner,\r\n scoringLeaderboard,\r\n sitecorePlayers\r\n } = this.props;\r\n\r\n if (liveScanner === undefined ||\r\n scoringLeaderboard === undefined ||\r\n sitecorePlayers === undefined\r\n ) {\r\n return (\r\n \r\n \r\n );\r\n }\r\n\r\n const config = get(liveScanner, 'liveComponents.leaderboard');\r\n\r\n if (!config ||\r\n (options.type === 'contextual' && !config.ccpShow) ||\r\n !scoringLeaderboard ||\r\n !sitecorePlayers\r\n ) {\r\n return null;\r\n }\r\n\r\n if (liveScanner.showAlphaListOnLeaderboardWidget && ArrayHelper.isEmpty(scoringLeaderboard.players)) {\r\n return ;\r\n }\r\n\r\n\r\n this.players = this.getPlayers(scoringLeaderboard.players);\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nLeaderboardWidgetLayout.propTypes = {\r\n options: PropTypes.object\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n const sitecorePlayers = state.scoring[endpointNames.PLAYERS];\r\n const scoringLeaderboard = state.scoring[endpointNames.LEADERBOARD];\r\n\r\n if (sitecorePlayers === undefined) return {};\r\n\r\n // inject player sitecore data from players feed\r\n if (sitecorePlayers &&\r\n scoringLeaderboard &&\r\n !ArrayHelper.isEmpty(scoringLeaderboard.players)\r\n ) {\r\n scoringLeaderboard.players.forEach((player) => {\r\n player.sitecoreData = getPlayerSitecoreData(sitecorePlayers, player.id);\r\n });\r\n }\r\n\r\n return ({\r\n liveScanner: state.scoring[endpointNames.LIVE_SCANNER],\r\n scoringLeaderboard,\r\n sitecorePlayers,\r\n });\r\n};\r\n\r\nconst LeaderboardWidgetLayoutWrapper = connect(\r\n mapStateToProps,\r\n null\r\n)(LeaderboardWidgetLayout);\r\n\r\nexport default LeaderboardWidgetLayoutWrapper;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport store from 'general/js/store';\r\nimport LeaderboardWidgetLayout from './leaderboard-widget-layout.js';\r\n\r\nclass LeaderboardWidgetComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default LeaderboardWidgetComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport LeaderboardWidgetComponent from './js/leaderboard-widget.component';\r\n\r\nComponentsFactory.getInstance().define('leaderboard-widget', LeaderboardWidgetComponent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default class ListingLoadMore extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onLoadMoreClick = this.onLoadMoreClick.bind(this);\r\n }\r\n\r\n render() {\r\n const shouldHandleLoadMore = this.props.pagination &&\r\n (this.props.pagination.currentPage < this.props.pagination.pageCount);\r\n\r\n if (shouldHandleLoadMore) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n return null;\r\n }\r\n\r\n onLoadMoreClick() {\r\n this.props.onLoadMore();\r\n }\r\n}\r\n\r\nListingLoadMore.propTypes = {\r\n isLoadingMore: PropTypes.bool.isRequired,\r\n pagination: PropTypes.object.isRequired,\r\n onLoadMore: PropTypes.func.isRequired,\r\n};\r\n","export const CONTROL_TYPE_CHECKLIST = 'checklist';\r\nexport const CONTROL_TYPE_SELECT = 'dropdown';\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { LazyImage } from 'project/lazy-image';\r\nimport ScoringLoader, { endpointNames } from 'general/js/loaders/scoring-loader';\r\n\r\nclass LiveHeaderTitle extends React.Component {\r\n componentDidMount() {\r\n ScoringLoader.subscribe(endpointNames.LIVE_SCANNER);\r\n }\r\n\r\n componentWillUnmount() {\r\n ScoringLoader.unsubscribe(endpointNames.LIVE_SCANNER);\r\n }\r\n\r\n render() {\r\n const { liveScanner } = this.props;\r\n\r\n if (!liveScanner || !liveScanner.liveHeader) return null;\r\n\r\n const model = liveScanner.liveHeader;\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n {model.title} \r\n {model.subtitle}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n liveScanner: state.scoring[endpointNames.LIVE_SCANNER],\r\n});\r\n\r\nconst ALiveHeaderTitleContainer = connect(\r\n mapStateToProps,\r\n null\r\n)(LiveHeaderTitle);\r\n\r\nexport default ALiveHeaderTitleContainer;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport store from 'general/js/store';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport LiveHeaderTitle from './live-header-title';\r\n\r\nclass LiveHeaderComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n destroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n if (this.refs.title) {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.refs.title\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default LiveHeaderComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport LiveHeaderComponent from './js/live-header.component';\r\n\r\nComponentsFactory.getInstance().define('live-header', LiveHeaderComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport anime from 'animejs';\r\nimport app from 'general/js/app';\r\nimport gtm from 'general/js/gtm';\r\nimport { spaLoad } from 'components/spa-load';\r\n\r\nconst EASING = 'easeOutQuad';\r\n\r\nexport default class LiveNavigation extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return [\r\n 'link'\r\n ];\r\n }\r\n\r\n onDestroy() {\r\n this.unsubscribeHisporyChange();\r\n }\r\n\r\n init() {\r\n this.highlightSelected();\r\n this.unsubscribeHisporyChange = spaLoad.subscribeOnHistoryChange(() => {\r\n this.highlightSelected();\r\n });\r\n\r\n this.refs.link.forEach((link) => {\r\n this.addListener(link, 'click', this.onNavigationLinkClick);\r\n this.addListener(link, 'click', this.saveActionToGtm);\r\n });\r\n }\r\n\r\n saveActionToGtm = (event) => {\r\n const clickedItem = event.target;\r\n const itemText = clickedItem.innerText || clickedItem.textContent;\r\n if (clickedItem && clickedItem.tagName === 'A') {\r\n gtm.push('Top Ribbon', 'Click', itemText);\r\n }\r\n }\r\n\r\n highlightSelected = () => {\r\n this.clearSelection(this.refs.link);\r\n this.refs.selector.classList.remove('is-visible');\r\n\r\n const link = this.getActiveLink();\r\n if (link) {\r\n link.classList.add('is-active');\r\n this.refs.selector.style.left = this.calculateSelectorPosition(link);\r\n this.refs.selector.classList.add('is-visible');\r\n }\r\n };\r\n\r\n getActiveLink() {\r\n let result = null;\r\n const pathname = this.getNormalizedPathname();\r\n for (const i in this.refs.link) {\r\n const link = this.refs.link[i];\r\n\r\n if (link.getAttribute('href') === pathname) {\r\n result = link;\r\n break;\r\n } else {\r\n const aliasesAttribute = this.getAttribute(link, 'aliases');\r\n if (aliasesAttribute) {\r\n const aliases = JSON.parse(aliasesAttribute);\r\n const activeAlias = aliases.find((a) => pathname.includes(a));\r\n if (activeAlias) {\r\n result = link;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getNormalizedPathname() {\r\n // for the same page window.location.pathname can return slightly different results\r\n // case 1: manually enter url in the search bar, for example /watch/\r\n // result 1: window.location.pathname returns /watch/\r\n // case 2 navigate via links with href=\"/watch\"\r\n // result 2: returns /watch\r\n // so there is no normalization within Location object so we have to do it ourselves\r\n // and always return pathname without trailing slash\r\n let pathname = window.location.pathname;\r\n if (pathname.length > 1 && pathname[pathname.length - 1] === '/') {\r\n pathname = pathname.slice(0, pathname.length - 1);\r\n }\r\n\r\n return pathname;\r\n }\r\n\r\n clearSelection(nodesArray) {\r\n nodesArray.forEach((node) => {\r\n if (node.classList.contains('is-active')) {\r\n node.classList.remove('is-active');\r\n }\r\n });\r\n }\r\n\r\n onNavigationLinkClick = (event) => {\r\n if (app.isEditMode) return;\r\n\r\n const ignoreSpa = event.currentTarget.getAttribute('data-ignore-spa') === 'true';\r\n\r\n if (!ignoreSpa) {\r\n event.preventDefault();\r\n this.navigate(event.target);\r\n }\r\n };\r\n\r\n navigate(link) {\r\n if (!link) {\r\n return;\r\n }\r\n\r\n if (this.currentAnimation) {\r\n this.currentAnimation.pause();\r\n this.currentAnimation = null;\r\n }\r\n\r\n const leftCoord = this.calculateSelectorPosition(link);\r\n this.currentAnimation = anime({\r\n targets: this.refs.selector,\r\n left: leftCoord,\r\n duration: 250,\r\n easing: EASING,\r\n complete: () => {\r\n spaLoad.updateContent(link.getAttribute('href'));\r\n this.currentAnimation = null;\r\n }\r\n });\r\n }\r\n\r\n calculateSelectorPosition(item) {\r\n const itemWidth = item.clientWidth;\r\n const navigationCoords = this.element.getBoundingClientRect();\r\n const itemCoords = item.getBoundingClientRect();\r\n const itemPosition = itemCoords.left - navigationCoords.left;\r\n const selectorWidth = this.refs.selector.clientWidth;\r\n\r\n return itemPosition + (itemWidth / 2) - (selectorWidth / 2) + 'px';\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport LiveNavigationComponent from './js/live-navigation.component';\r\n\r\nComponentsFactory.getInstance().define('live-navigation', LiveNavigationComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport app from 'general/js/app';\r\nimport { spaLoad } from 'components/spa-load';\r\nimport gtm from '../../../general/js/gtm';\r\n\r\nexport default class LiveSubmenu extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return [\r\n 'link'\r\n ];\r\n }\r\n\r\n init() {\r\n this.checkIfItemIsSelected();\r\n\r\n this.refs.link.forEach((link) => {\r\n this.addListener(link, 'click', this.onLinkClick);\r\n this.addListener(link, 'click', this.saveActionToGtm);\r\n });\r\n }\r\n\r\n saveActionToGtm = (event) => {\r\n const clickedItem = event.target;\r\n const itemText = clickedItem.innerText || clickedItem.textContent;\r\n gtm.push('Top Ribbon', 'Click', itemText);\r\n }\r\n\r\n checkIfItemIsSelected = () => {\r\n this.clearSelection(this.refs.link);\r\n\r\n this.refs.link.forEach((link) => {\r\n if (link.getAttribute('href') === window.location.pathname) {\r\n window.scrollTo(0, 0);\r\n link.classList.add('is-active');\r\n } else if (this.getAttribute(link, 'aliases')) {\r\n const aliases = JSON.parse(this.getAttribute(link, 'aliases'));\r\n if (aliases.includes(window.location.pathname)) {\r\n link.classList.add('is-active');\r\n }\r\n }\r\n });\r\n };\r\n\r\n clearSelection(nodesArray) {\r\n nodesArray.forEach((node) => {\r\n if (node.classList.contains('is-active')) {\r\n node.classList.remove('is-active');\r\n }\r\n });\r\n }\r\n\r\n onLinkClick = (event) => {\r\n if (app.isEditMode) return;\r\n\r\n const ignoreSpa = event.currentTarget.getAttribute('data-ignore-spa') === 'true';\r\n\r\n if (!ignoreSpa) {\r\n event.preventDefault();\r\n spaLoad.updateContent(event.target.getAttribute('href'));\r\n this.checkIfItemIsSelected();\r\n }\r\n };\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport LiveSubmenuComponent from './js/live-submenu.component';\r\n\r\nComponentsFactory.getInstance().define('live-submenu', LiveSubmenuComponent);\r\n","import get from 'lodash/get';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport gtm from 'general/js/gtm';\r\nimport ScoringLoader, { endpointNames } from 'general/js/loaders/scoring-loader';\r\nimport store from 'general/js/store';\r\n\r\nclass LiveVideoWidget extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.unsubscribe = null;\r\n this.state = {\r\n isLive: this.options.isLive,\r\n title: null,\r\n };\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['title'];\r\n }\r\n\r\n init() {\r\n this.element.addEventListener('click', this.onRootClick);\r\n ScoringLoader.subscribe(endpointNames.LIVE_SCANNER);\r\n this.unsubscribe = store.subscribe(this.onStoreUpdate);\r\n }\r\n\r\n onDestroy() {\r\n ScoringLoader.unsubscribe(endpointNames.LIVE_SCANNER);\r\n this.unsubscribe();\r\n }\r\n\r\n onRootClick = () => {\r\n const { title } = this.state;\r\n\r\n if (title) {\r\n gtm.push('Live Video', 'Play Video', title);\r\n }\r\n }\r\n\r\n onStoreUpdate = () => {\r\n const state = store.getState();\r\n const config = get(state, 'scoring.liveScanner.liveVideoWidget');\r\n\r\n if (!config) return;\r\n\r\n if (this.state.isLive !== config.isLive) {\r\n if (config.isLive) {\r\n this.element.classList.add('is-live');\r\n } else {\r\n this.element.classList.remove('is-live');\r\n }\r\n this.element.href = config.pageUrl;\r\n this.element.style.backgroundImage = `url(${config.imageUrl})`;\r\n this.refs.title.innerHTML = config.title;\r\n this.refs.partner.src = config.partnersLogoUrl ? config.partnersLogoUrl : \"\";\r\n this.state.title = config.title;\r\n this.state.isLive = config.isLive;\r\n }\r\n }\r\n}\r\n\r\nexport default LiveVideoWidget;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport LiveVideoWidget from './js/live-video-widget.component';\r\n\r\nComponentsFactory.getInstance().define('live-video-widget', LiveVideoWidget);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport qs from 'qs';\r\nimport axios from 'axios';\r\nimport { connect } from 'react-redux';\r\nimport classNames from 'classnames';\r\nimport ScoringLoader, { endpointNames } from 'general/js/loaders/scoring-loader';\r\nimport { makeCancelable } from 'general/js/helpers';\r\nimport { BlockSpinner } from 'components/block-spinner';\r\nimport { BlockPlaceholder } from 'components/block-placeholder';\r\nimport { LiveTextListing } from 'components/live-text';\r\n\r\nclass LiveWidgetVideos extends React.Component {\r\n constructor(...args) {\r\n super(...args);\r\n this.state = {\r\n batches: [],\r\n nextBatchId: null,\r\n type: null,\r\n isFetching: false,\r\n showSpinner: true\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getData();\r\n this.getDataAfterTimeout();\r\n ScoringLoader.subscribe(endpointNames.LIVE_SCANNER);\r\n }\r\n\r\n componentWillUnmount() {\r\n clearTimeout(this.timeoutId);\r\n this.cancelGetData();\r\n ScoringLoader.subscribe(endpointNames.LIVE_SCANNER);\r\n }\r\n\r\n onLoadMore = () => {\r\n this.getData(true);\r\n }\r\n\r\n getTopBatchId() {\r\n const topBatch = this.state.batches[0];\r\n\r\n return (topBatch && topBatch.id) || null;\r\n }\r\n\r\n getUpdatedBatches(newBatches) {\r\n const { batches } = this.state;\r\n const topBatchId = this.getTopBatchId();\r\n const hasTopBatch = newBatches.some((newBatch) => newBatch.id === topBatchId);\r\n\r\n if (!hasTopBatch) {\r\n return newBatches;\r\n }\r\n\r\n for (let i = newBatches.length - 1; i >= 0; i--) {\r\n const newBatch = newBatches[i];\r\n const foundBatch = batches.find((batch) =>\r\n batch.id === newBatch.id);\r\n\r\n if (foundBatch) {\r\n if (foundBatch.lastUpdated !== newBatch.lastUpdated) {\r\n foundBatch.posts = newBatch.posts;\r\n foundBatch.lastUpdated = newBatch.lastUpdated;\r\n }\r\n } else {\r\n batches.unshift(newBatch);\r\n }\r\n }\r\n\r\n return batches;\r\n }\r\n\r\n getDataAfterTimeout() {\r\n const updateInSeconds = this.props.options.updateInSeconds || 20;\r\n\r\n clearTimeout(this.timeoutId);\r\n this.timeoutId = setTimeout(() => {\r\n this.setState({\r\n showSpinner: false,\r\n }, this.getData);\r\n }, updateInSeconds * 1000);\r\n }\r\n\r\n getData(isLoadMore) {\r\n const { context } = this.props.options;\r\n const { nextBatchId, type } = this.state;\r\n const qsProps = { context };\r\n let url = this.props.options.endpointUrl;\r\n\r\n if (isLoadMore) {\r\n url += '/' + nextBatchId;\r\n }\r\n\r\n if (type) {\r\n qsProps.type = type;\r\n }\r\n\r\n url += '?' + qs.stringify(qsProps);\r\n\r\n this.cancelGetData();\r\n this.cancelableGetData = makeCancelable(axios.get(url));\r\n this.cancelableGetData\r\n .promise\r\n .then((response) => {\r\n if (!response.data || !Array.isArray(response.data.batches)) {\r\n return;\r\n }\r\n\r\n let batches = [];\r\n\r\n if (isLoadMore) {\r\n batches = this.state.batches;\r\n batches.push(...response.data.batches);\r\n } else {\r\n batches = this.getUpdatedBatches(response.data.batches);\r\n }\r\n\r\n this.setState({\r\n batches,\r\n nextBatchId: response.data.nextBatch || null,\r\n isFetching: false,\r\n });\r\n this.getDataAfterTimeout();\r\n })\r\n .catch((error) => {\r\n if (!error.isCanceled) {\r\n this.setState({ isFetching: false, showSpinner: true });\r\n this.getDataAfterTimeout();\r\n }\r\n });\r\n\r\n this.setState({ isFetching: true });\r\n }\r\n\r\n cancelGetData() {\r\n if (this.cancelableGetData) {\r\n this.cancelableGetData.cancel();\r\n }\r\n }\r\n\r\n getPosts() {\r\n const { batches } = this.state;\r\n const posts = [];\r\n\r\n batches.forEach((batch) => {\r\n if (Array.isArray(batch.posts)) {\r\n posts.push(...batch.posts);\r\n }\r\n });\r\n\r\n return posts;\r\n }\r\n\r\n render() {\r\n const { isFetching, nextBatchId } = this.state;\r\n const { options, liveScanner } = this.props;\r\n const posts = this.getPosts();\r\n\r\n const showLoadMore = nextBatchId && posts.length < options.maxPosts;\r\n const loadMoreCss = classNames({\r\n 'is-loading': isFetching\r\n });\r\n\r\n if (!liveScanner) { return null; }\r\n\r\n return (\r\n liveScanner.liveComponents.liveText.show ?\r\n \r\n {isFetching && }\r\n \r\n {\r\n showLoadMore &&\r\n
\r\n load more\r\n \r\n
\r\n } \r\n
\r\n :\r\n
\r\n {liveScanner.liveComponents.liveText.subtitle}\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n liveScanner: state.scoring[endpointNames.LIVE_SCANNER],\r\n});\r\n\r\nLiveWidgetVideos.propTypes = {\r\n options: PropTypes.object,\r\n mediaContentType: PropTypes.string\r\n};\r\n\r\nconst LiveWidgetPostsWrapper = connect(\r\n mapStateToProps,\r\n null\r\n)(LiveWidgetVideos);\r\n\r\nexport default LiveWidgetPostsWrapper;\r\n","import React from 'react';\r\n\r\nexport const LiveWidgetEmbeddedContent = (props) => {\r\n const { embedCode } = props.options;\r\n return
;\r\n};\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport store from 'general/js/store';\r\nimport LiveWidgetPosts from './live-widget-posts';\r\nimport { LiveWidgetEmbeddedContent } from './live-widget-embedded-content';\r\n\r\nclass LiveWidgetComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (this.refs.embeddedContent) {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.refs.embeddedContent\r\n );\r\n }\r\n if (this.refs.liveText) {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.refs.liveText\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default LiveWidgetComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport LiveWidgetComponent from './js/live-widget.component';\r\n\r\nComponentsFactory.getInstance().define('live-widget', LiveWidgetComponent);\r\n","import createFocusTrap from 'focus-trap';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport anime from 'animejs';\r\nimport gtm from 'general/js/gtm';\r\nimport contentBlocker from '../../../general/js/content-blocker';\r\n\r\nconst EDITOR = 'editor';\r\nconst EASING_DEFAULT = 'linear';\r\nconst EASING = 'easeOutQuad';\r\nconst DURATION_DEFAULT = 400;\r\n\r\nexport default class MainNavComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.focusTrap = null;\r\n this.menuCanBeAnimated = true;\r\n\r\n this.init();\r\n\r\n this.setFocusTrap = this.setFocusTrap.bind(this);\r\n }\r\n\r\n static getRequiredRefs() {\r\n return [\r\n 'nav',\r\n 'wrapper',\r\n 'opener',\r\n ];\r\n }\r\n\r\n init() {\r\n this.refs.closers.forEach((button) => {\r\n this.addListener(button, 'click', this.closeMenu);\r\n });\r\n\r\n this.addListener(this.refs.opener, 'click', this.openMenu);\r\n this.addListener(this.refs.nav, 'click', this.saveActionToGtm);\r\n\r\n this.addListener(document, 'keydown', this.onkeydown);\r\n this.addListener(document, 'click', this.outerClickHandle);\r\n this.addListener(document, 'touchstart', this.outerClickHandle);\r\n }\r\n\r\n saveActionToGtm = (event) => {\r\n const clickedItem = event.target;\r\n const itemText = clickedItem.innerText || clickedItem.textContent;\r\n\r\n if (clickedItem && clickedItem.tagName === 'A') {\r\n gtm.push('Burger Bar', 'Click', itemText);\r\n } \r\n }\r\n \r\n openMenu = () => {\r\n contentBlocker.block('main-nav');\r\n\r\n gtm.push('Burger Bar', 'Open', 'Burger Bar Open');\r\n\r\n if (this.menuCanBeAnimated) {\r\n this.menuCanBeAnimated = false;\r\n anime({\r\n targets: this.refs.nav,\r\n opacity: [0, 1],\r\n duration: DURATION_DEFAULT,\r\n easing: EASING,\r\n begin: () => {\r\n this.refs.nav.classList.add('is-opened');\r\n },\r\n complete: () => {\r\n this.refs.wrapper.classList.add('is-visible');\r\n this.refs.nav.setAttribute('aria-hidden', 'false');\r\n this.refs.opener.setAttribute('aria-expanded', 'true');\r\n this.menuCanBeAnimated = true;\r\n this.setFocusTrap();\r\n }\r\n });\r\n }\r\n };\r\n\r\n closeMenu = () => {\r\n contentBlocker.unblock('main-nav');\r\n this.refs.wrapper.classList.remove('is-visible');\r\n\r\n if (this.menuCanBeAnimated) {\r\n this.menuCanBeAnimated = false;\r\n anime({\r\n targets: this.refs.nav,\r\n opacity: [1, 0],\r\n duration: DURATION_DEFAULT,\r\n easing: EASING_DEFAULT,\r\n complete: () => {\r\n this.refs.nav.classList.remove('is-opened');\r\n this.refs.nav.setAttribute('aria-hidden', 'true');\r\n this.refs.opener.setAttribute('aria-expanded', 'false');\r\n this.menuCanBeAnimated = true;\r\n }\r\n });\r\n }\r\n\r\n this.removeFocusTrap();\r\n };\r\n\r\n setFocusTrap() {\r\n if (this.options.mode !== EDITOR) {\r\n this.focusTrap = createFocusTrap(this.refs.nav, {\r\n escapeDeactivates: false\r\n });\r\n this.focusTrap.activate();\r\n }\r\n }\r\n\r\n removeFocusTrap() {\r\n if (this.focusTrap) {\r\n this.focusTrap.deactivate();\r\n }\r\n }\r\n\r\n onkeydown = (event) => {\r\n if (event.keyCode === 27) {\r\n this.closeMenu();\r\n }\r\n };\r\n\r\n outerClickHandle = (event) => {\r\n if (this.refs.nav.contains(event.target) &&\r\n !this.refs.wrapper.contains(event.target)) {\r\n this.closeMenu();\r\n }\r\n };\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport MainNavComponent from './js/main-nav.component';\r\n\r\nComponentsFactory.getInstance().define('main-nav', MainNavComponent);\r\n","import React, { useEffect, useLayoutEffect, useRef } from 'react';\r\n\r\nconst MakeStoriesLayout = ({\r\n options\r\n}) => {\r\n const { playerId, widgetId } = options;\r\n\r\n const wrapperRef = useRef(null);\r\n\r\n const canUseDOM = typeof window !== 'undefined';\r\n const useEffectHook = canUseDOM ? useLayoutEffect : useEffect;\r\n\r\n useEffectHook(() => {\r\n if (!wrapperRef.current) return;\r\n\r\n const playerWrapper = document.createElement('div');\r\n playerWrapper.id = `${playerId}`;\r\n playerWrapper.innerHTML = '
';\r\n\r\n wrapperRef.current.appendChild(playerWrapper);\r\n\r\n const styleLink = document.createElement('link');\r\n styleLink.href = 'https://cdn.ampproject.org/amp-story-player-v0.css';\r\n styleLink.rel = 'stylesheet';\r\n styleLink.type = 'text/css';\r\n document.head.appendChild(styleLink);\r\n\r\n const scriptUrls = [\r\n 'https://cdn.ampproject.org/amp-story-player-v0.js',\r\n 'https://js.makestories.io/player/StoryPlayer.js',\r\n ];\r\n\r\n let scriptsToLoad = scriptUrls.length;\r\n\r\n const onScriptsLoaded = () => {\r\n if (scriptsToLoad === 0) {\r\n const inlineScript = document.createElement('script');\r\n inlineScript.innerHTML = `msPlayer({ root: \"#${playerId}\", widgetId: \"${widgetId}\" });`;\r\n wrapperRef.current.appendChild(inlineScript);\r\n }\r\n };\r\n\r\n scriptUrls.forEach((url) => {\r\n const script = document.createElement('script');\r\n script.src = url;\r\n script.async = true;\r\n script.onload = () => {\r\n scriptsToLoad--;\r\n onScriptsLoaded();\r\n };\r\n\r\n document.body.appendChild(script);\r\n });\r\n\r\n return () => {\r\n document.head.removeChild(styleLink);\r\n\r\n scriptUrls.forEach((url) => {\r\n document\r\n .querySelectorAll(`script[src=\"${url}\"]`)\r\n .forEach((el) => document.body.removeChild(el));\r\n });\r\n\r\n wrapperRef.current.removeChild(playerWrapper);\r\n };\r\n }, [playerId, widgetId]);\r\n\r\n return (\r\n
\r\n );\r\n};\r\n\r\nexport default MakeStoriesLayout;\r\n","import BaseComponent from 'foundation/base-component';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport MakeStoriesLayout from './make-stories-layout.js';\r\n\r\nclass MakeStoriesComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n ReactDOM.render(\r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default MakeStoriesComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport MakeStoriesComponent from './js/make-stories.component';\r\n\r\nComponentsFactory.getInstance().define('make-stories', MakeStoriesComponent);\r\n","import nanoid from 'nanoid';\r\nimport UrlHelper from 'foundation/url-helper';\r\nimport HtmlHelper from 'foundation/html-helper';\r\nimport _ from 'lodash';\r\nimport gtm from './gtm';\r\nimport Modal, { bemClasses } from './modal';\r\nimport api, { isHtmlContentType } from './api';\r\nimport pageSpinner from './page-spinner';\r\nimport historyController from './history-controller';\r\nimport { throttle } from './helpers';\r\nimport { redirectTo, reloadPage } from './utils';\r\n\r\nconst MODAL_SPA_ID = 'modal-spa';\r\n\r\nconst renderType = Object.freeze({\r\n WINDOW: 'window',\r\n POPUP: 'popup'\r\n});\r\n\r\nclass ModalSpa {\r\n constructor() {\r\n this.options = {\r\n url: '',\r\n };\r\n this.isOpenning = false;\r\n this.modalCache = [];\r\n this.currentModal = null;\r\n this.unregisterHistroyController = null;\r\n\r\n this.sessionId = nanoid();\r\n this.chainStartUrl = '';\r\n this.init();\r\n }\r\n\r\n init() {\r\n historyController.register(MODAL_SPA_ID, this.onHistoryChange);\r\n }\r\n\r\n destroy() {\r\n if (typeof this.unregisterHistroyController === 'function') {\r\n this.unregisterHistroyController();\r\n }\r\n }\r\n\r\n open(options) {\r\n this.options = { ...this.options, ...options };\r\n const openLinkInPopup = this.options.openLinkInPopup !== undefined ? this.options.openLinkInPopup : true;\r\n\r\n if (!this.chainStartUrl) {\r\n this.chainStartUrl = window.location.href;\r\n }\r\n\r\n if (!openLinkInPopup) {\r\n redirectTo(this.options.url);\r\n } else {\r\n this.openModal(this.options.url);\r\n this.setHistoryState(this.options.url);\r\n }\r\n }\r\n\r\n openModal(url) {\r\n if (!this.isOpenning) {\r\n this.isOpenning = true;\r\n this.getModal(url).then(([modal, title]) => {\r\n try {\r\n modal.open();\r\n this.isOpenning = false;\r\n this.currentModal = modal;\r\n gtm.sendCurrentLocationAsVirtualUrl(title);\r\n } catch (error) {\r\n throw new Error('Can not open modal.');\r\n }\r\n }).catch(() => {\r\n this.isOpenning = false;\r\n });\r\n }\r\n }\r\n\r\n closeModal() {\r\n if (this.currentModal) this.currentModal.close();\r\n }\r\n\r\n getModal(url) {\r\n const contentUrl = UrlHelper.getOverlayUrl(url);\r\n return this.getData(contentUrl).then(([target, title]) => {\r\n try {\r\n const modal = {};\r\n modal[url] = [\r\n new Modal(target, {\r\n previousOpenedModal: this.currentModal,\r\n bemList: [bemClasses.MOBILE_FIXED, bemClasses.DEKSTOP_WIDE],\r\n delegateControl: true,\r\n onCloseCb: () => this.onClose(url)\r\n }),\r\n title\r\n ];\r\n this.modalCache.push(modal);\r\n\r\n return modal[url];\r\n } catch (error) {\r\n return Promise.reject(error);\r\n }\r\n });\r\n }\r\n\r\n getData(url) {\r\n if (!url) return Promise.reject();\r\n\r\n pageSpinner.show();\r\n\r\n return throttle(() => api.get(url)).then((response) => {\r\n if (isHtmlContentType(response)) {\r\n let responseHtml = response.data;\r\n responseHtml = HtmlHelper.modifySocialElementsStyleFromPopupHtml(responseHtml);\r\n return [responseHtml, HtmlHelper.getTitleFromPopupHtml(responseHtml)];\r\n }\r\n return Promise.reject(new Error('Unknown result from async data'));\r\n }).then((result) => {\r\n pageSpinner.hide();\r\n return result;\r\n }, (error) => {\r\n console.log(error);\r\n\r\n if (error && error.code && error.code === 429) {\r\n this.forceHideErrorsSummary();\r\n this.showThrottleMessage();\r\n }\r\n\r\n pageSpinner.hide();\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n forceHideErrorsSummary() { //this.errorsSummary is undefined in this case\r\n if (this.refs.serverErrors) {\r\n this.refs.serverErrors.classList.remove('is-shown');\r\n }\r\n }\r\n\r\n showThrottleMessage() {\r\n if (this.refs.throttleMessage) {\r\n this.refs.throttleMessage.classList.add('is-shown');\r\n }\r\n }\r\n\r\n removeThrottleMessage() {\r\n if (this.refs.throttleMessage) {\r\n this.refs.throttleMessage.classList.remove('is-shown');\r\n }\r\n }\r\n\r\n setHistoryState(url) {\r\n historyController.pushState(\r\n MODAL_SPA_ID,\r\n null,\r\n url,\r\n {\r\n renderType: renderType.POPUP,\r\n sessionId: this.sessionId\r\n }\r\n );\r\n }\r\n\r\n setInitialHistoryState() {\r\n historyController.pushState(\r\n MODAL_SPA_ID,\r\n null,\r\n this.chainStartUrl,\r\n {\r\n renderType: renderType.WINDOW,\r\n sessionId: this.sessionId\r\n }\r\n );\r\n HtmlHelper.removeElementsFromDom('[data-modal]');\r\n this.chainStartUrl = '';\r\n this.currentModal = null;\r\n }\r\n\r\n getPreviousOpenedModalUrl() {\r\n if (!_.isEmpty(this.modalCache)) {\r\n const previousOpenedModal = this.modalCache.slice(-1).pop();\r\n return Object.keys(previousOpenedModal).slice(-1).pop();\r\n }\r\n\r\n return this.chainStartUrl;\r\n }\r\n\r\n onClose = (url) => {\r\n const innerState = historyController.getState();\r\n\r\n if (innerState && innerState.url.toLowerCase() === url.toLowerCase()) {\r\n this.modalCache.pop();\r\n if (_.isEmpty(this.modalCache)) {\r\n this.setInitialHistoryState();\r\n } else {\r\n const modalUrl = this.getPreviousOpenedModalUrl();\r\n this.setHistoryState(modalUrl);\r\n }\r\n }\r\n }\r\n\r\n onHistoryChange = (prevState, newState, shouldClean) => {\r\n if (shouldClean) {\r\n this.cleanContent(prevState);\r\n } else {\r\n this.updateContent(prevState, newState);\r\n }\r\n }\r\n\r\n updateContent(prevState, newState) {\r\n if (prevState && prevState.sessionId === this.sessionId &&\r\n newState.sessionId !== this.sessionId\r\n ) {\r\n this.closeModal();\r\n return;\r\n }\r\n\r\n if (newState.sessionId === this.sessionId) {\r\n if (newState.renderType === renderType.POPUP) {\r\n this.openModal(newState.url);\r\n } else if (newState.renderType === renderType.WINDOW) {\r\n this.closeModal();\r\n }\r\n } else {\r\n // after page reload flow, we always reload pages\r\n // instead of to show modal\r\n reloadPage();\r\n }\r\n }\r\n\r\n cleanContent(prevState) {\r\n if (prevState.sessionId === this.sessionId) {\r\n this.closeModal();\r\n } else {\r\n reloadPage();\r\n }\r\n }\r\n}\r\n\r\nexport default new ModalSpa();\r\n","import BaseComponent from 'foundation/base-component';\r\nimport app from 'general/js/app';\r\nimport modalSpa from 'general/js/modal-spa';\r\n\r\nexport default class ModalSpaTrigger extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.url = this.element.getAttribute('href') || this.element.getAttribute('data-href') || this.getAttribute(this.element, 'href');\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.addListener(this.element, 'click', this.onClickElement);\r\n }\r\n\r\n onClickElement = (event) => {\r\n if (!app.isEditMode) {\r\n modalSpa.open({ url: this.url, openLinkInPopup : this.options.openLinkInPopup });\r\n }\r\n event.preventDefault();\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport ModalSpaTriggerComponent from './js/modal-spa-trigger.component';\r\n\r\nComponentsFactory.getInstance().define('modal-spa-trigger', ModalSpaTriggerComponent);\r\n","import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\nimport { useScreenDetector } from '../../../general/js/hooks/useScreenDetector';\r\nimport { getImageSrc } from '../../../general/js/utils';\r\nimport Oauth from '../../sso/components/oauth';\r\n\r\nconst ModalTriggerPromoPanelWrapper = (props) => {\r\n const [ currentUser, setCurrentUser ] = useState(null);\r\n const { isMobile, isTablet } = useScreenDetector();\r\n\r\n useEffect(() => {\r\n Oauth.getCurrentAuthenticatedUser()\r\n .then((user) => {\r\n setCurrentUser(user);\r\n })\r\n .catch(() => {\r\n return;\r\n });\r\n }, []);\r\n\r\n if (hasValue(currentUser)) {\r\n return null;\r\n }\r\n \r\n const {\r\n image,\r\n tabletImage,\r\n mobileImage,\r\n heading,\r\n subHeading,\r\n ctaButtonLabel,\r\n ctaButtonActionResource,\r\n desktopImageOpacity,\r\n mobileImageOpacity\r\n } = props;\r\n\r\n const mobileOpacity = isMobile && mobileImageOpacity && mobileImageOpacity !== 0 ? mobileImageOpacity : undefined;\r\n const imageOpacity = !isMobile && desktopImageOpacity && desktopImageOpacity !== 0 ? desktopImageOpacity : undefined;\r\n\r\n const imgStyle = imageOpacity || mobileOpacity ? {\r\n opacity: imageOpacity || mobileOpacity\r\n } :\r\n undefined;\r\n\r\n const imageSrc = isMobile ? getImageSrc(mobileImage) : \r\n isTablet ? getImageSrc(tabletImage) : getImageSrc(image)\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {\r\n hasValue(imageSrc) &&\r\n \"\"\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
{heading}
\r\n
\r\n

{subHeading}

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nModalTriggerPromoPanelWrapper.propTypes = {\r\n image: PropTypes.object,\r\n heading: PropTypes.string,\r\n subHeading: PropTypes.string,\r\n ctaButtonLabel: PropTypes.string,\r\n ctaButtonActionResource: PropTypes.string\r\n};\r\n\r\nexport default ModalTriggerPromoPanelWrapper;\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport ModalTriggerPromoPanelWrapper from './modal-trigger-promo-panel-wrapper';\r\n\r\nclass ModalTriggerPromoPanelComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n displayPromoBanner() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n\r\n render() {\r\n return this.displayPromoBanner();\r\n }\r\n}\r\nModalTriggerPromoPanelComponent.propTypes = {\r\n heading: PropTypes.string,\r\n subHeading: PropTypes.string,\r\n image: PropTypes.object,\r\n ctaButtonLabel: PropTypes.string,\r\n ctaButtonActionResource: PropTypes.string\r\n};\r\nexport default ModalTriggerPromoPanelComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport ModalTriggerPromoPanelComponent from './js/modal-trigger-promo-panel.component';\r\nimport ModalTriggerLoginComponent from '../account/js/modal-trigger-login.component';\r\n\r\nComponentsFactory.getInstance().define('modal-trigger-promo-panel', ModalTriggerPromoPanelComponent);\r\nComponentsFactory.getInstance().define('modal-trigger-login', ModalTriggerLoginComponent);\r\n","import { tns } from 'tiny-slider/src/tiny-slider';\r\nimport BaseComponent from 'foundation/base-component';\r\n\r\nconst ERROR_MARGIN = 2;\r\nclass MultimediaCarouselComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.gallery = null;\r\n this.sliderInfo = null;\r\n this.lastSlide = null;\r\n this.currentSlidePosition = null;\r\n this.slidesContainerPosition = null;\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['slides'];\r\n }\r\n\r\n init() {\r\n this.gallery = tns({\r\n container: this.refs.slides,\r\n autoWidth: true,\r\n loop: false,\r\n nav: false,\r\n controls: false,\r\n touch: false,\r\n responsive: {\r\n 579: {\r\n slideBy: 2\r\n },\r\n 1023: {\r\n slideBy: 3\r\n }\r\n }\r\n });\r\n\r\n if (Array.isArray(this.refs.prevBtn)) {\r\n this.refs.prevBtn.forEach((x) => {\r\n this.addListener(x, 'click', this.onClickPrevBtn);\r\n });\r\n }\r\n if (Array.isArray(this.refs.nextBtn)) {\r\n this.refs.nextBtn.forEach((x) => {\r\n this.addListener(x, 'click', this.onClickNextBtn);\r\n });\r\n }\r\n }\r\n\r\n onClickPrevBtn = (event) => {\r\n event.preventDefault();\r\n this.gallery.goTo('prev');\r\n }\r\n\r\n onClickNextBtn = (event) => {\r\n event.preventDefault();\r\n this.gallery.goTo('next');\r\n this.sliderInfo = this.gallery.getInfo();\r\n if ( this.isSliderEnd() )\r\n {\r\n this.handleLastSlide(); \r\n }\r\n }\r\n\r\n onDestroy() {\r\n this.gallery.destroy();\r\n }\r\n isSliderEnd()\r\n {\r\n return this.sliderInfo.index > this.sliderInfo.slideCount - 2 * this.sliderInfo.slideBy;\r\n }\r\n\r\n handleLastSlide()\r\n {\r\n this.lastSlide = this.sliderInfo.slideItems[ this.sliderInfo.slideCount - 1 ];\r\n const { x, y, z } = this.getTranslateValues( this.refs.slides );\r\n this.currentSlidePosition = this.sliderInfo.slideItems[ this.sliderInfo.index ].getBoundingClientRect();\r\n this.slidesContainerPosition = this.refs.slides.parentElement.getBoundingClientRect();\r\n if ( this.notCurrentSlideDisplayedOk() )\r\n {\r\n this.setCurrentSlidePosition( x, y, z );\r\n }\r\n else\r\n {\r\n if ( !this.isFullyShown( this.lastSlide, this.refs.slides.parentElement ) )\r\n {\r\n this.setLastSlidePosition( x, y, z );\r\n }\r\n }\r\n }\r\n\r\n getTranslateValues( element )\r\n {\r\n const style = window.getComputedStyle(element)\r\n const matrix = style['transform'] || style.webkitTransform || style.mozTransform\r\n\r\n if (matrix === 'none') {\r\n return {\r\n x: 0,\r\n y: 0,\r\n z: 0\r\n }\r\n }\r\n const matrixType = matrix.includes('3d') ? '3d' : '2d'\r\n const matrixValues = matrix.match(/matrix.*\\((.+)\\)/)[1].split(', ')\r\n\r\n // 2d matrices have 6 values\r\n // Last 2 values are X and Y.\r\n if (matrixType === '2d') {\r\n return {\r\n x: matrixValues[4],\r\n y: matrixValues[5],\r\n z: 0\r\n }\r\n }\r\n\r\n // 3d matrices have 16 values\r\n // The 13th, 14th, and 15th values are X, Y, and Z\r\n if (matrixType === '3d') {\r\n return {\r\n x: matrixValues[12],\r\n y: matrixValues[13],\r\n z: matrixValues[14]\r\n }\r\n }\r\n }\r\n\r\n notCurrentSlideDisplayedOk()\r\n {\r\n return (\r\n this.sliderInfo.index < this.sliderInfo.slideCount - this.sliderInfo.slideBy &&\r\n this.currentSlidePosition.left > this.slidesContainerPosition.left + ERROR_MARGIN\r\n );\r\n }\r\n\r\n setCurrentSlidePosition(currentX, currentY, currentZ)\r\n {\r\n this.setNewTranslate( currentX - (this.currentSlidePosition.left - this.slidesContainerPosition.left), currentY, currentZ, this.refs.slides );\r\n }\r\n setLastSlidePosition(currentX, currentY, currentZ)\r\n {\r\n var lastSlidePosition = this.lastSlide.getBoundingClientRect();\r\n this.setNewTranslate( currentX - (lastSlidePosition.right - this.slidesContainerPosition.right), currentY, currentZ, this.refs.slides );\r\n }\r\n setNewTranslate( newX, newY, newZ, element )\r\n {\r\n element.style.transform = `translate3d(${newX}px, ${newY}px, ${newZ}px)`;\r\n }\r\n\r\n isFullyShown(element, container) {\r\n const elementPosition = element.getBoundingClientRect();\r\n const containerPosition = container.getBoundingClientRect();\r\n return (\r\n elementPosition.right <= containerPosition.right &&\r\n elementPosition.left >= containerPosition.left\r\n );\r\n }\r\n\r\n\r\n}\r\n\r\nexport default MultimediaCarouselComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport PlayerCarouselComponent from './js/multimedia-carousel.component';\r\n\r\nComponentsFactory.getInstance().define('multimedia-carousel', PlayerCarouselComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport Cookies from 'js-cookie';\r\n\r\nexport default class MyAccountUrlComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n const isUseCognito = this.options.useCognito;\r\n const secutixCookie = Cookies.get('secutixConfig');\r\n\r\n if (secutixCookie !== undefined && isUseCognito === false) {\r\n const secutixConfiguration = JSON.parse(secutixCookie);\r\n this.element.setAttribute('href', secutixConfiguration.myAccountUrl);\r\n }\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport MyAccountUrlComponent from './js/my-account-url.component';\r\n\r\nComponentsFactory.getInstance().define('my-account-url', MyAccountUrlComponent);\r\n","import {\r\n getPatternByDeviceType,\r\n rowNames\r\n} from './row-patterns';\r\n\r\nexport const getPattern = (deviceType) => [\r\n getPatternByDeviceType(rowNames.TRIPLE_ONE_THIRD, deviceType),\r\n getPatternByDeviceType(rowNames.NARROW, deviceType),\r\n getPatternByDeviceType(rowNames.TWO_THIRDS_AND_ONE_THIRD, deviceType),\r\n getPatternByDeviceType(rowNames.NARROW_REVERSE, deviceType),\r\n getPatternByDeviceType(rowNames.TRIPLE_ONE_THIRD, deviceType),\r\n getPatternByDeviceType(rowNames.ONE_THIRD_AND_TWO_THIRDS, deviceType),\r\n];\r\n","import UrlHelper from 'foundation/url-helper';\r\nimport ObjectHelper from 'foundation/object-helper';\r\nimport { CONTROL_TYPE_CHECKLIST, CONTROL_TYPE_SELECT } from './constants';\r\n\r\nexport function getDefaultFilters(filters) {\r\n return filters.reduce((defaultFilters, filterConfig) => {\r\n switch (filterConfig.type) {\r\n case CONTROL_TYPE_CHECKLIST: {\r\n defaultFilters[filterConfig.name] = filterConfig.defaultValue;\r\n break;\r\n }\r\n case CONTROL_TYPE_SELECT: {\r\n const defaultItem = filterConfig.options.find((f) => f.isDefault);\r\n if (defaultItem) {\r\n defaultFilters[filterConfig.name] = defaultItem.value;\r\n } else {\r\n console.error(`filter ${filterConfig.name} doesn't have a default value. the filter will be ignored`);\r\n }\r\n break;\r\n }\r\n default:\r\n throw new Error('unknown filter type');\r\n }\r\n\r\n return defaultFilters;\r\n }, {});\r\n}\r\n\r\nexport function getPathWithQueryString(location, exceptParams = []) {\r\n const baseUrl = location.pathname;\r\n const searchObject = UrlHelper.getSearchFromLocation(location);\r\n const paramsKeys = Object.keys(searchObject).filter((key) => exceptParams.indexOf(key) === -1);\r\n const paramsObject = paramsKeys.reduce((result, key) => {\r\n result[key] = searchObject[key];\r\n return result;\r\n }, {});\r\n return UrlHelper.getUrlByParams(baseUrl, paramsObject);\r\n}\r\n\r\n\r\nexport function isFilterValuesEqual(parameter1, parameter2) {\r\n if ((ObjectHelper.isObject(parameter1) && ObjectHelper.isObject(parameter2)) || (Array.isArray(parameter1) && Array.isArray(parameter2))) {\r\n return ObjectHelper.isEqual(parameter1, parameter2);\r\n }\r\n\r\n return parameter1 === parameter2;\r\n}\r\n\r\n\r\nexport function isFiltersDirty(filters, filtersConfigs) {\r\n return filtersConfigs.some((filterConfig) => {\r\n const name = filterConfig.name;\r\n return (name in filters) && !isFilterValuesEqual(filters[filterConfig.name], filterConfig.defaultValue);\r\n });\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport anime from 'animejs';\r\nimport axios from 'axios';\r\nimport qs from 'qs';\r\nimport UrlHelper from 'foundation/url-helper';\r\nimport historyController from 'general/js/history-controller';\r\nimport pageSpinner from 'general/js/page-spinner';\r\nimport api from 'general/js/api';\r\nimport { getPathWithQueryString } from './listing-helper';\r\n\r\nconst PAGINATION_DEFAULT = {\r\n perPage: 0,\r\n totalCount: 0,\r\n currentPage: 1,\r\n pageCount: 0,\r\n};\r\n\r\nconst LISTING_ID = 'listing';\r\n\r\nexport default class Listing extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.hasInitialItems = Array.isArray(props.options.initialItems);\r\n\r\n const pagination = props.options.pagination || PAGINATION_DEFAULT;\r\n\r\n this.state = {\r\n items: this.hasInitialItems ? props.options.initialItems : [],\r\n filters: this.getInitialFilters(),\r\n pagination,\r\n isLoadingMore: false,\r\n isFiltersApplied: false,\r\n isInitialRequestFulfilled: this.hasInitialItems,\r\n };\r\n\r\n this.currentPage = pagination.currentPage;\r\n this.lastRequestCancel = null;\r\n\r\n this.onFiltersChange = this.onFiltersChange.bind(this);\r\n this.onLoadMore = this.onLoadMore.bind(this);\r\n this.animateChange = this.animateChange.bind(this);\r\n\r\n // baseUrl is the url without filtering params\r\n // for example if we have 2 filters: \"order\" and \"title\" and the url is /test/products/?categoryId=25&title=beer\r\n // we will store /test/products/?categoryId=25 as a baseUrl and will be combining our filters with it\r\n this.baseUrl = getPathWithQueryString(window.location, Object.keys(this.props.defaultFilters));\r\n historyController.register(LISTING_ID, this.onHistoryChange);\r\n }\r\n\r\n componentDidMount() {\r\n if (!this.hasInitialItems) {\r\n this.loadItems();\r\n }\r\n\r\n this.listElement = this.getListElement();\r\n }\r\n\r\n componentDidUpdate() {\r\n this.listElement = this.getListElement();\r\n }\r\n\r\n focusSection() {\r\n if (this.listElement) {\r\n this.listElement.focus();\r\n }\r\n }\r\n\r\n // it has been disabled, but it can be an improvement\r\n //focusOnResult() {\r\n // if (this.listElement) {\r\n // const firstLink = this.listElement.querySelector('a');\r\n // if (firstLink) {\r\n // firstLink.focus();\r\n // }\r\n // }\r\n //}\r\n\r\n getListElement() {\r\n return this.element.querySelector('[data-content]');\r\n }\r\n\r\n animateChange(changeAction) {\r\n anime.timeline()\r\n .add({\r\n targets: this.listElement,\r\n opacity: [1, 0],\r\n easing: 'easeInOutQuart',\r\n duration: 100,\r\n complete: () => {\r\n if (changeAction) {\r\n changeAction();\r\n }\r\n }\r\n })\r\n .add({\r\n targets: this.listElement,\r\n opacity: [0, 1],\r\n easing: 'easeInOutQuart',\r\n duration: 400\r\n });\r\n }\r\n\r\n loadItems() {\r\n this.focusSection();\r\n pageSpinner.show({ fade: true });\r\n this.getItems().then((result) => {\r\n this.animateChange(() => {\r\n this.setState({\r\n items: result.items,\r\n pagination: result.pagination,\r\n isInitialRequestFulfilled: true,\r\n isFiltersApplied: true,\r\n });\r\n this.currentPage = result.pagination.currentPage;\r\n pageSpinner.hide();\r\n // we can focus on first result here with focusOnResult method\r\n });\r\n }, (error) => {\r\n // hide after error only when our request has been canceled\r\n if (!axios.isCancel(error)) {\r\n pageSpinner.hide();\r\n }\r\n });\r\n }\r\n\r\n loadNextPageItems() {\r\n if (!this.state.isLoadingMore) {\r\n this.setState({ isLoadingMore: true }, () => {\r\n this.getItems(this.currentPage + 1).then((result) => {\r\n this.setState({\r\n items: [...this.state.items, ...result.items],\r\n pagination: result.pagination\r\n });\r\n this.currentPage = result.pagination.currentPage;\r\n this.setState({ isLoadingMore: false });\r\n }, () => {\r\n this.setState({ isLoadingMore: false });\r\n });\r\n });\r\n }\r\n }\r\n\r\n setFilters(filters, apply = true) {\r\n const newState = {\r\n filters,\r\n };\r\n\r\n if (!apply) {\r\n // set filters without applying\r\n newState.isFiltersApplied = false;\r\n }\r\n\r\n this.setState(newState, () => {\r\n if (apply) {\r\n this.loadItems();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * parse initial location to extract currently applied query parameters\r\n * which are the part of the listing's filters\r\n * @returns {*}\r\n */\r\n getInitialFilters() {\r\n return this.getFiltersFromLocation();\r\n }\r\n\r\n /**\r\n * Analyzing the location to apply filters from the browser's query\r\n */\r\n onHistoryChange = () => {\r\n this.setFilters(this.getFiltersFromLocation());\r\n }\r\n\r\n getFiltersFromLocation() {\r\n return { ...this.props.defaultFilters, ...this.getFiltersByLocation(document.location) };\r\n }\r\n\r\n onFiltersChange(filterObject, apply = true) {\r\n const passedFilters = this.getValidFilters(filterObject);\r\n const updatedFilters = { ...this.state.filters, ...passedFilters };\r\n this.setFilters(updatedFilters, apply);\r\n\r\n if (apply) {\r\n let url = this.baseUrl;\r\n const searchableFilters = UrlHelper.getSearchableParams(updatedFilters, this.props.defaultFilters);\r\n if (Object.keys(searchableFilters).length > 0) {\r\n url = UrlHelper.getUrlByParams(url, searchableFilters);\r\n }\r\n\r\n historyController.pushState(LISTING_ID, null, url, updatedFilters);\r\n }\r\n }\r\n\r\n onLoadMore() {\r\n this.loadNextPageItems();\r\n }\r\n\r\n getItems(page = 1) {\r\n const customParams = this.props.options.customParams || {};\r\n const params = { ...this.state.filters, ...customParams };\r\n params.currentPage = page;\r\n\r\n const searchableFilters = UrlHelper.getSearchableParams(params, this.props.defaultFilters);\r\n\r\n if (this.lastRequestCancel) {\r\n this.lastRequestCancel('Request was canceled');\r\n this.lastRequestCancel = null;\r\n }\r\n\r\n const CancelToken = axios.CancelToken;\r\n const source = CancelToken.source();\r\n this.lastRequestCancel = source.cancel.bind(source);\r\n\r\n return api.get(this.props.options.endpointUrl, {\r\n params: {\r\n ...searchableFilters,\r\n headers: this.props.options.customHeaders ? this.props.options.customHeaders : {},\r\n cancelToken: source.token,\r\n },\r\n paramsSerializer: (params1) => {\r\n return qs.stringify(params1);\r\n },\r\n }).then((result) => {\r\n this.lastRequestCancel = null;\r\n return result.data;\r\n }, (error) => {\r\n if (!axios.isCancel(error)) {\r\n this.lastRequestCancel = null;\r\n }\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n /**\r\n * We are parsing location but count only filters that we are aware of\r\n * @param location\r\n */\r\n getFiltersByLocation(location) {\r\n const search = UrlHelper.getSearchFromLocation(location);\r\n return this.getValidFilters(search);\r\n }\r\n\r\n getValidFilters(filters) {\r\n /* eslint-disable */\r\n const result = {};\r\n for (const i in filters) {\r\n if (i in this.props.defaultFilters) {\r\n result[i] = filters[i];\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n render() {\r\n return (\r\n
{\r\n this.element = el;\r\n }}>\r\n {this.props.render({\r\n isInitialRequestFulfilled: this.state.isInitialRequestFulfilled,\r\n filters: this.state.filters,\r\n isFiltersApplied: this.state.isFiltersApplied,\r\n items: this.state.items,\r\n pagination: this.state.pagination,\r\n onFiltersChange: this.onFiltersChange,\r\n animateChange: this.animateChange,\r\n onLoadMore: this.onLoadMore,\r\n isLoadingMore: this.state.isLoadingMore,\r\n })}\r\n
\r\n );\r\n }\r\n}\r\n\r\nListing.propTypes = {\r\n options: PropTypes.object.isRequired,\r\n defaultFilters: PropTypes.object.isRequired,\r\n render: PropTypes.func.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport nanoid from 'nanoid';\r\n\r\nexport const TYPE_FILTERS_NAME = 'Types';\r\n\r\nclass NewsFeedTypeFilter extends React.Component {\r\n renderControls() {\r\n const { config, selectedFilters } = this.props;\r\n\r\n return config.options.map((option) => {\r\n const id = nanoid();\r\n return (\r\n
  • \r\n
    \r\n \r\n this.props.onFiltersChange(\r\n TYPE_FILTERS_NAME,\r\n option.value,\r\n event.target.checked\r\n )\r\n }\r\n />\r\n \r\n
    \r\n
  • \r\n );\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
      \r\n {this.renderControls()}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nNewsFeedTypeFilter.propTypes = {\r\n config: PropTypes.object.isRequired,\r\n selectedFilters: PropTypes.array.isRequired,\r\n onFiltersChange: PropTypes.func.isRequired\r\n};\r\n\r\nexport default NewsFeedTypeFilter;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport nanoid from 'nanoid';\r\n\r\nexport const TAG_FILTERS_NAME = 'Tags';\r\n\r\nclass NewsFeedTagFilter extends React.Component {\r\n renderControls() {\r\n const { config, selectedFilters } = this.props;\r\n\r\n return config.options.map((option) => {\r\n const id = nanoid();\r\n return (\r\n
  • \r\n
    \r\n \r\n this.props.onFiltersChange(\r\n TAG_FILTERS_NAME,\r\n option.value,\r\n event.target.checked\r\n )\r\n }\r\n />\r\n \r\n
    \r\n
  • \r\n );\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
      \r\n {this.renderControls()}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nNewsFeedTagFilter.propTypes = {\r\n config: PropTypes.object.isRequired,\r\n selectedFilters: PropTypes.array.isRequired,\r\n onFiltersChange: PropTypes.func.isRequired\r\n};\r\n\r\nexport default NewsFeedTagFilter;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport NewsFeedTypeFilter, { TYPE_FILTERS_NAME } from './news-feed-type-filter';\r\nimport NewsFeedTagFilter, { TAG_FILTERS_NAME } from './news-feed-tag-filter';\r\n\r\nclass NewsFeedHeader extends React.Component {\r\n getConfigByName(name) {\r\n const { options } = this.props;\r\n return options.filters.find((filter) => filter.name === name);\r\n }\r\n\r\n onFiltersChange = (filterName, changedCheckboxValue, isChecked) => {\r\n const selectedFilters = this.props.filters[filterName];\r\n let newValue = null;\r\n\r\n if (isChecked) {\r\n newValue = [...selectedFilters, changedCheckboxValue];\r\n } else {\r\n newValue = selectedFilters.filter((value) => value !== changedCheckboxValue);\r\n }\r\n\r\n this.props.onFiltersChange({ [filterName]: newValue });\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n

    \r\n {this.props.translations.title} \r\n {this.props.translations.shortDate}\r\n {this.props.translations.date}\r\n

    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nNewsFeedHeader.propTypes = {\r\n filters: PropTypes.object.isRequired,\r\n options: PropTypes.object.isRequired,\r\n translations: PropTypes.object,\r\n onFiltersChange: PropTypes.func.isRequired\r\n};\r\n\r\nexport default NewsFeedHeader;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Banner } from 'components/banner';\r\n\r\nconst BannerCard = ({ model }) => (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n);\r\n\r\nBannerCard.propTypes = {\r\n model: PropTypes.object.isRequired\r\n};\r\n\r\nexport default BannerCard;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport PropTypes from 'prop-types';\r\nimport gtm from 'general/js/gtm';\r\nimport { getDefaultFilters, isFiltersDirty } from '../../listing/js/listing-helper';\r\nimport Listing from '../../listing/js/Listing';\r\nimport ListingLoadMore from '../../listing/js/ListingLoadMore';\r\nimport NewsFeedHeader from './news-feed-header';\r\nimport NewsFeedListing from './news-feed-listing';\r\nimport BannerCard from 'components/cards/js/banner-card';\r\n\r\nclass NewsFeedLayout extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.defaultFilters = {\r\n ...getDefaultFilters(props.options.filters)\r\n };\r\n }\r\n\r\n renderGroupsListing(items) {\r\n const groupsList = [];\r\n const totalGroups = Math.ceil(items.length / this.props.patternSize);\r\n\r\n for (let i = 0; i < totalGroups; i++) {\r\n const startIndex = i * this.props.patternSize;\r\n const endIndex = (i + 1) * this.props.patternSize;\r\n const groupItems = items.slice(startIndex, endIndex);\r\n\r\n groupsList.push(\r\n \r\n \r\n {\r\n groupItems.length === this.props.patternSize &&\r\n this.renderBanner()\r\n }\r\n \r\n );\r\n }\r\n\r\n return groupsList;\r\n }\r\n\r\n renderBanner() {\r\n if (!this.props.banner) return null;\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n renderNoResults() {\r\n return (\r\n
    \r\n
    \r\n

    No results.

    \r\n

    Please try making your search a little wider

    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n onLoadMoreClick = (onLoadMoreFromProps) => {\r\n gtm.push('Load More', 'Click', window.location.href);\r\n onLoadMoreFromProps();\r\n }\r\n\r\n render() {\r\n return (\r\n (\r\n \r\n {\r\n this.props.onFiltersDirtyChange(isFiltersDirty(filters, this.props.options.filters))\r\n }\r\n {\r\n ReactDOM.createPortal(\r\n ,\r\n this.props.filtersNode\r\n )\r\n }\r\n
    \r\n {this.renderGroupsListing(items)}\r\n {!items.length && this.renderNoResults()}\r\n
    \r\n this.onLoadMoreClick(onLoadMore)}\r\n pagination={pagination}\r\n isLoadingMore={isLoadingMore}/>\r\n
    \r\n )}/>\r\n );\r\n }\r\n}\r\n\r\nNewsFeedLayout.propTypes = {\r\n options: PropTypes.object.isRequired,\r\n pattern: PropTypes.array.isRequired,\r\n translations: PropTypes.object,\r\n banner: PropTypes.object,\r\n patternSize: PropTypes.number,\r\n filtersNode: PropTypes.instanceOf(Element).isRequired,\r\n onFiltersDirtyChange: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default NewsFeedLayout;\r\n","import React from 'react';\r\nimport ReactDOM, { render } from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport eventBus from 'general/js/event-bus';\r\nimport app, { EVENT_DEVICE_TYPE_CHANGED } from 'general/js/app';\r\nimport { CONTROL_TYPE_CHECKLIST } from '../../listing/js/constants';\r\nimport { getPattern } from './patterns';\r\nimport NewsFeedLayout from './news-feed-layout';\r\n\r\n\r\nclass NewsFeedComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.data = this.getData();\r\n\r\n if (!this.data) {\r\n throw new Error('Invalid JSON initial data');\r\n }\r\n\r\n const endpointUrl = this.data.endpointUrl;\r\n\r\n if (!endpointUrl) {\r\n throw new Error('EndpointUrl should be passed via options');\r\n }\r\n\r\n const filters = this.data.filters.map((filter) => (\r\n {\r\n type: CONTROL_TYPE_CHECKLIST,\r\n name: filter.name,\r\n options: filter.values,\r\n defaultValue: []\r\n }\r\n ));\r\n\r\n this.listingOptions = {\r\n endpointUrl,\r\n filters,\r\n initialItems: this.data.articles,\r\n pagination: this.data.pagination,\r\n customParams: this.data.data\r\n };\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['filters', 'listing'];\r\n }\r\n\r\n init() {\r\n this.renderSection();\r\n\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.onChangeDeviceType);\r\n }\r\n\r\n getData() {\r\n let data = null;\r\n\r\n try {\r\n data = JSON.parse(this.getAttribute(this.refs.data, 'json'));\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n return data;\r\n }\r\n\r\n onFiltersDirtyChange = (isDirty) => {\r\n if (!Array.isArray(this.refs.components)) return;\r\n\r\n this.refs.components.forEach((component) => {\r\n component.hidden = isDirty;\r\n });\r\n }\r\n\r\n onChangeDeviceType = () => {\r\n this.renderSection();\r\n }\r\n\r\n renderSection() {\r\n render(\r\n ,\r\n this.refs.listing\r\n );\r\n }\r\n\r\n getPattern() {\r\n return getPattern(app.deviceTypeByViewport);\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.refs.listing);\r\n }\r\n}\r\n\r\nexport default NewsFeedComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport NewsFeedComponent from './js/news-feed.component';\r\nimport NewsFeedListing from './js/news-feed-listing';\r\n\r\nComponentsFactory.getInstance().define('news-feed', NewsFeedComponent);\r\n\r\nexport * from './js/patterns';\r\nexport {\r\n NewsFeedListing\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport axios from 'axios';\r\nimport qs from 'qs';\r\nimport classNames from 'classnames';\r\nimport app, { EVENT_DEVICE_TYPE_CHANGED } from 'general/js/app';\r\nimport gtm from 'general/js/gtm';\r\nimport eventBus from 'general/js/event-bus';\r\nimport { makeCancelable } from 'general/js/helpers';\r\nimport { NewsFeedService } from 'general/js/services';\r\nimport { NewsFeedListing, getPattern } from 'components/news-feed';\r\nimport { BlockSpinner } from 'components/block-spinner';\r\n\r\nclass NewsFeedLiveLayout extends React.Component {\r\n constructor(...args) {\r\n super(...args);\r\n this.data = null;\r\n this.state = {\r\n items: [],\r\n pagination: {\r\n currentPage: 0,\r\n },\r\n pattern: getPattern(app.deviceTypeByViewport),\r\n isFetching: false,\r\n showPartialPattern: true,\r\n tags: [],\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n NewsFeedService.onChange(this.onNewsFeedServiceChange);\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.onChangeDeviceType);\r\n this.getData();\r\n }\r\n\r\n componentWillUnmount() {\r\n eventBus.removeListener(EVENT_DEVICE_TYPE_CHANGED, this.onChangeDeviceType);\r\n this.cancelGetData();\r\n }\r\n\r\n onChangeDeviceType = (oldDeviceType, newDeviceType) => {\r\n this.setState({ pattern: getPattern(newDeviceType) });\r\n }\r\n\r\n onNewsFeedServiceChange = (tags) => {\r\n this.setState({\r\n tags,\r\n pagination: {\r\n currentPage: 0\r\n }\r\n }, () => this.getData());\r\n }\r\n\r\n getData(isLoadMore) {\r\n const { endpointUrl, tags, newsfeedParentItemGuid } = this.props.options;\r\n const currentPage = this.state.pagination.currentPage;\r\n const paginationQs = qs.stringify({ currentPage: currentPage + 1 });\r\n const tagsQs = qs.stringify({ tags: [...tags, ...this.state.tags] });\r\n const newsfeedParentItemGuidQs = qs.stringify({ newsfeedParentItemGuid: newsfeedParentItemGuid });\r\n const url = `${endpointUrl}?${newsfeedParentItemGuidQs}&${paginationQs}&${tagsQs}`;\r\n\r\n this.cancelGetData();\r\n this.cancelableGetData = makeCancelable(axios.get(url));\r\n this.cancelableGetData\r\n .promise\r\n .then((response) => {\r\n let { items } = response.data;\r\n\r\n if (!Array.isArray(items)) {\r\n this.setState({ isFetching: false });\r\n return;\r\n }\r\n\r\n let showPartialPattern = items.length > 4;\r\n\r\n if (isLoadMore) {\r\n items = [...this.state.items, ...items];\r\n showPartialPattern = false;\r\n }\r\n\r\n this.setState({\r\n items,\r\n pagination: response.data.pagination,\r\n showPartialPattern,\r\n isFetching: false\r\n });\r\n })\r\n .catch(() => {\r\n this.setState({ isFetching: false });\r\n });\r\n\r\n this.setState({ isFetching: true });\r\n }\r\n\r\n cancelGetData() {\r\n if (this.cancelableGetData) {\r\n this.cancelableGetData.cancel();\r\n }\r\n }\r\n\r\n onLoadMore = () => {\r\n if (this.state.showPartialPattern) {\r\n this.setState({ showPartialPattern: false });\r\n return;\r\n }\r\n\r\n this.getData(true);\r\n }\r\n\r\n getItems() {\r\n const { showPartialPattern, items } = this.state;\r\n\r\n if (showPartialPattern) {\r\n return items.slice(0, 4);\r\n }\r\n\r\n return items;\r\n }\r\n\r\n onSeeAllClick = () => {\r\n gtm.push('See all News', 'Click', window.location.href);\r\n }\r\n\r\n render() {\r\n const { seeAllUrl, title } = this.props.options;\r\n const { showPartialPattern, isFetching } = this.state;\r\n const { currentPage, pageCount } = this.state.pagination;\r\n const items = this.getItems();\r\n const loadMoreCss = classNames({\r\n 'is-loading': isFetching\r\n });\r\n\r\n if (!items.length) return null;\r\n\r\n return (\r\n
    \r\n {isFetching && }\r\n
    \r\n
    \r\n

    {title}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n (showPartialPattern || currentPage < pageCount) &&\r\n
    \r\n \r\n load more\r\n \r\n
    \r\n }\r\n {\r\n !showPartialPattern &&\r\n currentPage === pageCount &&\r\n
    \r\n See all News\r\n
    \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n );\r\n }\r\n}\r\n\r\nNewsFeedLiveLayout.propTypes = {\r\n options: PropTypes.object\r\n};\r\n\r\nexport default NewsFeedLiveLayout;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport NewsFeedLiveLayout from './news-feed-live-layout';\r\n\r\nclass NewsFeedLiveComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default NewsFeedLiveComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport NewsFeedLiveComponent from './js/news-feed-live.component';\r\n\r\nComponentsFactory.getInstance().define('news-feed-live', NewsFeedLiveComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport { NewsFeedService } from 'general/js/services';\r\n\r\nclass NewsFeedLiveSelector extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.state = {\r\n };\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['input'];\r\n }\r\n\r\n init() {\r\n this.onInputChange();\r\n this.addListener(this.refs.input, 'change', this.onInputChange);\r\n }\r\n\r\n onInputChange = () => {\r\n if (this.refs.input.checked) {\r\n NewsFeedService.add(this.refs.input.value);\r\n } else {\r\n NewsFeedService.remove(this.refs.input.value);\r\n }\r\n }\r\n}\r\n\r\nexport default NewsFeedLiveSelector;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport NewsFeedLiveSelector from './js/news-feed-live-selector.component';\r\n\r\nComponentsFactory.getInstance().define('news-feed-live-selector', NewsFeedLiveSelector);\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport eventBus from 'general/js/event-bus';\r\nimport app, { EVENT_DEVICE_TYPE_CHANGED } from 'general/js/app';\r\nimport { NewsFeedListing } from 'components/news-feed';\r\nimport { getPattern } from './patterns';\r\n\r\nconst VISIBLE_NUMBER_OF_NEWS_STANDART = 3;\r\n\r\nexport default class NewsFeedPreview extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.data = this.getAttribute(this.refs.data, 'options');\r\n this.cardsList = JSON.parse(this.data);\r\n\r\n this.newsCardsList = null;\r\n this.statePrimaryButton = false;\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.renderCardsList();\r\n\r\n this.addListener(this.refs.primaryButton, 'click', this.onClickPrimaryButton);\r\n\r\n this.reactDOMRender();\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.changedRenderedViews);\r\n }\r\n\r\n onDestroy() {\r\n eventBus.removeListener(EVENT_DEVICE_TYPE_CHANGED, this.changedRenderedViews);\r\n }\r\n\r\n renderCardsList() {\r\n this.newsCardsList = this.cardsList;\r\n\r\n if (this.newsCardsList.length > VISIBLE_NUMBER_OF_NEWS_STANDART) {\r\n this.newsCardsList = this.cardsList.slice(0, VISIBLE_NUMBER_OF_NEWS_STANDART);\r\n this.statePrimaryButton = true;\r\n }\r\n }\r\n\r\n onClickPrimaryButton = (event) => {\r\n if (this.statePrimaryButton) {\r\n event.preventDefault();\r\n this.newsCardsList = this.cardsList;\r\n this.reactDOMRender();\r\n this.statePrimaryButton = false;\r\n }\r\n };\r\n\r\n reactDOMRender() {\r\n ReactDOM.render(\r\n ,\r\n this.refs.primaryWrapper\r\n );\r\n }\r\n\r\n changedRenderedViews = () => {\r\n this.reactDOMRender();\r\n };\r\n\r\n getPattern() {\r\n return getPattern(this.newsCardsList.length, app.deviceTypeByViewport);\r\n }\r\n}\r\n","import {\r\n getPatternByDeviceType,\r\n rowNames\r\n} from '../../news-feed/js/row-patterns';\r\n\r\nexport const getPattern = (totalItems, deviceType) => {\r\n switch (totalItems) {\r\n case 1:\r\n return [\r\n getPatternByDeviceType(rowNames.NARROW, deviceType)\r\n ];\r\n case 2:\r\n return [\r\n getPatternByDeviceType(rowNames.TWO_THIRDS_AND_ONE_THIRD, deviceType)\r\n ];\r\n default:\r\n return [\r\n getPatternByDeviceType(rowNames.TRIPLE_ONE_THIRD, deviceType)\r\n ];\r\n }\r\n};\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport NewsFeedPreview from './js/news-feed-preview.component';\r\n\r\nComponentsFactory.getInstance().define('news-feed-preview', NewsFeedPreview);\r\n","import { tns } from 'tiny-slider/src/tiny-slider';\r\nimport BaseComponent from 'foundation/base-component';\r\n\r\nclass PlayerCarouselComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.gallery = null;\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['slides'];\r\n }\r\n\r\n init() {\r\n this.gallery = tns({\r\n container: this.refs.slides,\r\n autoWidth: true,\r\n loop: false,\r\n nav: false,\r\n controls: false,\r\n touch: false,\r\n responsive: {\r\n 579: {\r\n slideBy: 2\r\n },\r\n 1023: {\r\n slideBy: 3\r\n }\r\n }\r\n });\r\n\r\n if (Array.isArray(this.refs.prevBtn)) {\r\n this.refs.prevBtn.forEach((x) => {\r\n this.addListener(x, 'click', this.onClickPrevBtn);\r\n });\r\n }\r\n if (Array.isArray(this.refs.nextBtn)) {\r\n this.refs.nextBtn.forEach((x) => {\r\n this.addListener(x, 'click', this.onClickNextBtn);\r\n });\r\n }\r\n }\r\n\r\n onClickPrevBtn = (event) => {\r\n event.preventDefault();\r\n this.gallery.goTo('prev');\r\n }\r\n\r\n onClickNextBtn = (event) => {\r\n event.preventDefault();\r\n this.gallery.goTo('next');\r\n }\r\n\r\n onDestroy() {\r\n this.gallery.destroy();\r\n }\r\n}\r\n\r\nexport default PlayerCarouselComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport PlayerCarouselComponent from './js/player-carousel.component';\r\n\r\nComponentsFactory.getInstance().define('player-carousel', PlayerCarouselComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport $ from 'jquery';\r\n\r\nexport default class PlayerHeroComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n \r\n this.init();\r\n }\r\n \r\n\r\n init() {\r\n if(this.refs.dateOfBirth){\r\n this.dateOfBirth = this.getAttribute(this.refs.dateOfBirth, 'options');\r\n this.age_latest = this.calculate_age(this.dateOfBirth);\r\n this.render(this.age_latest);\r\n } \r\n }\r\n\r\n render(age) {\r\n ReactDOM.render(\r\n
    { age }
    , \r\n this.refs.dateOfBirth\r\n );\r\n };\r\n\r\n\r\n calculate_age (dob) {\r\n const birthDate = new Date(dob); \r\n const difference = Date.now() - birthDate.getTime();\r\n const age = new Date(difference);\r\n\r\n return Math.abs(age.getUTCFullYear() - 1970);\r\n }\r\n\r\n}","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport PlayerHeroComponent from './js/player-hero.component';\r\n\r\nComponentsFactory.getInstance().define('player-hero', PlayerHeroComponent);","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { CountryFlag } from 'project/country-flag';\r\n\r\nconst QualLeaderboardDefaultView = (props) => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    player
    \r\n
    \r\n
    \r\n
    \r\n {\r\n props.items.map((item, i) => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {item.lastName.toUpperCase()}, {item.firstName} {item.playerStatus === 0 && '(a)'}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n })\r\n }\r\n
    \r\n );\r\n};\r\n\r\nQualLeaderboardDefaultView.propTypes = {\r\n items: PropTypes.array.isRequired\r\n};\r\n\r\nexport default QualLeaderboardDefaultView;\r\n","export const deviceTypes = Object.freeze({\r\n MOBILE: 'mobile'\r\n});\r\n\r\nexport const qualificationTypes = Object.freeze({\r\n REGIONAL: 'Regional',\r\n FINAL: 'Final'\r\n});\r\n\r\nexport const R1_TEE_TIME = 'r1TeeTime';\r\nexport const R2_TEE_TIME = 'r2TeeTime';\r\n","import React from 'react';\r\nimport { SpriteSvg } from 'project/sprite-svg';\r\nimport { deviceTypes } from './enums';\r\n\r\nclass QualDrawSearchInput extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.inputRef = React.createRef();\r\n\r\n this.searchBehaviorState = true;\r\n\r\n this.state = {\r\n animationState: false,\r\n clearValueSearchInput: false,\r\n defaultSearchValue: ''\r\n };\r\n }\r\n\r\n renderIcon = () => {\r\n if (!this.state.clearValueSearchInput) {\r\n return ;\r\n }\r\n\r\n return ;\r\n }\r\n\r\n searchBehavior = (event, callback) => {\r\n if (this.state.defaultSearchValue === '') {\r\n this.setState({ clearValueSearchInput: true });\r\n }\r\n\r\n if (this.state.clearValueSearchInput) {\r\n callback('');\r\n this.setState({\r\n clearValueSearchInput: false,\r\n defaultSearchValue: ''\r\n });\r\n return false;\r\n }\r\n\r\n callback(this.state.defaultSearchValue);\r\n this.setState({ clearValueSearchInput: true });\r\n\r\n return true;\r\n }\r\n\r\n handleKeyPress = (event, callback) => {\r\n if (event.key !== 'Enter') return false;\r\n this.searchBehavior(event, callback);\r\n return true;\r\n }\r\n\r\n searchMobileBehavior = () => {\r\n if (this.searchBehaviorState &&\r\n this.props.deviceTypeByViewport === deviceTypes.MOBILE) {\r\n\r\n this.setState({ animationState: true });\r\n\r\n window.setTimeout(() => {\r\n this.inputRef.current.focus();\r\n }, 300);\r\n\r\n this.searchBehaviorState = false;\r\n\r\n return false;\r\n }\r\n\r\n if (this.state.clearValueSearchInput) {\r\n this.setState({ animationState: false });\r\n this.searchBehaviorState = true;\r\n }\r\n\r\n if (this.searchBehaviorState &&\r\n this.props.deviceTypeByViewport !== deviceTypes.MOBILE) {\r\n this.searchBehaviorState = false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n startSearchBehavior = (event, callback) => {\r\n this.searchBehavior(event, callback);\r\n this.searchMobileBehavior();\r\n }\r\n\r\n renderAnimationState = () => {\r\n let isActive = '';\r\n\r\n if (this.props.deviceTypeByViewport !== deviceTypes.MOBILE) {\r\n isActive = 'is-active';\r\n }\r\n\r\n if (this.state.animationState &&\r\n this.props.deviceTypeByViewport === deviceTypes.MOBILE) {\r\n isActive = 'is-active';\r\n }\r\n\r\n return isActive;\r\n }\r\n\r\n handleSearch = (event) => {\r\n if (this.state.clearValueSearchInput) {\r\n this.setState({ clearValueSearchInput: false });\r\n }\r\n\r\n this.setState({\r\n defaultSearchValue: event.target.value,\r\n });\r\n }\r\n\r\n render() {\r\n if (this.props.deviceTypeByViewport !== deviceTypes.MOBILE) {\r\n this.searchBehaviorState = true;\r\n }\r\n\r\n return (\r\n
    \r\n\r\n this.handleSearch(event)}\r\n onKeyPress={(event) => this.handleKeyPress(event, this.props.defaultCallback)}\r\n />\r\n\r\n this.startSearchBehavior(event, this.props.defaultCallback)}\r\n >\r\n
    \r\n {this.renderIcon()}\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default QualDrawSearchInput;\r\n","import React from 'react';\r\n\r\nclass QualDrawSelect extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.choicesInstance = null;\r\n this.selectRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n const { options } = this.props;\r\n const block = 'randa-select';\r\n\r\n this.choicesInstance = new window.Choices(this.selectRef.current, {\r\n choices: options,\r\n searchEnabled: false,\r\n shouldSort: false,\r\n itemSelectText: '',\r\n classNames: {\r\n containerOuter: `choices ${block}`,\r\n containerInner: `choices__inner ${block}__inner`,\r\n list: `choices__list ${block}__list`,\r\n listDropdown: `choices__list--dropdown ${block}__list--dropdown`,\r\n listSingle: `choices__list--single ${block}__list--single`,\r\n item: `choices__item ${block}__item`,\r\n itemSelectable: `choices__item--selectable ${block}__item--selectable`,\r\n itemDisabled: `choices__item--disabled ${block}__item--disabled`,\r\n itemChoice: `choices__item--choice ${block}__item--choice`\r\n }\r\n });\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.choicesInstance) {\r\n this.choicesInstance.destroy();\r\n }\r\n }\r\n\r\n getOptionValue = () => {\r\n const value = this.choicesInstance.getValue(true);\r\n\r\n if (typeof this.props.onChange === 'function') {\r\n this.props.onChange(value);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default QualDrawSelect;\r\n","import findIndex from 'lodash/findIndex';\r\n\r\nexport const getChoices = (items, qsObj) => {\r\n const optionItems = items.reduce((res, el) => {\r\n const alreadyExist = Boolean(res.find((item) => {\r\n return item.locationName === el.locationName;\r\n }));\r\n\r\n if (!alreadyExist) {\r\n res.push({\r\n id: res.length + 1,\r\n locationName: el.locationName\r\n });\r\n }\r\n\r\n return res;\r\n }, []);\r\n\r\n const choicesInitial = [\r\n { label: 'Select course', value: '', selected: false }\r\n ];\r\n\r\n const optionItemsSorted = optionItems.sort((a, b) => {\r\n return a.locationName > b.locationName ? 1 : -1;\r\n });\r\n\r\n optionItemsSorted.forEach((option) => {\r\n choicesInitial.push({\r\n label: option.locationName,\r\n value: option.locationName,\r\n selected: false\r\n });\r\n });\r\n\r\n const choiceIndex = findIndex(choicesInitial, (choice) => (choice.value === qsObj.course));\r\n\r\n if (choiceIndex === -1) {\r\n choicesInitial[0].selected = true;\r\n } else {\r\n choicesInitial[choiceIndex].selected = true;\r\n }\r\n\r\n return choicesInitial;\r\n};\r\n","export const sortByTeeTime = (players, r1TeeTime, r2TeeTime) => {\r\n let teeTime = '';\r\n if (r1TeeTime) teeTime = 'r1TeeTime';\r\n //if (r2TeeTime) teeTime = 'r2TeeTime';\r\n const teeTimeGroups = {};\r\n const result = [];\r\n const sortedByTeeTime = [...players].sort((a, b) =>\r\n new Date(a[teeTime]) - new Date(b[teeTime]));\r\n\r\n sortedByTeeTime.forEach((player) => {\r\n const curTeeTime = player[teeTime];\r\n\r\n if (!teeTimeGroups[curTeeTime]) {\r\n teeTimeGroups[curTeeTime] = [];\r\n }\r\n\r\n teeTimeGroups[curTeeTime].push(player);\r\n });\r\n\r\n Object.keys(teeTimeGroups).forEach((key) => {\r\n teeTimeGroups[key].sort((a, b) => a.r1StartHole - b.r1StartHole);\r\n result.push(...teeTimeGroups[key]);\r\n });\r\n\r\n return result;\r\n};\r\n\r\nexport const filteringStrategies = {\r\n selectCourse: {\r\n filteringFunc: ({ players, selectValue }) => {\r\n return players.filter((courseItem) => courseItem.locationName === selectValue);\r\n }\r\n },\r\n searchPlayers: {\r\n filteringFunc: ({ players, searchQuery }) => {\r\n const filterBy = ['firstName', 'lastName'];\r\n\r\n return players.filter((item) => {\r\n return filterBy.some((prop) => {\r\n return searchQuery.some((val) => {\r\n return item[prop].toLowerCase().includes(val);\r\n });\r\n });\r\n });\r\n }\r\n }\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport qs from 'qs';\r\nimport classNames from 'classnames';\r\nimport { format } from 'date-fns';\r\nimport { CountryFlag } from 'project/country-flag';\r\nimport eventBus from 'general/js/event-bus';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport app, { EVENT_DEVICE_TYPE_CHANGED } from 'general/js/app';\r\nimport { SpriteSvg } from 'project/sprite-svg';\r\nimport QualDrawTablePlayer from './qual-draw-table-player';\r\nimport QualDrawSearchInput from './qual-draw-search-input';\r\nimport QualDrawSelect from './qual-draw-select';\r\nimport { getChoices } from './action-helper';\r\nimport { filteringStrategies, sortByTeeTime } from './filtering-strategies';\r\nimport {\r\n R1_TEE_TIME,\r\n R2_TEE_TIME,\r\n qualificationTypes\r\n} from './enums';\r\n\r\nclass QualDrawContainer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.rootRef = React.createRef();\r\n this.arrowLeftRef = React.createRef();\r\n this.arrowRightRef = React.createRef();\r\n this.searchQuery = '';\r\n this.r1TeeTime = false;\r\n this.r2TeeTime = false;\r\n this.isFinalQualificationDraw = false;\r\n this.lastScroll = 0;\r\n this.chainStartUrl = window.location.pathname;\r\n this.chainStartHash = window.location.hash;\r\n this.qsObj = qs.parse(window.location.search, { ignoreQueryPrefix: true });\r\n\r\n this.state = {\r\n deviceTypeByViewport: '',\r\n searchAnimationState: false,\r\n selectedCourse: this.qsObj.course || '',\r\n applySearchPlayers: false\r\n };\r\n\r\n this.initState();\r\n }\r\n\r\n componentDidMount() {\r\n ComponentsFactory.getInstance().init(this.rootRef.current);\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.changedRenderedViews);\r\n }\r\n\r\n componentWillUnmount() {\r\n ComponentsFactory.getInstance().destroy(this.rootRef.current);\r\n eventBus.removeListener(EVENT_DEVICE_TYPE_CHANGED, this.changedRenderedViews);\r\n }\r\n\r\n initState = () => {\r\n this.optionItems = getChoices(this.props.players, this.qsObj);\r\n\r\n if (this.props.options.type === qualificationTypes.FINAL) {\r\n this.isFinalQualificationDraw = true;\r\n }\r\n\r\n this.props.players.forEach((item) => {\r\n if (item[R1_TEE_TIME]) {\r\n this.r1TeeTime = true;\r\n }\r\n\r\n if (item[R2_TEE_TIME]) {\r\n this.r2TeeTime = true;\r\n }\r\n });\r\n }\r\n\r\n changedRenderedViews = () => {\r\n this.setState({ deviceTypeByViewport: app.deviceTypeByViewport });\r\n }\r\n\r\n renderStartHole = (startHole) => {\r\n if (startHole !== 10) return '';\r\n return '*';\r\n }\r\n\r\n renderMatchNumber = (item) => {\r\n if (this.isFinalQualificationDraw) return null;\r\n\r\n if (item.isScoringCompleted) {\r\n return (\r\n
    \r\n
    \r\n {item.r1MatchNo}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {item.r1MatchNo}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n renderField = (field, title, data, startHole) => {\r\n field = field || '';\r\n title = title || false;\r\n data = data || null;\r\n startHole = startHole || null;\r\n\r\n const roundNoIdentifier = this.isFinalQualificationDraw ? 'r1' : '';\r\n\r\n if (this.r1TeeTime && field === R1_TEE_TIME) {\r\n if (title) {\r\n return (\r\n
    \r\n
    tee time {roundNoIdentifier}
    \r\n
    \r\n );\r\n }\r\n return (\r\n
    \r\n
    \r\n {data !== null ? data : '-'}\r\n {this.renderStartHole(startHole)}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n if (this.r2TeeTime && field === R2_TEE_TIME) {\r\n if (title) {\r\n return (\r\n
    \r\n
    tee time r2
    \r\n
    \r\n );\r\n }\r\n return (\r\n
    \r\n
    \r\n {data !== null ? data : '-'}\r\n {this.renderStartHole(startHole)}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n return null;\r\n };\r\n\r\n renderItem = () => {\r\n return (\r\n this.items.map((item) => {\r\n const teeTimeR1 = item.r1TeeTime && format(item.r1TeeTime.replace('Z', ''), 'h:mm a');\r\n const teeTimeR2 = item.r2TeeTime && format(item.r2TeeTime.replace('Z', ''), 'h:mm a');\r\n const playerId = '' +\r\n item.firstName + '-' +\r\n item.lastName + '-' +\r\n item.nationality + '-' +\r\n item.clubName + '-' +\r\n item.locationName;\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {item.lastName.toUpperCase()}, {item.firstName} {item.playerStatus === 0 && '(a)'}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {item.clubName}\r\n
    \r\n
    \r\n {\r\n item.sitecoreData &&\r\n item.sitecoreData.pageUrl &&\r\n \r\n {item.sitecoreData.name}\r\n \r\n }\r\n\r\n
    \r\n {this.renderMatchNumber(item)}\r\n {this.renderField(R1_TEE_TIME, false, teeTimeR1, item.r1StartHole)}\r\n {this.renderField(R2_TEE_TIME, false, teeTimeR2, item.r2StartHole)}\r\n
    \r\n );\r\n })\r\n );\r\n }\r\n\r\n onScrollLeftElement = (event) => {\r\n const scrollLeft = event.target.scrollLeft;\r\n const scrollWidth = event.target.scrollWidth;\r\n const offsetWidth = event.target.offsetWidth;\r\n\r\n if (scrollLeft === scrollWidth - offsetWidth) {\r\n this.arrowRightRef.current.classList.add('is-animation');\r\n } else if (scrollLeft === 0) {\r\n this.arrowLeftRef.current.classList.remove('is-animation');\r\n } else if (scrollLeft > this.lastScroll) {\r\n this.arrowLeftRef.current.classList.add('is-animation');\r\n } else if (scrollLeft < this.lastScroll) {\r\n this.arrowRightRef.current.classList.remove('is-animation');\r\n }\r\n\r\n this.lastScroll = event.target.scrollLeft;\r\n }\r\n\r\n handleChangeSelect = (value) => {\r\n let url = '';\r\n\r\n if (value === '') {\r\n url = `${this.chainStartUrl}${this.chainStartHash}`;\r\n } else {\r\n url = `${this.chainStartUrl}?course=${value}${this.chainStartHash}`;\r\n }\r\n\r\n //TODO: apply history controller\r\n window.history.pushState(null, null, url);\r\n\r\n this.setState({ selectedCourse: value });\r\n }\r\n\r\n getDefaultCallback = (term) => {\r\n this.searchQuery = term.trim().toLowerCase().split(/\\s+/);\r\n\r\n this.setState({ applySearchPlayers: term !== '' });\r\n }\r\n\r\n filteredStateInit = (data, filteringType) => {\r\n const currentStrategy = filteringStrategies[filteringType];\r\n\r\n const props = {\r\n players: data,\r\n selectValue: this.state.selectedCourse,\r\n searchQuery: this.searchQuery\r\n };\r\n\r\n return currentStrategy.filteringFunc(props);\r\n }\r\n\r\n processData(players) {\r\n if (!Array.isArray(players)) return [];\r\n\r\n let processedPlayers = players;\r\n\r\n if (this.state.selectedCourse) {\r\n processedPlayers = this.filteredStateInit(processedPlayers, 'selectCourse');\r\n processedPlayers = sortByTeeTime(processedPlayers, this.r1TeeTime, this.r2TeeTime);\r\n }\r\n\r\n if (this.state.applySearchPlayers) {\r\n processedPlayers = this.filteredStateInit(processedPlayers, 'searchPlayers');\r\n processedPlayers = sortByTeeTime(processedPlayers, this.r1TeeTime, this.r2TeeTime);\r\n }\r\n\r\n return processedPlayers;\r\n }\r\n\r\n render() {\r\n this.items = this.processData(this.props.players);\r\n const stateCss = classNames({\r\n 'is-search-active': this.state.searchAnimationState\r\n });\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n {this.optionItems.length > 1 &&\r\n \r\n }\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n this.items.length > 0 ?\r\n
    \r\n\r\n \r\n\r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    player
    \r\n
    \r\n
    \r\n \r\n
    club/attachment
    \r\n
    attachment
    \r\n
    \r\n
    \r\n
    course
    \r\n
    \r\n {this.isFinalQualificationDraw ? null :\r\n
    \r\n
    game
    \r\n
    }\r\n {this.renderField(R1_TEE_TIME, true)}\r\n {this.renderField(R2_TEE_TIME, true)}\r\n
    \r\n\r\n {this.renderItem()}\r\n \r\n \r\n :
    \r\n
    No results.
    \r\n
    Please try making your search a little wider
    \r\n
    \r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nQualDrawContainer.propTypes = {\r\n options: PropTypes.object,\r\n players: PropTypes.array\r\n};\r\n\r\nexport default QualDrawContainer;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport ScoringLoader from 'general/js/loaders/scoring-loader';\r\nimport { BlockPlaceholder } from 'components/block-placeholder';\r\nimport { BlockSpinner } from 'components/block-spinner';\r\nimport QualDrawContainer from './qual-draw-container';\r\nimport { bemClasses, LivePreMessage } from '../../live-pre-message';\r\n\r\nclass QualDrawLayout extends React.Component {\r\n componentDidMount() {\r\n ScoringLoader.subscribe(`draw${this.props.options.type}`);\r\n }\r\n\r\n componentWillUnmount() {\r\n ScoringLoader.unsubscribe(`draw${this.props.options.type}`);\r\n }\r\n\r\n render() {\r\n const { scoringDraw } = this.props;\r\n\r\n if (scoringDraw === undefined) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n if (!scoringDraw || !Array.isArray(scoringDraw.players)) {\r\n return ;\r\n }\r\n\r\n const players = [...scoringDraw.players].sort((a, b) => {\r\n return a.r1TeeTime.localeCompare(b.r1TeeTime);\r\n });\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nQualDrawLayout.propTypes = {\r\n options: PropTypes.shape({\r\n type: PropTypes.string,\r\n infoPopupUrl: PropTypes.string\r\n }),\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n scoringDraw: state.scoring[`draw${ownProps.options.type}`]\r\n});\r\n\r\nconst QualDrawLayoutWrapper = connect(\r\n mapStateToProps\r\n)(QualDrawLayout);\r\n\r\nexport default QualDrawLayoutWrapper;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport store from 'general/js/store';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport QualDrawLayout from './qual-draw-layout.js';\r\n\r\nclass QualDrawComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['root'];\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.refs.root);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.refs.root\r\n );\r\n }\r\n}\r\n\r\nexport default QualDrawComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport QualDrawComponent from './js/qual-draw.component';\r\n\r\nComponentsFactory.getInstance().define('qual-draw', QualDrawComponent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport get from 'lodash/get';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\n\r\nclass QualEventItem extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.rootRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n ComponentsFactory.getInstance().init(this.rootRef.current);\r\n }\r\n\r\n componentWillUnmount() {\r\n ComponentsFactory.getInstance().destroy(this.rootRef.current);\r\n }\r\n\r\n render() {\r\n const sitecoreData = get(this.props, 'location.sitecoreData');\r\n\r\n if (!sitecoreData) return null;\r\n let isFirstLinkDefined = sitecoreData.link1 !== null && sitecoreData.link1 !== undefined;\r\n let isSecondLinkDefined = sitecoreData.link2 !== null && sitecoreData.link2 !== undefined;\r\n \r\n return (\r\n
  • \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    {sitecoreData.name}

    \r\n {\r\n isFirstLinkDefined &&\r\n \r\n {sitecoreData.firstLinkText}\r\n \r\n }\r\n {\r\n isSecondLinkDefined &&\r\n \r\n {sitecoreData.secondLinkText}\r\n \r\n }\r\n \r\n View more\r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n );\r\n }\r\n}\r\n\r\nQualEventItem.propTypes = {\r\n location: PropTypes.object\r\n};\r\n\r\nexport default QualEventItem;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport ScoringLoader from 'general/js/loaders/scoring-loader';\r\nimport { BlockPlaceholder } from 'components/block-placeholder';\r\nimport { BlockSpinner } from 'components/block-spinner';\r\nimport QualEventItem from './qual-events-item';\r\n\r\nclass QualEventsContainer extends React.Component {\r\n componentDidMount() {\r\n ScoringLoader.subscribe(`summary${this.props.options.type}`);\r\n }\r\n\r\n componentWillUnmount() {\r\n ScoringLoader.unsubscribe(`summary${this.props.options.type}`);\r\n }\r\n\r\n render() {\r\n var { scoringSummary } = this.props;\r\n if (scoringSummary === undefined) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n if (!scoringSummary || !Array.isArray(scoringSummary.locations)) return null;\r\n\r\n scoringSummary.locations = sortAlfa(scoringSummary.locations);\r\n\r\n return (\r\n
      \r\n {\r\n scoringSummary.locations.map((location) =>\r\n )\r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nQualEventsContainer.propTypes = {\r\n options: PropTypes.object\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n scoringSummary: state.scoring[`summary${ownProps.options.type}`]\r\n});\r\n\r\nconst sortAlfa = (locations) =>\r\n{\r\n return [...locations].sort((a,b)=>{\r\n if (a.sitecoreData && b.sitecoreData) {\r\n return a.sitecoreData.name.localeCompare(b.sitecoreData.name)\r\n }\r\n});\r\n};\r\n\r\nconst QualEventsContainerWrapper = connect(\r\n mapStateToProps\r\n)(QualEventsContainer);\r\n\r\nexport default QualEventsContainerWrapper;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport store from 'general/js/store';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport QualEventsContainer from './qual-events.container.js';\r\n\r\nclass QualEventsComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['cardsRootContainer'];\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.refs.cardsRootContainer);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.refs.cardsRootContainer\r\n );\r\n }\r\n}\r\n\r\nexport default QualEventsComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport QualEventsComponent from './js/qual-events.component';\r\n\r\nComponentsFactory.getInstance().define('qual-events', QualEventsComponent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst qualLeaderboardScoringInfo = (props) => {\r\n const showScoringInfoContent = () => {\r\n let isVisible = '';\r\n\r\n if (props.scoringInfoClassName) {\r\n isVisible = 'is-visible';\r\n }\r\n\r\n return isVisible;\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n props.clicked()}\r\n >\r\n
    \r\n Scoring\r\n info\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
      \r\n
    • \r\n Birdie\r\n
    • \r\n
    • \r\n Eagle or better\r\n
    • \r\n
    • \r\n Bogey or worse\r\n
    • \r\n
    • \r\n Par\r\n
    • \r\n
    \r\n
      \r\n
    • \r\n Qualified\r\n Q\r\n
    • \r\n
    • \r\n Reserve Place\r\n RES\r\n
    • \r\n
    • \r\n No Return\r\n NR\r\n
    • \r\n
    • \r\n Disqualified\r\n DQ\r\n
    • \r\n
    • \r\n Retired\r\n RTD\r\n
    • \r\n
    • \r\n Withdrawn\r\n WD\r\n
    • \r\n
    • \r\n * 10th Tee start\r\n
    • \r\n
    • \r\n (a) Amateur\r\n
    • \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nqualLeaderboardScoringInfo.propTypes = {\r\n scoringInfoClassName: PropTypes.bool,\r\n clicked: PropTypes.func\r\n};\r\n\r\nexport default qualLeaderboardScoringInfo;\r\n","export const DEFAULT_VIEW = 'default';\r\nexport const HOLES_VIEW = 'holes-view';\r\nexport const QUALIFY_RESERVE_FLAG = 'qualifyReserveFlag';\r\nexport const TEE_START_POSITION = 'teeStartPosition';\r\nexport const CLUB_NAME = 'clubName';\r\nexport const FQ_HOLE = 'fqHole';\r\nexport const RQ_HOLE = 'rqHole';\r\nexport const R1 = 'r1';\r\nexport const R2 = 'r2';\r\nexport const ROUND_ONE = '1';\r\nexport const ROUND_TWO = '2';\r\nexport const TOTAL = 'total';\r\nexport const IN = 'in';\r\nexport const SCORE = 'score';\r\nexport const TODAY = 'today';\r\nexport const QUALIFIED_STATUS = 'qualifiedStatus';\r\nexport const TENTH_HOLE = 10;\r\n","import { format } from 'date-fns';\r\n\r\nexport const getPlayerRoundById = (player, id) => {\r\n if (!player || !Array.isArray(player.rounds)) return null;\r\n\r\n const foundRound = player.rounds.find((round) => round.roundNo.toString() === id);\r\n\r\n return foundRound || null;\r\n};\r\n\r\nexport const getPlayerTeeTimeByRoundId = (player, id) => {\r\n if (!player || !Array.isArray(player.teeTimes)) return null;\r\n\r\n const teeTime = player.teeTimes.find((p) => p.roundNo.toString() === id);\r\n\r\n return teeTime ? teeTime.teeTime : null;\r\n};\r\n\r\nexport const renderStartHoleByRoundId = (player, id) => {\r\n if (!player || !Array.isArray(player.teeTimes)) return null;\r\n\r\n let holesPlayed = 0;\r\n if (Array.isArray(player.rounds) && player.rounds[id - 1]) {\r\n holesPlayed = player.rounds[id - 1].holesNoPlayed;\r\n }\r\n\r\n const teeTime = player.teeTimes.find((p) => p.roundNo.toString() === id);\r\n\r\n if (teeTime && teeTime.isStartingFromTenthHole && holesPlayed === 0) return '*';\r\n return '';\r\n};\r\n\r\nexport const getRoundParsById = (roundPars, id) => {\r\n if (!Array.isArray(roundPars)) return null;\r\n\r\n const foundRound = roundPars.find((round) => round.roundId.toString() === id);\r\n\r\n return foundRound || null;\r\n};\r\n\r\nexport const getPlayerFormattedTeeTimeByRound = (player, roundId) => {\r\n const teeTime = getPlayerTeeTimeByRoundId(player, roundId);\r\n let holesPlayed = 0;\r\n let roundToPar = '';\r\n\r\n if (player && player.rounds[roundId - 1]) {\r\n holesPlayed = player.rounds[roundId - 1].holesNoPlayed;\r\n roundToPar = player.rounds[roundId - 1].roundToPar;\r\n }\r\n\r\n if (holesPlayed > 0) {\r\n if (roundToPar === 'Par') {\r\n return 'E';\r\n }\r\n\r\n const parsedInt = parseInt(roundToPar, 10);\r\n\r\n if (parsedInt > 0) {\r\n roundToPar = `+${parsedInt}`;\r\n }\r\n\r\n return roundToPar;\r\n }\r\n\r\n return teeTime !== null ? format(teeTime.replace('Z', ''), 'h:mm a') : '-';\r\n};\r\n\r\nexport const renderQualifiedStatus = (data) => {\r\n const q = data.qualifiedStatus;\r\n const res = data.reservedStatusNumber;\r\n\r\n if (q == null || q === 'NQ') return '';\r\n\r\n if (q === 'R' || q === 'RES') {\r\n return `RES ${res}`;\r\n }\r\n\r\n return `${q}`;\r\n};\r\n\r\nexport const renderToPar = (toPar) => {\r\n if (!toPar) return '-';\r\n if (toPar === 0 || toPar === 'Par') return 'E';\r\n\r\n return toPar;\r\n};\r\n\r\nexport const renderRoundToPar = (toPar) => {\r\n if (!toPar) return '-';\r\n if (toPar === 0 || toPar === 'Par') return 'E';\r\n if (toPar > 0) return `+${toPar}`;\r\n\r\n return toPar;\r\n};\r\n","import React from 'react';\r\nimport { CountryFlag } from 'project/country-flag';\r\nimport FavoritePlayerButton from 'components/favorite-player-button';\r\nimport {\r\n QUALIFY_RESERVE_FLAG,\r\n TEE_START_POSITION,\r\n CLUB_NAME,\r\n FQ_HOLE,\r\n RQ_HOLE,\r\n R1,\r\n R2,\r\n TOTAL,\r\n IN,\r\n SCORE,\r\n TODAY,\r\n QUALIFIED_STATUS\r\n} from './qual-leaderboard-const';\r\nimport { renderQualifiedStatus, renderToPar } from './helpers/roundHelper';\r\n\r\nconst QualLeaderboardPlayerRow = (props) => {\r\n const {\r\n renderField,\r\n player,\r\n renderPlayerPar,\r\n renderColorState,\r\n isFavorite,\r\n } = props;\r\n\r\n const favouriteTheme = {};\r\n if (isFavorite) {\r\n favouriteTheme.isWhite = true;\r\n } else {\r\n favouriteTheme.isDark = true;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n {player.position ? player.position.text : '-'}
    \r\n \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {player.lastName.toUpperCase()}, {player.firstName} {player.playerStatus === 0 && '(a)'}\r\n
    \r\n
    {player.clubName}
    \r\n {renderQualifiedStatus(player)}
    \r\n
    \r\n
    \r\n \r\n {renderField(QUALIFY_RESERVE_FLAG, false, player)}\r\n {renderField(CLUB_NAME, false, player)}\r\n {renderField(TEE_START_POSITION, false, player)}\r\n {renderField(QUALIFIED_STATUS, false, player)}\r\n
    \r\n
    \r\n
    \r\n {renderToPar(player.toPar)}\r\n
    \r\n
    \r\n
    \r\n {renderPlayerPar(player)}\r\n {renderField(FQ_HOLE, false, player)}\r\n {renderField(R1, false, player)}\r\n {renderField(R2, false, player)}\r\n {renderField(TOTAL, false, player)}\r\n {renderField(RQ_HOLE, false, player)}\r\n {renderField(IN, false, player)}\r\n {renderField(SCORE, false, player)}\r\n {renderField(TODAY, false, player)}\r\n \r\n );\r\n};\r\n\r\nexport default QualLeaderboardPlayerRow;\r\n","export const renderColorState = (data, title) => {\r\n let property = null;\r\n\r\n switch (title) {\r\n case 'par':\r\n property = parseInt(data.toPar, 10);\r\n break;\r\n case 'today':\r\n property = parseInt(data, 10);\r\n break;\r\n default:\r\n return property;\r\n }\r\n\r\n if (property < 0) {\r\n return 'is-under';\r\n }\r\n\r\n if (\r\n property === 0 ||\r\n data === 'Par' ||\r\n data === 'E' ||\r\n (data && (data.toPar === 'Par' || data.toPar === 'E'))\r\n ) {\r\n return 'is-equal';\r\n }\r\n\r\n if (property > 0) {\r\n return 'is-over';\r\n }\r\n\r\n return 'is-equal';\r\n};\r\n\r\nexport const renderColorStateHoles = (holes) => {\r\n if (!holes.score) return false;\r\n\r\n let colorStateHoles = '';\r\n const par = holes.par;\r\n const score = holes.score;\r\n const res = score - par;\r\n\r\n if (res === -1) {\r\n colorStateHoles = 'is-under-par';\r\n return colorStateHoles;\r\n }\r\n\r\n if (res < -1) {\r\n colorStateHoles = 'is-more-under-par';\r\n return colorStateHoles;\r\n }\r\n\r\n if (res === 0) {\r\n colorStateHoles = 'is-equal';\r\n return colorStateHoles;\r\n }\r\n\r\n if (res > 0) {\r\n colorStateHoles = 'is-more-than-par';\r\n return colorStateHoles;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport const renderRoundColorState = (total, parSum) => {\r\n let property = null;\r\n let colorStateToPar = '';\r\n property = parseInt(total, 10);\r\n\r\n if (property < parSum) {\r\n colorStateToPar = 'is-under';\r\n return colorStateToPar;\r\n }\r\n\r\n if (property === parSum) {\r\n colorStateToPar = 'is-equal';\r\n return colorStateToPar;\r\n }\r\n\r\n if (property > parSum) {\r\n colorStateToPar = 'is-over';\r\n return colorStateToPar;\r\n }\r\n\r\n return colorStateToPar;\r\n};\r\n\r\nexport const renderTotalColorState = (total, parSum1, parSum2) => {\r\n let property = null;\r\n let parSum = null;\r\n let colorStateToPar = '';\r\n property = parseInt(total, 10);\r\n parSum = parSum1 + parSum2;\r\n\r\n if (property < parSum) {\r\n colorStateToPar = 'is-under';\r\n return colorStateToPar;\r\n }\r\n\r\n if (property === parSum) {\r\n colorStateToPar = 'is-equal';\r\n return colorStateToPar;\r\n }\r\n\r\n if (property > parSum) {\r\n colorStateToPar = 'is-over';\r\n return colorStateToPar;\r\n }\r\n\r\n return colorStateToPar;\r\n};\r\n","export const qualificationTypes = Object.freeze({\r\n REGIONAL: 'Regional',\r\n FINAL: 'Final',\r\n REGIONAL_WO: 'RegionalWO',\r\n FINAL_WO: 'FinalWO'\r\n});\r\n\r\nexport const cellTypes = Object.freeze({\r\n POSITION: 'pos',\r\n MOVERS: 'movers',\r\n NATIONALITY: 'nationality',\r\n PLAYER: 'player',\r\n PAR: 'par',\r\n HOLE: 'hole',\r\n TOTAL: 'total',\r\n TODAY: 'today',\r\n R1: 'r1',\r\n R1_SCORE: 'r1Score',\r\n R1_OUT: 'r1Out',\r\n R1_IN: 'r1In',\r\n R1_TO_PAR: 'r1ToPar',\r\n R2: 'r2',\r\n R2_SCORE: 'r2Score',\r\n R2_OUT: 'r2Out',\r\n R2_IN: 'r2In',\r\n R2_TO_PAR: 'r2ToPar'\r\n});\r\n\r\nexport const getCellModifierByType = (type) => {\r\n switch (type) {\r\n case cellTypes.R1_IN:\r\n case cellTypes.R2_IN:\r\n return 'in';\r\n case cellTypes.R1_OUT:\r\n case cellTypes.R2_OUT:\r\n return 'out';\r\n case cellTypes.R1_TO_PAR:\r\n case cellTypes.R2_TO_PAR:\r\n return 'today';\r\n case cellTypes.R1_SCORE:\r\n case cellTypes.R2_SCORE:\r\n return 'total';\r\n default:\r\n return type;\r\n }\r\n};\r\n\r\nexport const getTitleByType = (type) => {\r\n switch (type) {\r\n case cellTypes.PAR:\r\n return 'to par';\r\n case cellTypes.TOTAL:\r\n return 'total';\r\n case cellTypes.HOLE:\r\n return 'holes';\r\n case cellTypes.R1_IN:\r\n case cellTypes.R2_IN:\r\n return 'in';\r\n case cellTypes.R1_OUT:\r\n case cellTypes.R2_OUT:\r\n return 'out';\r\n case cellTypes.R1_TO_PAR:\r\n case cellTypes.R2_TO_PAR:\r\n return 'rnd par';\r\n case cellTypes.R1_SCORE:\r\n case cellTypes.R2_SCORE:\r\n return 'rnd score';\r\n default:\r\n return type;\r\n }\r\n};\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { getCellModifierByType, getTitleByType } from './enums';\r\nimport app,\r\n{\r\n DEVICE_TYPE_TABLET,\r\n DEVICE_TYPE_MOBILE,\r\n DEVICE_TYPE_MOBILE_WIDE,\r\n} from 'general/js/app';\r\n\r\nconst QualLeaderboardRowTitle = (\r\n {\r\n type,\r\n sortingHandler,\r\n processingState,\r\n inOutTotal\r\n }\r\n) => {\r\n const isActive = processingState.sortingType === type;\r\n const stateCss = classNames({\r\n 'is-active': isActive,\r\n 'is-top': isActive && processingState.isSortingAscending\r\n });\r\n\r\n const modifier = getCellModifierByType(type);\r\n const title = getTitleByType(type);\r\n function getNationalityTitle(title) {\r\n if (title == 'nationality') {\r\n return 'nat';\r\n }\r\n return title;\r\n }\r\n\r\n return (\r\n \r\n sortingHandler(type)}\r\n >\r\n
    {getNationalityTitle(title)}
    \r\n {(modifier === 'in' || modifier === 'out' || modifier === 'total') && (\r\n
    {inOutTotal}
    \r\n )}\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    {getNationalityTitle(title)}
    \r\n \r\n );\r\n};\r\n\r\nexport default QualLeaderboardRowTitle;\r\n","import { DEFAULT_VIEW, HOLES_VIEW } from '../qual-leaderboard-const';\r\n\r\nexport const renderClassName = ({\r\n className, view, r1, r2, qualifyReserveFlag, teeStartPosition\r\n}) => {\r\n let classNameTable = className || 'qual-leaderboard__table';\r\n\r\n if (view === DEFAULT_VIEW) {\r\n if (r1 && r2) {\r\n classNameTable = `${classNameTable}--r`;\r\n return classNameTable;\r\n }\r\n\r\n if (teeStartPosition && !qualifyReserveFlag) {\r\n classNameTable = `${classNameTable}--during`;\r\n return classNameTable;\r\n }\r\n\r\n if (teeStartPosition && qualifyReserveFlag) {\r\n classNameTable = `${classNameTable}--post`;\r\n return classNameTable;\r\n }\r\n }\r\n\r\n if (view === HOLES_VIEW) {\r\n classNameTable = `${classNameTable}--holebyhole`;\r\n return classNameTable;\r\n }\r\n\r\n return '';\r\n};\r\n","/* eslint-disable no-shadow */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { favoritePlayerService } from 'general/js/services';\r\nimport QualLeaderboardPlayerRow from './qual-leaderboard-player-row';\r\nimport {\r\n renderColorState, renderColorStateHoles, renderRoundColorState\r\n} from './actions/render-color-state';\r\n\r\nimport {\r\n DEFAULT_VIEW,\r\n HOLES_VIEW,\r\n QUALIFY_RESERVE_FLAG,\r\n TEE_START_POSITION,\r\n CLUB_NAME,\r\n FQ_HOLE,\r\n RQ_HOLE,\r\n R1,\r\n R2,\r\n ROUND_ONE,\r\n ROUND_TWO,\r\n TOTAL,\r\n IN,\r\n SCORE,\r\n TODAY,\r\n QUALIFIED_STATUS\r\n} from './qual-leaderboard-const';\r\nimport { cellTypes, qualificationTypes } from './enums';\r\nimport QualLeaderboardRowTitle from './qual-leaderboard-row-title';\r\nimport {\r\n getPlayerFormattedTeeTimeByRound, getPlayerRoundById, getRoundParsById, renderRoundToPar, renderStartHoleByRoundId\r\n} from './helpers/roundHelper';\r\nimport { renderClassName } from './helpers/utils';\r\nimport {\r\n clubNameView, fqHoleView,\r\n qualifiedReserveFlagView, qualifiedStatusView, rqHoleView, teeStartPositionView, totalViewField\r\n} from './helpers/viewHelper';\r\n\r\nconst QualLeaderboardTable = (props) => {\r\n const tableWrapper = React.createRef();\r\n const arrowLeftRef = React.createRef();\r\n const arrowRightRef = React.createRef();\r\n const view = props.view;\r\n const processingState = props.processingState;\r\n const sortingHandler = props.sortingHandler;\r\n const players = props.players;\r\n let lastScroll = 0;\r\n let qualifyReserveFlag = false;\r\n let teeStartPosition = false;\r\n let r1 = false;\r\n let r2 = false;\r\n let qualifiedStatus = false;\r\n let finalQualificationHole = false;\r\n\r\n const initState = () => {\r\n if (view === DEFAULT_VIEW && props.options.type === qualificationTypes.FINAL) {\r\n r1 = true;\r\n r2 = true;\r\n finalQualificationHole = true;\r\n }\r\n\r\n players.forEach((player) => {\r\n if (view === DEFAULT_VIEW) {\r\n if (player[TEE_START_POSITION] && player[TEE_START_POSITION] !== '') {\r\n teeStartPosition = true;\r\n }\r\n\r\n if (player[QUALIFY_RESERVE_FLAG]) {\r\n qualifyReserveFlag = true;\r\n }\r\n\r\n if (player[QUALIFIED_STATUS]) {\r\n qualifiedStatus = true;\r\n }\r\n }\r\n });\r\n };\r\n\r\n const classNameProps = {\r\n view,\r\n r1,\r\n r2,\r\n qualifyReserveFlag,\r\n teeStartPosition\r\n };\r\n\r\n const renderRoundField = (title, player, roundId) => {\r\n if (title) {\r\n return (\r\n \r\n {roundId === ROUND_ONE && renderSortableField(cellTypes.R1, sortingHandler)}\r\n {roundId === ROUND_TWO && renderSortableField(cellTypes.R2, sortingHandler)}\r\n \r\n );\r\n }\r\n\r\n const playerRound = getPlayerRoundById(player, roundId);\r\n let contentText = '-';\r\n let totalColorState = '';\r\n\r\n if (playerRound && playerRound.total) {\r\n contentText = playerRound.total;\r\n }\r\n\r\n if (playerRound && playerRound.total && playerRound.parSum) {\r\n totalColorState = renderRoundColorState(playerRound.total, playerRound.parSum);\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {contentText !== '-' ? contentText : `${getPlayerFormattedTeeTimeByRound(player, roundId)} ${renderStartHoleByRoundId(player, roundId)}`}\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const renderSortableField = (type, sortingHandler, inOutTotal) => {\r\n return (\r\n \r\n );\r\n };\r\n\r\n const renderField = (field, title, player) => {\r\n field = field || '';\r\n title = title || false;\r\n const playerRound = getPlayerRoundById(player, props.selectedRoundId);\r\n const roundPars = getRoundParsById(props.location.roundPars, props.selectedRoundId);\r\n\r\n if (view === DEFAULT_VIEW) {\r\n if (field === CLUB_NAME) {\r\n return clubNameView(title, player);\r\n }\r\n\r\n if (field === TOTAL) {\r\n return totalViewField(title, player);\r\n }\r\n\r\n if (qualifyReserveFlag && field === QUALIFY_RESERVE_FLAG && !r1) {\r\n return qualifiedReserveFlagView(title, player);\r\n }\r\n\r\n if (qualifiedStatus && field === QUALIFIED_STATUS) {\r\n return qualifiedStatusView(title, player);\r\n }\r\n\r\n if (teeStartPosition && field === TEE_START_POSITION && !r1) {\r\n return teeStartPositionView(title, player);\r\n }\r\n\r\n if (finalQualificationHole && field === FQ_HOLE) {\r\n return fqHoleView(title, player);\r\n }\r\n\r\n if (!finalQualificationHole && field === RQ_HOLE) {\r\n return rqHoleView(title, player);\r\n }\r\n\r\n if (r1 && field === R1) {\r\n return renderRoundField(title, player, ROUND_ONE);\r\n }\r\n\r\n if (r2 && field === R2) {\r\n return renderRoundField(title, player, ROUND_TWO);\r\n }\r\n }\r\n\r\n if (view === HOLES_VIEW) {\r\n if (field === IN) {\r\n if (title) {\r\n return (\r\n \r\n {props.selectedRoundId === ROUND_ONE && renderSortableField(cellTypes.R1_IN, sortingHandler, roundPars && roundPars.inTotal)}\r\n {props.selectedRoundId === ROUND_TWO && renderSortableField(cellTypes.R2_IN, sortingHandler, roundPars && roundPars.inTotal)}\r\n \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n
    {playerRound && playerRound.in}
    \r\n
    \r\n );\r\n }\r\n\r\n if (field === SCORE) {\r\n if (title) {\r\n return (\r\n \r\n {props.selectedRoundId === ROUND_ONE && renderSortableField(cellTypes.R1_SCORE, sortingHandler, roundPars && roundPars.parSum)}\r\n {props.selectedRoundId === ROUND_TWO && renderSortableField(cellTypes.R2_SCORE, sortingHandler, roundPars && roundPars.parSum)}\r\n \r\n );\r\n }\r\n return (\r\n
    \r\n
    {playerRound && playerRound.total}
    \r\n
    \r\n );\r\n }\r\n\r\n if (field === TODAY) {\r\n if (title) {\r\n return (\r\n \r\n {props.selectedRoundId === ROUND_ONE && renderSortableField(cellTypes.R1_TO_PAR, sortingHandler)}\r\n {props.selectedRoundId === ROUND_TWO && renderSortableField(cellTypes.R2_TO_PAR, sortingHandler)}\r\n \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n {renderRoundToPar(playerRound.roundToPar)}\r\n
    \r\n
    \r\n \r\n );\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n\r\n const createHolesField = () => {\r\n if (view === HOLES_VIEW) {\r\n const roundPars = getRoundParsById(props.location.roundPars, props.selectedRoundId);\r\n\r\n if (!roundPars || !Array.isArray(roundPars.holePars)) return null;\r\n\r\n return roundPars.holePars.map((hole, index) => {\r\n return (\r\n \r\n {\r\n index === 9 && (\r\n \r\n {props.selectedRoundId === ROUND_ONE && renderSortableField(cellTypes.R1_OUT, sortingHandler, roundPars && roundPars.outTotal)}\r\n {props.selectedRoundId === ROUND_TWO && renderSortableField(cellTypes.R2_OUT, sortingHandler, roundPars && roundPars.outTotal)}\r\n \r\n )\r\n }\r\n \r\n
    \r\n
    {hole.holeNo}
    \r\n
    {hole.par ? hole.par : '-'}
    \r\n
    \r\n \r\n
    \r\n );\r\n });\r\n }\r\n\r\n return null;\r\n };\r\n\r\n const getScoreByItemHole = (hole) => {\r\n return hole.score || '-';\r\n };\r\n\r\n const renderPlayerPar = (player) => {\r\n if (view === HOLES_VIEW) {\r\n const playerRound = getPlayerRoundById(player, props.selectedRoundId);\r\n\r\n //TODO: not stable, should go through locations round pars\r\n if (!playerRound || !Array.isArray(playerRound.holes)) return null;\r\n\r\n return playerRound.holes.map((hole, index) => {\r\n return (\r\n \r\n {\r\n index === 9 && (\r\n \r\n
    {playerRound.out}
    \r\n \r\n )\r\n }\r\n \r\n {getScoreByItemHole(hole)}\r\n \r\n
    \r\n );\r\n });\r\n }\r\n\r\n return null;\r\n };\r\n\r\n const onScrollLeftElement = (event) => {\r\n const scrollLeft = event.target.scrollLeft;\r\n const scrollWidth = event.target.scrollWidth;\r\n const offsetWidth = event.target.offsetWidth;\r\n\r\n if (scrollLeft === scrollWidth - offsetWidth) {\r\n arrowRightRef.current.classList.add('is-animation');\r\n tableWrapper.current.classList.add('is-animation');\r\n } else if (scrollLeft === 0) {\r\n arrowLeftRef.current.classList.remove('is-animation');\r\n } else if (scrollLeft > lastScroll) {\r\n arrowLeftRef.current.classList.add('is-animation');\r\n } else if (scrollLeft < lastScroll) {\r\n arrowRightRef.current.classList.remove('is-animation');\r\n tableWrapper.current.classList.remove('is-animation');\r\n }\r\n\r\n lastScroll = event.target.scrollLeft;\r\n };\r\n\r\n initState();\r\n\r\n\r\n return (\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n {renderSortableField(cellTypes.POSITION, sortingHandler)}\r\n {renderSortableField(cellTypes.NATIONALITY, sortingHandler)}\r\n {renderSortableField(cellTypes.PLAYER, sortingHandler)}\r\n\r\n {renderField(QUALIFY_RESERVE_FLAG, true)}\r\n {renderField(CLUB_NAME, true)}\r\n {renderField(QUALIFIED_STATUS, true)}\r\n {renderField(TEE_START_POSITION, true)}\r\n\r\n {renderSortableField(cellTypes.PAR, sortingHandler)}\r\n {createHolesField()}\r\n {view === DEFAULT_VIEW && finalQualificationHole && renderSortableField(cellTypes.HOLE, sortingHandler)}\r\n {r1 && renderSortableField(cellTypes.R1, sortingHandler)}\r\n {r2 && renderSortableField(cellTypes.R2, sortingHandler)}\r\n {view === DEFAULT_VIEW && renderSortableField(cellTypes.TOTAL, sortingHandler)}\r\n {view === DEFAULT_VIEW && !finalQualificationHole && renderSortableField(cellTypes.HOLE, sortingHandler)}\r\n {renderField(IN, true)}\r\n {renderField(SCORE, true)}\r\n {renderField(TODAY, true)}\r\n
    \r\n
    \r\n {\r\n players.map((player) => {\r\n const playerRound = getPlayerRoundById(player, props.selectedRoundId);\r\n const isFavorite = favoritePlayerService.isFavourite(player.entryId);\r\n\r\n if (!playerRound) return null;\r\n return ();\r\n })\r\n }\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nQualLeaderboardTable.propTypes = {\r\n options: PropTypes.object,\r\n location: PropTypes.object,\r\n selectedRoundId: PropTypes.string,\r\n view: PropTypes.string.isRequired\r\n};\r\n\r\nexport default QualLeaderboardTable;\r\n","import React from 'react';\r\nimport { renderTotalColorState } from '../actions/render-color-state';\r\nimport { ROUND_ONE, TENTH_HOLE } from '../qual-leaderboard-const';\r\nimport { getPlayerFormattedTeeTimeByRound, renderQualifiedStatus } from './roundHelper';\r\n\r\nexport const clubNameView = (title, player) => {\r\n if (title) {\r\n return (\r\n \r\n
    club/attachment
    \r\n
    attachment
    \r\n \r\n );\r\n }\r\n return (\r\n
    \r\n
    {player.clubName}
    \r\n
    \r\n );\r\n};\r\n\r\nexport const totalViewField = (title, player) => {\r\n if (title) {\r\n return (\r\n \r\n
    score
    \r\n \r\n );\r\n }\r\n\r\n let totalColorState = '';\r\n\r\n if (player.total && player.rounds[0] && player.rounds[1]) {\r\n totalColorState = renderTotalColorState(player.total, player.rounds[0].parSum, player.rounds[1].parSum);\r\n }\r\n\r\n return (\r\n
    \r\n
    {player.total ? player.total : '-'}
    \r\n
    \r\n );\r\n};\r\n\r\n\r\nexport const qualifiedReserveFlagView = (title, player) => {\r\n if (title) {\r\n return (\r\n \r\n
    \r\n \r\n );\r\n }\r\n return (\r\n
    \r\n
    {player.qualifyReserveFlag}
    \r\n
    \r\n );\r\n};\r\n\r\nexport const qualifiedStatusView = (title, player) => {\r\n if (title) {\r\n return (\r\n \r\n
    \r\n \r\n );\r\n }\r\n return (\r\n
    \r\n
    {renderQualifiedStatus(player)}
    \r\n
    \r\n );\r\n};\r\n\r\nexport const teeStartPositionView = (title, player) => {\r\n if (title) {\r\n return (\r\n \r\n
    \r\n \r\n );\r\n }\r\n return (\r\n
    \r\n
    {player.teeStartPosition}
    \r\n
    \r\n );\r\n};\r\n\r\nexport const fqHoleView = (title, player) => {\r\n if (title) {\r\n return (\r\n \r\n
    holes
    \r\n \r\n );\r\n }\r\n return (\r\n
    \r\n
    {player.hole}
    \r\n
    \r\n );\r\n};\r\n\r\nconst showFormattedTeeTime = (player) => {\r\n if (player && player.isPlaying) {\r\n const teeTime = getPlayerFormattedTeeTimeByRound(player, ROUND_ONE);\r\n\r\n return teeTime + ` ${player.startingHole === TENTH_HOLE ? '*' : ''}`;\r\n }\r\n\r\n return '-';\r\n};\r\n\r\nexport const rqHoleView = (title, player) => {\r\n if (title) {\r\n return (\r\n \r\n
    holes
    \r\n \r\n );\r\n }\r\n\r\n if (player.hole && player.hole !== '-' && player.hole !== '-*') {\r\n return (\r\n
    \r\n
    {player.hole}
    \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {showFormattedTeeTime(player)}\r\n
    \r\n
    \r\n );\r\n};\r\n","import React from 'react';\r\n\r\nconst QualLeaderboardArticle = (props) => {\r\n if (!props.location || !props.location.competitionStatus) return null;\r\n\r\n return (\r\n

    \r\n );\r\n};\r\n\r\nexport default QualLeaderboardArticle;\r\n","import get from 'lodash/get';\r\nimport has from 'lodash/has';\r\nimport { cellTypes } from './enums';\r\n\r\nconst sortAsc = (players, property, checkRule) => {\r\n return [...players].sort((a, b) => {\r\n if (property !== 'position.value') {\r\n const compareCutResult = compareByCut(a, b);\r\n\r\n if (compareCutResult !== 0) {\r\n return compareCutResult;\r\n }\r\n }\r\n\r\n let aVal = '';\r\n let bVal = '';\r\n if (has(a, property)) {\r\n const aPropValue = get(a, property);\r\n if (checkRule !== null && checkRule !== undefined) {\r\n aVal = checkRule(aPropValue);\r\n } else {\r\n aVal = parseInt(aPropValue, 10);\r\n }\r\n }\r\n if (has(b, property)) {\r\n const bPropValue = get(b, property);\r\n if (checkRule !== null && checkRule !== undefined) {\r\n bVal = checkRule(bPropValue);\r\n } else {\r\n bVal = parseInt(bPropValue, 10);\r\n }\r\n }\r\n\r\n return aVal - bVal;\r\n });\r\n};\r\n\r\nconst sortDesc = (players, property, checkRule) => {\r\n return [...players].sort((a, b) => {\r\n if (property !== 'position.value') {\r\n const compareCutResult = compareByCut(a, b);\r\n\r\n if (compareCutResult !== 0) {\r\n return compareCutResult;\r\n }\r\n }\r\n\r\n let aVal = '';\r\n let bVal = '';\r\n if (has(a, property)) {\r\n const aPropValue = get(a, property);\r\n if (checkRule !== null && checkRule !== undefined) {\r\n aVal = checkRule(aPropValue);\r\n } else {\r\n aVal = parseInt(aPropValue, 10);\r\n }\r\n }\r\n if (has(b, property)) {\r\n const bPropValue = get(b, property);\r\n if (checkRule !== null && checkRule !== undefined) {\r\n bVal = checkRule(bPropValue);\r\n } else {\r\n bVal = parseInt(bPropValue, 10);\r\n }\r\n }\r\n\r\n return bVal - aVal;\r\n });\r\n};\r\n\r\nexport const sortAscAZ = (players, property) => {\r\n return [...players].sort((a, b) => {\r\n if (property !== 'position.value') {\r\n const compareCutResult = compareByCut(a, b);\r\n\r\n if (compareCutResult !== 0) {\r\n return compareCutResult;\r\n }\r\n }\r\n\r\n let aVal = 'z';\r\n let bVal = 'z';\r\n if (has(a, property)) {\r\n aVal = get(a, property);\r\n }\r\n if (has(b, property)) {\r\n bVal = get(b, property);\r\n }\r\n return aVal.toLowerCase() > bVal.toLowerCase() ? 1 : -1;\r\n });\r\n};\r\n\r\nconst sortDescAZ = (players, property) => {\r\n return [...players].sort((a, b) => {\r\n if (property !== 'position.value') {\r\n const compareCutResult = compareByCut(a, b);\r\n\r\n if (compareCutResult !== 0) {\r\n return compareCutResult;\r\n }\r\n }\r\n\r\n let aVal = '';\r\n let bVal = '';\r\n if (has(a, property)) {\r\n aVal = get(a, property);\r\n }\r\n if (has(b, property)) {\r\n bVal = get(b, property);\r\n }\r\n return bVal.toLowerCase() > aVal.toLowerCase() ? 1 : -1;\r\n });\r\n};\r\n\r\nfunction compareByCut(playerA, playerB) {\r\n const cutProperty = 'position.text';\r\n let aCutVal = 'z';\r\n let bCutVal = 'z';\r\n\r\n if (has(playerA, cutProperty)) {\r\n aCutVal = get(playerA, cutProperty);\r\n }\r\n if (has(playerB, cutProperty)) {\r\n bCutVal = get(playerB, cutProperty);\r\n }\r\n\r\n if (aCutVal == null || bCutVal == null) {\r\n return 0;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'unknown');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'rtd');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'mcdnp');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'dqc');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'wdc');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'dns');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'dq');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'wd');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'mc');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'nr');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'ns');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'hcp');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n let statusCompare = compareByStatus(aCutVal, bCutVal, 'cut');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n return 0;\r\n}\r\n\r\nfunction compareByStatus(playerAStatus, playerBStatus, status) {\r\n if (playerAStatus.toLowerCase() === status && playerBStatus.toLowerCase() !== status) {\r\n return 1;\r\n }\r\n\r\n if (playerAStatus.toLowerCase() !== status && playerBStatus.toLowerCase() === status) {\r\n return -1;\r\n }\r\n\r\n return 0;\r\n}\r\n\r\nexport const qualSortingStrategies = {\r\n [cellTypes.POSITION]: {\r\n filteringFunc: (players, isAsc) => {\r\n return isAsc ?\r\n sortAsc(players, 'position.value') :\r\n sortDesc(players, 'position.value');\r\n }\r\n },\r\n [cellTypes.PLAYER]: {\r\n filteringFunc: (players, isAsc) => {\r\n return isAsc ?\r\n sortAscAZ(players, 'lastName') :\r\n sortDescAZ(players, 'lastName');\r\n }\r\n },\r\n [cellTypes.NATIONALITY]: {\r\n filteringFunc: (players, isAsc) => {\r\n return isAsc ?\r\n sortAscAZ(players, 'nationality') :\r\n sortDescAZ(players, 'nationality');\r\n }\r\n },\r\n [cellTypes.PAR]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n // make toParworse to move in the end\r\n if (!val || val.toUpperCase() === 'WD') return 1000;\r\n\r\n return val === 'E' || val.toLowerCase() === 'par' ? 0 : parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'toPar', checkRule) :\r\n sortDesc(players, 'toPar', checkRule);\r\n }\r\n },\r\n [cellTypes.HOLE]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') {\r\n return 0;\r\n }\r\n\r\n return val === 'F' ? 19 : parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'hole', checkRule) :\r\n sortDesc(players, 'hole', checkRule);\r\n }\r\n },\r\n [cellTypes.TOTAL]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 1000;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'total', checkRule) :\r\n sortDesc(players, 'total', checkRule);\r\n }\r\n },\r\n [cellTypes.TODAY]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n // make player par worse to move in the end\r\n if (!val || val === '-') return 1000;\r\n\r\n return val === 'E' || val.toLowerCase() === 'par' ? 0 : parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'today', checkRule) :\r\n sortDesc(players, 'today', checkRule);\r\n }\r\n },\r\n [cellTypes.R1]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'rounds[0].total', checkRule) :\r\n sortDesc(players, 'rounds[0].total', checkRule);\r\n }\r\n },\r\n [cellTypes.R1_SCORE]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'rounds[0].total', checkRule) :\r\n sortDesc(players, 'rounds[0].total', checkRule);\r\n }\r\n },\r\n [cellTypes.R1_OUT]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'rounds[0].out', checkRule) :\r\n sortDesc(players, 'rounds[0].out', checkRule);\r\n }\r\n },\r\n [cellTypes.R1_IN]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'rounds[0].in', checkRule) :\r\n sortDesc(players, 'rounds[0].in', checkRule);\r\n }\r\n },\r\n [cellTypes.R1_TO_PAR]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n // make toParworse to move in the end\r\n if (!val || val.toUpperCase() === 'WD') return 1000;\r\n\r\n return val === 'E' || val.toLowerCase() === 'par' ? 0 : parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'rounds[0].roundToPar', checkRule) :\r\n sortDesc(players, 'rounds[0].roundToPar', checkRule);\r\n }\r\n },\r\n [cellTypes.R2]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'rounds[1].total', checkRule) :\r\n sortDesc(players, 'rounds[1].total', checkRule);\r\n }\r\n },\r\n [cellTypes.R2_SCORE]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'rounds[1].total', checkRule) :\r\n sortDesc(players, 'rounds[1].total', checkRule);\r\n }\r\n },\r\n [cellTypes.R2_OUT]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'rounds[1].out', checkRule) :\r\n sortDesc(players, 'rounds[1].out', checkRule);\r\n }\r\n },\r\n [cellTypes.R2_IN]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'rounds[1].in', checkRule) :\r\n sortDesc(players, 'rounds[1].in', checkRule);\r\n }\r\n },\r\n [cellTypes.R2_TO_PAR]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n // make toParworse to move in the end\r\n if (!val || val.toUpperCase() === 'WD') return 1000;\r\n\r\n return val === 'E' || val.toLowerCase() === 'par' ? 0 : parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'rounds[1].roundToPar', checkRule) :\r\n sortDesc(players, 'rounds[1].roundToPar', checkRule);\r\n }\r\n },\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { SpriteSvg } from 'project/sprite-svg';\r\nimport { LiveEventSelect } from 'components/live-event-select';\r\nimport { LazyImage } from 'project/lazy-image';\r\nimport { FLAG_IMAGE_PATH } from 'general/js/constants';\r\nimport {\r\n EVENT_FAVOURITE_PLAYER_SERVICE_ADD,\r\n EVENT_FAVOURITE_PLAYER_SERVICE_REMOVE\r\n} from 'general/js/services/favorite-player-services';\r\nimport { FavoriteButton } from 'components/favorite-button';\r\nimport eventBus from 'general/js/event-bus';\r\nimport { favoritePlayerService } from 'general/js/services';\r\nimport gtm from 'general/js/gtm';\r\nimport QualLeaderboardScoringInfo from './qual-leaderboard-scoring-info';\r\nimport QualLeaderboardTable from './qual-leaderboard-table';\r\nimport QualLeaderboardArticle from './qual-leaderboard-article';\r\nimport { cellTypes } from './enums';\r\nimport { qualSortingStrategies } from './qualSortingStrategies';\r\nimport {\r\n DEFAULT_VIEW,\r\n HOLES_VIEW\r\n} from './qual-leaderboard-const';\r\n\r\nclass QualLeaderboardContainer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const currentRound = props.location.currentRound && props.location.currentRound.toString();\r\n this.defaultRoundId = currentRound || '1';\r\n\r\n this.state = {\r\n view: DEFAULT_VIEW,\r\n round: this.defaultRoundId,\r\n scoringInfoClassName: false,\r\n sortingType: cellTypes.POSITION,\r\n isSortingAscending: true,\r\n favoritePlayerList: favoritePlayerService.getAll(),\r\n applyFavourite: false,\r\n };\r\n }\r\n\r\n\r\n componentDidMount() {\r\n eventBus.addListener(EVENT_FAVOURITE_PLAYER_SERVICE_ADD, this.renderFavoritePlayers);\r\n eventBus.addListener(EVENT_FAVOURITE_PLAYER_SERVICE_REMOVE, this.renderFavoritePlayers);\r\n }\r\n\r\n componentWillUnmount() {\r\n eventBus.removeListener(EVENT_FAVOURITE_PLAYER_SERVICE_ADD, this.renderFavoritePlayers);\r\n eventBus.removeListener(EVENT_FAVOURITE_PLAYER_SERVICE_REMOVE, this.renderFavoritePlayers);\r\n }\r\n\r\n\r\n renderFavoritePlayers = () => {\r\n this.setState({\r\n favoritePlayerList: favoritePlayerService.getAll()\r\n });\r\n }\r\n\r\n changeView = () => {\r\n if (this.state.view === DEFAULT_VIEW) {\r\n this.setState({ view: HOLES_VIEW });\r\n } else {\r\n this.setState({ view: DEFAULT_VIEW, round: this.defaultRoundId });\r\n }\r\n }\r\n\r\n renderClassName = () => {\r\n if (this.state.view === HOLES_VIEW) {\r\n return 'is-holes-view';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n getChoices = () => {\r\n const roundChoices = [\r\n { label: 'Round 1', value: '1', selected: false },\r\n { label: 'Round 2', value: '2', selected: false }\r\n ];\r\n\r\n roundChoices.forEach((choice) => {\r\n choice.selected = choice.value === this.state.round.toString();\r\n });\r\n\r\n return roundChoices;\r\n }\r\n\r\n handleChangeSelect = (value) => {\r\n this.setState({ round: value });\r\n }\r\n\r\n renderSelectControl = () => {\r\n if (this.state.view === HOLES_VIEW && this.props.location.rndAvailable === 2) {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n return null;\r\n };\r\n\r\n showScoringInfoContent = () => {\r\n this.setState({ scoringInfoClassName: !this.state.scoringInfoClassName });\r\n };\r\n\r\n sortStateInit = (playersData) => {\r\n const currentStrategy = qualSortingStrategies[this.state.sortingType];\r\n return currentStrategy.filteringFunc(playersData, this.state.isSortingAscending);\r\n };\r\n\r\n sortingHandler = (type) => {\r\n let isSortingAscending = this.state.isSortingAscending;\r\n\r\n if (this.state.sortingType === type) {\r\n isSortingAscending = !isSortingAscending;\r\n } else {\r\n isSortingAscending = true;\r\n }\r\n\r\n this.setState({\r\n sortingType: type,\r\n isSortingAscending\r\n });\r\n };\r\n\r\n toggleFilterByFavourite = () => {\r\n if (!this.state.applyFavourite) {\r\n gtm.push('Leaderboard', 'Favourites', 'Select Favourites');\r\n }\r\n this.setState({ applyFavourite: !this.state.applyFavourite });\r\n }\r\n\r\n filterByFavorite = (playersData) => {\r\n return playersData.filter((player) =>\r\n favoritePlayerService.isFavourite(player.entryId.toString()));\r\n }\r\n\r\n processData(players) {\r\n const { applyFavourite } = this.state;\r\n let processedPlayers = players;\r\n\r\n if (applyFavourite) {\r\n processedPlayers = this.filterByFavorite(processedPlayers);\r\n }\r\n\r\n processedPlayers = this.sortStateInit(processedPlayers);\r\n\r\n return processedPlayers;\r\n }\r\n\r\n render() {\r\n const players = this.processData(this.props.location.players);\r\n\r\n return (\r\n \r\n {\r\n this.props.location.competitionStatus &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n {this.renderSelectControl()}\r\n
    \r\n {\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    hole by hole
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n this.sortingHandler(type)}\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nQualLeaderboardContainer.propTypes = {\r\n options: PropTypes.object,\r\n location: PropTypes.object,\r\n};\r\n\r\nexport default QualLeaderboardContainer;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport ScoringLoader from 'general/js/loaders/scoring-loader';\r\nimport { BlockPlaceholder } from 'components/block-placeholder';\r\nimport { BlockSpinner } from 'components/block-spinner';\r\nimport { bemClasses, LivePreMessage } from 'components/live-pre-message';\r\nimport QualLeaderboardContainer from './qual-leaderboard-container';\r\n\r\nclass QualLeaderboardLayout extends React.Component {\r\n componentDidMount() {\r\n ScoringLoader.subscribe(`summary${this.props.options.type}`);\r\n }\r\n\r\n componentWillUnmount() {\r\n ScoringLoader.unsubscribe(`summary${this.props.options.type}`);\r\n }\r\n\r\n getLocationById(id) {\r\n const { scoringSummary } = this.props;\r\n\r\n if (!scoringSummary || !Array.isArray(scoringSummary.locations)) return null;\r\n\r\n const location = scoringSummary.locations.find((item) =>\r\n item.locationId === id);\r\n\r\n return location || null;\r\n }\r\n\r\n\r\n render() {\r\n const { scoringSummary } = this.props;\r\n\r\n if (scoringSummary === undefined) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n const location = this.getLocationById(this.props.options.locationId);\r\n\r\n if (!location || !Array.isArray(location.players)) {\r\n return ;\r\n }\r\n\r\n return ;\r\n }\r\n}\r\n\r\nQualLeaderboardLayout.propTypes = {\r\n options: PropTypes.object\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n scoringSummary: state.scoring[`summary${ownProps.options.type}`]\r\n});\r\n\r\nconst QualLeaderboardLayoutWrapper = connect(\r\n mapStateToProps\r\n)(QualLeaderboardLayout);\r\n\r\nexport default QualLeaderboardLayoutWrapper;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport store from 'general/js/store';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport QualLeaderboardLayout from './qual-leaderboard-layout';\r\n\r\nclass QualLeaderboardComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['container'];\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.refs.container);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.refs.container\r\n );\r\n }\r\n}\r\n\r\nexport default QualLeaderboardComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport QualLeaderboardComponent from './js/qual-leaderboard.component';\r\n\r\nComponentsFactory.getInstance().define('qual-leaderboard', QualLeaderboardComponent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { SchemaOrg } from 'project/schema-org';\r\n\r\nexport default class QualifiedPlayerCard extends React.PureComponent {\r\n getLinkAriaLabel() {\r\n return `${this.props.item.firstName} ${this.props.item.lastName}`;\r\n }\r\n\r\n render() {\r\n const item = this.props.item;\r\n const subtitleModCss = item.lastName.length > 8 ? 'qualified-player-card__subtitle--small' : '';\r\n\r\n return (\r\n \r\n
    \r\n {item.championOfTheYears.length > 0 ?\r\n
    \r\n \"the\r\n
      \r\n {item.championOfTheYears.map((year) =>\r\n
    • {year}
    • )}\r\n
    \r\n
    : null}\r\n {\r\n item.flag &&\r\n \"\"/\r\n }\r\n
    \r\n
    \r\n {item.playerImageSrcSet ?\r\n \"\"/ :\r\n null}\r\n
    \r\n
    \r\n {!item.isPlaying ? (\r\n
    \r\n Not Playing - \r\n {item.missingReason}\r\n \r\n
    \r\n ) : null}\r\n

    \r\n {item.firstName}\r\n {item.lastName} {item.isAmateur ? (a) : null} \r\n

    \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nQualifiedPlayerCard.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n bg: PropTypes.number\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport QualifiedPlayerCard from './QualifiedPlayerCard';\r\n\r\nexport default function QualifiedPlayerCardItem({ index, ...rest }) {\r\n function getBgIndex() {\r\n return ((index) % 3) + 1;\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nQualifiedPlayerCardItem.propTypes = {\r\n index: PropTypes.number.isRequired\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport QualifiedPlayerCardItem from '../../qualified-player-card/js/QualifiedPlayerCardItem';\r\n\r\nexport default function QualifiedGolfersPlayersList({ items }) {\r\n return (\r\n
      \r\n {items.map((item, i) => (\r\n
    • \r\n \r\n
    • \r\n ))}\r\n
    \r\n );\r\n}\r\n\r\nQualifiedGolfersPlayersList.propTypes = {\r\n items: PropTypes.array.isRequired,\r\n};\r\n","/**\r\n * Analogue C# string format\r\n * interpolate('Lorem {0} dolor {1} amet', 'ipsum', 'sit')\r\n * @return {String} compiled template\r\n */\r\nexport function interpolate(...args) {\r\n const [template, ...rest] = args;\r\n return template.replace(/{(\\d+)}/g, (match, number) => (typeof rest[number] !== 'undefined' ?\r\n rest[number] :\r\n match));\r\n}\r\n\r\nexport function interpolateWithPlural(single, plural, number) {\r\n if (number === 0 || number === 1) {\r\n return interpolate(single, number);\r\n }\r\n return interpolate(plural, number);\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n collapse,\r\n expand,\r\n setContentToState\r\n} from 'Feature/ContentComponents/code/assets/componets/accordion/js/accordion.component';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport app from '../../../general/js/app';\r\nimport QualifiedGolfersPlayersList from './QualifiedGolfersPlayersList';\r\nimport { interpolateWithPlural } from '../../../general/js/string-helpers';\r\n\r\nclass PreviousQualificationEvent extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isGolfersShown: false\r\n };\r\n this.rootRef = React.createRef();\r\n this.restPlayersRef = this.restPlayersRef.bind(this);\r\n this.onVisibilityTriggerClick = this.onVisibilityTriggerClick.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n ComponentsFactory.getInstance().init(this.rootRef.current);\r\n }\r\n\r\n componentWillUnmount() {\r\n ComponentsFactory.getInstance().destroy(this.rootRef.current);\r\n }\r\n\r\n onVisibilityTriggerClick() {\r\n const isGolfersShown = !this.state.isGolfersShown;\r\n this.handleRestPlayersVisibility(isGolfersShown);\r\n this.setState({ isGolfersShown });\r\n }\r\n\r\n handleRestPlayersVisibility(isVisible) {\r\n if (isVisible) {\r\n expand(this.restPlayersElement);\r\n } else {\r\n collapse(this.restPlayersElement);\r\n }\r\n }\r\n\r\n restPlayersRef(el) {\r\n this.restPlayersElement = el;\r\n setContentToState(this.restPlayersElement, this.state.isGolfersShown);\r\n }\r\n\r\n getPlayersToShow() {\r\n if (app.isDesktopWide) {\r\n return 5;\r\n } if (app.isDesktop) {\r\n return 4;\r\n }\r\n return 3;\r\n }\r\n\r\n getPreviewPlayers() {\r\n return this.props.event.golfers.slice(0, this.getPlayersToShow());\r\n }\r\n\r\n getRestPlayers() {\r\n return this.props.event.golfers.slice(this.getPlayersToShow());\r\n }\r\n\r\n render() {\r\n const previewPlayers = this.getPreviewPlayers();\r\n const restPlayers = this.getRestPlayers();\r\n\r\n const event = this.props.event;\r\n\r\n return (\r\n
    \r\n
    \r\n {event.logoImageSrcSet ?\r\n \"\"/ :\r\n null}\r\n
    \r\n
    \r\n
    \r\n {event.title}\r\n
    \r\n
    \r\n
    \r\n {this.getPlayersQualifiedCaption()}\r\n
    \r\n {\r\n event.infoLink &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n
    \r\n
    \r\n \r\n
    \r\n {restPlayers.length > 0 ? (\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n getTriggerButtonCaption(restPlayersCount) {\r\n if (this.state.isGolfersShown) {\r\n return 'Hide';\r\n }\r\n const { single, plural } = this.props.translations.showPlayers;\r\n return interpolateWithPlural(single, plural, restPlayersCount);\r\n }\r\n\r\n getPlayersQualifiedCaption() {\r\n const { single, plural } = this.props.translations.qualifiedPlayers;\r\n return interpolateWithPlural(single, plural, this.props.event.golfers.length);\r\n }\r\n}\r\n\r\nPreviousQualificationEvent.propTypes = {\r\n translations: PropTypes.object.isRequired,\r\n event: PropTypes.object.isRequired,\r\n deviceType: PropTypes.string.isRequired\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n const { deviceType, translations } = state;\r\n return { deviceType, translations };\r\n};\r\n\r\nexport default connect(mapStateToProps)(PreviousQualificationEvent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport PreviousQualificationEvent from './PreviousQualificationEvent';\r\n\r\nfunction PreviousQualificationEvents({ events }) {\r\n return (\r\n
    \r\n {events.map((event) => (\r\n
    \r\n \r\n
    \r\n ))}\r\n
    \r\n );\r\n}\r\n\r\nPreviousQualificationEvents.propTypes = {\r\n events: PropTypes.array.isRequired,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n const { events } = state;\r\n return { events };\r\n};\r\n\r\nexport default connect(mapStateToProps)(PreviousQualificationEvents);\r\n","import types from './types.js';\r\n\r\nconst showPreviousEvents = () => ({\r\n type: types.SHOW_PREVIOUS_EVENTS,\r\n});\r\n\r\nconst changeDeviceType = (deviceType) => ({\r\n type: types.CHANGE_DEVICE_TYPE,\r\n deviceType\r\n});\r\n\r\nexport default {\r\n showPreviousEvents,\r\n changeDeviceType\r\n};\r\n","const SHOW_PREVIOUS_EVENTS = 'SHOW_PREVIOUS_EVENTS';\r\nconst CHANGE_DEVICE_TYPE = 'CHANGE_DEVICE_TYPE';\r\n\r\nexport default {\r\n SHOW_PREVIOUS_EVENTS,\r\n CHANGE_DEVICE_TYPE,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport creators from './actions';\r\nimport QualifiedPlayerCardItem from '../../qualified-player-card/js/QualifiedPlayerCardItem';\r\nimport app from '../../../general/js/app';\r\n\r\nclass QualifiedGolfersPreview extends React.Component {\r\n getPlayersToShow() {\r\n if (app.isDesktopWide) {\r\n return 5;\r\n } if (app.isDesktop) {\r\n return 4;\r\n } if (app.isTablet) {\r\n return 3;\r\n }\r\n\r\n return 2;\r\n }\r\n\r\n getPreviewPlayers() {\r\n return this.props.previewPlayers.slice(0, this.getPlayersToShow());\r\n }\r\n\r\n\r\n render() {\r\n const previewPlayers = this.getPreviewPlayers();\r\n const morePlayersCount = this.props.totalPlayersCount - previewPlayers.length;\r\n\r\n return (\r\n
    \r\n
    \r\n {this.props.translations.title}\r\n
    \r\n
    \r\n
    \r\n
      \r\n {previewPlayers.map((item, i) => (\r\n
    • \r\n \r\n
    • \r\n ))}\r\n
    \r\n
    \r\n {morePlayersCount > 0 ? (\r\n \r\n + {morePlayersCount}\r\n \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nQualifiedGolfersPreview.propTypes = {\r\n deviceType: PropTypes.string.isRequired,\r\n totalPlayersCount: PropTypes.number.isRequired,\r\n translations: PropTypes.object.isRequired,\r\n previewPlayers: PropTypes.array.isRequired,\r\n onShowEventsClick: PropTypes.func.isRequired,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n const {\r\n translations, previewPlayers, totalPlayersCount, deviceType\r\n } = state;\r\n return {\r\n translations, previewPlayers, totalPlayersCount, deviceType\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n onShowEventsClick: () => {\r\n dispatch(creators.showPreviousEvents());\r\n },\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(QualifiedGolfersPreview);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport PreviousQualificationEvents from './PreviousQualificationEvents';\r\nimport QualifiedGolfersPreview from './QualifiedGolfersPreview';\r\n\r\nfunction QualifiedGolfers({ isEventsShown }) {\r\n return (\r\n
    \r\n {isEventsShown ? : }\r\n
    \r\n );\r\n}\r\n\r\nQualifiedGolfers.propTypes = {\r\n isEventsShown: PropTypes.bool.isRequired,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n const { isEventsShown } = state;\r\n return { isEventsShown };\r\n};\r\n\r\nexport default connect(mapStateToProps)(QualifiedGolfers);\r\n","import types from './types';\r\nimport { DEVICE_TYPE_MOBILE } from '../../../general/js/app';\r\n\r\nconst INITIAL_STATE = {\r\n isEventsShown: false,\r\n deviceType: DEVICE_TYPE_MOBILE,\r\n previewPlayers: [],\r\n totalPlayersCount: 0,\r\n events: []\r\n};\r\n\r\nexport default (state = INITIAL_STATE, action) => {\r\n // initializing the state by margin default with preloaded state\r\n if (!state.hydrated) {\r\n state = { ...INITIAL_STATE, ...state, hydrated: true };\r\n }\r\n\r\n switch (action.type) {\r\n case types.SHOW_PREVIOUS_EVENTS: {\r\n return {\r\n ...state,\r\n isEventsShown: true\r\n };\r\n }\r\n case types.CHANGE_DEVICE_TYPE:\r\n return {\r\n ...state,\r\n deviceType: action.deviceType\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport { createStore } from 'redux';\r\nimport { Provider } from 'react-redux';\r\nimport QualifiedGolfers from './QualifiedGolfers';\r\nimport app, { EVENT_DEVICE_TYPE_CHANGED } from '../../../general/js/app';\r\nimport eventBus from '../../../general/js/event-bus';\r\nimport reducer from './reducer';\r\nimport creators from './actions';\r\n\r\nexport default class QualifiedGolfersComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n const {\r\n previewPlayers, totalPlayersCount, events, translations\r\n } = this.options;\r\n\r\n this.store = createStore(reducer, {\r\n previewPlayers,\r\n totalPlayersCount,\r\n events,\r\n translations,\r\n deviceType: app.deviceTypeByViewport,\r\n });\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.onDeviceTypeChanged);\r\n }\r\n\r\n onDestroy() {\r\n eventBus.removeListener(EVENT_DEVICE_TYPE_CHANGED, this.onDeviceTypeChanged);\r\n }\r\n\r\n onDeviceTypeChanged = (oldDeviceType, newDeviceType) => {\r\n this.store.dispatch(creators.changeDeviceType(newDeviceType));\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n , this.element);\r\n }\r\n}\r\n","import './scss/index.scss';\r\n\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport QualifiedGolfersComponent from './js/qualified-golfers.component';\r\n\r\nComponentsFactory.getInstance().define('qualified-golfers', QualifiedGolfersComponent);\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport QualifiedPlayerCard from './QualifiedPlayerCard';\r\n\r\nexport default class QualifiedPlayerCardComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.item = this.options.item;\r\n this.bg = this.options.bg;\r\n this.init();\r\n }\r\n\r\n init() {\r\n ReactDOM.render(, this.element);\r\n }\r\n}\r\n","import './scss/index.scss';\r\n\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport QualifiedPlayerCardComponent from './js/qualified-player-card.component';\r\n\r\nComponentsFactory.getInstance().define('qualified-player-card', QualifiedPlayerCardComponent);\r\n","import React from 'react';\r\nimport QualifiedPlayerCardItem from '../../qualified-player-card/js/QualifiedPlayerCardItem';\r\n\r\nexport default class QualifiedPlayersListingItem extends React.PureComponent {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport QualifiedPlayersListingItem from './QualifiedPlayersListingItem';\r\n\r\nexport default class QualifiedPlayersListingContent extends React.PureComponent {\r\n render() {\r\n const isEmpty = this.props.isInitialRequestFulfilled && this.props.items.length === 0;\r\n\r\n return (\r\n
    \r\n
    \r\n {!isEmpty > 0 ?\r\n
      \r\n {this.props.items.map((item, i) =>\r\n )}\r\n
    : (\r\n
    \r\n
    \r\n

    No results.

    \r\n

    Please try making your search a little wider

    \r\n
    \r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nQualifiedPlayersListingContent.propTypes = {\r\n items: PropTypes.array.isRequired,\r\n isInitialRequestFulfilled: PropTypes.bool.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport $ from 'jquery';\r\nimport 'devbridge-autocomplete';\r\nimport axios from 'axios';\r\nimport api from '../../../general/js/api';\r\n\r\nexport default class PredictiveSearch extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onSubmit = this.onSubmit.bind(this);\r\n this.onClearButtonClick = this.onClearButtonClick.bind(this);\r\n this.inputRef = this.inputRef.bind(this);\r\n this.formRef = this.formRef.bind(this);\r\n\r\n this.baseElement = null;\r\n this.inputElement = null;\r\n this.lastRequestCancel = null;\r\n this.predictiveSearchUrl = this.props.endpointUrl;\r\n this.maxSuggestionsCount = this.props.maxSuggestionsCount;\r\n this.moreSuggestionsAvailableClass = 'more-suggestions-available';\r\n }\r\n\r\n componentWillUnmount() {\r\n this.autocompleteInstance.dispose();\r\n }\r\n\r\n transformSuggestions(result) {\r\n return {\r\n suggestions: result.map((suggestion) => {\r\n const {\r\n text, searchType, ...rest\r\n } = suggestion;\r\n return {\r\n value: text,\r\n data: {\r\n type: searchType.toString(),\r\n ...rest,\r\n }\r\n };\r\n })\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.$inputElement = $(this.inputElement);\r\n\r\n this.autocompleteInstance = this.$inputElement.devbridgeAutocomplete({\r\n minChars: 3,\r\n deferRequestBy: 300,\r\n zIndex: 30,\r\n appendTo: this.baseElement,\r\n showNoSuggestionNotice: true,\r\n noSuggestionNotice: 'No results found!',\r\n triggerSelectOnValidInput: false,\r\n lookup: (query, done) => {\r\n this.spinnerElement.classList.add('is-loading');\r\n this.getSuggestions(query).then((data) => {\r\n if (document.activeElement === this.inputElement) {\r\n if (data.total > this.maxSuggestionsCount) {\r\n this.baseElement.classList.add(this.moreSuggestionsAvailableClass);\r\n } else {\r\n this.baseElement.classList.remove(this.moreSuggestionsAvailableClass);\r\n }\r\n done(this.transformSuggestions(data.result));\r\n }\r\n this.spinnerElement.classList.remove('is-loading');\r\n }, (error) => {\r\n // hide after error only when our request has been canceled\r\n if (!axios.isCancel(error)) {\r\n this.spinnerElement.classList.remove('is-loading');\r\n }\r\n });\r\n },\r\n /**\r\n * Build suggestion markup\r\n * Based on default library method\r\n *\r\n * @param suggestion\r\n * @param currentValue\r\n * @returns {string}\r\n */\r\n formatResult: (suggestion, currentValue) => {\r\n let highlightedText = suggestion.value;\r\n\r\n // Do not replace anything if the current value is empty\r\n if (currentValue) {\r\n const pattern = '(' + currentValue.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&') + ')';\r\n highlightedText = highlightedText.replace(new RegExp(pattern, 'gi'), '$1');\r\n }\r\n\r\n return this.props.renderSuggestion ?\r\n this.props.renderSuggestion(suggestion.value, suggestion.data.type, suggestion.data, highlightedText) :\r\n highlightedText;\r\n },\r\n onSelect:\r\n (suggestion) => {\r\n this.handlePredictiveSelect(suggestion);\r\n }\r\n }).devbridgeAutocomplete();\r\n this.autocompleteInstance.suggestionsContainer.setAttribute('max-suggestions-count', this.maxSuggestionsCount);\r\n }\r\n\r\n getSuggestions(query) {\r\n if (this.lastRequestCancel) {\r\n this.lastRequestCancel();\r\n this.lastRequestCancel = null;\r\n }\r\n const CancelToken = axios.CancelToken;\r\n const source = CancelToken.source();\r\n this.lastRequestCancel = source.cancel.bind(source);\r\n\r\n return api.get(this.predictiveSearchUrl, {\r\n params: { term: query },\r\n cancelToken: source.token\r\n }).then(\r\n ({ data }) => data,\r\n (error) => {\r\n if (!axios.isCancel(error)) {\r\n this.lastRequestCancel = null;\r\n }\r\n return Promise.reject(error);\r\n }\r\n );\r\n }\r\n\r\n formRef(el) {\r\n this.baseElement = el;\r\n }\r\n\r\n inputRef(el) {\r\n this.inputElement = el;\r\n if (this.props.inputRef) {\r\n this.props.inputRef(el);\r\n }\r\n }\r\n\r\n isFilledMode() {\r\n return this.props.query !== '' && this.props.isSubmitted && !this.props.isFocused;\r\n }\r\n\r\n renderInnerButton() {\r\n if (this.isFilledMode()) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const isFilledMode = this.isFilledMode();\r\n const isMinimized = this.props.isMinimized;\r\n const isExpanded = this.props.isExpanded && !isFilledMode;\r\n\r\n return (\r\n \r\n
    \r\n \r\n\r\n {/* additional input is a workaround to stop form submit after clicking on button[type=\"button\"] */}\r\n \r\n
    { this.spinnerElement = el; }}>\r\n
    \r\n {this.renderInnerButton(isFilledMode)}\r\n
    \r\n {\r\n (isMinimized && isExpanded) ? (\r\n \r\n ) : null\r\n }\r\n \r\n );\r\n }\r\n\r\n onClearButtonClick(e) {\r\n e.preventDefault();\r\n this.props.onClear();\r\n }\r\n\r\n onSubmit(e) {\r\n e.preventDefault();\r\n this.props.onSubmit();\r\n }\r\n\r\n handlePredictiveSelect(suggestion) {\r\n this.props.onSelect(suggestion.value, suggestion.data.type, suggestion.data);\r\n }\r\n}\r\n\r\nPredictiveSearch.propTypes = {\r\n endpointUrl: PropTypes.string.isRequired,\r\n maxSuggestionsCount: PropTypes.number.isRequired,\r\n renderSuggestion: PropTypes.func,\r\n onClear: PropTypes.func.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n onSelect: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n query: PropTypes.string,\r\n onBlur: PropTypes.func.isRequired,\r\n onFocus: PropTypes.func.isRequired,\r\n onCollapseButtonClick: PropTypes.func.isRequired,\r\n onSearchButtonClick: PropTypes.func.isRequired,\r\n inputRef: PropTypes.func,\r\n isMinimized: PropTypes.bool.isRequired,\r\n isSubmitted: PropTypes.bool.isRequired,\r\n isFocused: PropTypes.bool.isRequired,\r\n isExpanded: PropTypes.bool.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport PredictiveSearch from '../../predictive-search/js/PredictiveSearch';\r\nimport flagSuggestionTemplate from '../html/flag-suggestion.hbs';\r\nimport playerSuggestionTemplate from '../html/player-suggestion.hbs';\r\nimport { redirectTo } from '../../../general/js/utils';\r\n\r\nconst SUGGESTION_TYPE_PLAYER = '2';\r\nconst SUGGESTION_TYPE_FLAG = '1';\r\n\r\nexport default class QualifiedPlayersPredictiveSearch extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onClear = this.onClear.bind(this);\r\n this.onChange = this.onChange.bind(this);\r\n this.onSelect = this.onSelect.bind(this);\r\n this.onSubmit = this.onSubmit.bind(this);\r\n this.renderSuggestion = this.renderSuggestion.bind(this);\r\n }\r\n\r\n onClear() {\r\n this.props.onFiltersChange(getPredictiveSearchDefaultFilters());\r\n }\r\n\r\n onChange(e) {\r\n // Change filters without applying\r\n this.props.onFiltersChange({\r\n ...getPredictiveSearchDefaultFilters(),\r\n term: e.target.value,\r\n }, false);\r\n }\r\n\r\n onSelect(value, type, suggestionInfo) {\r\n switch (type) {\r\n case SUGGESTION_TYPE_PLAYER:\r\n redirectTo(suggestionInfo.playerURL);\r\n break;\r\n default:\r\n this.props.onFiltersChange({\r\n term: value,\r\n searchType: type,\r\n countryId: suggestionInfo.countryId || ''\r\n });\r\n break;\r\n }\r\n }\r\n\r\n onSubmit() {\r\n // Apply current filters\r\n this.props.onFiltersChange({});\r\n }\r\n\r\n renderSuggestion(text, type, info, highlightedText) {\r\n let result;\r\n switch (type) {\r\n case SUGGESTION_TYPE_FLAG:\r\n result = flagSuggestionTemplate({ text, highlightedText, info });\r\n break;\r\n case SUGGESTION_TYPE_PLAYER:\r\n result = playerSuggestionTemplate({ text, highlightedText, info });\r\n break;\r\n default:\r\n result = text;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n render() {\r\n let { filters, ...passProps } = this.props; // eslint-disable-line\r\n const { term, type } = filters;\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nQualifiedPlayersPredictiveSearch.propTypes = {\r\n onFiltersChange: PropTypes.func.isRequired,\r\n filters: PropTypes.object.isRequired,\r\n isFiltersApplied: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport function getPredictiveSearchDefaultFilters() {\r\n return {\r\n term: '',\r\n searchType: '',\r\n countryId: ''\r\n };\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport PropTypes from 'prop-types';\r\nimport ListingLoadMore from '../../listing/js/ListingLoadMore';\r\n\r\nexport default class QualifiedPlayersListingLoadMore extends React.PureComponent {\r\n render() {\r\n return ReactDOM.createPortal(\r\n ,\r\n this.props.loadMoreElement,\r\n );\r\n }\r\n}\r\n\r\n\r\nQualifiedPlayersListingLoadMore.propTypes = {\r\n loadMoreElement: PropTypes.instanceOf(Element).isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default class QualifiedPlayersListingFiltersTriggerButton extends React.PureComponent {\r\n getButtonText() {\r\n if (this.props.isFiltersVisible) {\r\n return 'Hide filters';\r\n }\r\n return 'Show filters';\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nQualifiedPlayersListingFiltersTriggerButton.propTypes = {\r\n onClick: PropTypes.func.isRequired,\r\n isFiltersVisible: PropTypes.bool.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport QualifiedPlayersPredictiveSearch from './QualifiedPlayersPredictiveSearch';\r\nimport QualifiedPlayersListingFiltersTriggerButton\r\n from './QualifiedPlayersListingFiltersTriggerButton';\r\nimport app, {\r\n DEVICE_TYPE_MOBILE,\r\n EVENT_DEVICE_TYPE_CHANGED\r\n} from '../../../general/js/app';\r\nimport eventBus from '../../../general/js/event-bus';\r\n\r\nexport default class QualifiedPlayersListingControls extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isMinimized: this.getIsMinimized(),\r\n isFocused: false,\r\n isExpanded: false\r\n };\r\n\r\n this.onPredictiveSearchBlur = this.onPredictiveSearchBlur.bind(this);\r\n this.onPredictiveSearchFocus = this.onPredictiveSearchFocus.bind(this);\r\n this.onCollapseButtonClick = this.onCollapseButtonClick.bind(this);\r\n this.onSearchButtonClick = this.onSearchButtonClick.bind(this);\r\n this.inputRef = this.inputRef.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.onDeviceTypeChanged);\r\n }\r\n\r\n componentWillUnmount() {\r\n eventBus.removeListener(EVENT_DEVICE_TYPE_CHANGED, this.onDeviceTypeChanged);\r\n }\r\n\r\n inputRef(el) {\r\n this.inputElement = el;\r\n }\r\n\r\n onDeviceTypeChanged = () => {\r\n const newState = {\r\n isMinimized: this.getIsMinimized(),\r\n };\r\n\r\n if (newState.isMinimized !== this.state.isMinimized) {\r\n newState.isExpanded = false;\r\n }\r\n this.setState(newState);\r\n }\r\n\r\n onPredictiveSearchBlur() {\r\n const newState = {\r\n isFocused: false\r\n };\r\n if (this.state.isMinimized && this.props.isFiltersApplied && this.state.isExpanded) {\r\n newState.isExpanded = false;\r\n }\r\n this.setState(newState);\r\n }\r\n\r\n onPredictiveSearchFocus() {\r\n const newState = {\r\n isFocused: true\r\n };\r\n if (this.state.isMinimized && !this.state.isExpanded) {\r\n newState.isExpanded = true;\r\n }\r\n this.setState(newState);\r\n }\r\n\r\n onCollapseButtonClick() {\r\n this.setState({ isExpanded: false });\r\n }\r\n\r\n onSearchButtonClick(e) {\r\n const isMinimized = this.state.isMinimized;\r\n const isExpanded = this.state.isExpanded;\r\n\r\n if (isMinimized && !isExpanded) {\r\n e.preventDefault();\r\n this.setState({ isExpanded: true });\r\n this.inputElement.focus();\r\n }\r\n }\r\n\r\n getIsMinimized() {\r\n return app.deviceTypeByViewport === DEVICE_TYPE_MOBILE;\r\n }\r\n\r\n isTriggerButtonVisible() {\r\n return !this.state.isMinimized || !this.state.isExpanded;\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {this.isTriggerButtonVisible() ?\r\n : null}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nQualifiedPlayersListingControls.propTypes = {\r\n onFiltersChange: PropTypes.func.isRequired,\r\n filters: PropTypes.object.isRequired,\r\n isFiltersApplied: PropTypes.bool.isRequired,\r\n isFiltersVisible: PropTypes.bool.isRequired,\r\n options: PropTypes.object,\r\n onFiltersTogglerClick: PropTypes.func.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default class ListingSelect extends React.PureComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.onChange = this.onChange.bind(this);\r\n }\r\n\r\n onChange(e) {\r\n this.props.onChange({ [this.props.config.name]: e.target.value });\r\n }\r\n\r\n render() {\r\n const config = this.props.config;\r\n return (\r\n
    \r\n
    {config.label}
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nListingSelect.propTypes = {\r\n config: PropTypes.object.isRequired,\r\n value: PropTypes.string.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default class ListingCheckList extends React.PureComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.onChange = this.onChange.bind(this);\r\n }\r\n\r\n onChange(changedCheckboxValue, isChecked) {\r\n const currentValue = this.props.value;\r\n let newValue = null;\r\n if (isChecked) {\r\n newValue = [...currentValue, changedCheckboxValue];\r\n } else {\r\n newValue = currentValue.filter((value) => value !== changedCheckboxValue);\r\n }\r\n this.props.onChange({ [this.props.config.name]: newValue });\r\n }\r\n\r\n render() {\r\n const config = this.props.config;\r\n return (\r\n
    \r\n
    \r\n {config.options.map((option, index) => (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nListingCheckList.defaultProps = {\r\n value: []\r\n};\r\n\r\nListingCheckList.propTypes = {\r\n config: PropTypes.object.isRequired,\r\n value: PropTypes.array.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n collapse,\r\n expand,\r\n setContentToState\r\n} from 'Feature/ContentComponents/code/assets/componets/accordion/js/accordion.component';\r\nimport ListingSelect from '../../listing/js/ListingSelect';\r\nimport ListingCheckList from '../../listing/js/ListingCheckList';\r\nimport { CONTROL_TYPE_SELECT, CONTROL_TYPE_CHECKLIST } from '../../listing/js/constants';\r\n\r\nexport default class QualifiedPlayersListingFilters extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.filtersRef = this.filtersRef.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n setContentToState(this.filtersElement, this.props.isFiltersVisible);\r\n }\r\n\r\n filtersRef(el) {\r\n this.filtersElement = el;\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.isFiltersVisible !== this.props.isFiltersVisible) {\r\n this.handleFiltersVisibility();\r\n }\r\n }\r\n\r\n handleFiltersVisibility() {\r\n if (this.filtersElement) {\r\n if (this.props.isFiltersVisible) {\r\n expand(this.filtersElement);\r\n } else {\r\n collapse(this.filtersElement);\r\n }\r\n }\r\n }\r\n\r\n renderFilter(filterConfig) {\r\n switch (filterConfig.type) {\r\n case CONTROL_TYPE_CHECKLIST:\r\n return (\r\n \r\n );\r\n\r\n case CONTROL_TYPE_SELECT:\r\n return (\r\n \r\n );\r\n default:\r\n throw new Error('unknown control type');\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n {this.props.options.filters.map((filterConfig) => this.renderFilter(filterConfig))}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nQualifiedPlayersListingFilters.defaultProps = {\r\n options: {\r\n // filters config\r\n filters: [],\r\n }\r\n};\r\n\r\nQualifiedPlayersListingFilters.propTypes = {\r\n onFiltersChange: PropTypes.func.isRequired,\r\n filters: PropTypes.object.isRequired,\r\n isFiltersVisible: PropTypes.bool.isRequired,\r\n options: PropTypes.object,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport QualifiedPlayersListingControls from './QualifiedPlayersListingControls';\r\nimport QualifiedPlayersListingFilters from './QualifiedPlayersListingFilters';\r\nimport { isFiltersDirty } from '../../listing/js/listing-helper';\r\n\r\nexport default class QualifiedPlayersListingHeader extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isFiltersVisible : true\r\n };\r\n this.onFiltersTogglerClick = this.onFiltersTogglerClick.bind(this);\r\n }\r\n\r\n onFiltersTogglerClick() {\r\n if (!isFiltersDirty(this.props.filters, this.props.options.filters)) {\r\n this.setState({ isFiltersVisible: !this.state.isFiltersVisible });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n \r\n\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nQualifiedPlayersListingHeader.propTypes = {\r\n onFiltersChange: PropTypes.func.isRequired,\r\n filters: PropTypes.object.isRequired,\r\n options: PropTypes.object.isRequired,\r\n isFiltersApplied: PropTypes.bool.isRequired,\r\n itemsCount: PropTypes.number.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport QualifiedPlayersListingContent from './QualifiedPlayersListingContent';\r\nimport Listing from '../../listing/js/Listing';\r\nimport { getDefaultFilters } from '../../listing/js/listing-helper';\r\nimport { getPredictiveSearchDefaultFilters } from './QualifiedPlayersPredictiveSearch';\r\nimport QualifiedPlayersListingLoadMore from './QualifiedPlayersListingLoadMore';\r\nimport QualifiedPlayersListingHeader from './QualifiedPlayersListingHeader';\r\n\r\nexport default class QualifiedPlayersListing extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.defaultFilters = {\r\n ...getPredictiveSearchDefaultFilters(),\r\n ...getDefaultFilters(props.options.filters)\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n (\r\n
    \r\n \r\n \r\n \r\n
    \r\n )}/>\r\n );\r\n }\r\n}\r\n\r\nQualifiedPlayersListing.propTypes = {\r\n options: PropTypes.object.isRequired,\r\n loadMoreElement: PropTypes.instanceOf(Element).isRequired,\r\n};\r\n","import BaseComponent from 'foundation/base-component';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport QualifiedPlayersListing from './QualifiedPlayersListing';\r\nimport { CONTROL_TYPE_CHECKLIST } from '../../listing/js/constants';\r\n\r\nexport default class QualifiedPlayersListingComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.listingElement = this.refs.listing;\r\n this.loadMoreElement = this.refs.loadmore;\r\n\r\n const endpointUrl = this.options.SearchApiUrl;\r\n if (!endpointUrl) {\r\n throw new Error('SearchApiUrl should be passed via options');\r\n }\r\n\r\n const predictiveEndpointUrl = this.options.PredictiveSearchApiUrl;\r\n if (!endpointUrl) {\r\n throw new Error('PredictiveSearchApiUrl should be passed via options');\r\n }\r\n\r\n const filtersConfig = this.options.Filters[0];\r\n\r\n const filters = [{\r\n type: CONTROL_TYPE_CHECKLIST,\r\n name: filtersConfig.name,\r\n options: filtersConfig.values,\r\n defaultValue: []\r\n }];\r\n\r\n\r\n this.playersListingOptions = {\r\n endpointUrl,\r\n predictiveEndpointUrl,\r\n filters,\r\n };\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['listing', 'loadmore'];\r\n }\r\n\r\n init() {\r\n ReactDOM.render(, this.listingElement);\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n}\r\n","import './scss/index.scss';\r\n\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport QualifiedPlayersListingComponent from './js/qualified-players-listing.component';\r\n\r\nComponentsFactory.getInstance().define('qualified-players-listing', QualifiedPlayersListingComponent);\r\n","import './scss/index.scss';\r\n\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport RecaptchaComponent from './js/recaptcha.component';\r\n\r\nComponentsFactory.getInstance().define('recaptcha', RecaptchaComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport Cookies from 'js-cookie';\r\nimport { AppState } from '@aws-amplify/core';\r\nimport app from '../../../general/js/app'; \r\n\r\nexport default class ResetPasswordUrlComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n const secutixCookie = Cookies.get('secutixConfig');\r\n if (secutixCookie !== undefined) {\r\n const secutixConfiguration = JSON.parse(secutixCookie);\r\n\t\t\tthis.element.setAttribute('href', secutixConfiguration.resetPasswordUrl);\r\n }\r\n else {\r\n this.element.setAttribute('href', app.state.resetPasswordLink);\r\n }\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport ResetPasswordUrlComponent from './js/reset-password-url.component';\r\n\r\nComponentsFactory.getInstance().define('reset-password-url', ResetPasswordUrlComponent);\r\n","import { getElementByQuery, getElementsByQuery, getSiblingByQuery, isNullOrUndefined, toggleCssClass } from '../../../general/js/general-helpers';\r\nimport { getIsOneClubMemberFromCookie } from '../../sso/components/utils/user-data-cookie/user-data-cookie-helpers';\r\nimport { rightHeaderLinksConstants } from './right-header-link-item-constants';\r\n\r\nexport const displayRightHeaderLinkByOneClubMembership = (container = document) => {\r\n const isOneClubMember = getIsOneClubMemberFromCookie();\r\n const mainRightHeaderLinkItem = getMainRightLinkItem(container);\r\n const memberRightHeaderLinkItem = getMemberRightLinkItem(container);\r\n\r\n toggleRightHeaderLink(isOneClubMember, mainRightHeaderLinkItem, memberRightHeaderLinkItem);\r\n}\r\n\r\nexport const toggleRightHeaderLink = (isOneClubMember = false, mainRightHeaderLinkItem = null, memberRightHeaderLinkItem = null) => {\r\n if(isNullOrUndefined(mainRightHeaderLinkItem)){\r\n return;\r\n }\r\n\r\n const displayMemberLinkItemCondition = isOneClubMember && !isNullOrUndefined(memberRightHeaderLinkItem);\r\n \r\n toggleCssClass(mainRightHeaderLinkItem, rightHeaderLinksConstants.HIDDEN_CLASS, displayMemberLinkItemCondition);\r\n toggleCssClass(memberRightHeaderLinkItem, rightHeaderLinksConstants.HIDDEN_CLASS, !displayMemberLinkItemCondition);\r\n}\r\n\r\nexport const getMainRightLinkItem = (container = document) => {\r\n return getElementByQuery(`.${rightHeaderLinksConstants.RIGHT_NAV_TITLE_CLASS}`,{ rightHeaderLinkItem: [container] });\r\n}\r\n\r\nexport const getMemberRightLinkItem = (container = document) => {\r\n return getElementByQuery(`.${rightHeaderLinksConstants.MEMBER_RIGHT_NAV_TITLE_CLASS}`,{ rightHeaderLinkItem: [container] });\r\n}\r\n\r\nexport const getAllMainRightLinkItems = (container = document) => {\r\n return getElementsByQuery(`.${rightHeaderLinksConstants.TOP_NAV_LINK_RIGHT_CLASS} .${rightHeaderLinksConstants.RIGHT_NAV_TITLE_CLASS}`,{ rightHeaderLinkItem: [container] });\r\n}\r\n\r\nexport const getSiblingMemberRightLinkItem = (element = null) => {\r\n if (isNullOrUndefined(element)){\r\n return null;\r\n }\r\n\r\n return getSiblingByQuery(`.${rightHeaderLinksConstants.MEMBER_RIGHT_NAV_TITLE_CLASS}`, element);\r\n}\r\n","export const rightHeaderLinksConstants = {\r\n TOP_NAV_LINK_RIGHT_CLASS: 'header__top-nav-link-right',\r\n RIGHT_NAV_TITLE_CLASS: 'right-nav-title',\r\n MEMBER_RIGHT_NAV_TITLE_CLASS: 'member-right-nav-title',\r\n HIDDEN_CLASS: 'hidden'\r\n};\r\n\r\n","import ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport gtm from '../../../general/js/gtm';\r\nimport { displayRightHeaderLinkByOneClubMembership } from './right-header-link-item-helpers';\r\n\r\nclass RightHeaderLinkItem extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n displayRightHeaderLinkByOneClubMembership(this.element);\r\n this.addListener(this.element, 'click', this.saveActionToGtm);\r\n }\r\n\r\n saveActionToGtm = (event) => {\r\n const clickedItem = event.target;\r\n const itemText = clickedItem.innerText || clickedItem.textContent;\r\n gtm.push('Top Ribbon', 'Click', itemText);\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n}\r\n\r\nexport default RightHeaderLinkItem;\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport RightHeaderLinkItem from './js/right-header-link-item.component';\r\n\r\nComponentsFactory.getInstance().define('right-header-link-item', RightHeaderLinkItem);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport { getAllMainRightLinkItems, getSiblingMemberRightLinkItem, toggleRightHeaderLink } from '../../right-header-link-item/js/right-header-link-item-helpers';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\nimport eventBus from '../../../general/js/event-bus';\r\nimport { getIsOneClubMemberFromCookie } from '../../sso/components/utils/user-data-cookie/user-data-cookie-helpers';\r\nimport { userDataCookieConstants } from '../../sso/components/utils/user-data-cookie/user-data-cookie-constants';\r\n\r\nclass RightHeaderLinks extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.handleUserDataCookieChange = this.handleUserDataCookieChange.bind(this);\r\n this.init();\r\n }\r\n\r\n init() {\r\n eventBus.addListener(userDataCookieConstants.USER_DATA_COOKIE_CHANGE_EVENT, this.handleUserDataCookieChange);\r\n }\r\n\r\n onDestroy() {\r\n eventBus.removeListener(userDataCookieConstants.USER_DATA_COOKIE_CHANGE_EVENT, this.handleUserDataCookieChange);\r\n }\r\n\r\n handleUserDataCookieChange = () => {\r\n const isOneClubMember = getIsOneClubMemberFromCookie();\r\n const mainRightHeaderLinkItems = getAllMainRightLinkItems(this.element);\r\n\r\n if (!hasValue(mainRightHeaderLinkItems)) {\r\n return;\r\n }\r\n\r\n mainRightHeaderLinkItems.forEach((mainLinkItem) => {\r\n const memberLinkItem = getSiblingMemberRightLinkItem(mainLinkItem);\r\n toggleRightHeaderLink(isOneClubMember, mainLinkItem, memberLinkItem);\r\n });\r\n }\r\n}\r\n\r\nexport default RightHeaderLinks;\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport RightHeaderLinks from './js/right-header-links.component';\r\n\r\nComponentsFactory.getInstance().define('right-header-links', RightHeaderLinks);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport { isValid } from 'date-fns';\r\n\r\nclass RolexWatchComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.intervalId = null;\r\n this.currentDate = new Date(this.options.currentDate);\r\n this.thresholdDate = new Date(this.options.thresholdDate);\r\n\r\n if (!isValid(this.currentDate)) {\r\n throw new Error('Please provide a valid \"currentDate\" parameter');\r\n }\r\n\r\n if (!isValid(this.thresholdDate)) {\r\n throw new Error('Please provide a valid \"thresholdDate\" parameter');\r\n }\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n let isSimple = false;\r\n\r\n if (!this.options.shouldShowCountdown) {\r\n isSimple = true;\r\n } else {\r\n isSimple = this.currentDate > this.thresholdDate;\r\n }\r\n\r\n this.lazyloadIframes();\r\n\r\n if (isSimple) {\r\n this.element.classList.add('is-simple');\r\n } else {\r\n this.element.classList.add('is-countdown');\r\n this.intervalId = setInterval(() => {\r\n this.currentDate.setSeconds(this.currentDate.getSeconds() + 1);\r\n\r\n const shouldSimple = this.currentDate > this.thresholdDate;\r\n\r\n if (shouldSimple !== isSimple) {\r\n clearInterval(this.intervalId);\r\n this.element.classList.remove('is-countdown');\r\n this.element.classList.add('is-simple');\r\n }\r\n }, 1000);\r\n }\r\n\r\n }\r\n\r\n lazyloadIframes() {\r\n if (!Array.isArray(this.refs.iframes)) return;\r\n\r\n this.refs.iframes.forEach((iframe) => {\r\n iframe.src = this.getAttribute(iframe, 'src');\r\n });\r\n }\r\n}\r\n\r\nexport default RolexWatchComponent;\r\n","import './scss/index.scss';\r\n\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport RolexWatchComponent from './js/rolex-watch.component';\r\n\r\nComponentsFactory.getInstance().define('rolex-watch', RolexWatchComponent);\r\n","import * as cookieHelper from './cookie-helper';\r\nimport { formConstants } from '../components/utils/constants/form-constants';\r\nimport * as signInFormApi from '../store/api/sign-in-form-api';\r\nimport userService from '../../../general/js/user/user-service';\r\nimport { reloadToBasePage } from '../../../general/js/utils';\r\n\r\nexport const activityHelper = (function () {\r\n\r\n let isOnPage = true;\r\n let timeoutHandle;\r\n\r\n function _attachUserActivityEventListener() {\r\n\r\n if ('hidden' in document) {\r\n document.addEventListener('visibilitychange', _onChange);\r\n return;\r\n }\r\n\r\n if ('mozHidden' in document) {\r\n document.addEventListener('mozvisibilitychange', _onChange);\r\n return;\r\n }\r\n\r\n if ('webkitHidden' in document) {\r\n document.addEventListener('webkitvisibilitychange', _onChange);\r\n return;\r\n }\r\n\r\n if ('msHidden' in document) {\r\n document.addEventListener('msvisibilitychange', _onChange);\r\n return;\r\n }\r\n\r\n window.onpageshow = _onChange;\r\n window.onpagehide = _onChange;\r\n }\r\n\r\n function _onChange() {\r\n isOnPage = isOnPage === undefined ? true : !isOnPage;\r\n\r\n if (isOnPage) {\r\n return;\r\n }\r\n\r\n const maxIdleTimeInSeconds = cookieHelper.getCookie(formConstants.maxIdleTimeInSeconds);\r\n if (!maxIdleTimeInSeconds) {\r\n return;\r\n }\r\n const parsedMaxIdleTimeInSeconds = maxIdleTimeInSeconds ? parseInt(maxIdleTimeInSeconds, 10) : NaN;\r\n\r\n if (Number.isNaN(parsedMaxIdleTimeInSeconds)) {\r\n return;\r\n }\r\n\r\n if (parsedMaxIdleTimeInSeconds <= 0) {\r\n return;\r\n }\r\n\r\n window.clearTimeout(timeoutHandle);\r\n timeoutHandle = setTimeout(_timeOutFunction, parsedMaxIdleTimeInSeconds * 1000);\r\n }\r\n\r\n function _timeOutFunction() {\r\n if (isOnPage) {\r\n return;\r\n }\r\n\r\n signInFormApi.signOutUser().then(() => {\r\n userService.setAccessTokenCookie(null);\r\n cookieHelper.setCookie(formConstants.maxIdleTimeInSeconds, 0);\r\n reloadToBasePage();\r\n });\r\n }\r\n\r\n function _refreshMyAccountStyle() {\r\n const currentAddress = window.location.href;\r\n const randaPage = document.body.getElementsByClassName('randa-page')[0];\r\n\r\n if (!randaPage) {\r\n return;\r\n }\r\n\r\n if (!currentAddress.includes('account/profile')) {\r\n randaPage.classList.remove('my-account-page');\r\n return;\r\n }\r\n\r\n randaPage.classList.add('my-account-page');\r\n }\r\n\r\n return {\r\n handleUserIdleTime: () => {\r\n _attachUserActivityEventListener();\r\n },\r\n refreshMyAccountStyle: () => {\r\n _refreshMyAccountStyle();\r\n }\r\n };\r\n}());\r\n","import React from 'react';\r\nimport { activityHelper } from '../helpers/user-activity-helper';\r\n\r\nexport const SSOFormContext = React.createContext();\r\nactivityHelper.handleUserIdleTime();\r\nactivityHelper.refreshMyAccountStyle();\r\n\r\nexport function withSSOFormContext(Component) {\r\n // eslint-disable-next-line react/display-name\r\n return (props) => (\r\n \r\n {(context) => }\r\n \r\n );\r\n}\r\n","export const formFieldConstants = {\r\n selectFieldOptionsCode: 'code',\r\n selectFieldOptionsLabel: 'label',\r\n itemList: 'itemList'\r\n}\r\n","\r\nexport const addressesFormStateConstants = {\r\n AddressDisplayForm: 'addressDisplayForm',\r\n AddressAddForm: 'addressAddForm',\r\n AddressUpdateForm: 'addressUpdateForm'\r\n};\r\n\r\nexport const addressesFormCallbackFunctions = {\r\n HandleShowDisplayAddressForm: 'handleShowDisplayAddressForm',\r\n HandleShowAddAddressForm: 'handleShowAddAddressForm',\r\n HandleAddNewAddress: 'handleAddNewAddress',\r\n HandleShowUpdateAddressForm: 'handleShowUpdateAddressForm',\r\n HandleUpdateAddress: 'handleUpdateAddress',\r\n HandleRemoveAddress: 'handleRemoveAddress'\r\n};\r\n","import { MembershipTypes } from '../../../../../../general/js/utils';\r\nimport { addressesFormStateConstants } from './user-account/address-form-state';\r\nimport { orderHistoryFormStateConstants } from './user-account/order-history-form-state';\r\n\r\nexport default {\r\n oneClubRegisterFormState: {\r\n membership: MembershipTypes.OneClub,\r\n isSaving: false,\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false\r\n },\r\n defaultRegisterFormState: {\r\n membership: MembershipTypes.OneClub,\r\n isSaving: false,\r\n errors: {},\r\n formHasErrors: false\r\n },\r\n ballotRegisterFormState: {\r\n membership: MembershipTypes.OneClub,\r\n isSaving: false,\r\n errors: {},\r\n formHasErrors: false,\r\n emailCheckInProgress: false\r\n },\r\n ticketingRegisterFormState: {\r\n membership: MembershipTypes.OneClub,\r\n isSaving: false,\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false,\r\n privacyPolicy: false,\r\n oneClubTermsAndServices: false\r\n },\r\n raMembersRegisterFormState: {\r\n membership: MembershipTypes.OneClub,\r\n isSaving: false,\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false,\r\n privacyPolicy: false,\r\n oneClubTermsAndServices: false\r\n },\r\n userDetailsFormState: {\r\n isSaving: false,\r\n formData: {},\r\n isConfirmationPopUpOpen: false,\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false,\r\n isUserUpdatingEmail: false\r\n },\r\n changePasswordFormState: {\r\n errors: {},\r\n formHasErrors: false\r\n },\r\n userAddressesFormState: {\r\n isSaving: false,\r\n formState: addressesFormStateConstants.AddressDisplayForm,\r\n accountData: {},\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false\r\n },\r\n emailNotificationSettingsFormState: {\r\n isSaving: false,\r\n formData: {},\r\n accountData: {},\r\n errors: {},\r\n formHasErrors: false\r\n },\r\n theOneClubFormState: {\r\n isSaving: false,\r\n formData: {},\r\n leaveOneClubCheck: false,\r\n accountData: {},\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false\r\n },\r\n orderHistoryFormState: {\r\n orderHistoryData: {},\r\n orderHistoryActivePageNumber: 1,\r\n displayCancelledFiles: false,\r\n formState: orderHistoryFormStateConstants.OrderHistoryDisplayForm,\r\n fileNumberForDisplay: 0\r\n },\r\n userTicketsFormState: {\r\n hideOldTickets: true,\r\n isTicketPrintModalOpen: false,\r\n printOptions: {},\r\n modalFormData: {}\r\n },\r\n addUserAddressesFormState: {\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false\r\n },\r\n updateUserAddressesFormState: {\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false\r\n },\r\n upgradeAccountFormState: {\r\n activeMemberships: [],\r\n isSaving: false,\r\n userAccountData: {},\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false,\r\n isSubmitAction: false\r\n },\r\n upgradeBallotFormState: {\r\n activeMemberships: [MembershipTypes.OneClub],\r\n isSaving: false,\r\n userAccountData: {},\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false,\r\n isSubmitAction: false\r\n },\r\n ssoItemListFormState: {\r\n itemList: [],\r\n loading: false\r\n },\r\n upgradeRaMembersFormState: {\r\n activeMemberships: [],\r\n isSaving: false,\r\n userAccountData: {},\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false,\r\n isSubmitAction: false\r\n },\r\n signInFormState: {\r\n errors: {},\r\n isProcessing: false,\r\n formHasErrors: false\r\n },\r\n newPasswordRequiredFormState: {\r\n errors: {},\r\n isProcessing: false,\r\n formHasErrors: false\r\n },\r\n forgotPasswordFormState: {\r\n errors: {},\r\n isProcessing: false,\r\n formHasErrors: false\r\n },\r\n resetPasswordFormState: {\r\n errors: {},\r\n verificationCode: '',\r\n isProcessing: false\r\n },\r\n verifyEmailFormState: {\r\n errors: {},\r\n verificationCode: '',\r\n isProcessing: false\r\n }\r\n};\r\n","\r\nexport const orderHistoryFormStateConstants = {\r\n OrderHistoryDisplayForm: 'orderHistoryDisplayForm',\r\n FileDetailsDisplayForm: 'fileDetailsDisplayForm'\r\n};\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\n\r\nfunction FormMessage({\r\n formRef,\r\n isSuccessMessage,\r\n messages\r\n}) {\r\n const classType = isSuccessMessage ? '__success' : '__error';\r\n\r\n function displayFormMessages() {\r\n if (isEmpty(messages)) {\r\n return null;\r\n }\r\n\r\n const fieldClass = `form-field${classType}-item`;\r\n\r\n const messagesToDisplay = messages.map((m) => {\r\n return (
  • {m}
  • );\r\n });\r\n\r\n return (\r\n
      \r\n {messagesToDisplay}\r\n
    \r\n
    );\r\n }\r\n\r\n return displayFormMessages();\r\n}\r\n\r\nFormMessage.propTypes = {\r\n formRef: PropTypes.object,\r\n isSuccessMessage: PropTypes.bool.isRequired,\r\n messages: PropTypes.array,\r\n};\r\n\r\nexport default FormMessage;\r\n","export const ssoFieldTypes = {\r\n EmailAddress: 0,\r\n Username: 1,\r\n ConfirmEmailAddress: 2,\r\n OldPassword: 3,\r\n Password: 4,\r\n ConfirmPassword: 5,\r\n Title: 6,\r\n FirstName: 7,\r\n LastName: 8,\r\n DateOfBirth: 9,\r\n AddressLine1: 10,\r\n AddressLine2: 11,\r\n AddressLine3: 12,\r\n Postcode: 13,\r\n MobilePhone: 14,\r\n City: 15,\r\n Country: 16,\r\n County: 17,\r\n MainAddress: 18,\r\n ShippingAddress: 19,\r\n BillingAddress: 20,\r\n FavoritePlayer: 21,\r\n Venues: 22,\r\n Consent: 23,\r\n OffersDetails: 24,\r\n AcceptOffers: 25,\r\n OffersConsent: 26,\r\n RefuseOffers: 27,\r\n Policy: 28,\r\n PrivacyPolicy: 29,\r\n OneClubTermsAndServices: 30,\r\n ContactDetails: 31,\r\n VerificationCode: 32,\r\n BecomeOneClubMember: 33,\r\n SelectOption: 34,\r\n MultipleChoiceOption: 35,\r\n LookupSuggestion: 36,\r\n FrequentlyAskedQuestion: 37,\r\n HTMLText: 38,\r\n BecomeOneClubMemberInfo: 39,\r\n MainAddressLabel: 40,\r\n ChampionshipSection: 41,\r\n ChannelSection: 42,\r\n InterestSection: 43,\r\n RaMemberId: 44,\r\n Captcha: 45,\r\n Mastercard: 46,\r\n State: 47,\r\n TextAndImageTile: 48\r\n};\r\n","\r\nexport const formStyleConstants = {\r\n smallField: 'size-4-12',\r\n isFilled: 'is-filled',\r\n isSuccess: 'is-success',\r\n isInvalid: 'is-invalid',\r\n isOpened: 'is-opened',\r\n fieldHeaderClassName: 'fieldHeader',\r\n customFieldClassName: 'customField'\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\n\r\nfunction FieldHeader({\r\n fieldName,\r\n headerTitle,\r\n headerText,\r\n textClassName\r\n}) {\r\n const fieldClassName = fieldName || formStyleConstants.fieldHeaderClassName;\r\n return (\r\n isEmpty(headerTitle) && isEmpty(headerText) ?\r\n null :\r\n
    \r\n

    {headerTitle}

    \r\n
    \r\n {headerText}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nFieldHeader.propTypes = {\r\n fieldName: PropTypes.string,\r\n headerTitle: PropTypes.string,\r\n headerText: PropTypes.string,\r\n textClassName: PropTypes.string,\r\n};\r\n\r\nexport default FieldHeader;\r\n","import React, { Component, Fragment } from 'react';\r\nimport ReactTooltip from \"react-tooltip\";\r\nimport PropTypes from 'prop-types';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faInfoCircle } from '@fortawesome/free-solid-svg-icons'\r\n\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport FieldHeader from './FieldHeader';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\n\r\nclass FormTextInput extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { validState, defaultValue } = this.props;\r\n\r\n this.handleBlur = this.handleBlur.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleChangeCallback = this.handleChangeCallback.bind(this);\r\n this.handleFieldIsFilled = this.handleFieldIsFilled.bind(this);\r\n this.getFieldType = this.getFieldType.bind(this);\r\n\r\n this.initialState = {\r\n defaultValue: defaultValue || formMessageConstants.emptyString,\r\n isFilled: !isEmpty(defaultValue),\r\n isValid: true,\r\n errorMessage: ''\r\n };\r\n if (validState) {\r\n this.initialState.isValid = validState.isValid;\r\n this.initialState.errorMessage = validState.errorMessage;\r\n }\r\n this.state = this.initialState;\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (this.props.defaultValue === nextProps.defaultValue) {\r\n return;\r\n }\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n defaultValue: nextProps.defaultValue || formMessageConstants.emptyString,\r\n isFilled: !isEmpty(nextProps.defaultValue)\r\n }));\r\n }\r\n\r\n handleChange(event) {\r\n const { value } = event.target;\r\n const { onChange } = this.props;\r\n onChange(event);\r\n this.setState(\r\n (prevState) => ({\r\n ...prevState,\r\n defaultValue: value\r\n })\r\n );\r\n }\r\n\r\n handleChangeCallback() {\r\n const { onChange } = this.props;\r\n onChange(this.state);\r\n }\r\n\r\n handleBlur(event) {\r\n const { onBlur } = this.props;\r\n const { value } = event.target;\r\n this.handleFieldIsFilled(value);\r\n if (onBlur) {\r\n onBlur(event);\r\n }\r\n }\r\n\r\n handleFieldIsFilled(value) {\r\n const isFilled = value !== '';\r\n this.setState((state) => ({ ...state, isFilled }));\r\n }\r\n\r\n getFieldType() {\r\n const { isPassword } = this.props;\r\n return isPassword ? 'password' : 'text';\r\n }\r\n\r\n render() {\r\n const {\r\n name,\r\n autocompleteValue,\r\n label,\r\n isHidden,\r\n headerTitle,\r\n headerText,\r\n size,\r\n isPassword,\r\n validState,\r\n formRef,\r\n isDisabled,\r\n tooltipText,\r\n } = this.props;\r\n\r\n const { isValid, errorMessage } = validState || this.state;\r\n const { defaultValue, isFilled } = this.state;\r\n const fieldClassName = name || formStyleConstants.customFieldClassName;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {\r\n !isEmpty(tooltipText) ?
    \r\n
    : null\r\n }\r\n \r\n \r\n \r\n {!isValid ?
      \r\n
    • {errorMessage}
    • \r\n
    : null}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nFormTextInput.propTypes = {\r\n formRef: PropTypes.object,\r\n name: PropTypes.string.isRequired,\r\n autocompleteValue: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n headerTitle: PropTypes.string,\r\n headerText: PropTypes.string,\r\n size: PropTypes.string,\r\n isPassword: PropTypes.bool,\r\n defaultValue: PropTypes.string,\r\n onChange: PropTypes.func.isRequired,\r\n onBlur: PropTypes.func,\r\n validState: PropTypes.object,\r\n isDisabled: PropTypes.bool,\r\n tooltipText: PropTypes.string\r\n};\r\n\r\nexport default FormTextInput;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\nimport ReCAPTCHA from \"react-google-recaptcha\";\r\nimport app from '../../../../../general/js/app';\r\n\r\nclass FormCaptchaField extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { validState } = this.props;\r\n\r\n this.initialState = {\r\n isValid: true,\r\n errorMessage: ''\r\n };\r\n if (validState) {\r\n this.initialState.isValid = validState.isValid;\r\n this.initialState.errorMessage = validState.errorMessage;\r\n }\r\n this.state = this.initialState;\r\n }\r\n\r\n render() {\r\n const {\r\n validState,\r\n formRef,\r\n onChange,\r\n isHidden\r\n } = this.props;\r\n\r\n const { isValid, errorMessage } = validState || this.state;\r\n const fieldClassName = formStyleConstants.customFieldClassName;\r\n const recaptchaPublicKey = app.state.recaptchaPublicKey;\r\n const recaptchaStyle = {\r\n marginTop: '15px',\r\n display: isHidden ? 'none' : 'block'\r\n }\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n\r\n {!isValid ?
      \r\n
    • {errorMessage}
    • \r\n
    : null}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nFormCaptchaField.propTypes = {\r\n formRef: PropTypes.object,\r\n name: PropTypes.string.isRequired,\r\n isHidden: PropTypes.bool.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n validState: PropTypes.object,\r\n};\r\n\r\nexport default FormCaptchaField;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formConstants } from '../utils/constants/form-constants';\r\nimport FieldHeader from './utility/FieldHeader';\r\nimport { getDestructuredText } from '../../../../general/js/utils';\r\n\r\nfunction FormOffers({\r\n offersDetails,\r\n onChange,\r\n refuseOffersName,\r\n acceptOffersName,\r\n defaultValue,\r\n isDisabled\r\n}) {\r\n const [isDirty, setIsDirty] = useState(false);\r\n\r\n const [refuseOffers, setRefuseOffers] = useState(false);\r\n const [acceptOffers, setAcceptOffers] = useState(false);\r\n\r\n const refuseOffersDefaultValueFromProps = isDirty ?\r\n refuseOffers : defaultValue === undefined ? false : defaultValue[formConstants.refuseOffers];\r\n const acceptOffersDefaultValueFromProps = isDirty ?\r\n acceptOffers : defaultValue === undefined ? false : defaultValue[formConstants.acceptOffers];\r\n\r\n if (refuseOffers !== refuseOffersDefaultValueFromProps) {\r\n setRefuseOffers(refuseOffersDefaultValueFromProps);\r\n }\r\n\r\n if (acceptOffers !== acceptOffersDefaultValueFromProps) {\r\n setAcceptOffers(acceptOffersDefaultValueFromProps);\r\n }\r\n\r\n const acceptOffersFieldTitle = offersDetails.acceptOffers.fieldHeaderTitle;\r\n const acceptOffersFieldText = offersDetails.acceptOffers.fieldHeaderText;\r\n\r\n const refuseOffersFieldTitle = offersDetails.refuseOffers.fieldHeaderTitle;\r\n const refuseOffersFieldText = offersDetails.refuseOffers.fieldHeaderText;\r\n\r\n const onRefuseCheckboxChange = (event) => {\r\n const checkboxValue = event.target.checked;\r\n setRefuseOffers(checkboxValue);\r\n onChange(event);\r\n setIsDirty(true);\r\n };\r\n\r\n const onAcceptCheckboxChange = (event) => {\r\n const checkboxValue = event.target.checked;\r\n setAcceptOffers(checkboxValue);\r\n onChange(event);\r\n setIsDirty(true);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n {\r\n !offersDetails.refuseOffers.isHidden &&\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n {getDestructuredText(\r\n offersDetails.emailConsent.label,\r\n offersDetails.emailConsent.link\r\n )}\r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nFormOffers.propTypes = {\r\n offersDetails: PropTypes.object.isRequired,\r\n refuseOffersName: PropTypes.string.isRequired,\r\n acceptOffersName: PropTypes.string.isRequired,\r\n defaultValue: PropTypes.object,\r\n onChange: PropTypes.func\r\n};\r\n\r\nexport default FormOffers;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formStyleConstants } from '../utils/constants/form-style-constants';\r\nimport { getDestructuredTextWithMultipleLinks } from '../../../../general/js/utils';\r\n\r\nfunction FormPolicy({\r\n policy,\r\n isHidden,\r\n showConsent,\r\n consentLabel,\r\n policyName,\r\n onChange,\r\n validState,\r\n defaultValue\r\n}) {\r\n const { isValid, errorMessage } = validState || { isValid: true };\r\n if (isHidden) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {getDestructuredTextWithMultipleLinks(\r\n policy.label,\r\n policy.link.split(';')\r\n )}\r\n
    \r\n\r\n { showConsent ?\r\n
    \r\n \r\n {!isValid ?
      \r\n
    • {errorMessage}
    • \r\n
    : null}\r\n
    : null}\r\n
    \r\n );\r\n}\r\n\r\nFormPolicy.propTypes = {\r\n policy: PropTypes.object.isRequired,\r\n consentLabel: PropTypes.string.isRequired,\r\n policyName: PropTypes.string.isRequired,\r\n onChange: PropTypes.func,\r\n validState: PropTypes.object\r\n};\r\n\r\nexport default FormPolicy;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formStyleConstants } from '../utils/constants/form-style-constants';\r\n\r\nclass FormConsentDetails extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { isOpened: false };\r\n this.handleClick = this.handleClick.bind(this);\r\n }\r\n\r\n handleClick() {\r\n this.setState((state) => {\r\n return { isOpened: !state.isOpened };\r\n });\r\n }\r\n\r\n render() {\r\n const { consentDetails } = this.props;\r\n const { isOpened } = this.state;\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n \r\n {consentDetails.label}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n {consentDetails.text}\r\n

    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nFormConsentDetails.propTypes = {\r\n consentDetails: PropTypes.object.isRequired\r\n};\r\n\r\nexport default FormConsentDetails;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\nimport FieldHeader from './FieldHeader';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\n\r\nclass FormSelectField extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { defaultValue, options } = props;\r\n const selectedOption = options.find((option) => option.code === defaultValue) || {};\r\n this.state = { defaultValue, selectedOption };\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (this.props.defaultValue === nextProps.defaultValue) {\r\n return;\r\n }\r\n const { defaultValue, options } = nextProps;\r\n const selectedOption = options.find((option) => option.code === defaultValue) || {};\r\n\r\n this.setState((state) => ({ ...state, defaultValue: nextProps.defaultValue, selectedOption }));\r\n }\r\n\r\n handleChange(event) {\r\n const { onChange, options } = this.props;\r\n const { value } = event.target;\r\n const selectedOption = options.find((option) => option.code === value) || {};\r\n this.setState((state) => ({ ...state, defaultValue: value, selectedOption }));\r\n onChange(event);\r\n }\r\n\r\n render() {\r\n const {\r\n name,\r\n label,\r\n isHidden,\r\n headerTitle,\r\n headerText,\r\n size,\r\n isDisabled,\r\n options,\r\n propertyForValue,\r\n validState,\r\n formRef\r\n } = this.props;\r\n const { defaultValue, selectedOption } = this.state;\r\n const { isValid, errorMessage } = validState || { isValid: true };\r\n const fieldClassName = name || formStyleConstants.customFieldClassName;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {selectedOption.flag && \"flag\"}\r\n \r\n \r\n {options.map((option) => {\r\n return (\r\n \r\n {option.label}\r\n \r\n );\r\n })\r\n }\r\n \r\n \r\n \r\n \r\n {!isValid ?
      \r\n
    • {errorMessage}
    • \r\n
    : null}\r\n \r\n
    );\r\n }\r\n}\r\n\r\nFormSelectField.propTypes = {\r\n formRef: PropTypes.object,\r\n name: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n headerTitle: PropTypes.string,\r\n headerText: PropTypes.string,\r\n size: PropTypes.string,\r\n options: PropTypes.array.isRequired,\r\n propertyForValue: PropTypes.string.isRequired,\r\n defaultValue: PropTypes.string,\r\n onChange: PropTypes.func,\r\n validState: PropTypes.object\r\n};\r\n\r\nexport default FormSelectField;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport FieldHeader from './FieldHeader';\r\n\r\nclass FormDateField extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { validState, defaultValue } = this.props;\r\n\r\n this.initialState = {\r\n day: '', month: '', year: '', isValid: true, errorMessage: ''\r\n };\r\n\r\n if (validState) {\r\n this.initialState.isValid = validState.isValid;\r\n this.initialState.errorMessage = validState.errorMessage;\r\n }\r\n\r\n if (!isEmpty(defaultValue)) {\r\n this.initialState.day = defaultValue.getDate();\r\n this.initialState.month = defaultValue.getMonth() + 1;\r\n this.initialState.year = defaultValue.getFullYear();\r\n }\r\n\r\n this.state = this.initialState;\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleChangeCallback = this.handleChangeCallback.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (this.props.defaultValue === nextProps.defaultValue) {\r\n return;\r\n }\r\n if (isEmpty(nextProps.defaultValue)) return;\r\n const dayValue = nextProps.defaultValue.getDate();\r\n const monthValue = nextProps.defaultValue.getMonth() + 1;\r\n const yearValue = nextProps.defaultValue.getFullYear();\r\n\r\n this.setState((state) => ({\r\n ...state, day: dayValue, month: monthValue, year: yearValue\r\n }));\r\n }\r\n\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n this.setState(\r\n (prevState) => ({\r\n ...prevState,\r\n [name]: value\r\n }),\r\n this.handleChangeCallback\r\n );\r\n }\r\n\r\n handleChangeCallback() {\r\n const { onChange } = this.props;\r\n onChange(this.state);\r\n }\r\n\r\n render() {\r\n const {\r\n validState,\r\n formRef,\r\n isHidden,\r\n headerTitle,\r\n headerText,\r\n isDisabled,\r\n name\r\n } = this.props;\r\n const { day, month, year } = this.state;\r\n const { isValid, errorMessage } = validState || this.state;\r\n return (\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n {!isValid ?
      \r\n
    • {errorMessage}
    • \r\n
    : null}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nFormDateField.propTypes = {\r\n formRef: PropTypes.object,\r\n name: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n headerTitle: PropTypes.string,\r\n headerText: PropTypes.string,\r\n onChange: PropTypes.func.isRequired,\r\n validState: PropTypes.object,\r\n defaultValue: PropTypes.object\r\n};\r\n\r\nexport default FormDateField;\r\n","import React, { Component, Fragment } from 'react';\r\nimport FieldHeader from './utility/FieldHeader';\r\nimport PropTypes from 'prop-types';\r\nimport { isEmpty } from '../utils/obj-utils';\r\n\r\nclass FormMultipleInterests extends Component {\r\n constructor(props) {\r\n super(props);\r\n // TODO: fix venues update;\r\n const { validState, defaultValue } = props;\r\n this.initialState = { venues: [], isValid: true, errorMessage: '' };\r\n\r\n if (validState) {\r\n this.initialState.isValid = validState.isValid;\r\n this.initialState.errorMessage = validState.errorMessage;\r\n }\r\n\r\n if (!isEmpty(defaultValue)) {\r\n this.initialState.venues = defaultValue;\r\n }\r\n\r\n this.state = this.initialState;\r\n\r\n this.displayVenues = this.displayVenues.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleChangeCallback = this.handleChangeCallback.bind(this);\r\n this.displayHeader = this.displayHeader.bind(this);\r\n }\r\n\r\n displayHeader() {\r\n const { name,\r\n headerTitle,\r\n headerText,\r\n isHidden,\r\n interestsData } = this.props;\r\n\r\n if (isHidden || interestsData.choices.length == 0)\r\n return;\r\n\r\n return \r\n ;\r\n }\r\n\r\n displayVenues() {\r\n const { interestsData, defaultValue } = this.props;\r\n\r\n return interestsData.choices.map((venue) => {\r\n let isSelected = false;\r\n if (!isEmpty(defaultValue)) {\r\n const defaultValuesUpper = defaultValue.map(item => item.toUpperCase()); \r\n isSelected = defaultValuesUpper.includes(venue.id.toUpperCase());\r\n }\r\n\r\n return (\r\n \r\n );\r\n });\r\n }\r\n\r\n handleChange(event) {\r\n const target = event.target;\r\n const isChecked = target.checked;\r\n const name = target.name;\r\n\r\n const venues = this.state.venues.map(item => item.toUpperCase());\r\n\r\n const indexOfVenue = venues.indexOf(name.toUpperCase());\r\n\r\n this.setState((state) => {\r\n const venues = isChecked ?\r\n [...state.venues, name] :\r\n state.venues.filter((item, j) => indexOfVenue !== j);\r\n\r\n return {\r\n venues\r\n };\r\n }, this.handleChangeCallback);\r\n }\r\n\r\n handleChangeCallback() {\r\n const { onChange, name } = this.props;\r\n onChange({\r\n target: {\r\n name,\r\n value: this.state.venues\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n interestsData,\r\n isHidden,\r\n validState,\r\n formRef\r\n } = this.props;\r\n const { isValid, errorMessage } = validState || this.state;\r\n\r\n return (\r\n \r\n {this.displayHeader()}\r\n
    \r\n { interestsData.choices.length == 0 ? \"\" : \r\n
    \r\n
    \r\n {interestsData.label}\r\n
    \r\n {this.displayVenues()}\r\n {!isValid ?
      \r\n
    • {errorMessage}
    • \r\n
    : null}\r\n
    \r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nFormMultipleInterests.propTypes = {\r\n formRef: PropTypes.object,\r\n interestsData: PropTypes.object.isRequired,\r\n name: PropTypes.string.isRequired,\r\n defaultValue: PropTypes.array,\r\n onChange: PropTypes.func,\r\n validState: PropTypes.object\r\n};\r\n\r\nexport default FormMultipleInterests;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { getDestructuredText } from '../../../../general/js/utils';\r\n\r\nfunction FormContactInfo({ contactDetails }) {\r\n return (\r\n
    \r\n
    \r\n {getDestructuredText(contactDetails.label, contactDetails.link)}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nFormContactInfo.propTypes = {\r\n contactDetails: PropTypes.object.isRequired\r\n};\r\n\r\nexport default FormContactInfo;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport FieldHeader from './FieldHeader';\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\n\r\nclass FormCheckboxInput extends Component {\r\n render() {\r\n const {\r\n formRef,\r\n name,\r\n label,\r\n headerTitle,\r\n headerText,\r\n onChange,\r\n defaultValue\r\n } = this.props;\r\n const fieldClassName = name || formStyleConstants.customFieldClassName;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nFormCheckboxInput.propTypes = {\r\n formRef: PropTypes.object,\r\n name: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n headerTitle: PropTypes.string,\r\n headerText: PropTypes.string,\r\n defaultValue: PropTypes.bool,\r\n onChange: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default FormCheckboxInput;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport FieldHeader from './FieldHeader';\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\nimport { isEmpty, isAllWhiteSpace } from '../../utils/obj-utils';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\n\r\nclass FormLookupField extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { validState, defaultValue } = props;\r\n\r\n this.initialState = {\r\n isFilled: !isEmpty(defaultValue),\r\n lookupValue: isEmpty(defaultValue) ? '' : defaultValue,\r\n areSuggestionsVisible: false,\r\n isValid: true,\r\n errorMessage: ''\r\n };\r\n\r\n if (validState) {\r\n this.initialState.isValid = validState.isValid;\r\n this.initialState.errorMessage = validState.errorMessage;\r\n }\r\n this.state = this.initialState;\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleBlur = this.handleBlur.bind(this);\r\n this.displaySuggestedPlayers = this.displaySuggestedPlayers.bind(this);\r\n this.displayHeader = this.displayHeader.bind(this);\r\n this.handleCloseSuggestions = this.handleCloseSuggestions.bind(this);\r\n this.handleFieldIsFilled = this.handleFieldIsFilled.bind(this);\r\n }\r\n\r\n handleChange(event, newLookupValue) {\r\n const { name, onChange } = this.props;\r\n const { value } = event.target;\r\n let updatedLookUpValue = newLookupValue !== undefined ? newLookupValue : value;\r\n\r\n if ((typeof updatedLookUpValue) !== 'string') {\r\n updatedLookUpValue = '';\r\n }\r\n\r\n this.handleFieldIsFilled(updatedLookUpValue);\r\n this.setState((state) => ({\r\n ...state,\r\n lookupValue: updatedLookUpValue,\r\n areSuggestionsVisible: true\r\n }));\r\n onChange({ target: { name, value: updatedLookUpValue, type: 'text' } });\r\n }\r\n\r\n handleBlur() {\r\n this.handleCloseSuggestions();\r\n }\r\n\r\n handleFieldIsFilled(value) {\r\n const isFilled = value !== '';\r\n this.setState((state) => ({ ...state, isFilled }));\r\n }\r\n\r\n displaySuggestedPlayers() {\r\n const { suggestions } = this.props;\r\n const { lookupValue } = this.state;\r\n\r\n if (isEmpty(suggestions)) {\r\n return (
    No results found!
    );\r\n }\r\n\r\n const filteredSuggestions = suggestions.filter((suggestion) => {\r\n if (isEmpty(lookupValue) || isAllWhiteSpace(lookupValue)) {\r\n return true;\r\n }\r\n\r\n return suggestion.firstName.toLowerCase().includes(lookupValue.toLowerCase()) ||\r\n suggestion.lastName.toLowerCase().includes(lookupValue.toLowerCase());\r\n });\r\n\r\n if (isEmpty(filteredSuggestions)) {\r\n return
    No results found!
    ;\r\n }\r\n\r\n const suggestionsUi = filteredSuggestions.map((filteredSuggestion) => {\r\n return (\r\n
  • {\r\n this.handleChange(event, filteredSuggestion.label);\r\n this.handleCloseSuggestions();\r\n }}>\r\n
    \r\n
    \r\n
    {filteredSuggestion.firstName}
    \r\n
    {filteredSuggestion.lastName}
    \r\n
    \r\n
    \r\n
  • );\r\n });\r\n\r\n return suggestionsUi;\r\n }\r\n\r\n displayHeader() {\r\n const { name,\r\n headerTitle,\r\n headerText,\r\n isHidden } = this.props;\r\n\r\n if (isHidden)\r\n return;\r\n\r\n return \r\n ;\r\n }\r\n\r\n handleCloseSuggestions() {\r\n this.setState({ areSuggestionsVisible: false });\r\n }\r\n\r\n render() {\r\n const { lookupValue, areSuggestionsVisible } = this.state;\r\n const {\r\n name,\r\n autocompleteValue,\r\n label,\r\n isHidden,\r\n size,\r\n validState,\r\n formRef\r\n } = this.props;\r\n const { isValid, errorMessage } = validState || this.state;\r\n const { isFilled } = this.state;\r\n\r\n return (\r\n \r\n {this.displayHeader()}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {!areSuggestionsVisible ? : null}\r\n {areSuggestionsVisible ? : null}\r\n \r\n \r\n
    \r\n
    \r\n
      \r\n {this.displaySuggestedPlayers()}\r\n
    \r\n
    \r\n
    \r\n {!isValid ?
      \r\n
    • {errorMessage}
    • \r\n
    : null}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nFormLookupField.propTypes = {\r\n formRef: PropTypes.object,\r\n name: PropTypes.string.isRequired,\r\n suggestions: PropTypes.array.isRequired,\r\n autocompleteValue: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n headerTitle: PropTypes.string,\r\n headerText: PropTypes.string,\r\n size: PropTypes.string,\r\n defaultValue: PropTypes.string,\r\n onChange: PropTypes.func.isRequired,\r\n onBlur: PropTypes.func,\r\n validState: PropTypes.object\r\n};\r\n\r\nexport default FormLookupField;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\n\r\nfunction FormHTML({\r\n fieldName,\r\n headerTitle,\r\n headerText,\r\n isHidden,\r\n textClassName\r\n}) {\r\n const fieldClassName = fieldName || formStyleConstants.fieldHeaderClassName;\r\n const hasEmptyValues = isEmpty(headerTitle) && isEmpty(headerText);\r\n return (\r\n isHidden || hasEmptyValues ?\r\n null :\r\n
    \r\n

    {headerTitle}

    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nFormHTML.propTypes = {\r\n fieldName: PropTypes.string,\r\n isHidden: PropTypes.bool,\r\n headerTitle: PropTypes.string,\r\n headerText: PropTypes.string,\r\n textClassName: PropTypes.string,\r\n};\r\n\r\nexport default FormHTML;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport FieldHeader from './FieldHeader';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\n\r\nclass FormMobilePhoneInput extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { validState } = this.props;\r\n\r\n this.handleBlur = this.handleBlur.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleFieldIsFilled = this.handleFieldIsFilled.bind(this);\r\n this.handleFlagContainerClick = this.handleFlagContainerClick.bind(this);\r\n this.handleFlagsListContainer = this.handleFlagsListContainer.bind(this);\r\n this.handleListItemEnter = this.handleListItemEnter.bind(this);\r\n this.handleListItemLeave = this.handleListItemLeave.bind(this);\r\n this.handleCountryItemClick = this.handleCountryItemClick.bind(this);\r\n this.getProcessedDefaultValue = this.getProcessedDefaultValue.bind(this);\r\n this.getRetrievedDefaultValue = this.getRetrievedDefaultValue.bind(this);\r\n\r\n this.box = React.createRef();\r\n this.flagsListContainer = React.createRef();\r\n\r\n const processedDefaultValue = this.getProcessedDefaultValue();\r\n\r\n this.initialState = {\r\n ...processedDefaultValue,\r\n isValid: true,\r\n errorMessage: formMessageConstants.emptyString\r\n };\r\n\r\n if (validState) {\r\n this.initialState.isValid = validState.isValid;\r\n this.initialState.errorMessage = validState.errorMessage;\r\n }\r\n\r\n this.state = this.initialState;\r\n }\r\n componentDidMount() {\r\n document.addEventListener('click', this.handleOutsideClick);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n let defaultValue = this.props.defaultValue;\r\n\r\n if (_.isEmpty(defaultValue)) {\r\n defaultValue = {};\r\n }\r\n\r\n if (_.isEmpty(nextProps.defaultValue) || defaultValue.phoneNumber === nextProps.defaultValue.phoneNumber) {\r\n return;\r\n }\r\n\r\n if (!_.isEmpty(nextProps.defaultValue)) {\r\n const retrievedDefaultValue = this.getRetrievedDefaultValue(nextProps.defaultValue);\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n ...retrievedDefaultValue\r\n }));\r\n\r\n return;\r\n }\r\n\r\n const processedDefaultValue = this.getProcessedDefaultValue();\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n processedDefaultValue\r\n }));\r\n }\r\n\r\n componentWillUnmount(){\r\n document.removeEventListener('click', this.handleOutsideClick);\r\n }\r\n\r\n getRetrievedDefaultValue(selectedValue) {\r\n const { phoneNumber, selectedCountry } = selectedValue;\r\n\r\n return { defaultValue: phoneNumber, selectedCountry, isFilled: true };\r\n }\r\n\r\n getProcessedDefaultValue() {\r\n const { defaultValue, countries } = this.props;\r\n\r\n let phoneNumber = formMessageConstants.emptyString;\r\n let selectedCountry = countries.find((country) => country.code === 'GB');\r\n\r\n if (!_.isEmpty(defaultValue)) {\r\n phoneNumber = defaultValue.phoneNumber;\r\n selectedCountry = defaultValue.selectedCountry;\r\n }\r\n\r\n return { defaultValue: phoneNumber, selectedCountry, isFilled: !isEmpty(defaultValue) };\r\n }\r\n\r\n handleOutsideClick = (event) => {\r\n if (this.box && !this.box.current.contains(event.target) & !this.flagsListContainer.current.contains(event.target)) {\r\n if (!this.flagsListContainer.current.classList.contains('display-flags-list')) {\r\n return;\r\n }\r\n \r\n this.flagsListContainer.current.classList.remove('display-flags-list');\r\n }\r\n }\r\n\r\n handleChange(event) {\r\n const { onChange } = this.props;\r\n const { value } = event.target;\r\n const { selectedCountry } = this.state;\r\n\r\n onChange({\r\n selectedCountry: selectedCountry,\r\n phoneNumber: value\r\n });\r\n\r\n this.setState(\r\n (prevState) => ({\r\n ...prevState,\r\n defaultValue: value\r\n })\r\n );\r\n }\r\n\r\n handleBlur(event) {\r\n const { onBlur } = this.props;\r\n const { selectedCountry } = this.state;\r\n const { value } = event.target;\r\n this.handleFieldIsFilled(value);\r\n\r\n if (onBlur) {\r\n onBlur({\r\n selectedCountry: selectedCountry,\r\n phoneNumber: value\r\n });\r\n }\r\n }\r\n\r\n handleFieldIsFilled(value) {\r\n const isFilled = value !== formMessageConstants.emptyString;\r\n this.setState((state) => ({ ...state, isFilled }));\r\n }\r\n\r\n handleFlagContainerClick(event) {\r\n const { isDisabled } = this.props;\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if (isDisabled) {\r\n return;\r\n }\r\n\r\n this.flagsListContainer.current.classList.toggle('display-flags-list');\r\n }\r\n\r\n handleFlagsListContainer(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if (!this.flagsListContainer.current.classList.contains('display-flags-list')) {\r\n return;\r\n }\r\n\r\n this.flagsListContainer.current.classList.remove('display-flags-list');\r\n }\r\n\r\n handleListItemEnter(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n event.target.classList.add('country-list-item-highlight');\r\n }\r\n\r\n handleListItemLeave(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n event.target.classList.remove('country-list-item-highlight');\r\n }\r\n\r\n handleCountryItemClick(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if (_.isEmpty(event) ||\r\n _.isEmpty(event.currentTarget) ||\r\n _.isEmpty(event.currentTarget.children)) {\r\n return;\r\n }\r\n\r\n const targetChildren = event.currentTarget.children;\r\n const selectedCountryItem = targetChildren[1];\r\n const selectedCountryPhonePrefix = targetChildren[2];\r\n\r\n if (_.isEmpty(selectedCountryItem) ||\r\n _.isEmpty(selectedCountryPhonePrefix)) {\r\n return;\r\n }\r\n\r\n const { onChange } = this.props;\r\n const { defaultValue } = this.state;\r\n const { countries } = this.props;\r\n\r\n const selectedCountryItemValue = selectedCountryItem.innerText.trim();\r\n const selectedCountryPhonePrefixValue = selectedCountryPhonePrefix.innerText.trim();\r\n\r\n const selectedCountry = countries.find((country) => country.label === selectedCountryItemValue &&\r\n country.phonePrefix === selectedCountryPhonePrefixValue);\r\n this.flagsListContainer.current.classList.remove('display-flags-list');\r\n\r\n this.setState(\r\n (prevState) => ({\r\n ...prevState,\r\n selectedCountry\r\n })\r\n );\r\n\r\n onChange({\r\n selectedCountry,\r\n phoneNumber: defaultValue\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n name,\r\n label,\r\n isHidden,\r\n headerTitle,\r\n headerText,\r\n countries,\r\n isDisabled,\r\n validState,\r\n formRef\r\n } = this.props;\r\n\r\n const { isValid, errorMessage } = validState || this.state;\r\n const { defaultValue, isFilled, selectedCountry } = this.state;\r\n const fieldClassName = name || formStyleConstants.customFieldClassName;\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n {selectedCountry &&\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    }\r\n\r\n \r\n \r\n \r\n {!isValid ?
      \r\n
    • {errorMessage}
    • \r\n
    : null}\r\n
    \r\n \r\n
    \r\n
      \r\n {countries.map((country) => {\r\n return
    • \r\n
      \r\n {country.flag && }\r\n
      \r\n {country.label}\r\n {country.phonePrefix}\r\n
    • ;\r\n })}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nFormMobilePhoneInput.propTypes = {\r\n formRef: PropTypes.object,\r\n name: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n headerTitle: PropTypes.string,\r\n headerText: PropTypes.string,\r\n defaultValue: PropTypes.object,\r\n countries: PropTypes.array,\r\n onChange: PropTypes.func.isRequired,\r\n onBlur: PropTypes.func,\r\n validState: PropTypes.object\r\n};\r\n\r\nexport default FormMobilePhoneInput;\r\n","import React, { Component, Fragment } from 'react';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport PropTypes from 'prop-types';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faInfoCircle } from '@fortawesome/free-solid-svg-icons';\r\n\r\nimport { SitecoreImageField } from 'components/sitecore-fields';\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\n\r\nclass FormMastercardField extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { validState, defaultValue } = this.props;\r\n\r\n this.handleBlur = this.handleBlur.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleChangeCallback = this.handleChangeCallback.bind(this);\r\n this.handleFieldIsFilled = this.handleFieldIsFilled.bind(this);\r\n\r\n this.initialState = {\r\n defaultValue: defaultValue || formMessageConstants.emptyString,\r\n isFilled: !isEmpty(defaultValue),\r\n isValid: true,\r\n errorMessage: ''\r\n };\r\n if (validState) {\r\n this.initialState.isValid = validState.isValid;\r\n this.initialState.errorMessage = validState.errorMessage;\r\n }\r\n this.state = this.initialState;\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (this.props.defaultValue === nextProps.defaultValue) {\r\n return;\r\n }\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n defaultValue: nextProps.defaultValue || formMessageConstants.emptyString,\r\n isFilled: !isEmpty(nextProps.defaultValue)\r\n }));\r\n }\r\n\r\n handleChange(event) {\r\n const { value } = event.target;\r\n const { onChange } = this.props;\r\n onChange(event);\r\n this.setState(\r\n (prevState) => ({\r\n ...prevState,\r\n defaultValue: value\r\n })\r\n );\r\n }\r\n\r\n handleChangeCallback() {\r\n const { onChange } = this.props;\r\n onChange(this.state);\r\n }\r\n\r\n handleBlur(event) {\r\n const { onBlur } = this.props;\r\n const { value } = event.target;\r\n this.handleFieldIsFilled(value);\r\n if (onBlur) {\r\n onBlur(event);\r\n }\r\n }\r\n\r\n handleFieldIsFilled(value) {\r\n const isFilled = value !== '';\r\n this.setState((state) => ({ ...state, isFilled }));\r\n }\r\n\r\n render() {\r\n const {\r\n name,\r\n autocompleteValue,\r\n label,\r\n isHidden,\r\n headerTitle,\r\n headerText,\r\n size,\r\n validState,\r\n formRef,\r\n isDisabled,\r\n tooltipText,\r\n mastercardLogo\r\n } = this.props;\r\n\r\n const { isValid, errorMessage } = validState || this.state;\r\n const { defaultValue, isFilled } = this.state;\r\n const fieldClassName = name || formStyleConstants.customFieldClassName;\r\n\r\n return (\r\n \r\n
    \r\n {!isHidden ?\r\n
    \r\n
    \r\n
    \r\n

    \r\n {headerTitle}\r\n

    \r\n { mastercardLogo &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n !isEmpty(headerText) ?
    :\r\n null\r\n }\r\n
    \r\n \r\n {\r\n !isEmpty(tooltipText) ?
    \r\n
    : null\r\n }\r\n \r\n \r\n\r\n {!isValid ?
      \r\n
    • {errorMessage}
    • \r\n
    : null}\r\n
    \r\n \r\n
    \r\n
    \r\n
    :\r\n null}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nFormMastercardField.propTypes = {\r\n formRef: PropTypes.object,\r\n name: PropTypes.string.isRequired,\r\n autocompleteValue: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n headerTitle: PropTypes.string,\r\n headerText: PropTypes.string,\r\n size: PropTypes.string,\r\n defaultValue: PropTypes.string,\r\n onChange: PropTypes.func.isRequired,\r\n onBlur: PropTypes.func,\r\n validState: PropTypes.object,\r\n isDisabled: PropTypes.bool,\r\n tooltipText: PropTypes.string,\r\n mastercardLogo: PropTypes.object\r\n};\r\n\r\nexport default FormMastercardField;\r\n","import React, { Component, Fragment } from 'react';\r\nimport '../../../../form-text-and-image-field'\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\n\r\nclass FormTextAndImageField extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n getTagStyle(){\r\n const { tag } = this.props;\r\n\r\n if(!hasValue(tag) || !hasValue(tag.title)){\r\n return null\r\n }\r\n const { backgroundColor, textColor } = tag;\r\n return hasValue(backgroundColor) || hasValue(textColor) \r\n ? { backgroundColor: backgroundColor, color: textColor}\r\n : { };\r\n }\r\n\r\n render() {\r\n const { formRef, imageSrc, tag, headerTitle, headerText } = this.props;\r\n const displayTag = hasValue(tag) && hasValue(tag.title);\r\n const inlineTagMessageStyle = displayTag ? this.getTagStyle() : {};\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n displayTag &&\r\n
    \r\n {tag.title}\r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n hasValue(headerTitle) &&\r\n
    {headerTitle}
    \r\n }\r\n {\r\n displayTag &&\r\n
    \r\n {tag.title}\r\n
    \r\n }\r\n
    \r\n {\r\n hasValue(headerText) && \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nFormTextAndImageField.propTypes = {\r\n};\r\n\r\nexport default FormTextAndImageField;\r\n","import React from 'react';\r\nimport FormTextInput from '../../common/utility/FormTextInput';\r\nimport FormCaptchaField from '../../common/utility/FormCaptchaField';\r\nimport FormOffers from '../../common/FormOffers';\r\nimport FormPolicy from '../../common/FormPolicy';\r\nimport FormConsentDetails from '../../common/FormConsentDetails';\r\nimport FormSelectField from '../../common/utility/FormSelectField';\r\nimport FormDateField from '../../common/utility/FormDateField';\r\nimport FormMultipleInterests from '../../common/FormMultipleInterests';\r\nimport FormContactInfo from '../../common/FormContactInfo';\r\nimport FormCheckboxInput from '../../common/utility/FormChecboxInput';\r\nimport FormLookupField from '../../common/utility/FormLookupField';\r\nimport FormHTML from '../../common/utility/FormHTML';\r\nimport FormMobilePhoneInput from '../../common/utility/FormMobilePhoneInput';\r\nimport FormMastercardField from '../../common/utility/FormMastercardField';\r\nimport FormTextAndImageField from '../../common/utility/FormTextAndImageField';\r\n\r\nexport const formFields = {\r\n /* eslint-disable */\r\n text: (fieldProperties) => {\r\n return \r\n },\r\n emailAddress: (fieldProperties) => {\r\n return \r\n },\r\n username: (fieldProperties) => formFields['text'](fieldProperties),\r\n confirmEmailAddress: (fieldProperties) => formFields['text'](fieldProperties),\r\n oldPassword: (fieldProperties) => {\r\n fieldProperties['isPassword'] = true;\r\n return formFields['text'](fieldProperties);\r\n },\r\n password: (fieldProperties) => {\r\n fieldProperties['isPassword'] = true;\r\n return formFields['text'](fieldProperties);\r\n },\r\n confirmPassword: (fieldProperties) => {\r\n fieldProperties['isPassword'] = true;\r\n return formFields['text'](fieldProperties);\r\n },\r\n title: (fieldProperties) => {\r\n return \r\n },\r\n firstName: (fieldProperties) => formFields['text'](fieldProperties),\r\n lastName: (fieldProperties) => formFields['text'](fieldProperties),\r\n dateOfBirth: (fieldProperties) => {\r\n return \r\n },\r\n addressLine1: (fieldProperties) => formFields['text'](fieldProperties),\r\n addressLine2: (fieldProperties) => formFields['text'](fieldProperties),\r\n addressLine3: (fieldProperties) => formFields['text'](fieldProperties),\r\n postcode: (fieldProperties) => formFields['text'](fieldProperties),\r\n mobilePhone: (fieldProperties) => {\r\n return \r\n },\r\n city: (fieldProperties) => formFields['text'](fieldProperties),\r\n country: (fieldProperties) => {\r\n return \r\n },\r\n county: (fieldProperties) => {\r\n const { fieldOptions } = fieldProperties;\r\n return fieldOptions !== undefined && fieldOptions.length > 0 ? () : null\r\n },\r\n state: (fieldProperties) => {\r\n const { fieldOptions } = fieldProperties;\r\n return fieldOptions !== undefined && fieldOptions.length > 0 ? () : null\r\n },\r\n mainAddress: (fieldProperties) => {\r\n return \r\n },\r\n shippingAddress: (fieldProperties) => {\r\n return \r\n },\r\n billingAddress: (fieldProperties) => {\r\n return \r\n },\r\n favoritePlayer: (fieldProperties) => {\r\n return \r\n },\r\n venues: (fieldProperties) => {\r\n return \r\n },\r\n consent: (fieldProperties) => {\r\n return \r\n },\r\n offersDetails: (fieldProperties) => {\r\n return \r\n },\r\n privacyPolicy: (fieldProperties) => {\r\n return \r\n },\r\n oneClubTermsAndServices: (fieldProperties) => formFields['privacyPolicy'](fieldProperties),\r\n contactDetails: (fieldProperties) => {\r\n return \r\n },\r\n verificationCode: (fieldProperties) => {\r\n return ;\r\n },\r\n becomeOneClubMember: (fieldProperties) => {\r\n return \r\n },\r\n becomeOneClubMemberInfo: (fieldProperties) => {\r\n return \r\n \r\n },\r\n mainAddressLabel: (fieldProperties) => {\r\n return \r\n \r\n },\r\n championshipSection: (fieldProperties) => formFields['venues'](fieldProperties),\r\n channelSection: (fieldProperties) => formFields['venues'](fieldProperties),\r\n interestSection: (fieldProperties) => formFields['venues'](fieldProperties),\r\n raMemberId: (fieldProperties) => formFields['text'](fieldProperties),\r\n reCaptcha: (fieldProperties) => {\r\n return \r\n },\r\n mastercard: (fieldProperties) => {\r\n return \r\n },\r\n textAndImageTile: (fieldProperties) => {\r\n return \r\n }\r\n /* eslint-enable */\r\n};\r\n","import { \r\n hasValue,\r\n findElementByProperty,\r\n getProperty,\r\n getObjectKeyByValue,\r\n isNullOrUndefined\r\n} from \"../../../../../../general/js/general-helpers\";\r\nimport { formMessageConstants } from \"../../../utils/constants/form-message-constants\";\r\nimport { formFieldConstants } from \"../../../utils/constants/form-field-constants\";\r\nimport { ssoFieldTypes } from \"../../../utils/field-types\";\r\nimport { ssoFormTypes } from \"../../../utils/form-types\";\r\n\r\nexport const findOptionInSelectField = (selectField = {}, optionValue = '', propertyToReturn = '') => {\r\n if(!hasValue(selectField) || !hasValue(optionValue)){\r\n return formMessageConstants.emptyString;\r\n }\r\n\r\n const { options } = selectField;\r\n \r\n if(!hasValue(options)){\r\n return formMessageConstants.emptyString;\r\n }\r\n\r\n let selectedOption = findElementByProperty(options, formFieldConstants.selectFieldOptionsCode, optionValue);\r\n\r\n if (hasValue(selectedOption))\r\n return hasValue(propertyToReturn) ? getProperty(selectedOption, propertyToReturn) : selectedOption;\r\n\r\n selectedOption = findElementByProperty(options, formFieldConstants.selectFieldOptionsLabel, optionValue);\r\n\r\n return hasValue(propertyToReturn) ? getProperty(selectedOption, propertyToReturn) : selectedOption;\r\n};\r\n\r\nexport const isTextAndImageField = (formDataKey = '') => {\r\n if(!hasValue(formDataKey)){\r\n return false;\r\n }\r\n\r\n const ssoFieldType = getObjectKeyByValue(ssoFieldTypes, ssoFieldTypes.TextAndImageTile).toLowerCase();\r\n\r\n\r\n return formDataKey.toLowerCase().includes(ssoFieldType);\r\n}\r\n\r\nexport const hasFormFields = (formData = {}) => {\r\n if(!hasValue(formData)){\r\n return false;\r\n }\r\n\r\n var fields = Object.entries(formData).filter(([key, value]) => !isNullOrUndefined(value) && !isNullOrUndefined(value.fieldType));\r\n\r\n if(!hasValue(fields)){\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport const isBallotForm = (formType = null) => {\r\n if(!hasValue(formType)){\r\n return false;\r\n }\r\n\r\n return formType === ssoFormTypes.BallotSummaryForm\r\n || formType === ssoFormTypes.BallotLiteRegister\r\n || formType === ssoFormTypes.BallotFullRegister\r\n || formType === ssoFormTypes.BallotSignInForm\r\n || formType === ssoFormTypes.BallotForgotPassword;\r\n};","/* eslint-disable no-unused-vars */\r\nimport { ssoFieldTypes } from '../../utils/field-types';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport * as formFieldsConfig from './form-fields-config';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\nimport { createDateFromExisting } from '../../utils/date-utils';\r\nimport { isTextAndImageField } from './form-helpers/form-field-helpers';\r\n\r\nconst FormBuilder = ({\r\n formData,\r\n formReferences,\r\n verificationCode,\r\n countyData,\r\n stateData,\r\n countryData,\r\n handleChange,\r\n handleFieldChange,\r\n handleConfirmEmailChange,\r\n handleOldPasswordChange,\r\n handleConfirmPasswordChange,\r\n handleDateChange,\r\n handleMobilePhoneChange,\r\n handleCountryChange,\r\n handleCaptchaChange,\r\n handleFieldValidState,\r\n handleOnBlur,\r\n handleMastercardNumberChange,\r\n isReadOnly,\r\n}) => {\r\n function buildForm() {\r\n if (isEmpty(formData)) {\r\n return null;\r\n }\r\n\r\n if (isEmpty(formReferences)) {\r\n formReferences = [];\r\n }\r\n\r\n /* eslint-disable-next-line */\r\n var array = Object.entries(formData).filter(([key, value]) => value != undefined && value.fieldType !== undefined);\r\n\r\n array.sort(([, a], [, b]) => {\r\n const firstItemOrderNo = getOrderNo(a);\r\n const secondItemOrderNo = getOrderNo(b);\r\n\r\n return firstItemOrderNo - secondItemOrderNo;\r\n });\r\n\r\n return array.filter(([key, value]) => value !== undefined && value.fieldType !== undefined)\r\n .map(([formDataKey, formDataValue]) => {\r\n const fieldName = formDataKey;\r\n\r\n if (isTextAndImageField(formDataKey)) {\r\n formDataKey = formDataKey.substring(0, formDataKey.indexOf('-'));\r\n }\r\n\r\n const formField = formFieldsConfig.formFields[formDataKey];\r\n\r\n if (!formField) {\r\n return null;\r\n }\r\n\r\n let fieldOptions = isEmpty(formDataValue.options) ? formDataValue.choices : formDataValue.options;\r\n\r\n if (formDataValue.fieldType === ssoFieldTypes.MobilePhone) {\r\n const countryFormData = formData[formConstants.country];\r\n const countries = countryFormData.options;\r\n fieldOptions = countries;\r\n }\r\n\r\n const fieldProperties = getFieldProperties({\r\n fieldType: formDataValue.fieldType,\r\n fieldLabel: formDataValue.label,\r\n fieldHeaderTitle: formDataValue.fieldHeaderTitle,\r\n fieldHeaderText: formDataValue.fieldHeaderText,\r\n isHidden: formDataValue.isHidden,\r\n defaultValue: formDataValue.defaultValue,\r\n fieldSuggestions: formDataValue.suggestions,\r\n fieldOptions,\r\n isDisabled: isReadOnly || formDataValue.isDisabled,\r\n tooltipText: formDataValue.tooltipText,\r\n imageSrc: formDataValue.imageSrc,\r\n tag: formDataValue.tag\r\n }, fieldName, formReferences[fieldName]);\r\n return formField(fieldProperties);\r\n });\r\n\r\n function getOrderNo(item) {\r\n return item.orderNo !== undefined ? item.orderNo : Number.MAX_SAFE_INTEGER;\r\n }\r\n }\r\n\r\n function getFieldProperties({\r\n fieldType,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldSuggestions,\r\n fieldOptions,\r\n isDisabled,\r\n tooltipText,\r\n imageSrc,\r\n tag\r\n }, fieldName, formReference) {\r\n if (fieldType === ssoFieldTypes.EmailAddress) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'email',\r\n formReference,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isDisabled,\r\n tooltipText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState,\r\n handleOnBlur\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.ConfirmEmailAddress) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'email',\r\n formReference,\r\n fieldLabel,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden: true,\r\n defaultValue,\r\n fieldChangeCallback: handleConfirmEmailChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.Username) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'username email',\r\n formReference,\r\n fieldLabel,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.Password) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'current-password new-password',\r\n formReference,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.OldPassword) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'current-password',\r\n formReference,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleOldPasswordChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.ConfirmPassword) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'new-password',\r\n formReference,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleConfirmPasswordChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.FirstName) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'given-name',\r\n formReference,\r\n fieldLabel,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.RaMemberId) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'given-name',\r\n formReference,\r\n isDisabled,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.LastName) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'family-name',\r\n formReference,\r\n isDisabled,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.AddressLine1) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'address-line-1',\r\n formReference,\r\n fieldLabel,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.AddressLine2) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'address-line-2',\r\n formReference,\r\n fieldLabel,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.AddressLine3) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'address-line-3',\r\n formReference,\r\n isDisabled,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.City) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'shipping locality',\r\n formReference,\r\n isDisabled,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.MainAddress ||\r\n fieldType === ssoFieldTypes.ShippingAddress ||\r\n fieldType === ssoFieldTypes.BillingAddress ||\r\n fieldType === ssoFieldTypes.BecomeOneClubMember) {\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldLabel,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.BecomeOneClubMemberInfo) {\r\n return {\r\n fieldName,\r\n fieldHeaderText,\r\n isHidden,\r\n fieldHeaderTitle\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.MainAddressLabel) {\r\n return {\r\n fieldName,\r\n fieldHeaderText,\r\n isDisabled,\r\n fieldHeaderTitle\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.Postcode) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'postal-code',\r\n formReference,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n isDisabled,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldSize: formStyleConstants.smallField,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.MobilePhone) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'tel',\r\n formReference,\r\n isDisabled,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldOptions,\r\n fieldChangeCallback: handleMobilePhoneChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.Title) {\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n isDisabled,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldOptions,\r\n propertyForValue: formConstants.titlePropertyForValue,\r\n fieldSize: formStyleConstants.smallField,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.DateOfBirth) {\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldLabel,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue: defaultValue === undefined || defaultValue === null ? {} : createDateFromExisting(defaultValue),\r\n fieldChangeCallback: handleDateChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.Country) {\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldLabel,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldOptions,\r\n propertyForValue: formConstants.countryPropertyForValue,\r\n fieldChangeCallback: handleCountryChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.County) {\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldLabel: countyData.label,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isDisabled,\r\n isHidden,\r\n defaultValue,\r\n fieldOptions: countyData.availableCounties,\r\n propertyForValue: formConstants.countyPropertyForValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.State) {\r\n return {\r\n fieldName,\r\n formReference,\r\n isDisabled,\r\n fieldLabel: stateData.label,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldOptions: stateData.availableStates,\r\n propertyForValue: formConstants.statePropertyForValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.FavoritePlayer) {\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldLabel,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldSuggestions,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.Venues) {\r\n return {\r\n fieldName,\r\n formReference,\r\n isDisabled,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n interestsData: { choices: fieldOptions, label: fieldLabel },\r\n name: formConstants.venues,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.OffersDetails) {\r\n const { offersDetails } = formData;\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldHeaderTitle,\r\n isDisabled,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n offersDetails,\r\n fieldChangeCallback: handleChange,\r\n acceptOffersName: formConstants.acceptOffers,\r\n refuseOffersName: formConstants.refuseOffers,\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.Consent) {\r\n const { consentDetails } = formData;\r\n return {\r\n fieldName,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isDisabled,\r\n isHidden,\r\n defaultValue,\r\n formReference,\r\n consentDetails\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.PrivacyPolicy) {\r\n const { privacyPolicy } = formData;\r\n return {\r\n fieldName,\r\n formReference,\r\n defaultValue,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n policy: privacyPolicy.policy,\r\n consentLabel: privacyPolicy.label,\r\n showConsent: privacyPolicy.showConsent,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.OneClubTermsAndServices) {\r\n const { oneClubTermsAndServices } = formData;\r\n return {\r\n fieldName,\r\n formReference,\r\n defaultValue,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n policy: oneClubTermsAndServices.policy,\r\n consentLabel: oneClubTermsAndServices.label,\r\n showConsent: oneClubTermsAndServices.showConsent,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.ContactDetails) {\r\n const { contactDetails } = formData;\r\n return { fieldName: contactDetails.fieldKey, contactDetails };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.VerificationCode) {\r\n return {\r\n fieldName,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue: verificationCode,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.ChampionshipSection) {\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldLabel,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n interestsData: { choices: fieldOptions, label: fieldLabel },\r\n name: formConstants.championshipSection,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.ChannelSection) {\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n isDisabled,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n interestsData: { choices: fieldOptions, label: fieldLabel },\r\n name: formConstants.channelSection,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.InterestSection) {\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n isDisabled,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n interestsData: { choices: fieldOptions, label: fieldLabel },\r\n name: formConstants.interestSection,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.Captcha) {\r\n return {\r\n fieldName,\r\n formReference,\r\n isHidden,\r\n fieldChangeCallback: handleCaptchaChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.Mastercard) {\r\n const { mastercardLogo } = formData;\r\n return {\r\n fieldName,\r\n autocompleteValue: 'mastercard',\r\n formReference,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isDisabled,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleMastercardNumberChange,\r\n fieldValidStateCallback: handleFieldValidState,\r\n mastercardLogo\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.TextAndImageTile) {\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldHeaderTitle,\r\n isDisabled,\r\n fieldHeaderText,\r\n imageSrc,\r\n tag\r\n };\r\n }\r\n\r\n return {};\r\n }\r\n\r\n return buildForm();\r\n};\r\n\r\nexport default FormBuilder;\r\n","export const REGISTER_USER = 'REGISTER_USER';\r\nexport const REGISTER_USER_SUCCESS = 'REGISTER_USER_SUCCESS';\r\nexport const REGISTER_USER_ERROR = 'REGISTER_USER_ERROR';\r\nexport const LOAD_REGISTER_FORM_DATA_SUCCESS = 'LOAD_REGISTER_FORM_DATA_SUCCESS';\r\nexport const LOAD_REGISTER_FORM_DATA_ERROR = 'LOAD_REGISTER_FORM_DATA_ERROR';\r\n\r\nexport const RESEND_EMAIL_VERIFICATION_SUCCESS = 'RESEND_EMAIL_VERIFICATION_SUCCESS';\r\nexport const RESEND_EMAIL_VERIFICATION_ERROR = 'RESEND_EMAIL_VERIFICATION_ERROR';\r\n\r\nexport const RESET_REGISTER_FORM_STATE = 'RESET_REGISTER_FORM_STATE';\r\n\r\nexport const SIGN_IN_USER = 'SIGN_IN_USER';\r\nexport const SIGN_IN_USER_SUCCESS = 'SIGN_IN_USER_SUCCESS';\r\nexport const SIGN_IN_USER_ERROR = 'SIGN_IN_USER_ERROR';\r\nexport const LAST_LOG_IN_UPDATE_SUCCESS = 'LAST_LOG_IN_UPDATE_SUCCESS';\r\nexport const LAST_LOG_IN_UPDATE_ERROR = 'LAST_LOG_IN_UPDATE_ERROR';\r\nexport const NEW_PASSWORD_SAVED_SUCCESS = 'NEW_PASSWORD_SAVED_SUCCESS';\r\nexport const NEW_PASSWORD_SAVED_ERROR = 'NEW_PASSWORD_SAVED_ERROR';\r\nexport const RESET_SIGN_IN_FORM_STATE = 'RESET_SIGN_IN_FORM_STATE';\r\n\r\nexport const SIGN_OUT_USER_SUCCESS = 'SIGN_OUT_USER_SUCCESS';\r\nexport const SIGN_OUT_USER_ERROR = 'SIGN_OUT_USER_ERROR';\r\nexport const LOAD_SIGN_IN_FORM_DATA_SUCCESS = 'LOAD_SIGN_IN_FORM_DATA_SUCCESS';\r\nexport const LOAD_SIGN_IN_FORM_DATA_ERROR = 'LOAD_SIGN_IN_FORM_DATA_ERROR';\r\nexport const LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_SUCCESS = 'LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_SUCCESS';\r\nexport const LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_ERROR = 'LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_ERROR';\r\nexport const LOAD_SIGN_IN_SUCCESS_FORM_DATA_SUCCESS = 'LOAD_SIGN_IN_SUCCESS_FORM_DATA_SUCCESS';\r\n\r\nexport const FORGOT_PASSWORD = 'FORGOT_PASSWORD';\r\nexport const FORGOT_PASSWORD_SUCCESS = 'FORGOT_PASSWORD_SUCCESS';\r\nexport const FORGOT_PASSWORD_ERROR = 'FORGOT_PASSWORD_ERROR';\r\nexport const RESET_FORGOT_PASSWORD_FORM_STATE = 'RESET_FORGOT_PASSWORD_FORM_STATE';\r\nexport const LOAD_FORGOT_PASSWORD_FORM_SUCCESS = 'LOAD_FORGOT_PASSWORD_FORM_SUCCESS';\r\nexport const LOAD_FORGOT_PASSWORD_FORM_ERROR = 'LOAD_FORGOT_PASSWORD_FORM_ERROR';\r\n\r\nexport const RESET_PASSWORD = 'RESET_PASSWORD';\r\nexport const RESET_PASSWORD_SUCCESS = 'RESET_PASSWORD_SUCCESS';\r\nexport const RESET_PASSWORD_ERROR = 'RESET_PASSWORD_ERROR';\r\nexport const LOAD_RESET_PASSWORD_FORM_SUCCESS = 'LOAD_RESET_PASSWORD_FORM_SUCCESS';\r\nexport const LOAD_RESET_PASSWORD_FORM_ERROR = 'LOAD_RESET_PASSWORD_FORM_ERROR';\r\nexport const RESET_RESET_PASSWORD_FORM_STATE = 'RESET_RESET_PASSWORD_FORM_STATE';\r\n\r\nexport const LOAD_HOME_PAGE_TICKETS_DATA_SUCCESS = 'LOAD_HOME_PAGE_TICKETS_DATA_SUCCESS';\r\nexport const LOAD_HOME_PAGE_TICKETS_DATA_ERROR = 'LOAD_HOME_PAGE_TICKETS_DATA_ERROR';\r\nexport const LOAD_USER_DATA_SUCCESS = 'LOAD_USER_DATA_SUCCESS';\r\nexport const LOAD_USER_DATA_ERROR = 'LOAD_USER_DATA_ERROR';\r\nexport const LOAD_ORDER_HISTORY_SUCCESS = 'LOAD_ORDER_HISTORY_SUCCESS';\r\nexport const LOAD_ORDER_HISTORY_ERROR = 'LOAD_ORDER_HISTORY_ERROR';\r\nexport const LOAD_ORDER_HISTORY_PAGES_SUCCESS = 'LOAD_ORDER_HISTORY_PAGES_SUCCESS';\r\nexport const LOAD_ORDER_HISTORY_PAGES_ERROR = 'LOAD_ORDER_HISTORY_PAGES_ERROR';\r\nexport const LOAD_ORDER_DETAILS_SUCCESS = 'LOAD_ORDER_DETAILS_SUCCESS';\r\nexport const LOAD_ORDER_DETAILS_ERROR = 'LOAD_ORDER_DETAILS_ERROR';\r\nexport const LOAD_USER_TICKETS_SUCCESS = 'LOAD_USER_TICKETS_SUCCESS';\r\nexport const LOAD_USER_TICKETS_ERROR = 'LOAD_USER_TICKETS_ERROR';\r\nexport const DOWNLOAD_PDF_FILE_SUCCESS = 'DOWNLOAD_PDF_FILE_SUCCESS';\r\nexport const DOWNLOAD_PDF_FILE_ERROR = 'DOWNLOAD_PDF_FILE_ERROR';\r\nexport const RESUME_PAYMENT_BY_FILE_NUMBER_ERROR = 'RESUME_PAYMENT_BY_FILE_NUMBER_ERROR';\r\nexport const RESUME_PAYMENT_BY_FILE_NUMBER_SUCCESS = 'RESUME_PAYMENT_BY_FILE_NUMBER_SUCCESS';\r\nexport const PRINT_ORDER_SUMMARY_SUCCESS = 'PRINT_ORDER_SUMMARY_SUCCESS';\r\nexport const PRINT_ORDER_SUMMARY_ERROR = 'PRINT_ORDER_SUMMARY_ERROR';\r\nexport const UPDATE_USER_DETAILS_SUCCESS = 'UPDATE_USER_DETAILS_SUCCESS';\r\nexport const UPDATE_USER_DETAILS_ERROR = 'UPDATE_USER_DETAILS_ERROR';\r\nexport const REMOVE_USER_ACCOUNT_SUCCESS = 'REMOVE_USER_ACCOUNT_SUCCESS';\r\nexport const REMOVE_USER_ACCOUNT_ERROR = 'REMOVE_USER_ACCOUNT_ERROR';\r\nexport const UPDATE_USER_ADDRESSES_SUCCESS = 'UPDATE_USER_ADDRESSES_SUCCESS';\r\nexport const UPDATE_USER_ADDRESSES_ERROR = 'UPDATE_USER_ADDRESSES_ERROR';\r\nexport const RESET_USER_ADDRESSES_FORM_STATE = 'RESET_USER_ADDRESSES_FORM_STATE';\r\nexport const USER_ADDRESSES_ERROR_MESSAGE = 'USER_ADDRESSES_ERROR_MESSAGE';\r\n\r\nexport const RESET_USER_DETAILS_FORM_STATE = 'RESET_USER_DETAILS_FORM_STATE';\r\n\r\nexport const CHANGE_PASSWORD_SUCCESS = 'CHANGE_PASSWORD_SUCCESS';\r\nexport const CHANGE_PASSWORD_ERROR = 'CHANGE_PASSWORD_ERROR';\r\nexport const RESET_CHANGE_PASSWORD_FORM_STATE = 'RESET_CHANGE_PASSWORD_FORM_STATE';\r\nexport const RESET_HOME_PAGE_TICKETS_DATA_FORM_STATE = 'RESET_HOME_PAGE_TICKETS_DATA_FORM_STATE';\r\n\r\nexport const UPGRADE_TO_TICKETING_ACCOUNT_SUCCESS = 'UPGRADE_TO_TICKETING_ACCOUNT_SUCCESS';\r\nexport const UPGRADE_TO_TICKETING_ACCOUNT_ERROR = 'UPGRADE_TO_TICKETING_ACCOUNT_ERROR';\r\nexport const RESET_UPGRADE_ACCOUNT_FORM = 'RESET_UPGRADE_ACCOUNT_FORM';\r\n\r\nexport const LOAD_UPGRADE_TO_ONE_CLUB_FORM_DATA_SUCCESS = 'LOAD_UPGRADE_TO_ONE_CLUB_ACCOUNT_SUCCESS';\r\nexport const LOAD_UPGRADE_TO_ONE_CLUB_FORM_DATA_ERROR = 'LOAD_UPGRADE_TO_ONE_CLUB_ACCOUNT_ERROR';\r\n\r\nexport const SEARCH_ADDRESS_SUCCESS = 'SEARCH_ADDRESS_SUCCESS';\r\nexport const SEARCH_ADDRESS_ERROR = 'SEARCH_ADDRESS_ERROR';\r\n\r\nexport const RETRIEVE_ADDRESS_SUCCESS = 'RETRIEVE_ADDRESS_SUCCESS';\r\nexport const RETRIEVE_ADDRESS_ERROR = 'RETRIEVE_ADDRESS_ERROR';\r\nexport const RESET_RETRIEVE_USER_ADDRESS = 'RESET_RETRIEVE_USER_ADDRESS';\r\n\r\nexport const PURCHASE_ATTEMPT_SUCCESS = 'PURCHASE_ATTEMPT_SUCCESS';\r\nexport const PURCHASE_ATTEMPT_ERROR = 'PURCHASE_ATTEMPT_ERROR';\r\n\r\nexport const BEGIN_API_CALL = 'BEGIN_API_CALL';\r\nexport const API_CALL_ERROR = 'API_CALL_ERROR';\r\nexport const API_CALL_STATE_RESET = 'API_CALL_STATE_RESET';\r\n\r\nexport const LOAD_VERIFY_EMAIL_FORM_SUCCESS = 'LOAD_VERIFY_EMAIL_FORM_SUCCESS';\r\nexport const LOAD_VERIFY_EMAIL_FORM_ERROR = 'LOAD_VERIFY_EMAIL_FORM_ERROR';\r\nexport const VERIFY_EMAIL_SUCCESS = 'VERIFY_EMAIL_SUCCESS';\r\nexport const VERIFY_EMAIL_ERROR = 'VERIFY_EMAIL_ERROR';\r\nexport const RESET_VERIFY_EMAIL_FORM_STATE = 'RESET_VERIFY_EMAIL_FORM_STATE';\r\n\r\nexport const UPDATER_USER_EMAIL_SUCCESS = 'UPDATER_USER_EMAIL_SUCCESS';\r\n\r\nexport const UPDATE_ONE_CLUB_MEMBERSHIP_ERROR = 'UPDATE_ONE_CLUB_MEMBERSHIP_ERROR';\r\nexport const UPDATE_ONE_CLUB_MEMBERSHIP_SUCCESS = 'UPDATE_ONE_CLUB_MEMBERSHIP_SUCCESS';\r\n\r\nexport const UPDATE_OPTINS_ERROR = 'UPDATE_OPTINS_ERROR';\r\nexport const UPDATE_OPTINS_SUCCESS = 'UPDATE_OPTINS_SUCCESS';\r\n\r\nexport const VERIFY_IF_USER_EMAIL_EXISTS_ERROR = 'VERIFY_IF_USER_EMAIL_EXISTS_ERROR';\r\nexport const VERIFY_IF_USER_EMAIL_EXISTS_SUCCESS = 'VERIFY_IF_USER_EMAIL_EXISTS_SUCCESS';\r\n\r\nexport const RESALE_TICKETS_REDIRECT_URL_ERROR = 'RESALE_TICKETS_REDIRECT_URL_ERROR';\r\n\r\nexport const SAVE_USER_TO_ADDRESS_BOOK_SUCCESS = 'SAVE_USER_TO_ADDRESS_BOOK_SUCCESS';\r\nexport const SAVE_USER_TO_ADDRESS_BOOK_ERROR_MESSAGE = 'SAVE_USER_TO_ADDRESS_BOOK_ERROR_MESSAGE';\r\nexport const LOAD_ITEM_LIST_FORM_DATA_SUCCESS = 'LOAD_ITEM_LIST_FORM_DATA_SUCCESS';\r\nexport const LOAD_ITEM_LIST_FORM_DATA_ERROR = 'LOAD_ITEM_LIST_FORM_DATA_ERROR';\r\n","export const SERVER_ERROR_MESSAGE = 'Something went wrong.';\r\n\r\nexport const UPDATE_USER_DETAILS_SUCCESSFULLY = 'Your details have been updated successfully.';\r\nexport const CHANGE_PASSWORD_SUCCESSFULLY = 'Your password has been updated successfully.';\r\n\r\nexport const USER_REGISTRATION_SUCCESSFULLY = 'Your registration has been complete. You can sign in after verifying your email address.';\r\n\r\nexport const RESEND_EMAIL_VERIFICATION_SUCCESSFULLY = 'The verification email has been resent to the given address.';\r\n\r\nexport const SIGN_IN_USER_SUCCESSFULLY = 'The user has been signed in successfully.';\r\nexport const SIGN_OUT_USER_SUCCESSFULLY = 'The user has been signed out successfully.';\r\n\r\nexport const RESET_PASSWORD_SUCCESSFULLY = 'The password has been reset successfully.';\r\n\r\nexport const FORGOT_PASSWORD_SUCCESSFULLY = 'An email with more information about how to.';\r\n\r\nexport const UPGRADE_TO_TICKETING_ACCOUNT_SUCCESSFULLY = 'Your account has been upgraded successfully.';\r\n\r\nexport const PASSWORD_RESET_REQUIRED = 'We have made some changes to our system to improve your experience. This requires you to create a new password, please do this by clicking on the \\'Forgotten Password\\' below.';\r\n\r\nexport const MUST_CONFIRM_EMAIL_MESSAGE = 'Your email is not confirmed, please check your email and confirm your registration.';\r\n\r\nexport const MISSING_USER = 'User does not exist. Please register above.';\r\n","import * as types from './action-types';\r\n\r\nexport function beginApiCall() {\r\n return { type: types.BEGIN_API_CALL };\r\n}\r\n\r\nexport function apiCallError(error) {\r\n return { type: types.API_CALL_ERROR, error };\r\n}\r\n\r\nexport function apiCallStateReset(error) {\r\n return { type: types.API_CALL_STATE_RESET, error };\r\n}\r\n","/* eslint-disable no-shadow */\r\nimport * as types from './action-types';\r\nimport * as registerFormApi from '../api/register-form-api';\r\nimport * as apiResponseMessages from './api-response-messages';\r\nimport * as dataFormatHelper from './helpers/data-format-helper';\r\nimport { beginApiCall, apiCallError } from './api-status-actions';\r\n\r\nexport function loadSSORegisterFormDataSuccess(registerFormData) {\r\n return { type: types.LOAD_REGISTER_FORM_DATA_SUCCESS, registerFormData };\r\n}\r\n\r\nexport function loadSSORegisterFormDataError() {\r\n return { type: types.LOAD_REGISTER_FORM_DATA_ERROR };\r\n}\r\n\r\nexport function registerUserSuccess(userName, userRegistrationMessages) {\r\n return { type: types.REGISTER_USER_SUCCESS, userName, userRegistrationMessages };\r\n}\r\n\r\nexport function registerUserError(userRegistrationMessages) {\r\n return { type: types.REGISTER_USER_ERROR, userRegistrationMessages };\r\n}\r\n\r\nexport function resendEmailVerificationSuccess(resendEmailVerificationMessages) {\r\n return { type: types.RESEND_EMAIL_VERIFICATION_SUCCESS, resendEmailVerificationMessages };\r\n}\r\n\r\nexport function resendEmailVerificationError(resendEmailVerificationMessages) {\r\n return { type: types.RESEND_EMAIL_VERIFICATION_ERROR, resendEmailVerificationMessages };\r\n}\r\n\r\nexport function resetRegisterFormState() {\r\n return { type: types.RESET_REGISTER_FORM_STATE };\r\n}\r\n\r\nexport function verifyIfUserEmailExistsError(verifyIfUserEmailExistsErrorMessages) {\r\n return { type: types.VERIFY_IF_USER_EMAIL_EXISTS_ERROR, verifyIfUserEmailExistsErrorMessages };\r\n}\r\n\r\nexport function verifyIfUserEmailExistsSuccess(verifyIfUserEmailExistsSuccess) {\r\n return { type: types.VERIFY_IF_USER_EMAIL_EXISTS_SUCCESS, verifyIfUserEmailExistsSuccess };\r\n}\r\n\r\nexport function loadSSODefaultRegisterFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return registerFormApi.getSSODefaultRegisterFormData()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSORegisterFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSORegisterFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSORegisterFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function loadSSOOneClubRegisterFormData(formDataUrl) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return registerFormApi.getSSOOneClubRegisterFormData(formDataUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSORegisterFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSORegisterFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSORegisterFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function loadSSOTicketingRegisterFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return registerFormApi.getSSOTicketingRegisterFormData()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSORegisterFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSORegisterFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSORegisterFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function loadSSORaMembersRegisterFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return registerFormApi.getSSORaMembersRegisterFormData()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSORegisterFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSORegisterFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSORegisterFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function resendEmailVerification({\r\n emailAddress,\r\n ssoDomain,\r\n callBackUrl,\r\n actionSuccessText\r\n}) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return registerFormApi.resendEmailVerification(dataFormatHelper.getFormattedUserEmailData(emailAddress, ssoDomain), callBackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(resendEmailVerificationError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n dispatch(resendEmailVerificationSuccess([actionSuccessText]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(resendEmailVerificationError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function registerNewUser(userRegistrationData, actionSuccessText, callBackUrl) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return registerFormApi.registerNewUser(dataFormatHelper.getFormattedUserRegistrationData(userRegistrationData), callBackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(registerUserError([response.errorMessage]));\r\n return;\r\n }\r\n\r\n const { userName } = response;\r\n dispatch(registerUserSuccess(userName, [actionSuccessText]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(registerUserError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function verifyIfEmailAddressExists(emailAddress, callBackUrl) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return registerFormApi.verifyIfEmailAddressExists(emailAddress, callBackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(verifyIfUserEmailExistsError([response.errorMessage]));\r\n return;\r\n }\r\n\r\n dispatch(verifyIfUserEmailExistsSuccess(true));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(verifyIfUserEmailExistsError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n","import { handleResponse, handleError } from './api-utils';\r\nimport { apiConstants } from './api-constants';\r\n\r\nexport function getSSODefaultRegisterFormData() {\r\n return fetch(apiConstants.loadDefaultRegisterFormDataUrl, {\r\n method: 'GET',\r\n headers: { 'content-type': 'application/json' }\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function getSSOOneClubRegisterFormData(formDataUrl) {\r\n return fetch(formDataUrl)\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function getSSOTicketingRegisterFormData() {\r\n return fetch(apiConstants.loadTicketingRegisterFormDataUrl, {\r\n method: 'GET',\r\n headers: { 'content-type': 'application/json' }\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function getSSORaMembersRegisterFormData() {\r\n return fetch(apiConstants.loadRaMembersRegisterFormDataUrl, {\r\n method: 'GET',\r\n headers: { 'content-type': 'application/json' }\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function registerNewUser(userRegistrationData, callbackUrl) {\r\n return fetch(callbackUrl, {\r\n method: 'POST',\r\n headers: { 'content-type': 'application/json' },\r\n body: JSON.stringify(userRegistrationData)\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function resendEmailVerification(userEmailData, callbackUrl) {\r\n return fetch(callbackUrl, {\r\n method: 'POST',\r\n headers: { 'content-type': 'application/json' },\r\n body: JSON.stringify(userEmailData)\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function verifyIfEmailAddressExists(userEmail, callbackUrl) {\r\n return fetch(callbackUrl, {\r\n method: 'POST',\r\n headers: { 'content-type': 'application/json' },\r\n body: JSON.stringify({ emailAddress: userEmail })\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n","import { formValidationConstants } from '../components/utils/constants/form-validation-constants';\r\nimport { createDate, getTodayAsDate } from '../components/utils/date-utils';\r\n\r\nexport function validateDate(dateOfBirth) { \r\n if (!dateOfBirth) {\r\n return { isValid: false, errorMessage: formValidationConstants.dateOfBirthErrorMessage };\r\n }\r\n\r\n if (Object.prototype.toString.call(dateOfBirth) === '[object Date]') {\r\n return { isValid: true };\r\n }\r\n\r\n const { day, month, year } = dateOfBirth;\r\n if ((!day && day != '') || (!month && month != '') || (!year && year!='')) {\r\n return { isValid: true };\r\n }\r\n const userSetDate = parseUserSetDate({ day, month, year });\r\n\r\n if (!userSetDate) {\r\n return { isValid: false, errorMessage: formValidationConstants.dateOfBirthErrorMessage };\r\n }\r\n\r\n if (isMonthValid(userSetDate.monthAsNumber)) {\r\n return { isValid: false, errorMessage: formValidationConstants.dateOfBirthErrorMessage };\r\n }\r\n\r\n if (isUserOfAge(userSetDate)) {\r\n return { isValid: false, errorMessage: formValidationConstants.membersMustBeOVer16 };\r\n }\r\n\r\n return {\r\n isValid: true\r\n };\r\n}\r\n\r\nfunction parseUserSetDate(userSetValues) {\r\n const dayAsNumber = userSetValues.day ? parseInt(userSetValues.day, 10) : NaN;\r\n const monthAsNumber = userSetValues.month ? parseInt(userSetValues.month, 10) : NaN;\r\n const yearAsNumber = userSetValues.year ? parseInt(userSetValues.year, 10) : NaN; \r\n\r\n const areValuesInvalid = Number.isNaN(dayAsNumber) ||\r\n Number.isNaN(monthAsNumber) ||\r\n Number.isNaN(yearAsNumber);\r\n\r\n if (areValuesInvalid) {\r\n return null;\r\n }\r\n\r\n return { dayAsNumber, monthAsNumber, yearAsNumber };\r\n}\r\n\r\nfunction isMonthValid(monthAsNumber) {\r\n return monthAsNumber < formValidationConstants.minimumValidMonth ||\r\n monthAsNumber > formValidationConstants.maximumValidMonth;\r\n}\r\n\r\nfunction isUserOfAge(userSetDate) {\r\n const userBirthDate = createDate(userSetDate.yearAsNumber, userSetDate.monthAsNumber, userSetDate.dayAsNumber);\r\n const uerAge = getAge(userBirthDate);\r\n return uerAge < formValidationConstants.minimumValidAge;\r\n}\r\n\r\nfunction getAge(birthDate) {\r\n const today = getTodayAsDate();\r\n let age = today.getFullYear() - birthDate.getFullYear();\r\n const m = today.getMonth() - birthDate.getMonth();\r\n if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {\r\n age--;\r\n }\r\n return age;\r\n}\r\n","import { formValidationConstants } from '../components/utils/constants/form-validation-constants';\r\n\r\nexport function validatePrivacyPolicy(privacyPolicy) {\r\n return validateBooleanValue(privacyPolicy, formValidationConstants.privacyPolicyErrorMessage);\r\n}\r\n\r\nexport function validateOneClubTermsAndServicesPolicy(privacyPolicy) {\r\n return validateBooleanValue(privacyPolicy, formValidationConstants.oneClubTermsAndServicesErrorMessage);\r\n}\r\n\r\nfunction validateBooleanValue(value, errorMessage) {\r\n if (!value || value === false) {\r\n return {\r\n isValid: false, errorMessage\r\n };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n","import { formConstants } from '../../utils/constants/form-constants';\r\nimport {\r\n validateEmail,\r\n validatePassword,\r\n validateTitle,\r\n validateFirstName,\r\n validateLastName,\r\n validateAddressLine1,\r\n validateAddressLine2,\r\n validateAddressLine3,\r\n validatePostcode,\r\n validateMobilePhone,\r\n validateCity,\r\n validateCountry,\r\n validateCounty,\r\n validateState,\r\n validateMainAddress,\r\n validateShippingAddress,\r\n validateBillingAddress,\r\n validateBecomeOneClubMember,\r\n validateFavoritePlayer,\r\n validateVenues,\r\n validateChampionship,\r\n validateChannels,\r\n validateInterests,\r\n validateConfirmPassword,\r\n validateVerificationCode,\r\n validateOldPassword,\r\n validateRaMemberId,\r\n validateCaptchaBox,\r\n validateMastercard\r\n} from '../../../validators/text-validators';\r\nimport { validateDate } from '../../../validators/date-validators';\r\nimport { validatePrivacyPolicy, validateOneClubTermsAndServicesPolicy } from '../../../validators/policy-validators';\r\n\r\n\r\nexport const formFieldValidators = {\r\n [formConstants.emailAddress]: validateEmail,\r\n [formConstants.oldPassword]: validateOldPassword,\r\n [formConstants.password]: validatePassword,\r\n [formConstants.confirmPassword]: validateConfirmPassword,\r\n [formConstants.title]: validateTitle,\r\n [formConstants.firstName]: validateFirstName,\r\n [formConstants.lastName]: validateLastName,\r\n [formConstants.dateOfBirth]: validateDate,\r\n [formConstants.addressLine1]: validateAddressLine1,\r\n [formConstants.addressLine2]: validateAddressLine2,\r\n [formConstants.addressLine3]: validateAddressLine3,\r\n [formConstants.postcode]: validatePostcode,\r\n [formConstants.mobilePhone]: validateMobilePhone,\r\n [formConstants.city]: validateCity,\r\n [formConstants.country]: validateCountry,\r\n [formConstants.county]: validateCounty,\r\n [formConstants.state]: validateState,\r\n [formConstants.mainAddress]: validateMainAddress,\r\n [formConstants.shippingAddress]: validateShippingAddress,\r\n [formConstants.billingAddress]: validateBillingAddress,\r\n [formConstants.becomeOneClubMember]: validateBecomeOneClubMember,\r\n [formConstants.favoritePlayer]: validateFavoritePlayer,\r\n [formConstants.venues]: validateVenues,\r\n [formConstants.privacyPolicy]: validatePrivacyPolicy,\r\n [formConstants.oneClubTermsAndServices]: validateOneClubTermsAndServicesPolicy,\r\n [formConstants.verificationCode]: validateVerificationCode,\r\n [formConstants.championshipSection]: validateChampionship,\r\n [formConstants.channelSection]: validateChannels,\r\n [formConstants.interestSection]: validateInterests,\r\n [formConstants.raMemberId]: validateRaMemberId,\r\n [formConstants.reCaptcha]: validateCaptchaBox,\r\n [formConstants.mastercard]: validateMastercard\r\n};\r\n","/* eslint-disable consistent-return */\r\nimport get from 'lodash/get';\r\nimport { formFieldValidators } from '../form-field-validators';\r\nimport {\r\n validateOldPassword,\r\n validateConfirmPassword,\r\n validateCountry,\r\n validateConfirmEmail,\r\n validateCity,\r\n validateAddressLine1,\r\n validateAddressLine2,\r\n validateAddressLine3,\r\n validatePostcode,\r\n validateMobilePhone,\r\n validateRaMemberId,\r\n validateCaptchaBox,\r\n validateMastercard\r\n} from '../../../../validators/text-validators';\r\nimport FormValidator from '../form-validator';\r\nimport { validateDate } from '../../../../validators/date-validators';\r\nimport { isFormField, isEmpty } from '../../../utils/obj-utils';\r\nimport { formMessageConstants } from '../../../utils/constants/form-message-constants';\r\nimport { formConstants } from '../../../utils/constants/form-constants';\r\nimport { createDate } from '../../../utils/date-utils';\r\nimport { hasValue } from '../../../../../../general/js/general-helpers';\r\n\r\n// eslint-disable-next-line\r\nexport const handleFieldChange = (eventTarget) => (state) => {\r\n const {\r\n checked,\r\n name,\r\n value,\r\n type\r\n } = eventTarget;\r\n const valueToUpdate = type === 'checkbox' ? checked : value;\r\n\r\n return { [name]: valueToUpdate };\r\n};\r\n\r\nexport const handleFieldChangeWithValidation = (eventTarget, fieldData) => (state) => {\r\n const {\r\n checked,\r\n name,\r\n value,\r\n type\r\n } = eventTarget;\r\n\r\n const valueToUpdate = type === 'checkbox' ? checked : value;\r\n\r\n if (!isEmpty(fieldData)) {\r\n const { isHidden, isOptional } = fieldData;\r\n if (isHidden) {\r\n return { ...state, [name]: valueToUpdate };\r\n }\r\n\r\n if (isOptional && isEmpty(valueToUpdate)) {\r\n return { ...state, [name]: valueToUpdate };\r\n }\r\n }\r\n\r\n const { errors } = state;\r\n const fieldValidator = formFieldValidators[name];\r\n\r\n return {\r\n ...state,\r\n [name]: valueToUpdate,\r\n errors: {\r\n ...errors,\r\n [name]: fieldValidator !== undefined ? fieldValidator(valueToUpdate) : { isValid: false, errorMessage: formMessageConstants.somethingWentWrong }\r\n }\r\n };\r\n};\r\n\r\nexport const handleConfirmEmailFieldChange = (eventTarget) => (state) => {\r\n const { emailAddress, errors } = state;\r\n const { name, value } = eventTarget;\r\n return {\r\n ...state,\r\n [name]: value,\r\n errors: {\r\n ...errors,\r\n confirmEmailAddress: validateConfirmEmail(emailAddress, value)\r\n }\r\n };\r\n};\r\n\r\nexport const handleOldPasswordFieldChange = (eventTarget) => (state) => {\r\n const { password, errors } = state;\r\n const { name, value } = eventTarget;\r\n return {\r\n ...state,\r\n [name]: value,\r\n errors: {\r\n ...errors,\r\n oldPassword: validateOldPassword(password, value)\r\n }\r\n };\r\n};\r\n\r\nexport const handleConfirmPasswordFieldChange = (eventTarget) => (state) => {\r\n const { password, errors } = state;\r\n const { name, value } = eventTarget;\r\n return {\r\n ...state,\r\n [name]: value,\r\n errors: {\r\n ...errors,\r\n confirmPassword: validateConfirmPassword(password, value)\r\n }\r\n };\r\n};\r\n\r\nexport const handleDateChange = (event) => (state) => {\r\n const { errors } = state;\r\n const validationResult = validateDate(event);\r\n let dateOfBirth;\r\n\r\n if (validationResult.isValid) {\r\n const { day, month, year } = event;\r\n const dayAsNumber = parseInt(day, 10);\r\n const monthAsNumber = parseInt(month, 10);\r\n const yearAsNumber = parseInt(year, 10);\r\n dateOfBirth = createDate(yearAsNumber, monthAsNumber, dayAsNumber);\r\n }\r\n\r\n return {\r\n ...state,\r\n dateOfBirth,\r\n errors: {\r\n ...errors,\r\n dateOfBirth: validationResult\r\n }\r\n };\r\n};\r\n\r\nexport const handleMobilePhoneChange = (event, isOptional) => (state) => {\r\n const { errors } = state;\r\n const validationResult = validateMobilePhone(event.phoneNumber, isOptional);\r\n\r\n return {\r\n ...state,\r\n mobilePhone: {\r\n phoneNumber: event.phoneNumber,\r\n selectedCountry: event.selectedCountry\r\n },\r\n errors: {\r\n ...errors,\r\n mobilePhone: validationResult\r\n }\r\n };\r\n};\r\n\r\nexport const handleRaMemberIdChange = (event) => (state) => {\r\n const { errors } = state;\r\n const validationResult = validateRaMemberId(event.raMemberId);\r\n\r\n return {\r\n ...state,\r\n raMemberId: event.raMemberId,\r\n errors: {\r\n ...errors,\r\n raMemberId: validationResult\r\n }\r\n };\r\n};\r\n\r\nexport const handleCaptchaChange = (token) => (state) => {\r\n const isChecked = !!token;\r\n const { errors } = state;\r\n\r\n const newState = {\r\n ...state,\r\n [formConstants.reCaptcha]: token,\r\n errors: {\r\n ...errors,\r\n [formConstants.reCaptcha]: validateCaptchaBox(isChecked)\r\n }\r\n };\r\n\r\n return newState;\r\n};\r\n\r\nexport const handleMastercardNumberChange = (event, mastercardRegex, mastercardError) => (state) => {\r\n const { errors } = state;\r\n const validationResult = validateMastercard(event.value, mastercardRegex, mastercardError);\r\n\r\n return {\r\n ...state,\r\n [formConstants.mastercard]: event.value,\r\n errors: {\r\n ...errors,\r\n [formConstants.mastercard]: validationResult\r\n }\r\n };\r\n};\r\n\r\nexport const handleCountryChange = (eventTarget, county, stateField = null) => (state) => {\r\n const { name, value } = eventTarget;\r\n const { errors } = state;\r\n\r\n const availableCounties = county.options.filter((c) => c.countryCode === value);\r\n const availableStates = hasValue(stateField) ? stateField.options.filter((s) => s.countryCode === value) : [];\r\n\r\n return {\r\n ...state,\r\n availableCounties,\r\n availableStates,\r\n county: formMessageConstants.emptyString,\r\n state: formMessageConstants.emptyString,\r\n [name]: value,\r\n [formConstants.city]: formMessageConstants.emptyString,\r\n [formConstants.addressLine1]: formMessageConstants.emptyString,\r\n [formConstants.addressLine2]: formMessageConstants.emptyString,\r\n [formConstants.addressLine3]: formMessageConstants.emptyString,\r\n [formConstants.postcode]: formMessageConstants.emptyString,\r\n errors: {\r\n ...errors,\r\n [name]: validateCountry(value)\r\n }\r\n };\r\n};\r\n\r\nexport const handleAddressDataChange = (retrievedUserAddress, countyField, stateField = null) => (state) => {\r\n const { errors, country, county } = state;\r\n const stateValue = get(state, 'state', formMessageConstants.emptyString);\r\n const retrievedCountry = retrievedUserAddress[formConstants.country] || country;\r\n const availableCounties = isEmpty(retrievedCountry) ? [] : countyField.options.filter((c) => c.countryCode === retrievedCountry);\r\n const availableStates = isEmpty(retrievedCountry) ? [] : stateField.options.filter((s) => s.countryCode === retrievedCountry);\r\n const retrievedCounty = retrievedUserAddress[formConstants.county];\r\n const retrievedState = retrievedUserAddress[formConstants.state];\r\n const availableCounty = availableCounties.find((c) => c.label.includes(retrievedCounty));\r\n const availableState = availableStates.find((s) => s.label.includes(retrievedState));\r\n const selectedCounty = isEmpty(availableCounty) ? county : availableCounty.label;\r\n const selectedState = isEmpty(availableState) ? stateValue : availableState.label;\r\n\r\n return {\r\n ...state,\r\n availableCounties,\r\n availableStates,\r\n [formConstants.country]: retrievedCountry,\r\n [formConstants.county]: selectedCounty,\r\n [formConstants.state]: selectedState,\r\n [formConstants.city]: retrievedUserAddress[formConstants.city],\r\n [formConstants.addressLine1]: retrievedUserAddress[formConstants.addressLine1],\r\n [formConstants.addressLine2]: retrievedUserAddress[formConstants.addressLine2],\r\n [formConstants.addressLine3]: retrievedUserAddress[formConstants.addressLine3],\r\n [formConstants.postcode]: retrievedUserAddress[formConstants.postcode],\r\n errors: {\r\n ...errors,\r\n country: validateCountry(retrievedCountry),\r\n city: validateCity(retrievedUserAddress[formConstants.city]),\r\n addressLine1: validateAddressLine1(retrievedUserAddress[formConstants.addressLine1]),\r\n addressLine2: validateAddressLine2(retrievedUserAddress[formConstants.addressLine2]),\r\n addressLine3: validateAddressLine3(retrievedUserAddress[formConstants.addressLine3]),\r\n postcode: validatePostcode(retrievedUserAddress[formConstants.postcode])\r\n }\r\n };\r\n};\r\n\r\nexport const handleFieldValidState = (fieldName, errors) => {\r\n if (!errors) {\r\n return { isValid: true };\r\n }\r\n\r\n return errors[fieldName] !== undefined ? errors[fieldName] : { isValid: true };\r\n};\r\n\r\nexport const handleFormValidation = (formData) => (state) => {\r\n const formDataKeys = Object.keys(formData);\r\n const formValues = {};\r\n\r\n formDataKeys.forEach((formDataKey) => {\r\n formValues[formDataKey] = state[formDataKey];\r\n });\r\n\r\n const validationResult = FormValidator(formData, formValues);\r\n\r\n return {\r\n ...state,\r\n errors: validationResult.errors,\r\n formHasErrors: validationResult.formHasErrors\r\n };\r\n};\r\n\r\nexport const updateFormFields = (formData) => (state) => {\r\n const formDataKeys = Object.keys(formData);\r\n const { county, country } = formData;\r\n const stateField = get(formData, 'state', null);\r\n const availableCounties = county.options.filter((c) => c.countryCode === country.defaultValue);\r\n const availableStates = hasValue(stateField) ? stateField.options.filter((s) => s.countryCode === country.defaultValue) : [];\r\n\r\n const updatedState = {\r\n ...state,\r\n availableCounties,\r\n availableStates,\r\n formHasErrors: false\r\n };\r\n\r\n formDataKeys.forEach((formDataKey) => {\r\n if (isFormField(formData[formDataKey])) {\r\n updatedState[formDataKey] = formData[formDataKey].defaultValue;\r\n } else {\r\n updatedState[formDataKey] = formData[formDataKey];\r\n }\r\n });\r\n\r\n if (!isEmpty(formData[formConstants.offersDetails])) {\r\n const offersDetailsDefaultValue = formData[formConstants.offersDetails].defaultValue;\r\n updatedState[formConstants.refuseOffers] = offersDetailsDefaultValue[formConstants.refuseOffers];\r\n updatedState[formConstants.acceptOffers] = offersDetailsDefaultValue[formConstants.acceptOffers];\r\n }\r\n\r\n return updatedState;\r\n};\r\n\r\nexport const updateAvailableCounties = (receivedCountry, county) => (state) => {\r\n if (hasValue(receivedCountry) && hasValue(county)) {\r\n const availableCounties = hasValue(county.options) ? county.options.filter((c) => c.countryCode === receivedCountry) : {};\r\n\r\n if (!hasValue(availableCounties)) return { ...state };\r\n\r\n return {\r\n ...state,\r\n availableCounties\r\n };\r\n }\r\n};\r\n\r\nexport const updateAvailableStates = (receivedCountry, stateField) => (state) => {\r\n if (hasValue(receivedCountry) && hasValue(stateField)) {\r\n const availableStates = hasValue(stateField.options) ? stateField.options.filter((s) => s.countryCode === receivedCountry) : {};\r\n\r\n if (!hasValue(availableStates)) return { ...state };\r\n\r\n return {\r\n ...state,\r\n availableStates\r\n };\r\n }\r\n};\r\n\r\nexport const updateUsername = (userName) => (state) => {\r\n return {\r\n ...state,\r\n userName,\r\n formHasErrors: false\r\n };\r\n};\r\n\r\nexport const updateRaMemberId = (raMemberId) => (state) => {\r\n return {\r\n ...state,\r\n raMemberId,\r\n formHasErrors: false\r\n };\r\n};\r\n\r\nexport const updateMembership = (membership) => (state) => {\r\n return {\r\n ...state,\r\n membership\r\n };\r\n};\r\n\r\nexport const updateOneClubTermsAndConditions = (becomeOneClubMember) => (state) => {\r\n const { formData } = state;\r\n\r\n formData[formConstants.oneClubTermsAndServices].defaultValue = becomeOneClubMember;\r\n\r\n return {\r\n ...state,\r\n [formConstants.oneClubTermsAndServices]: becomeOneClubMember,\r\n formData\r\n };\r\n};\r\n\r\nexport const updateActiveMemberships = (activeMemberships) => (state) => {\r\n return {\r\n ...state,\r\n activeMemberships\r\n };\r\n};\r\n\r\n\r\nexport const updateFormData = (formData) => (state) => {\r\n return {\r\n ...state,\r\n formData\r\n };\r\n};\r\n\r\nexport const updateUserAccountData = (userAccountData) => (state) => {\r\n return {\r\n ...state,\r\n userAccountData\r\n };\r\n};\r\n\r\nexport const updateSavingState = (isSaving) => (state) => {\r\n return {\r\n ...state,\r\n isSaving,\r\n formHasErrors: false\r\n };\r\n};\r\n\r\nexport const updateAddressesFormAccountData = (accountData) => (state) => {\r\n return {\r\n ...state,\r\n accountData\r\n };\r\n};\r\n\r\nexport const updateOrderHistoryData = (orderHistoryData) => (state) => {\r\n return {\r\n ...state,\r\n orderHistoryData\r\n };\r\n};\r\n\r\nexport const updateProcessingState = (isProcessing) => (state) => {\r\n return {\r\n ...state,\r\n isProcessing,\r\n formHasErrors: false\r\n };\r\n};\r\n\r\nexport const updateVerificationCode = (verificationCode) => (state) => {\r\n return {\r\n ...state,\r\n verificationCode\r\n };\r\n};\r\n\r\nexport const updateAddressesFormState = (formState, addressForUpdate) => (state) => {\r\n return {\r\n ...state,\r\n formState,\r\n addressForUpdate\r\n };\r\n};\r\n\r\nexport const updateOrderHistoryDisplayFormState = (formState, orderHistoryForDisplay) => (state) => {\r\n return {\r\n ...state,\r\n formState,\r\n orderHistoryForDisplay,\r\n fileNumberForDisplay: 0\r\n };\r\n};\r\n\r\nexport const updateFileSummaryFormState = (formState, orderHistoryForDisplay) => (state) => {\r\n return {\r\n ...state,\r\n formState,\r\n orderHistoryForDisplay\r\n };\r\n};\r\n\r\nexport const updateFileNumberForDisplay = (fileNumberForDisplay) => (state) => {\r\n return {\r\n ...state,\r\n fileNumberForDisplay\r\n };\r\n};\r\n\r\nexport const updateOrderHistoryActivePageNumber = (orderHistoryActivePageNumber) => (state) => {\r\n return {\r\n ...state,\r\n orderHistoryActivePageNumber\r\n };\r\n};\r\n\r\nexport const toggleKey = (key) => (state) => {\r\n return {\r\n ...state,\r\n [key]: !state[key]\r\n };\r\n};\r\n\r\nexport const handleSubmit = (isSubmitAction) => (state) => ({\r\n ...state,\r\n isSubmitAction\r\n});\r\n\r\nexport const loadTextAndImageFields = (fields = []) => (state) => {\r\n if (!hasValue(fields)) {\r\n return {\r\n ...state\r\n };\r\n }\r\n\r\n const keyValuedFields = getKeyValuedTextAndImageFields(fields);\r\n\r\n return {\r\n ...state,\r\n ...keyValuedFields\r\n };\r\n};\r\n\r\nconst getKeyValuedTextAndImageFields = (fields = []) => {\r\n let fieldCounter = 0;\r\n const keyValuedFields = {};\r\n\r\n if (!hasValue(fields)) {\r\n return keyValuedFields;\r\n }\r\n\r\n fields.forEach((field) => {\r\n const fieldKey = `${field.fieldKey}-${fieldCounter}`;\r\n fieldCounter++;\r\n\r\n if (hasValue(fieldKey)) {\r\n keyValuedFields[fieldKey] = field;\r\n }\r\n });\r\n\r\n return keyValuedFields;\r\n};\r\n","import get from 'lodash/get';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport { formFieldValidators } from './form-field-validators';\r\nimport {\r\n validateSelectedCounty,\r\n validateSelectedState\r\n} from '../../../validators/text-validators';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\n\r\nconst FormValidator = (\r\n formData,\r\n formValues\r\n) => {\r\n function validateForm() {\r\n const errors = {};\r\n const formDataKeys = Object.keys(formData);\r\n\r\n formDataKeys.forEach((formDataKey) => {\r\n if (isEmpty(formData[formDataKey])) return;\r\n if (!formData[formDataKey].isHidden && !formData[formDataKey].isOptional) {\r\n errors[formDataKey] = validateField(formDataKey);\r\n }\r\n\r\n if (formData[formDataKey].isOptional && !isEmpty(formValues[formDataKey])) {\r\n errors[formDataKey] = validateField(formDataKey);\r\n }\r\n });\r\n\r\n return { errors, formHasErrors: hasErrors(errors) };\r\n }\r\n\r\n function hasErrors(errors) {\r\n const errorKeys = Object.keys(errors);\r\n return errorKeys.some((key) => {\r\n if (errors[key] === null || errors[key] === undefined) {\r\n return false;\r\n }\r\n\r\n return !errors[key].isValid;\r\n });\r\n }\r\n\r\n function validateField(formDataKey) {\r\n const validator = formFieldValidators[formDataKey];\r\n const fieldValue = formValues[formDataKey];\r\n\r\n if (validator === undefined) {\r\n return null;\r\n }\r\n\r\n if (formDataKey === formConstants.confirmPassword) {\r\n const passwordFieldValue = formValues[formConstants.password];\r\n return validator(passwordFieldValue, fieldValue);\r\n }\r\n\r\n if (formDataKey === formConstants.oldPassword) {\r\n const passwordFieldValue = formValues[formConstants.password];\r\n return validator(passwordFieldValue, fieldValue);\r\n }\r\n\r\n if (formDataKey === formConstants.county) {\r\n const selectedCountryCode = formValues[formConstants.country];\r\n const selectedCounty = formValues[formConstants.county];\r\n const { county } = formData;\r\n return validateSelectedCounty(selectedCounty, selectedCountryCode, county);\r\n }\r\n\r\n if (formDataKey === formConstants.state) {\r\n const selectedCountryCode = formValues[formConstants.country];\r\n const selectedState = formValues[formConstants.state];\r\n const stateField = get(formData, 'state', null);\r\n return validateSelectedState(selectedState, selectedCountryCode, stateField);\r\n }\r\n\r\n if (formDataKey === formConstants.mobilePhone) {\r\n const { mobilePhone } = formData;\r\n if (fieldValue) {\r\n return validator(fieldValue.phoneNumber, mobilePhone.isOptional);\r\n }\r\n return validator(fieldValue, mobilePhone.isOptional);\r\n }\r\n\r\n if (formDataKey === formConstants.mastercard) {\r\n const mastercardFieldValue = formValues[formConstants.mastercard];\r\n return validator(mastercardFieldValue, formData.mastercardRegex, formData.mastercardValidationError);\r\n }\r\n\r\n return validator(fieldValue);\r\n }\r\n\r\n return validateForm();\r\n};\r\n\r\nexport default FormValidator;\r\n","import React from 'react';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\n\r\nexport const getFormReferences = (formData) => {\r\n const formDataKeys = Object.keys(formData);\r\n\r\n return formDataKeys.reduce((acc, value) => {\r\n acc[value] = React.createRef();\r\n return acc;\r\n }, {});\r\n};\r\n\r\nexport const scrollToInvalidField = (errors, formReferences) => {\r\n if (isEmpty(errors)) {\r\n return;\r\n }\r\n\r\n const errorKeys = Object.keys(errors);\r\n const fieldName = errorKeys.find((element) => {\r\n if (errors[element] === null || errors[element] === undefined) {\r\n return false;\r\n }\r\n\r\n return !errors[element].isValid;\r\n });\r\n\r\n let scrollToReference = formReferences[fieldName];\r\n\r\n if (isEmpty(scrollToReference.current)) {\r\n scrollToReference = Object.values(formReferences).find((formReference) => formReference.current !== null);\r\n }\r\n\r\n scrollToField(scrollToReference);\r\n};\r\n\r\nexport const scrollToField = (field) => {\r\n if (field && field.current) {\r\n const destinationField = field.current.captcha ? field.current.captcha : field.current\r\n destinationField.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'start',\r\n });\r\n }\r\n};\r\n","export const handleFieldValidState = (fieldName, errors) => {\r\n if (!errors) {\r\n return { isValid: true };\r\n }\r\n\r\n return errors[fieldName] !== undefined ? errors[fieldName] : { isValid: true };\r\n};\r\n","import React from 'react';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\n\r\nfunction HeaderLinkDisplay({ headerMessage, headerLink, headerLinkText }) {\r\n if (!headerLink || isEmpty(headerLinkText)) {\r\n return null;\r\n }\r\n\r\n return (\r\n

    {headerMessage} \r\n \r\n {headerLinkText}\r\n \r\n

    \r\n );\r\n}\r\n\r\nexport default HeaderLinkDisplay;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport HeaderLinkDisplay from '../../forms/helpers/header-link-display';\r\n\r\nfunction SSOFormHeader({\r\n linkCallBackUrl,\r\n secondLinkCallBackUrl,\r\n headerTitle,\r\n headerSubtitle,\r\n headerMessage,\r\n headerLinkText,\r\n headerSecondMessage,\r\n headerSecondLinkText,\r\n messageOnNewRow,\r\n displaySecondMessageAndLink\r\n}) {\r\n\r\n function getClassName() {\r\n if (!messageOnNewRow) {\r\n return 'flx flx-justify-space-between flx-items-center mb-sm';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n return (\r\n
    \r\n

    {headerTitle}

    \r\n {headerSubtitle ?

    {headerSubtitle}

    : null}\r\n
    \r\n \r\n {displaySecondMessageAndLink ?\r\n \r\n : null\r\n }\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nSSOFormHeader.propTypes = {\r\n headerTitle: PropTypes.string.isRequired,\r\n headerSubtitle: PropTypes.string,\r\n linkCallBackUrl: PropTypes.func,\r\n secondLinkCallBackUrl: PropTypes.func,\r\n headerMessage: PropTypes.string,\r\n headerLinkText: PropTypes.string,\r\n headerSecondMessage: PropTypes.string,\r\n headerSecondLinkText: PropTypes.string,\r\n messageOnNewRow: PropTypes.bool,\r\n displaySecondMessageAndLink: PropTypes.bool\r\n};\r\n\r\nexport default SSOFormHeader;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport { isNullOrUndefined } from '../../../../../general/js/general-helpers';\r\n\r\nfunction SSOFormFooter({\r\n onSubmit,\r\n isHidden,\r\n linkCallBackUrl,\r\n footerButtonText,\r\n footerLinkText,\r\n useYellowButton,\r\n isSubmit = true,\r\n}) {\r\n function getFooterLink() {\r\n if (!linkCallBackUrl ||\r\n isEmpty(footerLinkText)) {\r\n return null;\r\n }\r\n return (\r\n {footerLinkText}\r\n );\r\n }\r\n\r\n const buttonClass = isNullOrUndefined(useYellowButton) || !useYellowButton \r\n ? 'button button--primary auto-mt-md'\r\n : 'button button--primary button--primary--yellow auto-mt-md';\r\n\r\n return (\r\n
    \r\n \r\n \r\n {footerButtonText}\r\n \r\n \r\n \r\n \r\n \r\n {getFooterLink()}\r\n
    \r\n );\r\n}\r\n\r\nSSOFormFooter.propTypes = {\r\n footerButtonText: PropTypes.string.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n isHidden: PropTypes.bool,\r\n linkCallBackUrl: PropTypes.func,\r\n footerLinkText: PropTypes.string\r\n};\r\n\r\nexport default SSOFormFooter;\r\n","import GTM from 'general/js/gtm';\r\n\r\nclass GTMUserActions {\r\n trackJoinTheOneClubAction() {\r\n GTM.push('The One Club', 'Sign Up', 'Join the club');\r\n }\r\n\r\n trackTicketingAccountAction() {\r\n GTM.push('Ticketing', 'Sign Up', 'Join the club');\r\n }\r\n\r\n trackTicketingAccountActionClick() {\r\n GTM.push('Ticketing', 'Click', 'New Account');\r\n }\r\n\r\n trackVideoSignUpAction(eventLabel) {\r\n GTM.push('Video Sign Up', 'Sign Up', eventLabel);\r\n }\r\n\r\n trackVideoSignUpActionClick(eventLabel) {\r\n GTM.push('Video Sign Up', 'Click', eventLabel);\r\n }\r\n}\r\n\r\nexport default new GTMUserActions();\r\n","import { bemClasses } from \"../../../general/js/modal\";\r\n\r\nexport const modalConstants = {\r\n dataModal: 'data-modal',\r\n MODAL_BEM_CLASS_WIDE: `modal--${bemClasses.WIDE}`,\r\n MODAL_BEM_CLASS_DESKTOP_WIDE: `modal--${bemClasses.DEKSTOP_WIDE}`,\r\n MODAL_BEM_CLASS_MOBILE_FIXED: `modal--${bemClasses.MOBILE_FIXED}`,\r\n MODAL_BEM_CLASS_CLOSE_OUTSIDE: `modal--${bemClasses.CLOSE_OUTSIDE}`,\r\n MODAL_BEM_CLASS_TITLE: `modal--${bemClasses.TITLE}`,\r\n MODAL_BEM_CLASS_AUTO: `modal--${bemClasses.AUTO}`,\r\n MODAL_BEM_CLASS_SPLIT: `modal--${bemClasses.SPLIT}`\r\n}","import { hasValue, isNullOrUndefined, toggleCssClass } from \"../../../general/js/general-helpers\";\r\nimport HtmlHelper from \"../../../foundation/html-helper\";\r\nimport { modalConstants } from \"./modal-constants\";\r\n\r\nexport const getWrapperModalElement = (element = null) => {\r\n if(isNullOrUndefined(element) || !HtmlHelper.isHtmlElement(element)){\r\n return null;\r\n }\r\n\r\n return HtmlHelper.getParent(element, `[${modalConstants.dataModal}]`);\r\n}\r\n\r\nexport const toggleBemClassForWrapperModal = (element = null, bemList = [], addClass = false) => {\r\n if(!hasValue(bemList) || isNullOrUndefined(element)){\r\n return;\r\n }\r\n\r\n const wrapperModal = getWrapperModalElement(element);\r\n \r\n if(isNullOrUndefined(wrapperModal)){\r\n return;\r\n }\r\n\r\n bemList.forEach(bemClass => {\r\n toggleCssClass(wrapperModal, bemClass, addClass);\r\n });\r\n}","/* eslint-disable prefer-const */\r\nimport { getProperty, hasValue, isNullOrUndefined } from '../../../../../../general/js/general-helpers';\r\nimport { modalConstants } from '../../../../../modal/js/modal-constants';\r\nimport { toggleBemClassForWrapperModal } from '../../../../../modal/js/modal-helpers';\r\nimport { ssoFormTypes } from '../../../utils/form-types';\r\n\r\nexport const getModalContentClassListForSSOForm = (props = {}) => {\r\n const baseClassList = 'modal__content form-container form-container__full';\r\n\r\n if (!hasValue(props)) {\r\n return baseClassList;\r\n }\r\n\r\n const formData = getFormDataForSSOForm(props);\r\n\r\n if (!hasValue(formData)) {\r\n return baseClassList;\r\n }\r\n\r\n const { desktopImageSrc } = formData;\r\n\r\n return `${baseClassList} ${hasValue(desktopImageSrc) ? 'form-container__wide' : ''}`;\r\n};\r\n\r\nexport const getFormContainerWideLeftClassList = (props = {}) => {\r\n const baseClassList = 'form-container__wide--left';\r\n\r\n if (!hasValue(props)) {\r\n return baseClassList;\r\n }\r\n\r\n const formData = getFormDataForSSOForm(props);\r\n\r\n const desktopImageSrc = getProperty(formData, 'desktopImageSrc');\r\n const mobileImageSrc = getProperty(formData, 'mobileImageSrc');\r\n\r\n return `${baseClassList} ${hasValue(desktopImageSrc) ? 'form-popup__header--no-bg-image-desktop' : ''} ${hasValue(mobileImageSrc) ? 'form-popup__header--no-bg-image-mobile' : ''}`;\r\n};\r\n\r\nexport const toggleBemClassesForSSOFormModal = (formReference = null, props = {}, formType = -1) => {\r\n if (!hasValue(props) || isNullOrUndefined(formReference) || isNullOrUndefined(formReference.current)) {\r\n return false;\r\n }\r\n\r\n const { addBemList, removeBemList } = getBemClassesToToggle(props, formType);\r\n\r\n if (!hasValue(addBemList) && !hasValue(removeBemList)) {\r\n return false;\r\n }\r\n\r\n toggleBemClassForWrapperModal(formReference.current, addBemList, true);\r\n toggleBemClassForWrapperModal(formReference.current, removeBemList, false);\r\n\r\n return true;\r\n};\r\n\r\nconst getBemClassesToToggle = (props = {}, formType = -1) => {\r\n const formData = getFormDataForSSOForm(props);\r\n\r\n if (!hasValue(formData)) {\r\n return {};\r\n }\r\n\r\n const desktopImageSrc = getProperty(formData, 'desktopImageSrc');\r\n let { addBemList, removeBemList } = getInitialBemClassesToToggle(formType);\r\n\r\n if (hasValue(desktopImageSrc)) {\r\n addBemList.push(modalConstants.MODAL_BEM_CLASS_WIDE);\r\n addBemList.push(modalConstants.MODAL_BEM_CLASS_SPLIT);\r\n } else {\r\n removeBemList = mergeBemList(removeBemList, getRemoveBemClasses(formType, desktopImageSrc));\r\n }\r\n\r\n return {\r\n addBemList,\r\n removeBemList\r\n };\r\n};\r\n\r\nconst getInitialBemClassesToToggle = (formType = -1) => {\r\n switch (formType) {\r\n case ssoFormTypes.DefaultRegister:\r\n case ssoFormTypes.OneClubRegister:\r\n case ssoFormTypes.TicketingRegister:\r\n return {\r\n addBemList: [\r\n modalConstants.MODAL_BEM_CLASS_MOBILE_FIXED,\r\n modalConstants.MODAL_BEM_CLASS_AUTO\r\n ],\r\n removeBemList: []\r\n };\r\n case ssoFormTypes.UpgradeToOneClubAccountFromDefault:\r\n case ssoFormTypes.UpgradeToOneClubAccountFromTicketing:\r\n case ssoFormTypes.UpgradeToTicketingAccount:\r\n return {\r\n addBemList: [],\r\n removeBemList: [\r\n modalConstants.MODAL_BEM_CLASS_AUTO]\r\n };\r\n case ssoFormTypes.SignIn:\r\n case ssoFormTypes.BallotSignInForm:\r\n return {\r\n addBemList: [\r\n modalConstants.MODAL_BEM_CLASS_MOBILE_FIXED,\r\n modalConstants.MODAL_BEM_CLASS_AUTO\r\n ],\r\n removeBemList: [\r\n modalConstants.MODAL_BEM_CLASS_WIDE,\r\n modalConstants.MODAL_BEM_CLASS_SPLIT\r\n ]\r\n };\r\n default:\r\n return {\r\n addBemList: [],\r\n removeBemList: []\r\n };\r\n }\r\n};\r\n\r\nconst getRemoveBemClasses = (formType = -1, desktopImageSrc = '') => {\r\n switch (formType) {\r\n case ssoFormTypes.DefaultRegister:\r\n case ssoFormTypes.OneClubRegister:\r\n case ssoFormTypes.TicketingRegister:\r\n case ssoFormTypes.BallotLiteRegister:\r\n case ssoFormTypes.BallotFullRegister:\r\n if (hasValue(desktopImageSrc)) {\r\n return [\r\n modalConstants.MODAL_BEM_CLASS_MOBILE_FIXED\r\n ];\r\n }\r\n\r\n return [\r\n modalConstants.MODAL_BEM_CLASS_SPLIT\r\n ];\r\n case ssoFormTypes.UpgradeToOneClubAccountFromDefault:\r\n case ssoFormTypes.UpgradeToOneClubAccountFromTicketing:\r\n case ssoFormTypes.UpgradeToTicketingAccount:\r\n case ssoFormTypes.BallotSummaryForm:\r\n return [\r\n modalConstants.MODAL_BEM_CLASS_AUTO\r\n ];\r\n default:\r\n return [];\r\n }\r\n};\r\n\r\nconst mergeBemList = (initialBemList = [], bemListToMerge = []) => {\r\n const finalBemList = initialBemList;\r\n\r\n bemListToMerge.forEach((bemClass) => {\r\n if (!finalBemList.includes(bemClass)) {\r\n finalBemList.push(bemClass);\r\n }\r\n });\r\n\r\n return finalBemList;\r\n};\r\n\r\nconst getFormDataForSSOForm = (props = {}) => {\r\n let formData = {};\r\n\r\n if (!hasValue(props)) {\r\n return formData;\r\n }\r\n\r\n const formDataObjects = [\r\n props.registerFormData,\r\n props.formData,\r\n props.signInFormData\r\n ];\r\n\r\n formDataObjects.every((formDataObject) => {\r\n if (hasValue(formDataObject)) {\r\n formData = formDataObject;\r\n return false;\r\n }\r\n\r\n return true;\r\n });\r\n\r\n return formData;\r\n};\r\n","/* eslint-disable react/no-direct-mutation-state */\r\nimport React, { Component, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport RegisterFormBanner from './RegisterFormBanner';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport { isEmpty, deepCopyObject } from '../../utils/obj-utils';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport * as registerFormActions from '../../../store/actions/register-form-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport SSOFormHeader from '../../common/utility/SSOFormHeader';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport './one-club-register.scss';\r\nimport { getFormDataUrl } from '../../../store/api/api-utils';\r\nimport GTMUserActions from '../../common/utility/GTMUserActions';\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\nimport { getFormContainerWideLeftClassList, getModalContentClassListForSSOForm, toggleBemClassesForSSOFormModal } from '../helpers/form-helpers/form-modal-helpers';\r\nimport { ssoFormTypes } from '../../utils/form-types';\r\n\r\nclass OneClubRegisterForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const { registerFormData, ssoDomain } = this.props;\r\n this.state = {\r\n ...initialState.oneClubRegisterFormState,\r\n registerFormData,\r\n ssoDomain,\r\n isModalStylingUpdated: false\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.formReference = React.createRef();\r\n this.formReferences = formScrollHelpers.getFormReferences(registerFormData);\r\n\r\n this.displayOneClubRegisterForm = this.displayOneClubRegisterForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.loadFormData = this.loadFormData.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.submitRegisterData = this.submitRegisterData.bind(this);\r\n this.finalizeSubmitData = this.finalizeSubmitData.bind(this);\r\n this.handleUserRegisterSuccess = this.handleUserRegisterSuccess.bind(this);\r\n this.resetForm = this.resetForm.bind(this);\r\n\r\n this.loadFormData();\r\n }\r\n\r\n loadFormData() {\r\n const { registerFormData, ssoFormType, actions } = this.props;\r\n\r\n if (!isEmpty(registerFormData)) { return; }\r\n\r\n const formDataUrl = getFormDataUrl(ssoFormType);\r\n\r\n actions.loadSSORegisterFormData(formDataUrl);\r\n }\r\n\r\n componentDidMount() {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, this.props, ssoFormTypes.OneClubRegister);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n registerFormData,\r\n isRegisterSuccessful,\r\n loading\r\n } = nextProps;\r\n\r\n const previousRegisterFormData = this.props.registerFormData;\r\n\r\n if (hasValue(registerFormData) && !this.state.isModalStylingUpdated) {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, nextProps, ssoFormTypes.OneClubRegister);\r\n }\r\n\r\n if (!isEmpty(registerFormData) && isEmpty(this.formReferences)) {\r\n this.formReferences = formScrollHelpers.getFormReferences(registerFormData);\r\n }\r\n\r\n if (!loading &&\r\n isRegisterSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserRegisterSuccess);\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n !isRegisterSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false),\r\n () => {\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n });\r\n }\r\n\r\n if (isEmpty(previousRegisterFormData) && !isEmpty(registerFormData)) {\r\n this.setState(\r\n (prevState) => ({\r\n ...prevState,\r\n registerFormData\r\n })\r\n );\r\n this.formReferences = formScrollHelpers.getFormReferences(registerFormData);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.resetForm();\r\n }\r\n\r\n resetForm() {\r\n const { actions } = this.props;\r\n this.setState(initialState.defaultRegisterFormState);\r\n actions.resetRegisterFormState();\r\n }\r\n\r\n handleUserRegisterSuccess() {\r\n const { onUserRegisterSuccess } = this.props;\r\n const {\r\n formType,\r\n actionSuccessText,\r\n requestEmailVerificationCallbackUrl,\r\n requestEmailVerificationActionSuccessText,\r\n bannerSuccessRegistration\r\n } = this.props.registerFormData;\r\n\r\n onUserRegisterSuccess(this.state[formConstants.emailAddress],\r\n {\r\n registerFormType: formType,\r\n successText: actionSuccessText,\r\n emailVerificationCallbackUrl: requestEmailVerificationCallbackUrl,\r\n emailVerificationActionSuccessText: requestEmailVerificationActionSuccessText,\r\n bannerSuccessRegistration\r\n });\r\n }\r\n\r\n async handleSubmit(event) {\r\n event.preventDefault();\r\n const { registerFormData } = this.props;\r\n const { reCaptcha } = this.state;\r\n\r\n if (reCaptcha) {\r\n registerFormData.reCaptchaToken = reCaptcha;\r\n }\r\n\r\n this.setState(formStateHelpers.handleFormValidation(registerFormData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n const captchaRef = this.formReferences[formConstants.reCaptcha];\r\n\r\n if (captchaRef) {\r\n captchaRef.current.props.grecaptcha.reset();\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitRegisterData);\r\n }\r\n\r\n submitRegisterData() {\r\n const { registerFormData } = this.props;\r\n\r\n if (registerFormData.membership) {\r\n this.setState({ membership: registerFormData.membership, ssoEmailNotificationSettingsFields: registerFormData.ssoEmailNotificationSettingsFields }, () => {\r\n this.finalizeSubmitData();\r\n });\r\n return;\r\n }\r\n\r\n\r\n this.finalizeSubmitData();\r\n }\r\n\r\n finalizeSubmitData() {\r\n const { actions, registerFormData } = this.props;\r\n const { callBackUrlPost } = registerFormData;\r\n const actionSuccessText = registerFormData.actionSuccessText || formMessageConstants.registrationSuccessText;\r\n\r\n formScrollHelpers.scrollToField(this.formReferences[formConstants.title]);\r\n actions.registerNewUser(this.state, actionSuccessText, callBackUrlPost);\r\n this.setState({ reCaptcha: '' });\r\n\r\n GTMUserActions.trackJoinTheOneClubAction();\r\n }\r\n\r\n displayForm() {\r\n const {\r\n onSignIn,\r\n onForgotPassword,\r\n isRegisterSuccessful,\r\n userRegistrationMessages,\r\n registerFormData\r\n } = this.props;\r\n\r\n const { formHeader } = registerFormData;\r\n\r\n return (\r\n \r\n
    \r\n \r\n {this.displayOneClubRegisterForm()}\r\n \r\n \r\n
    );\r\n }\r\n\r\n displayOneClubRegisterForm() {\r\n const { registerFormData } = this.props;\r\n const { availableCounties, availableStates } = this.state;\r\n const { county, mobilePhone, state } = registerFormData;\r\n\r\n const copyOfFormData = deepCopyObject(registerFormData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n copyOfFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n\r\n return FormBuilder({\r\n formData: copyOfFormData,\r\n formReferences: this.formReferences,\r\n countyData: { availableCounties, label: county ? county.label : '' },\r\n stateData: { availableStates, label: state ? state.label : '' },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => {\r\n const eventTarget = event.target;\r\n const fieldName = eventTarget.name;\r\n const fieldData = registerFormData[fieldName];\r\n this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target, fieldData));\r\n },\r\n handleConfirmPasswordChange: (event) => { this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target)); },\r\n handleDateChange: (event) => { this.setState(formStateHelpers.handleDateChange(event)); },\r\n handleCountryChange: (event) => { this.setState(formStateHelpers.handleCountryChange(event.target, county, state)); },\r\n handleMobilePhoneChange: (event) => { this.setState(formStateHelpers.handleMobilePhoneChange(event, mobilePhone.isOptional)); },\r\n handleCaptchaChange: (token) => { this.setState(formStateHelpers.handleCaptchaChange(token)); },\r\n handleMastercardNumberChange: (event) => {\r\n this.setState(formStateHelpers.handleMastercardNumberChange(event.target,\r\n registerFormData.mastercardRegex, registerFormData.mastercardValidationError));\r\n },\r\n handleFieldValidState: (fieldName) => { const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors); },\r\n });\r\n }\r\n\r\n render() {\r\n const { isSaving } = this.state;\r\n const { loading, registerFormData } = this.props;\r\n\r\n if (isEmpty(registerFormData)) {\r\n return (\r\n
    \r\n );\r\n }\r\n\r\n const { formBanner, desktopImageSrc, mobileImageSrc } = registerFormData;\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n hasValue(mobileImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n \r\n
    \r\n {isSaving || loading ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n {\r\n hasValue(desktopImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nOneClubRegisterForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n onSignIn: PropTypes.func.isRequired,\r\n onUserRegisterSuccess: PropTypes.func.isRequired,\r\n ssoDomain: PropTypes.string,\r\n registerFormData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n registerFormData: _.isEmpty(ownProps.registerFormData) ? state.registerForm.registerFormData : ownProps.registerFormData,\r\n isRegisterSuccessful: state.registerForm.isRegisterSuccessful,\r\n userRegistrationMessages: state.registerForm.userRegistrationMessages,\r\n userName: state.registerForm.userName,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n registerNewUser: bindActionCreators(registerFormActions.registerNewUser, dispatch),\r\n resetRegisterFormState: bindActionCreators(registerFormActions.resetRegisterFormState, dispatch),\r\n loadSSORegisterFormData: bindActionCreators(registerFormActions.loadSSOOneClubRegisterFormData, dispatch),\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(OneClubRegisterForm);\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport * as registerFormActions from '../../../store/actions/register-form-actions';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\n\r\nfunction UserRegisterSuccessForm({\r\n onSignIn,\r\n onBallotSignIn,\r\n actions,\r\n emailAddress,\r\n ssoDomain,\r\n isBallotRegister,\r\n loading,\r\n isResendEmailVerificationSuccessful,\r\n resendEmailVerificationMessages,\r\n requestEmailVerificationCallbackUrl,\r\n actionSuccessText,\r\n requestEmailVerificationActionSuccessText,\r\n displayBanner,\r\n bannerBackgroundImageSrc,\r\n bannerSuccessRegistration\r\n}) {\r\n function onResendEmailVerification() {\r\n actions.resendEmailVerification({\r\n emailAddress,\r\n ssoDomain,\r\n callBackUrl: requestEmailVerificationCallbackUrl,\r\n actionSuccessText: requestEmailVerificationActionSuccessText\r\n });\r\n }\r\n\r\n if (_.isEmpty(bannerBackgroundImageSrc)) {\r\n displayBanner = false;\r\n }\r\n\r\n if (bannerSuccessRegistration &&\r\n bannerSuccessRegistration.bannerBackgroundImageSrc !== null &&\r\n bannerSuccessRegistration.bannerBackgroundImageSrc !== undefined &&\r\n bannerSuccessRegistration.bannerBackgroundImageSrc.length !== 0) {\r\n displayBanner = true;\r\n }\r\n\r\n let formBanner = {};\r\n if (bannerSuccessRegistration &&\r\n bannerSuccessRegistration.bannerBackgroundImageSrc !== null &&\r\n bannerSuccessRegistration.bannerBackgroundImageSrc !== undefined &&\r\n bannerSuccessRegistration.bannerBackgroundImageSrc.length !== 0) {\r\n formBanner = {\r\n bannerTitle: bannerSuccessRegistration.bannerTitle,\r\n bannerMessage: '',\r\n bannerBackgroundImageSrc: bannerSuccessRegistration.bannerBackgroundImageSrc,\r\n displayMessageUnderImage: false,\r\n displayHeadingOverImage: true,\r\n headingColor: bannerSuccessRegistration.headingColor,\r\n textColor: 'black'\r\n };\r\n } else {\r\n formBanner = {\r\n bannerTitle: '',\r\n bannerMessage: '',\r\n bannerBackgroundImageSrc,\r\n displayMessageUnderImage: false,\r\n displayHeadingOverImage: false,\r\n headingColor: 'white',\r\n textColor: 'black'\r\n };\r\n }\r\n\r\n return (\r\n
    \r\n {loading ? / : null}\r\n {displayBanner ? : null}\r\n
    \r\n \r\n
    {actionSuccessText || formMessageConstants.oneClubRegisterSuccessText}
    \r\n
    \r\n
    \r\n \r\n \r\n {formMessageConstants.signInHere}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {emailAddress ?
    \r\n \r\n {formMessageConstants.resendVerificationEmail}\r\n \r\n
    : null}\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nUserRegisterSuccessForm.propTypes = {\r\n onSignIn: PropTypes.func.isRequired,\r\n onBallotSignIn: PropTypes.func.isRequired,\r\n emailAddress: PropTypes.string.isRequired,\r\n ssoDomain: PropTypes.string.isRequired,\r\n requestEmailVerificationCallbackUrl: PropTypes.string.isRequired,\r\n actionSuccessText: PropTypes.string.isRequired,\r\n requestEmailVerificationActionSuccessText: PropTypes.string.isRequired,\r\n displayBanner: PropTypes.bool.isRequired,\r\n isBallotRegister: PropTypes.bool.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isResendEmailVerificationSuccessful: state.registerForm.isResendEmailVerificationSuccessful,\r\n resendEmailVerificationMessages: state.registerForm.resendEmailVerificationMessages,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n resendEmailVerification: bindActionCreators(registerFormActions.resendEmailVerification, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(UserRegisterSuccessForm);\r\n","/* eslint-disable react/no-direct-mutation-state */\r\nimport React, { Component, Fragment } from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport * as registerFormActions from '../../../store/actions/register-form-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport SSOFormHeader from '../../common/utility/SSOFormHeader';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\nimport { getFormDataUrl } from '../../../store/api/api-utils';\r\nimport { validateEmail } from '../../../validators/text-validators';\r\nimport HeaderLinkDisplay from '../helpers/header-link-display';\r\nimport GTMUserActions from '../../common/utility/GTMUserActions';\r\nimport { getFormContainerWideLeftClassList, getModalContentClassListForSSOForm, toggleBemClassesForSSOFormModal } from '../helpers/form-helpers/form-modal-helpers';\r\nimport { ssoFormTypes } from '../../utils/form-types';\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\n\r\nclass BallotRegisterForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { registerFormData } = this.props;\r\n const { ssoDomain } = registerFormData;\r\n\r\n this.state = {\r\n ...initialState.ballotRegisterFormState,\r\n registerFormData,\r\n ssoDomain,\r\n isModalStylingUpdated: false\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.formReference = React.createRef();\r\n\r\n this.displayBallotRegisterForm = this.displayBallotRegisterForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.loadFormData = this.loadFormData.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleUserRegisterSuccess = this.handleUserRegisterSuccess.bind(this);\r\n this.submitRegisterData = this.submitRegisterData.bind(this);\r\n this.handleFieldChange = this.handleFieldChange.bind(this);\r\n this.handleOnBlur = this.handleOnBlur.bind(this);\r\n this.getHeaderLink = this.getHeaderLink.bind(this);\r\n\r\n this.formReferences = formScrollHelpers.getFormReferences(registerFormData);\r\n\r\n this.loadFormData();\r\n }\r\n\r\n loadFormData() {\r\n const { registerFormData, ssoFormType, actions } = this.props;\r\n\r\n if (!isEmpty(registerFormData)) { return; }\r\n\r\n const formDataUrl = getFormDataUrl(ssoFormType);\r\n\r\n actions.loadSSORegisterFormData(formDataUrl);\r\n }\r\n\r\n componentDidMount() {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, this.props, ssoFormTypes.BallotLiteRegister);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isRegisterSuccessful,\r\n loading,\r\n registerFormData,\r\n isUserEmailAlreadyUsed,\r\n onSignIn\r\n } = nextProps;\r\n\r\n const previousRegisterFormData = this.props.registerFormData;\r\n\r\n if (hasValue(registerFormData) && !this.state.isModalStylingUpdated) {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, nextProps, ssoFormTypes.BallotLiteRegister);\r\n }\r\n\r\n if (!loading &&\r\n isRegisterSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserRegisterSuccess);\r\n return;\r\n }\r\n\r\n if (!loading && isUserEmailAlreadyUsed) {\r\n this.setState(\r\n (state) => {\r\n const updatedErrors = state.errors;\r\n\r\n const { emailValidation } = registerFormData;\r\n\r\n updatedErrors.emailAddress = { isValid: false, errorMessage: this.getHeaderLink(emailValidation.emailHeaderLink, onSignIn, emailValidation.signInMessage) };\r\n\r\n return {\r\n ...state,\r\n errors: updatedErrors\r\n };\r\n }\r\n );\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n !isRegisterSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false),\r\n () => {\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n });\r\n }\r\n\r\n if (isEmpty(previousRegisterFormData) && !isEmpty(registerFormData)) {\r\n this.setState(\r\n (prevState) => ({\r\n ...prevState,\r\n registerFormData\r\n })\r\n );\r\n\r\n this.formReferences = formScrollHelpers.getFormReferences(registerFormData);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.defaultRegisterFormState);\r\n actions.resetRegisterFormState();\r\n }\r\n\r\n handleUserRegisterSuccess() {\r\n const { onUserRegisterSuccess } = this.props;\r\n\r\n const {\r\n formType,\r\n actionSuccessText,\r\n requestEmailVerificationCallbackUrl,\r\n requestEmailVerificationActionSuccessText,\r\n formBanner\r\n } = this.props.registerFormData;\r\n\r\n onUserRegisterSuccess(this.state[formConstants.emailAddress],\r\n {\r\n isBallotRegister: true,\r\n registerFormType: formType,\r\n successText: actionSuccessText,\r\n emailVerificationCallbackUrl: requestEmailVerificationCallbackUrl,\r\n emailVerificationActionSuccessText: requestEmailVerificationActionSuccessText,\r\n displayBanner: true,\r\n bannerBackgroundImageSrc: formBanner.bannerBackgroundImageSrc\r\n });\r\n }\r\n\r\n async handleSubmit(event) {\r\n event.preventDefault();\r\n const { registerFormData } = this.props;\r\n const { reCaptcha } = this.state;\r\n\r\n if (reCaptcha) {\r\n registerFormData.reCaptchaToken = reCaptcha;\r\n }\r\n\r\n this.setState(formStateHelpers.handleFormValidation(registerFormData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n const captchaRef = this.formReferences[formConstants.reCaptcha];\r\n\r\n if (captchaRef) {\r\n captchaRef.current.props.grecaptcha.reset();\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitRegisterData);\r\n }\r\n\r\n handleFieldChange(event) {\r\n this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target));\r\n }\r\n\r\n handleOnBlur(event) {\r\n const { actions, registerFormData } = this.props;\r\n const { previousCheckedEmail } = this.state;\r\n\r\n const { emailValidation } = registerFormData;\r\n\r\n const emailValue = event.target.value;\r\n\r\n if (event.target.name === formConstants.emailAddress && !isEmpty(emailValue) && previousCheckedEmail !== emailValue) {\r\n const isEmailValid = validateEmail(emailValue);\r\n\r\n if (isEmailValid.isValid) {\r\n this.setState((state) => ({\r\n ...state,\r\n previousCheckedEmail: emailValue,\r\n emailCheckInProgress: true\r\n }));\r\n\r\n actions.verifyIfEmailAddressExists(emailValue, emailValidation.emailValidationEndpoint);\r\n }\r\n }\r\n }\r\n\r\n submitRegisterData() {\r\n const { actions, registerFormData } = this.props;\r\n const { callBackUrlPost } = registerFormData;\r\n const actionSuccessText = registerFormData.actionSuccessText || formMessageConstants.registrationSuccessText;\r\n\r\n registerFormData.zoneInfo = formConstants.isBallotRegister;\r\n\r\n actions.registerNewUser(this.state, actionSuccessText, callBackUrlPost);\r\n this.setState({ reCaptcha: '' });\r\n\r\n GTMUserActions.trackJoinTheOneClubAction();\r\n }\r\n\r\n getHeaderLink(headerMessage, headerLink, headerLinkText) {\r\n return ;\r\n }\r\n\r\n displayForm() {\r\n const {\r\n onSignIn,\r\n isRegisterSuccessful,\r\n userRegistrationMessages,\r\n registerFormData\r\n } = this.props;\r\n\r\n const { formHeader } = registerFormData;\r\n\r\n if (isEmpty(registerFormData)) { return null; }\r\n\r\n return (\r\n \r\n
    \r\n \r\n {this.displayBallotRegisterForm()}\r\n \r\n \r\n
    );\r\n }\r\n\r\n displayBallotRegisterForm() {\r\n const { registerFormData } = this.props;\r\n const { mobilePhone } = registerFormData;\r\n\r\n return FormBuilder({\r\n formData: registerFormData,\r\n formReferences: this.formReferences,\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => {\r\n this.handleFieldChange(event);\r\n },\r\n handleConfirmPasswordChange: (event) => { this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target)); },\r\n handleMobilePhoneChange: (event) => { this.setState(formStateHelpers.handleMobilePhoneChange(event, mobilePhone.isOptional)); },\r\n handleCaptchaChange: (token) => { this.setState(formStateHelpers.handleCaptchaChange(token)); },\r\n handleMastercardNumberChange: (event) => {\r\n this.setState(formStateHelpers.handleMastercardNumberChange(event.target,\r\n registerFormData.mastercardRegex, registerFormData.mastercardValidationError));\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n handleOnBlur: this.handleOnBlur\r\n });\r\n }\r\n\r\n render() {\r\n const { isSaving } = this.state;\r\n const { loading, registerFormData } = this.props;\r\n const { formBanner, desktopImageSrc, mobileImageSrc } = registerFormData;\r\n\r\n const emptyForm = isEmpty(registerFormData);\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n hasValue(mobileImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n {\r\n emptyForm ? null : \r\n }\r\n
    \r\n {(isSaving || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n {\r\n hasValue(desktopImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nBallotRegisterForm.propTypes = {\r\n onSignIn: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n onUserRegisterSuccess: PropTypes.func.isRequired,\r\n registerFormData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isRegisterSuccessful: state.registerForm.isRegisterSuccessful,\r\n userRegistrationMessages: state.registerForm.userRegistrationMessages,\r\n isUserEmailAlreadyUsed: state.registerForm.isUserEmailAlreadyUsed,\r\n registerFormData: !hasValue(ownProps.registerFormData) ? state.registerForm.registerFormData : ownProps.registerFormData\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n registerNewUser: bindActionCreators(registerFormActions.registerNewUser, dispatch),\r\n resetRegisterFormState: bindActionCreators(registerFormActions.resetRegisterFormState, dispatch),\r\n loadSSORegisterFormData: bindActionCreators(registerFormActions.loadSSOOneClubRegisterFormData, dispatch),\r\n verifyIfEmailAddressExists: bindActionCreators(registerFormActions.verifyIfEmailAddressExists, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(BallotRegisterForm);\r\n","import _ from 'lodash';\r\nimport * as apiResponseMessages from '../api-response-messages';\r\n\r\nconst UNAUTHORIZED_STATUS_CODE = 401;\r\nconst TOO_MANY_REQUESTS_STATUS_CODE = 429;\r\nexport function getServerErrorMessages(response) {\r\n const errorMessage = response.errorMessage;\r\n if (_.isEmpty(response) || _.isEmpty(errorMessage)) {\r\n return [apiResponseMessages.SERVER_ERROR_MESSAGE];\r\n }\r\n\r\n if (errorMessage.includes('Network error')) {\r\n return [apiResponseMessages.SERVER_ERROR_MESSAGE];\r\n }\r\n\r\n if (response.statusCode === UNAUTHORIZED_STATUS_CODE ||\r\n response.statusCode === TOO_MANY_REQUESTS_STATUS_CODE) {\r\n return [errorMessage];\r\n }\r\n\r\n if (_.isArray(errorMessage)) {\r\n return errorMessage;\r\n }\r\n\r\n if (_.isString(errorMessage) && !isTextJSON(errorMessage)) {\r\n return [errorMessage];\r\n }\r\n\r\n const parsedResponse = JSON.parse(errorMessage);\r\n\r\n if (_.isEmpty(parsedResponse) || _.isEmpty(parsedResponse.errors)) {\r\n return [apiResponseMessages.SERVER_ERROR_MESSAGE];\r\n }\r\n\r\n const allErrors = Object.values(parsedResponse.errors);\r\n\r\n return _.isEmpty(allErrors) ? [apiResponseMessages.SERVER_ERROR_MESSAGE] : allErrors;\r\n}\r\n\r\nfunction isTextJSON(text) {\r\n if (!_.isString(text)) {\r\n return false;\r\n }\r\n\r\n try {\r\n JSON.parse(text);\r\n return true;\r\n } catch (error) {\r\n return false;\r\n }\r\n}\r\n","/* eslint-disable no-restricted-globals */\r\nimport * as types from './action-types';\r\nimport * as userAccountApi from '../api/user-account-api';\r\nimport * as apiResponseMessages from './api-response-messages';\r\nimport * as dataFormatHelper from './helpers/data-format-helper';\r\nimport * as messageHelper from './helpers/message-helper';\r\nimport { beginApiCall, apiCallError } from './api-status-actions';\r\nimport { formMessageConstants } from '../../components/utils/constants/form-message-constants';\r\nimport GTMUserActions from '../../components/common/utility/GTMUserActions';\r\n\r\nexport function loadSSOUpgradeToOneClubFormDataSuccess(ssoUpgradeToOneClubFormData) {\r\n return { type: types.LOAD_UPGRADE_TO_ONE_CLUB_FORM_DATA_SUCCESS, ssoUpgradeToOneClubFormData };\r\n}\r\n\r\nexport function loadSSOUpgradeToOneClubFormDataError() {\r\n return { type: types.LOAD_UPGRADE_TO_ONE_CLUB_FORM_DATA_ERROR };\r\n}\r\n\r\nexport function upgradeToTicketingAccountSuccess(accountUpgradeMessages) {\r\n return { type: types.UPGRADE_TO_TICKETING_ACCOUNT_SUCCESS, accountUpgradeMessages };\r\n}\r\n\r\nexport function upgradeToTicketingAccountError(accountUpgradeMessages) {\r\n return { type: types.UPGRADE_TO_TICKETING_ACCOUNT_ERROR, accountUpgradeMessages };\r\n}\r\n\r\nexport function updateOneClubMembershipError(oneClubMembershipUpdateMessages) {\r\n return { type: types.UPDATE_ONE_CLUB_MEMBERSHIP_ERROR, oneClubMembershipUpdateMessages };\r\n}\r\n\r\nexport function updateOneClubMembershipSuccess(oneClubMembershipUpdateMessages) {\r\n return { type: types.UPDATE_ONE_CLUB_MEMBERSHIP_SUCCESS, oneClubMembershipUpdateMessages };\r\n}\r\n\r\nexport function updatePrivacyPolicyAndTermsAndConditionsError(privacyPolicyAndTermsUpdateMessages) {\r\n return { type: types.UPDATE_OPTINS_ERROR, privacyPolicyAndTermsUpdateMessages };\r\n}\r\n\r\nexport function updatePrivacyPolicyAndTermsAndConditionsSuccess(privacyPolicyAndTermsUpdateMessages) {\r\n return { type: types.UPDATE_OPTINS_SUCCESS, privacyPolicyAndTermsUpdateMessages };\r\n}\r\n\r\nexport function resetUpgradeAccountFormState() {\r\n return { type: types.RESET_UPGRADE_ACCOUNT_FORM };\r\n}\r\n\r\nexport function loadSSOUpgradeToOneClubFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.getSSOUpgradeToOneClubFormData()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSOUpgradeToOneClubFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSOUpgradeToOneClubFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSOUpgradeToOneClubFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function upgradeToTicketingAccount(ssoDomain, userDetails, currentUser, callbackUrl) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.updateUserDetailsPost(dataFormatHelper.getFormattedUserDataForUpgradeToTicketingAccount(ssoDomain, currentUser, userDetails), callbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(upgradeToTicketingAccountError(serverErrorMessages));\r\n return;\r\n }\r\n dispatch(upgradeToTicketingAccountSuccess([apiResponseMessages.UPGRADE_TO_TICKETING_ACCOUNT_SUCCESSFULLY]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(upgradeToTicketingAccountError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function upgradeToOneClubAccount(userDetails, currentUser, callbackUrl) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.updateUserDetailsPost(dataFormatHelper.getFormattedUserDataForUpgradeToOneClubAccount(currentUser, userDetails), callbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(upgradeToTicketingAccountError(serverErrorMessages));\r\n return;\r\n }\r\n dispatch(upgradeToTicketingAccountSuccess([apiResponseMessages.UPGRADE_TO_TICKETING_ACCOUNT_SUCCESSFULLY]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(upgradeToTicketingAccountError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function upgradeBallotSummaryAccount(userDetails, currentUser, callbackUrl) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.updateUserDetailsPost(dataFormatHelper.getBallotFormattedUserDetailsData(userDetails, currentUser), callbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(upgradeToTicketingAccountError(serverErrorMessages));\r\n return;\r\n }\r\n dispatch(upgradeToTicketingAccountSuccess([apiResponseMessages.UPGRADE_TO_TICKETING_ACCOUNT_SUCCESSFULLY]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(upgradeToTicketingAccountError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\n\r\nexport function upgradeRaMembersSummaryAccount(userDetails, currentUser, callbackUrl) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.updateUserDetails(dataFormatHelper.getRaMembersFormattedUserDetailsData(userDetails, currentUser), callbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(upgradeToTicketingAccountError(serverErrorMessages));\r\n return;\r\n }\r\n dispatch(upgradeToTicketingAccountSuccess([apiResponseMessages.UPGRADE_TO_TICKETING_ACCOUNT_SUCCESSFULLY]));\r\n location.reload();\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(upgradeToTicketingAccountError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function joinOneClub(callbackUrl) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.updateOneClubMembershipStatus(callbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(updateOneClubMembershipError(serverErrorMessages));\r\n return;\r\n }\r\n GTMUserActions.trackJoinTheOneClubAction();\r\n dispatch(updateOneClubMembershipSuccess([apiResponseMessages.UPGRADE_TO_TICKETING_ACCOUNT_SUCCESSFULLY]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(updateOneClubMembershipError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function agreePrivacyPolicyAndTermsAndCoditions(callbackUrl, agreePrivaciPolicy, agreeTermsAndConditions) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.agreeToPrivacyPolicyAndTermsAndConditions(callbackUrl, agreePrivaciPolicy, agreeTermsAndConditions)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(updatePrivacyPolicyAndTermsAndConditionsError(serverErrorMessages));\r\n return;\r\n }\r\n dispatch(updatePrivacyPolicyAndTermsAndConditionsSuccess([apiResponseMessages.UPDATE_USER_DETAILS_SUCCESSFULLY]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(updatePrivacyPolicyAndTermsAndConditionsError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function addMasterCardMembershipToUser(callbackUrl) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.addMasterCardMembership(callbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(upgradeToTicketingAccountError(serverErrorMessages));\r\n return;\r\n }\r\n dispatch(upgradeToTicketingAccountSuccess([apiResponseMessages.UPDATE_USER_DETAILS_SUCCESSFULLY]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(upgradeToTicketingAccountError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n","import * as types from './action-types';\r\n\r\nexport function searchAddressSuccess(suggestedAddresses) {\r\n return { type: types.SEARCH_ADDRESS_SUCCESS, suggestedAddresses };\r\n}\r\n\r\nexport function searchAddressError(searchAddressMessages) {\r\n return { type: types.SEARCH_ADDRESS_ERROR, searchAddressMessages };\r\n}\r\n\r\nexport function retrieveAddressSuccess(addressData) {\r\n return { type: types.RETRIEVE_ADDRESS_SUCCESS, addressData };\r\n}\r\n\r\nexport function retrieveAddressError(retrieveAddressMessages) {\r\n return { type: types.RETRIEVE_ADDRESS_ERROR, retrieveAddressMessages };\r\n}\r\n\r\nexport function resetRetrievedUserAddress() {\r\n return { type: types.RESET_RETRIEVE_USER_ADDRESS };\r\n}\r\n\r\nexport function resetUpgradeAccountFormState() {\r\n return { type: types.RESET_UPGRADE_ACCOUNT_FORM };\r\n}\r\n\r\n","/* eslint-disable no-undef */\r\n/* eslint-disable consistent-return */\r\nimport _ from 'lodash';\r\nimport * as types from './action-types';\r\nimport * as userAccountApi from '../api/user-account-api';\r\nimport * as apiResponseMessages from './api-response-messages';\r\nimport * as messageHelper from './helpers/message-helper';\r\nimport * as dataFormatHelper from './helpers/data-format-helper';\r\nimport { beginApiCall, apiCallError } from './api-status-actions';\r\nimport { formMessageConstants } from '../../components/utils/constants/form-message-constants';\r\nimport { formConstants } from '../../components/utils/constants/form-constants';\r\nimport { redirect } from '../api/api-utils';\r\nimport { domainConstants } from '../../components/utils/constants/domain-constants';\r\nimport pageSpinner from '../../../../general/js/page-spinner';\r\nimport { hasValue } from '../../../../general/js/general-helpers';\r\nimport userService from '../../../../general/js/user/user-service';\r\nimport * as cookieHelper from '../../helpers/cookie-helper';\r\nimport { CookieNames } from '../../../../general/js/utils/cookies';\r\nimport { SECUTIX_CONTACT_ID, USER_ID } from '../../../../general/js/user/constants';\r\n\r\nexport const NO_CURRENT_USER_MESSAGE = 'No current user';\r\n\r\nexport function loadHomePageTicketsDataSuccess(homePageTicketsData) {\r\n return { type: types.LOAD_HOME_PAGE_TICKETS_DATA_SUCCESS, homePageTicketsData };\r\n}\r\n\r\nexport function loadHomePageTicketsDataError(loadHomePageTicketsDataErrorMessages) {\r\n return { type: types.LOAD_HOME_PAGE_TICKETS_DATA_ERROR, loadHomePageTicketsDataErrorMessages };\r\n}\r\n\r\nexport function loadUserDataSuccess(userAccountData, isAccountPageRefresh = false) {\r\n const data = { userAccountData, isAccountPageRefresh };\r\n\r\n return {\r\n type: types.LOAD_USER_DATA_SUCCESS, data\r\n };\r\n}\r\n\r\nexport function loadUserDataError(isUserNotSignedIn) {\r\n return { type: types.LOAD_USER_DATA_ERROR, isUserNotSignedIn };\r\n}\r\n\r\nexport function loadOrderHistorySuccess(orderHistoryData, displayCancelledFiles) {\r\n return { type: types.LOAD_ORDER_HISTORY_SUCCESS, orderHistoryData, displayCancelledFiles };\r\n}\r\n\r\nexport function loadOrderHistoryError(loadOrderHistoryErrorMessages) {\r\n return { type: types.LOAD_ORDER_HISTORY_ERROR, loadOrderHistoryErrorMessages };\r\n}\r\n\r\nexport function loadOrderHistoryPagesSuccess(orderHistoryPages, displayCancelledFiles) {\r\n return { type: types.LOAD_ORDER_HISTORY_PAGES_SUCCESS, orderHistoryPages, displayCancelledFiles };\r\n}\r\n\r\nexport function loadOrderHistoryPagesError(loadOrderHistoryPagesErrorMessages) {\r\n return { type: types.LOAD_ORDER_HISTORY_PAGES_ERROR, loadOrderHistoryPagesErrorMessages };\r\n}\r\n\r\nexport function loadOrderDetailsSuccess(orderDetails) {\r\n return { type: types.LOAD_ORDER_DETAILS_SUCCESS, orderDetails };\r\n}\r\n\r\nexport function loadOrderDetailsError(loadOrderDetailsErrorMessages) {\r\n return { type: types.LOAD_ORDER_DETAILS_ERROR, loadOrderDetailsErrorMessages };\r\n}\r\n\r\nexport function loadUserTicketsSuccess(userTicketsData, hideOldTickets) {\r\n return { type: types.LOAD_USER_TICKETS_SUCCESS, userTicketsData, hideOldTickets };\r\n}\r\n\r\nexport function loadUserTicketsError(loadUserTicketsErrorMessages) {\r\n return { type: types.LOAD_USER_TICKETS_ERROR, loadUserTicketsErrorMessages };\r\n}\r\n\r\nexport function downloadPdfFileSuccess() {\r\n return { type: types.DOWNLOAD_PDF_FILE_SUCCESS };\r\n}\r\n\r\nexport function downloadPdfFileError(downloadPdfFileErrorMessages) {\r\n return { type: types.DOWNLOAD_PDF_FILE_ERROR, downloadPdfFileErrorMessages };\r\n}\r\nexport function redirectResaleTicketsError(redirectResaleTicketsErrorMessage) {\r\n return { type: types.RESALE_TICKETS_REDIRECT_URL_ERROR, redirectResaleTicketsErrorMessage };\r\n}\r\nexport function updateUserDetailsSuccess(updateUserDetailsMessages) {\r\n return { type: types.UPDATE_USER_DETAILS_SUCCESS, updateUserDetailsMessages };\r\n}\r\n\r\nexport function resumePaymentByFileNumberError(errorMessages) {\r\n return { type: types.RESUME_PAYMENT_BY_FILE_NUMBER_ERROR, errorMessages };\r\n}\r\n\r\nexport function resumePaymentByFileNumberSuccess(errorMessages) {\r\n return { type: types.RESUME_PAYMENT_BY_FILE_NUMBER_SUCCESS, errorMessages };\r\n}\r\n\r\nexport function updateUserEmailSuccess(updateUserDetailsMessages) {\r\n return { type: types.UPDATER_USER_EMAIL_SUCCESS, updateUserDetailsMessages };\r\n}\r\n\r\nexport function updateUserDetailsError(updateUserDetailsMessages) {\r\n return { type: types.UPDATE_USER_DETAILS_ERROR, updateUserDetailsMessages };\r\n}\r\n\r\nexport function removeUserAccountSuccess() {\r\n return { type: types.REMOVE_USER_ACCOUNT_SUCCESS };\r\n}\r\n\r\nexport function removeUserAccountError(errorMessages) {\r\n return { type: types.REMOVE_USER_ACCOUNT_ERROR, errorMessages };\r\n}\r\n\r\nexport function updateUserAddressesSuccess(updateUserAddressesMessages) {\r\n return { type: types.UPDATE_USER_ADDRESSES_SUCCESS, updateUserAddressesMessages };\r\n}\r\n\r\nexport function updateUserAddressesError(updateUserAddressesMessages) {\r\n return { type: types.UPDATE_USER_ADDRESSES_ERROR, updateUserAddressesMessages };\r\n}\r\n\r\nexport function resetAddressesFormState() {\r\n return { type: types.RESET_USER_ADDRESSES_FORM_STATE };\r\n}\r\n\r\nexport function displayUserAddressesErrorMessage(errorMessages) {\r\n return { type: types.USER_ADDRESSES_ERROR_MESSAGE, errorMessages };\r\n}\r\n\r\nexport function resetUserDetailsFormState() {\r\n return { type: types.RESET_USER_DETAILS_FORM_STATE };\r\n}\r\n\r\nexport function changePasswordSuccess(changePasswordMessages) {\r\n return { type: types.CHANGE_PASSWORD_SUCCESS, changePasswordMessages };\r\n}\r\n\r\nexport function changePasswordError(changePasswordMessages) {\r\n return { type: types.CHANGE_PASSWORD_ERROR, changePasswordMessages };\r\n}\r\n\r\nexport function resetChangePasswordFormState() {\r\n return { type: types.RESET_CHANGE_PASSWORD_FORM_STATE };\r\n}\r\n\r\nexport function resetHomePageTicketsDataFormState() {\r\n return { type: types.RESET_HOME_PAGE_TICKETS_DATA_FORM_STATE };\r\n}\r\n\r\nexport function saveUserToAddressBookFormState() {\r\n return { type: types.SAVE_USER_TO_ADDRESS_BOOK_SUCCESS };\r\n}\r\n\r\nexport function saveUserToAddressBookErrorMessages(errorMessages) {\r\n return { type: types.SAVE_USER_TO_ADDRESS_BOOK_ERROR_MESSAGE, errorMessages };\r\n}\r\n\r\nexport function getHomePageTicketsData(callbackUrl, ssoDomain, secuTixErrorMessage) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.getHomePageTicketsData(callbackUrl, ssoDomain)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n\r\n if (ssoDomain === domainConstants.womensOpen) {\r\n dispatch(loadHomePageTicketsDataError([secuTixErrorMessage || formMessageConstants.encounteredAnIssueWO]));\r\n } else {\r\n dispatch(loadHomePageTicketsDataError([secuTixErrorMessage || formMessageConstants.encounteredAnIssueTO]));\r\n }\r\n\r\n return;\r\n }\r\n const homePageTicketsData = dataFormatHelper.getFormattedHomePageTicketsData(response.data, ssoDomain);\r\n dispatch(loadHomePageTicketsDataSuccess(homePageTicketsData));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n if (ssoDomain === domainConstants.womensOpen) {\r\n dispatch(loadHomePageTicketsDataError([secuTixErrorMessage || formMessageConstants.encounteredAnIssueWO]));\r\n } else {\r\n dispatch(loadHomePageTicketsDataError([secuTixErrorMessage || formMessageConstants.encounteredAnIssueTO]));\r\n }\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function resetHomePageTicketsData() {\r\n return function (dispatch) {\r\n dispatch(resetHomePageTicketsDataFormState());\r\n };\r\n}\r\n\r\nexport function getUserAccountData(callbackUrl, isAccountPageRefresh = false) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.getUserAccountData(callbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadUserDataError([apiResponseMessages.SERVER_ERROR_MESSAGE]), false);\r\n return;\r\n }\r\n dispatch(loadUserDataSuccess(response.data, isAccountPageRefresh));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n const isUserNotSignedIn = error === NO_CURRENT_USER_MESSAGE;\r\n dispatch(loadUserDataError([apiResponseMessages.SERVER_ERROR_MESSAGE]), isUserNotSignedIn);\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function getOrderHistory(callbackUrl,\r\n { pageNumber, displayCancelledFiles, ssoDomain }) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.getUserOrderHistoryData(callbackUrl,\r\n { pageNumber, displayCancelledFiles, ssoDomain })\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadOrderHistoryError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n\r\n const orderHistoryData = dataFormatHelper.getFormattedOrders(response.data.orders);\r\n dispatch(loadOrderHistorySuccess(orderHistoryData, displayCancelledFiles));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadOrderHistoryError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function getOrderHistoryPages(callbackUrl,\r\n { displayCancelledFiles, ssoDomain }) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.getOrderHistoryPages(callbackUrl, { displayCancelledFiles, ssoDomain })\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadOrderHistoryPagesError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n\r\n dispatch(loadOrderHistoryPagesSuccess(response.data, displayCancelledFiles));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadOrderHistoryPagesError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function getOrderDetails(callbackUrl,\r\n { fileNumber, ssoDomain }) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.getOrderDetails(callbackUrl, { fileNumber, ssoDomain })\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadOrderDetailsError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n\r\n const orderDetailsData = dataFormatHelper.getFormattedOrderDetails(response.data);\r\n dispatch(loadOrderDetailsSuccess(orderDetailsData));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadOrderDetailsError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function getUserTickets(callbackUrl, hideOldTickets, ssoDomain) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.getUserTicketsData(callbackUrl, hideOldTickets, ssoDomain)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadUserTicketsError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n\r\n dispatch(loadUserTicketsSuccess(response.data.eventTickets, hideOldTickets));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadUserTicketsError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function downloadTicketPdf(callbackUrl, printOptions, ssoDomain) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.downloadPdfFile(callbackUrl, {\r\n ticketId: printOptions.ticketForPrint.ticketId,\r\n firstName: printOptions.firstNameValue,\r\n lastName: printOptions.lastNameValue,\r\n [formConstants.website]: ssoDomain\r\n }).then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(downloadPdfFileError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n\r\n dispatch(downloadPdfFileSuccess());\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(downloadPdfFileError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function downloadPdfDocumentById(callbackUrl, printOptions) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.downloadPdfFile(callbackUrl, printOptions)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(downloadPdfFileError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n\r\n dispatch(downloadPdfFileSuccess());\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(downloadPdfFileError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function updateUserAddresses(userDetails, actionSuccessText, callbackUrl) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.updateUserDetails(dataFormatHelper.getFormattedUserDetailsAddressesData(userDetails), callbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(updateUserAddressesError(serverErrorMessages));\r\n return;\r\n }\r\n dispatch(updateUserAddressesSuccess([actionSuccessText]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(updateUserAddressesError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function updateUserDetails({\r\n userDetails,\r\n accountData,\r\n actionSuccessText,\r\n callBackUrl,\r\n emailChangedConflictMessage\r\n}) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.updateUserDetails(dataFormatHelper.getFormattedUserDetailsData(userDetails, accountData), callBackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n const errorMessages = _.isEmpty(emailChangedConflictMessage) ?\r\n serverErrorMessages :\r\n [emailChangedConflictMessage];\r\n\r\n dispatch(apiCallError(errorMessages));\r\n dispatch(updateUserDetailsError(errorMessages));\r\n return;\r\n }\r\n\r\n if (response.data && response.data.updatedUserEmailChanged) {\r\n dispatch(updateUserEmailSuccess([actionSuccessText]));\r\n return;\r\n }\r\n\r\n dispatch(updateUserDetailsSuccess([actionSuccessText]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(updateUserDetailsError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function joinTheOneClub({\r\n userDetails,\r\n accountData,\r\n actionSuccessText,\r\n callBackUrl\r\n}) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.updateUserDetails(dataFormatHelper.getFormattedJoinTheOneClubData(userDetails, accountData), callBackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(updateUserDetailsError(serverErrorMessages));\r\n return;\r\n }\r\n dispatch(updateUserDetailsSuccess([actionSuccessText]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(updateUserDetailsError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function updateUserEmailNotificationSettings({\r\n userDetails,\r\n accountData,\r\n actionSuccessText,\r\n callBackUrl\r\n}) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.updateEmailNotificationSettings(dataFormatHelper.getFormattedNotificationSettingsData(userDetails, accountData), callBackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(updateUserDetailsError(serverErrorMessages));\r\n return;\r\n }\r\n dispatch(updateUserDetailsSuccess([actionSuccessText]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(updateUserDetailsError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function removeAccount(callbackUrl) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.removeAccount(callbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(removeUserAccountError([response.errorMessage]));\r\n return;\r\n }\r\n dispatch(removeUserAccountSuccess());\r\n userService.removeDataFromLocalStorage(SECUTIX_CONTACT_ID);\r\n userService.removeDataFromLocalStorage(USER_ID);\r\n cookieHelper.removeCookie(CookieNames.UserId);\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(removeUserAccountError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function changeUserPassword(passwordDetails, actionSuccessText, callbackUrl) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.changeUserPassword(passwordDetails, callbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(changePasswordError(serverErrorMessages));\r\n return;\r\n }\r\n dispatch(changePasswordSuccess([actionSuccessText]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(changePasswordError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function displayVerifyUserEmail() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.getVerifyEmailForm()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n return;\r\n }\r\n dispatch(changePasswordSuccess(['Email changed successfully!']));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\n\r\nexport function handleRedirectToResaleTickets({\r\n resaleTicketsUrl,\r\n secutixResaleUrl,\r\n secutixPointOfSaleId,\r\n secutixVirtualOperator,\r\n redirectUri\r\n}) {\r\n return function (dispatch) {\r\n pageSpinner.show();\r\n return userAccountApi.authUserInResaleSecutix({\r\n resaleTicketsUrl,\r\n requestUrl: secutixResaleUrl,\r\n secutixPointOfSaleId,\r\n secutixVirtualOperator,\r\n redirectUri\r\n })\r\n .then(() => {\r\n pageSpinner.hide();\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n pageSpinner.hide();\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function resumePaymentByFileNumber(urls, request) {\r\n const { resumePaymentCallbackUrl, secutixAuthUrl } = urls;\r\n\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n\r\n const promises = [];\r\n\r\n const resumePaymentPromise = userAccountApi.resumePaymentByFileNumber(resumePaymentCallbackUrl, request)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(resumePaymentByFileNumberError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n\r\n return response;\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(resumePaymentByFileNumberError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n\r\n promises.push(resumePaymentPromise);\r\n\r\n const authPromise = userAccountApi.authUserInSecutix(secutixAuthUrl).then((authResponse) => {\r\n if (authResponse.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(resumePaymentByFileNumberError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n\r\n return authResponse;\r\n }).catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(resumePaymentByFileNumberError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n\r\n promises.push(authPromise);\r\n\r\n Promise.all(promises).then((responseValues) => {\r\n let redirectUrl = responseValues[1].data.redirectUrl;\r\n\r\n redirectUrl = redirectUrl.replace('{0}', responseValues[0].data.orderId);\r\n redirectUrl = redirectUrl.replace('{1}', responseValues[0].data.orderToken);\r\n\r\n redirect(redirectUrl);\r\n dispatch(resumePaymentByFileNumberSuccess(['Reservation resumed successful!']));\r\n });\r\n };\r\n}\r\n\r\nexport function saveUserToAddressBook(formData, accountData) {\r\n return function (dispatch) {\r\n const serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n const formattedRequestModel = dataFormatHelper.getFormattedSaveUserToAddressBookRequest(formData, accountData);\r\n\r\n if (!hasValue(formattedRequestModel) || formattedRequestModel.AddressBookID === 0) {\r\n dispatch(saveUserToAddressBookErrorMessages(serverErrorMessages));\r\n return;\r\n }\r\n\r\n const { saveUserToDotDigitalCallbackUrl } = formData;\r\n\r\n if (!hasValue(saveUserToDotDigitalCallbackUrl)) {\r\n dispatch(saveUserToAddressBookErrorMessages(serverErrorMessages));\r\n return;\r\n }\r\n\r\n dispatch(beginApiCall());\r\n return userAccountApi.saveUserToAddressBook(formattedRequestModel, saveUserToDotDigitalCallbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(saveUserToAddressBookErrorMessages([response.errorMessage]));\r\n return;\r\n }\r\n dispatch(saveUserToAddressBookFormState());\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(saveUserToAddressBookErrorMessages(error));\r\n throw error;\r\n });\r\n };\r\n}\r\n","import { \r\n hasValue \r\n} from \"../../../../../general/js/general-helpers\";\r\nimport { getMainAddress } from \"../../../components/forms/helpers/form-helpers/upgrade-form-helper\";\r\nimport { formConstants } from \"../../../components/utils/constants/form-constants\";\r\n\r\nexport function getUserDetailsForSaveToAddressBookRequest(userDetails) {\r\n if (!hasValue(userDetails)){\r\n return [];\r\n }\r\n\r\n let userAttributes = {\r\n FirstName: userDetails[formConstants.firstName],\r\n LastName: userDetails[formConstants.lastName]\r\n }\r\n \r\n const mainAddress = getMainAddress(userDetails);\r\n\r\n if (hasValue(mainAddress) && hasValue(mainAddress[formConstants.country])) {\r\n userAttributes.Country = mainAddress[formConstants.country];\r\n }\r\n\r\n return getFormattedDotdigitalUserAttributeList(userAttributes);\r\n}\r\n\r\nexport function getSaveUserToAddressBookRequestModel(userDetails = [], userEmail = '', addressBookData = {}){\r\n if(!hasValue(userDetails) || !hasValue(userEmail) || !hasValue(addressBookData) || addressBookData.addressBookID === 0){\r\n return undefined;\r\n }\r\n \r\n return {\r\n UserDetails: userDetails,\r\n Email: userEmail,\r\n AddressBookID: addressBookData.addressBookID\r\n };\r\n}\r\n\r\nfunction getFormattedDotdigitalUserAttributeList(attributes = {}) {\r\n let dotDigitalAttributes = [];\r\n \r\n if(!hasValue(attributes)){\r\n return dotDigitalAttributes;\r\n }\r\n\r\n Object.keys(attributes).forEach(key => {\r\n const attribute = getFormattedDotdigitalUserAttribute(key, attributes[key]);\r\n \r\n if (hasValue(attribute)){\r\n dotDigitalAttributes.push(attribute);\r\n }\r\n });\r\n\r\n return dotDigitalAttributes;\r\n}\r\n\r\nfunction getFormattedDotdigitalUserAttribute(key = '', value = null) {\r\n if (!hasValue(key) || !hasValue(value)){\r\n return {};\r\n }\r\n\r\n return {\r\n Key: key,\r\n Value: value\r\n }\r\n}","import _, { fromPairs } from 'lodash';\r\nimport { formConstants } from '../../../utils/constants/form-constants';\r\nimport { isEmpty } from '../../../utils/obj-utils';\r\nimport { createDateFromExisting } from '../../../utils/date-utils';\r\nimport { domainConstants } from '../../../utils/constants/domain-constants';\r\n'../../utils/constants/domain-constants';\r\n\r\nconst BallotSummaryDetailsFormData = (\r\n formData,\r\n userAccountData\r\n) => {\r\n function buildBallotSummaryDetailsFormData() {\r\n const ballotFormData = getBallotSummaryUserDetailsFields();\r\n return getBallotSummaryUserDetailsFieldsWithDefaultValues(ballotFormData);\r\n }\r\n\r\n function getBallotSummaryUserDetailsFields() {\r\n const { requestEmailVerificationActionSuccessText, callBackUrl } = formData;\r\n\r\n formData[formConstants.callBackUrl] = callBackUrl;\r\n formData[formConstants.ssoDomain] = formData[formConstants.ssoDomain];\r\n formData[formConstants.actionSuccessText] = requestEmailVerificationActionSuccessText;\r\n formData[formConstants.emailAddress] = formData[formConstants.emailAddress];\r\n formData[formConstants.confirmEmailAddress] = formData[formConstants.confirmEmailAddress];\r\n formData[formConstants.title] = formData[formConstants.title];\r\n formData[formConstants.firstName] = formData[formConstants.firstName];\r\n formData[formConstants.lastName] = formData[formConstants.lastName];\r\n formData[formConstants.dateOfBirth] = formData[formConstants.dateOfBirth];\r\n formData[formConstants.mainAddressLabel] = formData[formConstants.mainAddressLabel];\r\n formData[formConstants.country] = formData[formConstants.country];\r\n formData[formConstants.county] = formData[formConstants.county];\r\n formData[formConstants.state] = formData[formConstants.state];\r\n formData[formConstants.addressLine1] = formData[formConstants.addressLine1];\r\n formData[formConstants.addressLine2] = formData[formConstants.addressLine2];\r\n formData[formConstants.addressLine3] = formData[formConstants.addressLine3];\r\n formData[formConstants.city] = formData[formConstants.city];\r\n formData[formConstants.postcode] = formData[formConstants.postcode];\r\n formData[formConstants.mobilePhone] = formData[formConstants.mobilePhone];\r\n formData[formConstants.becomeOneClubMemberInfo] = formData[formConstants.becomeOneClubMemberInfo];\r\n formData[formConstants.offersDetails] = formData[formConstants.offersDetails];\r\n formData[formConstants.oneClubTermsAndServices] = formData[formConstants.oneClubTermsAndServices];\r\n \r\n return formData;\r\n }\r\n\r\n function getBallotSummaryUserDetailsFieldsWithDefaultValues(formData) {\r\n\r\n formData[formConstants.emailAddress].defaultValue = userAccountData[formConstants.email];\r\n formData[formConstants.title].defaultValue = userAccountData[formConstants.title];\r\n formData[formConstants.firstName].defaultValue = userAccountData[formConstants.firstName];\r\n formData[formConstants.lastName].defaultValue = userAccountData[formConstants.lastName];\r\n\r\n if (!_.isEmpty(userAccountData[formConstants.mobilePhone])) {\r\n formData[formConstants.mobilePhone].defaultValue = {};\r\n\r\n const userMobilePhone = _.cloneDeep(userAccountData[formConstants.mobilePhone]);\r\n\r\n const userCountryCodeMobilePhonePrefix = userAccountData[formConstants.countryCodeMobilePhonePrefix];\r\n\r\n const selectedCountry = getSelectedCountry(formData, userCountryCodeMobilePhonePrefix, userMobilePhone);\r\n\r\n formData[formConstants.mobilePhone].defaultValue.selectedCountry = selectedCountry;\r\n\r\n formData[formConstants.mobilePhone].defaultValue.phoneNumber = userMobilePhone.replace(selectedCountry.phonePrefix, '');\r\n }\r\n\r\n if (userAccountData.dateOfBirth !== undefined) {\r\n formData[formConstants.dateOfBirth].defaultValue = createDateFromExisting(userAccountData.dateOfBirth);\r\n }\r\n\r\n let mainAddress = {};\r\n if (!isEmpty(userAccountData.addresses)) {\r\n const foundAddress = userAccountData.addresses.find((address) => address.main);\r\n mainAddress = isEmpty(foundAddress) ? {} : foundAddress;\r\n }\r\n\r\n formData[formConstants.addressLine1].defaultValue = mainAddress.addressLine1;\r\n formData[formConstants.addressLine2].defaultValue = mainAddress.addressLine2;\r\n formData[formConstants.addressLine3].defaultValue = mainAddress.addressLine3;\r\n formData[formConstants.postcode].defaultValue = mainAddress.postcode;\r\n formData[formConstants.city].defaultValue = mainAddress.city;\r\n formData[formConstants.country].defaultValue = mainAddress.country;\r\n formData[formConstants.county].defaultValue = mainAddress.county;\r\n formData[formConstants.state].defaultValue = mainAddress.state;\r\n\r\n const optIns = userAccountData[formConstants.optIns];\r\n formData[formConstants.offersDetails].defaultValue =\r\n {\r\n [formConstants.refuseOffers]: !optIns.optedTheOpenOffersByEmail,\r\n [formConstants.acceptOffers]: optIns.optedPartnerOffersByEmail\r\n };\r\n \r\n return formData;\r\n }\r\n\r\n return buildBallotSummaryDetailsFormData();\r\n};\r\n\r\nfunction getSelectedCountry(formData, userCountryCodeMobilePhonePrefix, userMobilePhone) {\r\n\r\n let selectedCountry = formData[formConstants.country].options\r\n .find((country) => !_.isEmpty(country.phonePrefix) &&\r\n country.code === userCountryCodeMobilePhonePrefix);\r\n\r\n if (selectedCountry)\r\n return selectedCountry;\r\n\r\n selectedCountry = formData[formConstants.country].options\r\n .find((country) => !_.isEmpty(country.phonePrefix) &&\r\n userMobilePhone.includes(country.phonePrefix));\r\n\r\n return selectedCountry;\r\n}\r\n\r\nexport default BallotSummaryDetailsFormData;\r\n","/* eslint-disable react/no-direct-mutation-state */\r\nimport React, { Component, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\nimport { isEmpty, deepCopyObject } from '../../utils/obj-utils';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport * as upgradeAccountActions from '../../../store/actions/upgrade-account-actions';\r\nimport * as userAddressActions from '../../../store/actions/user-address-actions';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport * as upgradeFormHelper from '../helpers/form-helpers/upgrade-form-helper';\r\nimport BallotSummaryDetailsFormData from './helpers/ballot-summary-form-data';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\nimport { getFormContainerWideLeftClassList, getModalContentClassListForSSOForm, toggleBemClassesForSSOFormModal } from '../helpers/form-helpers/form-modal-helpers';\r\nimport { ssoFormTypes } from '../../utils/form-types';\r\nimport { createDate } from '../../utils/date-utils';\r\nimport { MembershipTypes } from '../../../../../general/js/utils';\r\n\r\nclass BallotSummaryForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const { formData, ssoDomain } = this.props;\r\n\r\n const mainAddress = upgradeFormHelper.getMainAddress(formData.currentUser);\r\n const birthDate = upgradeFormHelper.getDateOfBirth(formData.currentUser);\r\n\r\n this.state = {\r\n ...initialState.upgradeBallotFormState,\r\n [formConstants.country]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.country),\r\n [formConstants.county]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.county),\r\n [formConstants.state]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.state),\r\n [formConstants.city]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.city),\r\n [formConstants.addressLine1]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine1),\r\n [formConstants.addressLine2]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine2),\r\n [formConstants.addressLine3]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine3),\r\n [formConstants.postcode]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.postcode),\r\n [formConstants.dateOfBirth]: birthDate ? createDate(birthDate.year, birthDate.month, birthDate.day) : null,\r\n ssoDomain,\r\n userDataLoaded: false,\r\n isModalStylingUpdated: false\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.formReference = React.createRef();\r\n this.formReferences = formScrollHelpers.getFormReferences(formData);\r\n\r\n this.displayBallotSummaryForm = this.displayBallotSummaryForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleUserUpdateBallotSummarySuccess = this.handleUserUpdateBallotSummarySuccess.bind(this);\r\n this.submitBallotSummaryData = this.submitBallotSummaryData.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const { onSignIn, formData, actions } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n onSignIn();\r\n }\r\n\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, this.props, ssoFormTypes.BallotSummaryForm);\r\n\r\n const { userProfileCallbackUrl } = formData;\r\n actions.getUserAccountData(userProfileCallbackUrl, false);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n formData,\r\n isUpgradeSuccessful,\r\n loading,\r\n retrievedUserAddress,\r\n isUserAddressRetrieveSuccessful,\r\n isUserAccountDataLoadedSuccessful,\r\n userAccountData\r\n } = nextProps;\r\n\r\n const { userDataLoaded } = this.state;\r\n\r\n if (hasValue(formData) && !this.state.isModalStylingUpdated) {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, nextProps, ssoFormTypes.BallotSummaryForm);\r\n }\r\n\r\n if (!loading && isUserAddressRetrieveSuccessful && !isUpgradeSuccessful) {\r\n const { county, state } = formData;\r\n this.setState(formStateHelpers.handleAddressDataChange(retrievedUserAddress, county, state));\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n isUpgradeSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserUpdateBallotSummarySuccess);\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n !isUpgradeSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false),\r\n () => {\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n });\r\n }\r\n\r\n if (!loading && !isEmpty(userAccountData) &&\r\n isUserAccountDataLoadedSuccessful && !userDataLoaded) {\r\n this.updateUserAccountData(userAccountData);\r\n }\r\n }\r\n\r\n updateUserAccountData(nextUserAccountData) {\r\n const { formData } = this.props;\r\n\r\n const userAccountData = _.cloneDeep(nextUserAccountData);\r\n\r\n const userDetailsFormData = new BallotSummaryDetailsFormData(formData, userAccountData);\r\n\r\n if (userAccountData.membership.includes(MembershipTypes.OneClubAdvantage)) {\r\n userDetailsFormData.mastercard.isDisabled = true;\r\n userDetailsFormData.mastercard.label = formData.alreadyMastercardMemberText;\r\n }\r\n this.setState(formStateHelpers.updateFormFields(userDetailsFormData));\r\n\r\n this.setState(\r\n (prevState) => ({\r\n ...prevState,\r\n userDetailsFormData,\r\n userDataLoaded: true\r\n })\r\n );\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.upgradeAccountFormState);\r\n actions.resetUpgradeAccountFormState();\r\n }\r\n\r\n handleUserUpdateBallotSummarySuccess() {\r\n const {\r\n handleBallotSummarySuccess,\r\n formData,\r\n handleBallotPortalRedirect\r\n } = this.props;\r\n\r\n if (!hasValue(formData)) {\r\n handleBallotPortalRedirect();\r\n }\r\n\r\n handleBallotSummarySuccess();\r\n }\r\n\r\n async handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.props;\r\n const { reCaptcha } = this.state;\r\n\r\n if (reCaptcha) {\r\n formData.reCaptchaToken = reCaptcha;\r\n }\r\n\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitBallotSummaryData);\r\n }\r\n\r\n submitBallotSummaryData() {\r\n const { actions, formData, userAccountData } = this.props;\r\n const { callBackUrlPut } = formData;\r\n\r\n formScrollHelpers.scrollToField(this.formReferences[formConstants.title]);\r\n actions.upgradeBallotSummaryAccount(this.state, userAccountData, callBackUrlPut);\r\n }\r\n\r\n displayForm() {\r\n const {\r\n isUpgradeSuccessful,\r\n accountUpgradeMessages,\r\n purchaseAttemptMessages,\r\n formData\r\n } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n return null;\r\n }\r\n\r\n const messagesToDisplay = _.isEmpty(accountUpgradeMessages) ? purchaseAttemptMessages : accountUpgradeMessages;\r\n\r\n return (\r\n
    \r\n \r\n {this.displayBallotSummaryForm()}\r\n \r\n \r\n
    );\r\n }\r\n\r\n displayBallotSummaryForm() {\r\n const { formData } = this.props;\r\n const { availableCounties, country, availableStates } = this.state;\r\n const { county, mobilePhone, state } = formData;\r\n const copyOfFormData = deepCopyObject(formData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n copyOfFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfFormData[formConstants.city].defaultValue = this.state[formConstants.city];\r\n copyOfFormData[formConstants.addressLine1].defaultValue = this.state[formConstants.addressLine1];\r\n copyOfFormData[formConstants.addressLine2].defaultValue = this.state[formConstants.addressLine2];\r\n copyOfFormData[formConstants.addressLine3].defaultValue = this.state[formConstants.addressLine3];\r\n copyOfFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n\r\n if (this.state[formConstants.dateOfBirth] !== undefined && this.state[formConstants.dateOfBirth] instanceof Date) {\r\n copyOfFormData[formConstants.dateOfBirth].defaultValue = this.state[formConstants.dateOfBirth];\r\n }\r\n\r\n return FormBuilder({\r\n formData: copyOfFormData,\r\n formReferences: this.formReferences,\r\n countryData: { selectedCountry: country },\r\n countyData: { availableCounties, label: county ? county.label : formMessageConstants.emptyString },\r\n stateData: { availableStates, label: state ? state.label : formMessageConstants.emptyString },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target), this.updateFormData); },\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target), this.updateFormData); },\r\n handleConfirmPasswordChange: (event) => { this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target)); },\r\n handleDateChange: (event) => { this.setState(formStateHelpers.handleDateChange(event)); },\r\n handleMobilePhoneChange: (event) => { this.setState(formStateHelpers.handleMobilePhoneChange(event, mobilePhone.isOptional), this.updateFormData); },\r\n handleCaptchaChange: (token) => { this.setState(formStateHelpers.handleCaptchaChange(token)); },\r\n handleCountryChange: (event) => {\r\n this.setState(formStateHelpers.handleCountryChange(event.target, county, state));\r\n },\r\n handleMastercardNumberChange: (event) => {\r\n this.setState(formStateHelpers.handleMastercardNumberChange(event.target,\r\n formData.mastercardRegex, formData.mastercardValidationError));\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const { isSaving } = this.state;\r\n const { loading, formData } = this.props;\r\n const { formBanner, desktopImageSrc, mobileImageSrc } = formData;\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n hasValue(mobileImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n \r\n
    \r\n {(isSaving || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n {\r\n hasValue(desktopImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nBallotSummaryForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n onSignIn: PropTypes.func.isRequired,\r\n ssoDomain: PropTypes.string,\r\n formData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n formData: _.isEmpty(ownProps.formData) ? state.registerForm.formData : ownProps.formData,\r\n isUpgradeSuccessful: state.upgradeAccountForm.isUpgradeSuccessful,\r\n accountUpgradeMessages: state.upgradeAccountForm.accountUpgradeMessages,\r\n isUserAddressRetrieveSuccessful: state.userAddressSearchData.isUserAddressRetrieveSuccessful,\r\n retrieveAddressMessages: state.userAddressSearchData.retrieveAddressMessages,\r\n retrievedUserAddress: state.userAddressSearchData.retrievedUserAddress,\r\n userAccountData: state.userAccount.userAccountData,\r\n isUserAccountDataLoadedSuccessful: state.userAccount.isUserAccountDataLoadedSuccessful,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n upgradeBallotSummaryAccount: bindActionCreators(upgradeAccountActions.upgradeBallotSummaryAccount, dispatch),\r\n resetUpgradeAccountFormState: bindActionCreators(upgradeAccountActions.resetUpgradeAccountFormState, dispatch),\r\n resetRetrievedUserAddress: bindActionCreators(userAddressActions.resetRetrievedUserAddress, dispatch),\r\n getUserAccountData: bindActionCreators(userAccountActions.getUserAccountData, dispatch),\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(BallotSummaryForm);\r\n","import * as types from './action-types';\r\nimport * as itemListFormApi from '../api/item-list-form-api';\r\nimport { beginApiCall, apiCallError } from './api-status-actions';\r\n\r\nexport function loadSSOItemListFormDataSuccess(itemListFormData) {\r\n return { type: types.LOAD_ITEM_LIST_FORM_DATA_SUCCESS, itemListFormData };\r\n}\r\n\r\nexport function loadSSOItemListFormDataError() {\r\n return { type: types.LOAD_ITEM_LIST_FORM_DATA_ERROR };\r\n}\r\n\r\n\r\nexport function loadSSOItemListFormData(formDataUrl = '', formId = '') {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return itemListFormApi.getSSOItemListFormData(formDataUrl, formId)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSOItemListFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSOItemListFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSOItemListFormDataError());\r\n throw error;\r\n });\r\n };\r\n}","import { handleResponse, handleError } from './api-utils';\r\nimport { apiConstants } from './api-constants';\r\nimport { hasValue } from '../../../../general/js/general-helpers';\r\n\r\nexport function getSSOItemListFormData(formDataUrl = '', formId = '') {\r\n let callBackUrl = hasValue(formDataUrl) ? formDataUrl : apiConstants.loadSSOItemListFormDataUrl;\r\n\r\n if(hasValue(formId)){\r\n callBackUrl = `${callBackUrl}?id=${formId}`;\r\n }\r\n\r\n return fetch(callBackUrl, {\r\n method: 'GET',\r\n headers: { 'content-type': 'application/json' }\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}","/* eslint-disable no-useless-return */\r\nimport React, { Component, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport { deepCopyObject } from '../../utils/obj-utils';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport {\r\n getProperty, hasValue, isNullOrUndefined, parametersDidUpdate, toggleCssClass\r\n} from '../../../../../general/js/general-helpers';\r\nimport { hasFormFields } from '../helpers/form-helpers/form-field-helpers';\r\nimport * as itemListFormActions from '../../../store/actions/item-list-form-actions';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport { reloadPageWithoutQueryParams } from '../../../../../general/js/utils';\r\n\r\nclass SSOItemListForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ...initialState.ssoItemListFormState\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.formReferences = [];\r\n\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.buildFormRefs = this.buildFormRefs.bind(this);\r\n this.displayItemListForm = this.displayItemListForm.bind(this);\r\n this.loadSSOItemListFormData = this.loadSSOItemListFormData.bind(this);\r\n this.handleModalClose = this.handleModalClose.bind(this);\r\n\r\n this.loadSSOItemListFormData();\r\n }\r\n\r\n loadSSOItemListFormData() {\r\n const {\r\n actions,\r\n formData,\r\n isFormLoadSuccessful,\r\n itemListErrorMessages,\r\n formId\r\n } = this.props;\r\n\r\n if (!hasValue(formData) && hasValue(actions) && (!isFormLoadSuccessful && !hasValue(itemListErrorMessages))) {\r\n actions.loadSSOItemListFormData(formMessageConstants.emptyString, formId);\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.loadFields();\r\n this.hideModalCloseButton();\r\n this.addListeners();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.removeListeners();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isFormLoadSuccessful,\r\n itemListErrorMessages,\r\n loading\r\n } = nextProps;\r\n\r\n const oldItemList = getProperty(this.props.formData, formFieldConstants.itemList);\r\n const newItemList = getProperty(nextProps.formData, formFieldConstants.itemList);\r\n\r\n if (!parametersDidUpdate(oldItemList, newItemList)) {\r\n return;\r\n }\r\n\r\n this.hideModalCloseButton(nextProps);\r\n\r\n if (!loading && isFormLoadSuccessful && !hasValue(itemListErrorMessages)) {\r\n this.loadFields(nextProps);\r\n return;\r\n }\r\n }\r\n\r\n loadFields(nextProps = {}) {\r\n const { formData } = hasValue(nextProps) ? nextProps : this.props;\r\n\r\n if (!hasValue(formData)) {\r\n return;\r\n }\r\n\r\n const { itemList } = formData;\r\n\r\n if (!hasValue(itemList)) {\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.loadTextAndImageFields(itemList));\r\n }\r\n\r\n hideModalCloseButton(nextProps = {}) {\r\n const { formData } = hasValue(nextProps) ? nextProps : this.props;\r\n const { hideCloseButton } = hasValue(formData) ? formData : { hideCloseButton: false };\r\n\r\n if (hideCloseButton) {\r\n const closeButton = document.querySelector('.modal__close');\r\n\r\n if (!isNullOrUndefined(closeButton)) {\r\n toggleCssClass(closeButton, 'is-hidden', hideCloseButton);\r\n }\r\n }\r\n }\r\n\r\n buildFormRefs() {\r\n if (!hasValue(this.formReferences) && hasFormFields(this.state)) {\r\n this.formReferences = formScrollHelpers.getFormReferences(this.state);\r\n }\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { handleBallotPortalRedirect, isFromBallot } = this.props;\r\n\r\n if (!hasValue(handleBallotPortalRedirect) || !isFromBallot) {\r\n reloadPageWithoutQueryParams();\r\n return;\r\n }\r\n\r\n this.removeListeners();\r\n handleBallotPortalRedirect();\r\n }\r\n\r\n addListeners() {\r\n document.addEventListener('keydown', this.handleModalClose);\r\n }\r\n\r\n removeListeners() {\r\n document.removeEventListener('keydown', this.handleModalClose);\r\n }\r\n\r\n handleModalClose(event) {\r\n if (event.keyCode === 27) {\r\n event.preventDefault();\r\n reloadPageWithoutQueryParams();\r\n }\r\n }\r\n\r\n displayForm() {\r\n const {\r\n formData\r\n } = this.props;\r\n\r\n if (!hasValue(formData)) {\r\n return null;\r\n }\r\n\r\n const { submitButtonText, useYellowButton } = formData;\r\n const footerButtonText = hasValue(submitButtonText) ? submitButtonText : formMessageConstants.upgradeAccountResale;\r\n\r\n return (\r\n
    \r\n \r\n {this.displayItemListForm()}\r\n \r\n \r\n
    );\r\n }\r\n\r\n displayItemListForm() {\r\n const copyOfFormData = deepCopyObject(this.state);\r\n\r\n this.buildFormRefs();\r\n\r\n return FormBuilder({\r\n formData: copyOfFormData,\r\n formReferences: this.formReferences\r\n });\r\n }\r\n\r\n render() {\r\n const { formData, loading } = this.props;\r\n\r\n const formBanner = getProperty(formData, 'formBanner');\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n hasValue(formBanner) &&\r\n \r\n }\r\n
    \r\n {(loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSSOItemListForm.propTypes = {\r\n};\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n formData: !hasValue(ownProps.formData) ? state.itemListForm.itemListFormData : ownProps.formData,\r\n itemListErrorMessages: state.itemListForm.itemListErrorMessages,\r\n isFormLoadSuccessful: state.itemListForm.isFormLoadSuccessful\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n loadSSOItemListFormData: bindActionCreators(itemListFormActions.loadSSOItemListFormData, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(SSOItemListForm);\r\n","/* eslint-disable react/no-direct-mutation-state */\r\nimport React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport './ballot-sign-in-form.scss';\r\nimport { apiConstants } from '../../../store/api/api-constants';\r\nimport { ssoFormTypes } from '../../utils/form-types';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport { getModalContentClassListForSSOForm, toggleBemClassesForSSOFormModal } from '../helpers/form-helpers/form-modal-helpers';\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\nimport { getPageUrlWithoutQueryParams } from '../../../../../general/js/utils';\r\nimport Oauth from '../../oauth';\r\n\r\nclass BallotSignInForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n const formData = this.loadFormData();\r\n\r\n this.state = {\r\n ...initialState.signInFormState,\r\n formData,\r\n isModalStylingUpdated: false\r\n };\r\n\r\n this.formReference = React.createRef();\r\n\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleOauthSignUp = this.handleOauthSignUp.bind(this);\r\n this.preventFormSubmit = this.preventFormSubmit.bind(this);\r\n this.handleOauthSignIn = this.handleOauthSignIn.bind(this);\r\n }\r\n\r\n loadFormData() {\r\n const { formData } = this.props;\r\n\r\n if (!isEmpty(formData)) {\r\n sessionStorage.setItem(formConstants.ballotSignInStorageItem, JSON.stringify(formData));\r\n return formData;\r\n }\r\n\r\n return JSON.parse(sessionStorage.getItem(formConstants.ballotSignInStorageItem)) || null;\r\n }\r\n\r\n componentDidMount() {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, this.props, ssoFormTypes.BallotSignInForm);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { formData } = nextProps;\r\n\r\n if (hasValue(formData) && !this.state.isModalStylingUpdated) {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, nextProps, ssoFormTypes.BallotSignInForm);\r\n }\r\n }\r\n\r\n getFooterLink(linkCallBackUrl, footerLinkText) {\r\n if (!linkCallBackUrl ||\r\n isEmpty(footerLinkText)) {\r\n return null;\r\n }\r\n\r\n const { isBallotFlow } = this.props;\r\n const hrefAttribute = isBallotFlow ? { href: '#' } : null;\r\n\r\n return (\r\n {footerLinkText}\r\n );\r\n }\r\n\r\n getHeaderLink(linkCallBackUrl, headerLinkText) {\r\n if (!linkCallBackUrl || isEmpty(headerLinkText)) {\r\n return null;\r\n }\r\n\r\n return (\r\n {headerLinkText}\r\n \r\n );\r\n }\r\n\r\n handleSubmit() {\r\n const { formData, onSignIn } = this.props;\r\n\r\n const componentToRenderUrl = this.getComponentToRenderAfterSignIn(formData.nextFormTypeAfterSignIn);\r\n\r\n const url = getPageUrlWithoutQueryParams();\r\n\r\n const returnUrl = `${url}${componentToRenderUrl}`;\r\n\r\n onSignIn(returnUrl);\r\n }\r\n\r\n handleOauthSignUp() {\r\n const { formData: { oAuthRegisterRoute } } = this.props;\r\n\r\n Oauth.signUp(oAuthRegisterRoute);\r\n }\r\n\r\n handleOauthSignIn() {\r\n Oauth.federatedSignIn();\r\n }\r\n\r\n getComponentToRenderAfterSignIn(nextFormTypeToDisplay) {\r\n if (nextFormTypeToDisplay === ssoFormTypes.BallotSignInSuccessForm) {\r\n return apiConstants.ballotSignInSuccessFormDataUrl;\r\n }\r\n\r\n //Full register flow\r\n return apiConstants.ballotSummaryFormDataUrl;\r\n }\r\n\r\n preventFormSubmit(event) {\r\n event.preventDefault();\r\n }\r\n\r\n getHeadingText(headingText) {\r\n if (isEmpty(headingText)) { return null; }\r\n return

    {headingText}

    ;\r\n }\r\n\r\n displayForm() {\r\n const { formData } = this.state;\r\n\r\n return (\r\n
    \r\n {this.getHeadingText(formData.headingText)}\r\n
    \r\n
    \r\n
    \r\n  \r\n
    \r\n
    \r\n {this.getButton(this.handleOauthSignIn, formData.signInButtonText)}\r\n
    \r\n
    \r\n {this.getFooterLink(Oauth.forgotPassword, formData.forgottenPasswordLinkText)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {formData.registerHeadingText}\r\n
    \r\n
    \r\n {this.getButton(this.handleOauthSignUp, formData.registerButtonText)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    );\r\n }\r\n\r\n getButton(submitAction, buttonText) {\r\n return \r\n {this.getButtonContent(buttonText)}\r\n ;\r\n }\r\n\r\n getButtonContent(buttonText) {\r\n return \r\n {buttonText}\r\n \r\n \r\n \r\n ;\r\n }\r\n\r\n render() {\r\n const { formData } = this.state;\r\n const { formBanner } = formData;\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n {this.displayForm()}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nBallotSignInForm.propTypes = {\r\n onSignIn: PropTypes.func.isRequired,\r\n onRegister: PropTypes.func.isRequired,\r\n onForgotPassword: PropTypes.func.isRequired\r\n};\r\n\r\nexport default BallotSignInForm;\r\n","import React, { useState, useEffect, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport _ from 'lodash';\r\nimport { Auth } from 'aws-amplify';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport * as upgradeAccountActions from '../../../store/actions/upgrade-account-actions';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\nimport GTMUserActions from '../../common/utility/GTMUserActions';\r\nimport {\r\n MembershipTypes,\r\n getDestructuredTextWithMultipleLinks,\r\n getMultilineText\r\n} from '../../../../../general/js/utils';\r\n\r\nfunction BallotSignInSuccessForm({\r\n actions,\r\n formData,\r\n loading,\r\n}) {\r\n const [isOneClubMember, setIsOneClubMember] = useState(false);\r\n const [displayForm, setDisplayForm] = useState(false);\r\n\r\n const { formBanner } = formData;\r\n\r\n useEffect(() => {\r\n Auth.currentAuthenticatedUser().then((user) => {\r\n setIsOneClubMember(user.attributes['custom:Membership'].includes(MembershipTypes.OneClub));\r\n setDisplayForm(true);\r\n }).catch((err) => { console.log(err); });\r\n });\r\n\r\n return (\r\n
    \r\n {loading || !displayForm ? / : null}\r\n \r\n
    \r\n {displayForm ? \r\n {isOneClubMember ? :\r\n }\r\n : null}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nfunction OneClubMemberMessage(props) {\r\n const { formData } = props;\r\n\r\n if (isEmpty(formData)) { return null; }\r\n\r\n const messageParagraphs = getMultilineText(formData.oneClubMessage);\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nfunction MultiLineMessage({ messageParagraphs, show }) {\r\n return (
    \r\n {\r\n messageParagraphs.map((message) => {\r\n return

    {message}


    ;\r\n })\r\n }\r\n
    );\r\n}\r\n\r\nfunction NonOneClubMemberMessage(props) {\r\n const { formData, actions } = props;\r\n\r\n const [hideSaveButton, setHideSaveButton] = useState(true);\r\n const [showSuccessMessage, setShowSuccessMessage] = useState(false);\r\n\r\n const { oneClubTermsAndServices, nonOneClubMessage, nonOneClubSuccessfulMessage } = formData;\r\n\r\n const messageParagraphs = getMultilineText(nonOneClubMessage);\r\n\r\n const successMessageParagraphs = getMultilineText(nonOneClubSuccessfulMessage);\r\n\r\n const joinOneClub = (event) => {\r\n event.preventDefault();\r\n\r\n actions.joinOneClub(formData.callbackUrl).then(() => {\r\n GTMUserActions.trackJoinTheOneClubAction();\r\n setShowSuccessMessage(true);\r\n });\r\n };\r\n\r\n const onJoinOneClubCheckboxChange = (event) => {\r\n setHideSaveButton(!event.target.checked);\r\n };\r\n\r\n return (\r\n \r\n \r\n
    \r\n {getDestructuredTextWithMultipleLinks(\r\n oneClubTermsAndServices.policy.label,\r\n oneClubTermsAndServices.policy.link.split(';')\r\n )}\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n {formData.joinButtonMessage}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n joinOneClub: bindActionCreators(upgradeAccountActions.joinOneClub, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(BallotSignInSuccessForm);\r\n","import * as types from './action-types';\r\nimport * as forgotPasswordFormApi from '../api/forgot-password-form-api';\r\nimport * as apiResponseMessages from './api-response-messages';\r\nimport * as dataFormatHelper from './helpers/data-format-helper';\r\nimport * as messageHelper from './helpers/message-helper';\r\nimport { beginApiCall, apiCallError } from './api-status-actions';\r\nimport { formMessageConstants } from '../../components/utils/constants/form-message-constants';\r\n\r\nexport function loadSSOForgotPasswordFormDataSuccess(forgotPasswordFormData) {\r\n return { type: types.LOAD_FORGOT_PASSWORD_FORM_SUCCESS, forgotPasswordFormData };\r\n}\r\n\r\nexport function loadSSOForgotPasswordFormDataError() {\r\n return { type: types.LOAD_FORGOT_PASSWORD_FORM_ERROR };\r\n}\r\n\r\nexport function handleUserForgotPasswordSuccess(forgotPasswordMessages) {\r\n return { type: types.FORGOT_PASSWORD_SUCCESS, forgotPasswordMessages };\r\n}\r\n\r\nexport function handleUserForgotPasswordError(forgotPasswordMessages) {\r\n return { type: types.FORGOT_PASSWORD_ERROR, forgotPasswordMessages };\r\n}\r\n\r\nexport function resetForgotPasswordFormState() {\r\n return { type: types.RESET_FORGOT_PASSWORD_FORM_STATE };\r\n}\r\n\r\nexport function loadSSOForgotPasswordFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return forgotPasswordFormApi.getSSOForgotPasswordFormData()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSOForgotPasswordFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSOForgotPasswordFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSOForgotPasswordFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function handleUserForgotPassword(userForgotPasswordData, callBackUrl) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return forgotPasswordFormApi\r\n .handleUserForgotPassword(dataFormatHelper.getFormattedUserForgotPasswordData(userForgotPasswordData), callBackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(handleUserForgotPasswordError(serverErrorMessages));\r\n return;\r\n }\r\n const { actionSuccessText } = userForgotPasswordData;\r\n dispatch(handleUserForgotPasswordSuccess([actionSuccessText]));\r\n })\r\n .catch((error) => {\r\n dispatch(handleUserForgotPasswordError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n dispatch(apiCallError([error]));\r\n throw error;\r\n });\r\n };\r\n}\r\n","import { handleResponse, handleError } from './api-utils';\r\nimport { apiConstants } from './api-constants';\r\n\r\nexport function getSSOForgotPasswordFormData() {\r\n return fetch(apiConstants.loadForgotPasswordFormDataUrl)\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\n\r\nexport function handleUserForgotPassword(userForgotPasswordData, callbackUrl) {\r\n return fetch(callbackUrl, {\r\n method: 'POST',\r\n headers: { 'content-type': 'application/json' },\r\n body: JSON.stringify(userForgotPasswordData)\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n","import React, { Component } from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport * as forgotPasswordFormActions from '../../../store/actions/forgot-password-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport FormBuilder from '../helpers/form-builder';\r\n\r\nclass ForgotPasswordForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = initialState.forgotPasswordFormState;\r\n\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.displayForgotPasswordForm = this.displayForgotPasswordForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.submitForgotPasswordData = this.submitForgotPasswordData.bind(this);\r\n this.resetForm = this.resetForm.bind(this);\r\n\r\n this.loadForgotPasswordFormData();\r\n }\r\n\r\n loadForgotPasswordFormData() {\r\n const { actions, forgotPasswordFormData } = this.props;\r\n\r\n if (!isEmpty(forgotPasswordFormData)) {\r\n return;\r\n }\r\n\r\n actions.loadSSOForgotPasswordFormData();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isForgotPasswordSuccessful,\r\n loading\r\n } = nextProps;\r\n\r\n if (!loading && isForgotPasswordSuccessful) {\r\n this.setState(formStateHelpers.updateProcessingState(false));\r\n return;\r\n }\r\n\r\n if (!loading && !isForgotPasswordSuccessful) {\r\n this.setState(formStateHelpers.updateProcessingState(false));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.resetForm();\r\n }\r\n\r\n resetForm() {\r\n const { actions } = this.props;\r\n this.setState(initialState.forgotPasswordFormState);\r\n actions.resetForgotPasswordFormState();\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { forgotPasswordFormData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(forgotPasswordFormData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateProcessingState(true), this.submitForgotPasswordData);\r\n }\r\n\r\n submitForgotPasswordData() {\r\n const { actions, forgotPasswordFormData } = this.props;\r\n const { emailAddress } = this.state;\r\n const { callBackUrl, ssoDomain } = forgotPasswordFormData;\r\n const actionSuccessText = forgotPasswordFormData.actionSuccessText || formMessageConstants.forgotPasswordSuccessText;\r\n\r\n actions.handleUserForgotPassword({ emailAddress, actionSuccessText, website: ssoDomain }, callBackUrl);\r\n }\r\n\r\n displayForm() {\r\n const {\r\n isForgotPasswordSuccessful,\r\n forgotPasswordMessages,\r\n onSignIn,\r\n forgotPasswordFormData\r\n } = this.props;\r\n\r\n if (isEmpty(forgotPasswordFormData)) {\r\n return null;\r\n }\r\n\r\n return (
    \r\n \r\n {this.displayForgotPasswordForm()}\r\n \r\n \r\n );\r\n }\r\n\r\n displayForgotPasswordForm() {\r\n const { forgotPasswordFormData } = this.props;\r\n\r\n return FormBuilder({\r\n formData: forgotPasswordFormData,\r\n formReferences: this.formReferences,\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleFieldValidState: (fieldName) => { const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors); },\r\n });\r\n }\r\n\r\n render() {\r\n const { isProcessing } = this.state;\r\n const { loading } = this.props;\r\n return (\r\n
    \r\n
    \r\n
    \r\n {(isProcessing || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nForgotPasswordForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n onSignIn: PropTypes.func.isRequired,\r\n forgotPasswordFormData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n forgotPasswordFormData: state.forgotPasswordForm.forgotPasswordFormData,\r\n isForgotPasswordSuccessful: state.forgotPasswordForm.isForgotPasswordSuccessful,\r\n forgotPasswordMessages: state.forgotPasswordForm.forgotPasswordMessages,\r\n loading: state.apiStatus.apiCallsInProgress > 0\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n loadSSOForgotPasswordFormData: bindActionCreators(forgotPasswordFormActions.loadSSOForgotPasswordFormData, dispatch),\r\n handleUserForgotPassword: bindActionCreators(forgotPasswordFormActions.handleUserForgotPassword, dispatch),\r\n resetForgotPasswordFormState: bindActionCreators(forgotPasswordFormActions.resetForgotPasswordFormState, dispatch),\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ForgotPasswordForm);\r\n","import * as types from './action-types';\r\nimport * as resetPasswordFormApi from '../api/reset-password-form-api';\r\nimport { beginApiCall, apiCallError } from './api-status-actions';\r\nimport * as apiResponseMessages from './api-response-messages';\r\nimport * as dataFormatHelper from './helpers/data-format-helper';\r\n\r\nexport function loadSSOResetPasswordFormDataSuccess(resetPasswordFormData) {\r\n return { type: types.LOAD_RESET_PASSWORD_FORM_SUCCESS, resetPasswordFormData };\r\n}\r\n\r\nexport function loadSSOResetPasswordFormDataError() {\r\n return { type: types.LOAD_RESET_PASSWORD_FORM_ERROR };\r\n}\r\n\r\nexport function handleResetPasswordSuccess(resetPasswordMessages) {\r\n return { type: types.RESET_PASSWORD_SUCCESS, resetPasswordMessages };\r\n}\r\n\r\nexport function handleResetPasswordError(resetPasswordMessages) {\r\n return { type: types.RESET_PASSWORD_ERROR, resetPasswordMessages };\r\n}\r\n\r\nexport function resetResetPasswordFormState() {\r\n return { type: types.RESET_RESET_PASSWORD_FORM_STATE };\r\n}\r\n\r\nexport function loadSSOResetPasswordFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return resetPasswordFormApi.getSSOResetPasswordFormData()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSOResetPasswordFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSOResetPasswordFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSOResetPasswordFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function handleResetPassword(userResetPasswordData, callBackUrl) {\r\n //eslint-disable-next-line no-unused-vars\r\n return function (dispatch, getState) {\r\n dispatch(beginApiCall());\r\n return resetPasswordFormApi\r\n .handleResetPassword(dataFormatHelper.getFormattedUserResetPasswordData(userResetPasswordData), callBackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(handleResetPasswordError([response.errorMessage]));\r\n return;\r\n }\r\n\r\n dispatch(handleResetPasswordSuccess([apiResponseMessages.RESET_PASSWORD_SUCCESSFULLY]));\r\n })\r\n .catch((error) => {\r\n dispatch(handleResetPasswordError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n dispatch(apiCallError([error]));\r\n throw error;\r\n });\r\n };\r\n}\r\n","import { handleResponse, handleError } from './api-utils';\r\nimport { apiConstants } from './api-constants';\r\n\r\nexport function getSSOResetPasswordFormData() {\r\n return fetch(apiConstants.loadResetPasswordFormDataUrl)\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function handleResetPassword(userResetPasswordData, callbackUrl) {\r\n return fetch(callbackUrl, {\r\n method: 'POST',\r\n headers: { 'content-type': 'application/json' },\r\n body: JSON.stringify(userResetPasswordData)\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n","export const NEW_PASSWORD_REQUIRED = 'NEW_PASSWORD_REQUIRED';\r\n","/* eslint-disable no-useless-return */\r\nimport { Auth } from 'aws-amplify';\r\nimport * as types from './action-types';\r\nimport * as cognitoChallengeNames from './cognito-challenge-names';\r\nimport * as signInFormApi from '../api/sign-in-form-api';\r\nimport { beginApiCall, apiCallError } from './api-status-actions';\r\nimport { formConstants } from '../../components/utils/constants/form-constants';\r\nimport userService from '../../../../general/js/user/user-service';\r\nimport * as cookieHelper from '../../helpers/cookie-helper';\r\nimport * as apiResponseMessages from './api-response-messages';\r\nimport * as dataFormatHelper from './helpers/data-format-helper';\r\nimport { isEmpty } from '../../components/utils/obj-utils';\r\nimport { formMessageConstants } from '../../components/utils/constants/form-message-constants';\r\nimport { RA_MEMBER_UPDATED_INFO, LAST_VISIT_DATE } from '../../../../general/js/user/constants';\r\nimport * as messageHelper from './helpers/message-helper';\r\nimport { updateUserDataCookie } from '../../components/utils/user-data-cookie/user-data-cookie-helpers';\r\nimport { reloadToBasePage } from '../../../../general/js/utils';\r\n\r\nexport const PASSWORD_RESET_REQUIRED_EXCEPTION = 'PasswordResetRequiredException';\r\nconst USER_LAMBDA_VALIDATION_EXCEPTION = 'UserLambdaValidationException';\r\nconst USER_NOT_FOUND_EXCEPTION = 'UserNotFoundException';\r\n\r\nexport function loadSSOSignInFormDataSuccess(signInFormData) {\r\n return { type: types.LOAD_SIGN_IN_FORM_DATA_SUCCESS, signInFormData };\r\n}\r\n\r\nexport function loadSSOSignInFormDataError() {\r\n return { type: types.LOAD_SIGN_IN_FORM_DATA_ERROR };\r\n}\r\n\r\nexport function loadSSOSignInSuccessFormDataSuccess(signInFormDataSuccess) {\r\n return { type: types.LOAD_SIGN_IN_SUCCESS_FORM_DATA_SUCCESS, signInFormDataSuccess };\r\n}\r\n\r\nexport function loadNewPasswordRequiredFormDataSuccess(newPasswordRequiredFormData) {\r\n return { type: types.LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_SUCCESS, newPasswordRequiredFormData };\r\n}\r\n\r\nexport function loadNewPasswordRequiredFormDataError(loadPasswordRequiredFormDataMessages) {\r\n return { type: types.LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_ERROR, loadPasswordRequiredFormDataMessages };\r\n}\r\n\r\nexport function signInUserSuccess(signInProperties) {\r\n return { type: types.SIGN_IN_USER_SUCCESS, signInProperties };\r\n}\r\n\r\nexport function signInUserError(signInMessages) {\r\n return { type: types.SIGN_IN_USER_ERROR, signInMessages };\r\n}\r\n\r\nexport function lastLogInDataUpdateSuccess(lastLogInProperties) {\r\n return { type: types.LAST_LOG_IN_UPDATE_SUCCESS, lastLogInProperties };\r\n}\r\n\r\nexport function lastLogInDataUpdateError(errorMessages) {\r\n return { type: types.LAST_LOG_IN_UPDATE_ERROR, errorMessages };\r\n}\r\n\r\nexport function newPasswordSavedSuccess(newPasswordSavedMessages) {\r\n return { type: types.NEW_PASSWORD_SAVED_SUCCESS, newPasswordSavedMessages };\r\n}\r\n\r\nexport function newPasswordSavedError(newPasswordSavedMessages) {\r\n return { type: types.NEW_PASSWORD_SAVED_ERROR, newPasswordSavedMessages };\r\n}\r\n\r\nexport function signOutUserError(signOutMessages) {\r\n return { type: types.SIGN_OUT_USER_SUCCESS, signOutMessages };\r\n}\r\n\r\nexport function signOutUserSuccess(signOutMessages) {\r\n return { type: types.SIGN_OUT_USER_ERROR, signOutMessages };\r\n}\r\n\r\nexport function resetSignInFormState() {\r\n return { type: types.RESET_SIGN_IN_FORM_STATE };\r\n}\r\n\r\nexport function loadSSOSignInFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return signInFormApi.getSSOSignInFormData()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSOSignInFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSOSignInFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSOSignInFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function loadRaMembersSignInFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return signInFormApi.getSSORaMembersSignInFormData()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSOSignInFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSOSignInFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSOSignInFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function loadSSOSignInSuccessFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return signInFormApi.getSSOSignInSuccessFormData()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSOSignInFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSOSignInSuccessFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSOSignInFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function loadNewPasswordRequiredFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return signInFormApi.getNewPasswordRequiredFormData()\r\n .then((response) => {\r\n if (isEmpty(response)) {\r\n dispatch(apiCallError([formMessageConstants.somethingWentWrong]));\r\n dispatch(loadNewPasswordRequiredFormDataError([formMessageConstants.somethingWentWrong]));\r\n return;\r\n }\r\n\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadNewPasswordRequiredFormDataError([response.errorMessage]));\r\n return;\r\n }\r\n\r\n dispatch(loadNewPasswordRequiredFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadNewPasswordRequiredFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function handleNewPasswordRequired({\r\n cognitoUser,\r\n password,\r\n maxIdleTimeInSeconds,\r\n actionSuccessText\r\n}) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return signInFormApi\r\n .completeNewPassword({ cognitoUser, password })\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(newPasswordSavedError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n finalizeNewPasswordChange(dispatch, { maxIdleTimeInSeconds, actionSuccessText });\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(newPasswordSavedError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nfunction finalizeNewPasswordChange(dispatch, { maxIdleTimeInSeconds, actionSuccessText }) {\r\n Auth.currentSession()\r\n .then((data) => {\r\n const { jwtToken } = data.accessToken;\r\n userService.setAccessTokenCookie(jwtToken);\r\n cookieHelper.setCookie(formConstants.maxIdleTimeInSeconds, maxIdleTimeInSeconds);\r\n dispatch(newPasswordSavedSuccess([actionSuccessText]));\r\n }).catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(newPasswordSavedError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n });\r\n}\r\n\r\nexport function updateUserSignInDetails({\r\n lastLoginDate,\r\n lastLoginDevice,\r\n lastLoginPlatform,\r\n callBackUrl\r\n}) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return signInFormApi.updateUserSignInDetails(\r\n dataFormatHelper.getFormattedUserSignInDetailsData(lastLoginDate, lastLoginDevice, lastLoginPlatform),\r\n callBackUrl\r\n )\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n const serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError(serverErrorMessages));\r\n dispatch(lastLogInDataUpdateError(serverErrorMessages));\r\n return;\r\n }\r\n\r\n userService.setDataInLocalStorage(LAST_VISIT_DATE, lastLoginDate);\r\n\r\n dispatch(lastLogInDataUpdateSuccess({\r\n isUserLastLogInDataUpdated: true,\r\n }));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(lastLogInDataUpdateError([error]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function signInUser(userSignInData) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return signInFormApi\r\n .signInUser(dataFormatHelper.getFormattedUserSignInData(userSignInData))\r\n .then((response) => {\r\n const { challengeName } = response;\r\n const { actionSuccessText } = userSignInData;\r\n if (challengeName === cognitoChallengeNames.NEW_PASSWORD_REQUIRED) {\r\n dispatch(signInUserSuccess({\r\n isSignInSuccessful: true,\r\n isNewPasswordRequired: true,\r\n signInMessages: [actionSuccessText],\r\n cognitoUser: response\r\n }));\r\n return;\r\n }\r\n\r\n finalizeUserSignIn(dispatch, userSignInData, response);\r\n })\r\n .catch((error) => {\r\n let errorMessages = isEmpty(error.message) ? [apiResponseMessages.SERVER_ERROR_MESSAGE] : [error.message];\r\n if (error.code === PASSWORD_RESET_REQUIRED_EXCEPTION) {\r\n errorMessages = [apiResponseMessages.PASSWORD_RESET_REQUIRED];\r\n }\r\n\r\n if (error.code === USER_LAMBDA_VALIDATION_EXCEPTION) {\r\n errorMessages = [apiResponseMessages.MUST_CONFIRM_EMAIL_MESSAGE];\r\n }\r\n\r\n if (error.code === USER_NOT_FOUND_EXCEPTION) {\r\n errorMessages = [apiResponseMessages.MISSING_USER];\r\n }\r\n\r\n dispatch(apiCallError([error]));\r\n dispatch(signInUserError(errorMessages));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nfunction finalizeUserSignIn(dispatch, { maxIdleTimeInSeconds, actionSuccessText }, response) {\r\n Auth.currentSession()\r\n .then((data) => {\r\n const { jwtToken } = data.accessToken;\r\n userService.setAccessTokenCookie(jwtToken);\r\n cookieHelper.setCookie(formConstants.maxIdleTimeInSeconds, maxIdleTimeInSeconds);\r\n updateUserDataCookie();\r\n dispatch(signInUserSuccess({\r\n isSignInSuccessful: true,\r\n isNewPasswordRequired: false,\r\n signInMessages: [actionSuccessText],\r\n cognitoUser: response\r\n }));\r\n }).catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(signInUserError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n });\r\n}\r\n\r\nexport function setRaMembersCookie() {\r\n Auth.currentAuthenticatedUser(true)\r\n .then(() => {\r\n if (!cookieHelper.getCookie(RA_MEMBER_UPDATED_INFO)) cookieHelper.setCookie(RA_MEMBER_UPDATED_INFO, true);\r\n });\r\n}\r\n\r\nexport function signOutUser() {\r\n //eslint-disable-next-line no-unused-vars\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return signInFormApi\r\n .signOutUser()\r\n .then(() => {\r\n dispatch(signOutUserSuccess([apiResponseMessages.SIGN_OUT_USER_SUCCESSFULLY]));\r\n userService.setAccessTokenCookie(null);\r\n userService.setUserDataCookie(null);\r\n cookieHelper.setCookie(formConstants.maxIdleTimeInSeconds, 0);\r\n reloadToBasePage();\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(signOutUserError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n","import React, { Component } from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport * as resetPasswordFormActions from '../../../store/actions/reset-password-actions';\r\nimport * as signInFormActions from '../../../store/actions/sign-in-form-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport {\r\n getParameterByName,\r\n reloadToBasePage\r\n} from '../../../../../general/js/utils';\r\n\r\nclass ResetPasswordForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = initialState.resetPasswordFormState;\r\n\r\n this.displayResetPasswordForm = this.displayResetPasswordForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.loadResetPasswordForm = this.loadResetPasswordForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.signInUser = this.signInUser.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.submitResetPasswordData = this.submitResetPasswordData.bind(this);\r\n this.getFormHeaderLabel = this.getFormHeaderLabel.bind(this);\r\n this.handleSignInSuccessful = this.handleSignInSuccessful.bind(this);\r\n this.resetForm = this.resetForm.bind(this);\r\n\r\n this.loadResetPasswordForm();\r\n }\r\n\r\n loadResetPasswordForm() {\r\n const { actions, resetPasswordFormData } = this.props;\r\n\r\n if (isEmpty(resetPasswordFormData)) {\r\n actions.loadSSOResetPasswordFormData();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isResetPasswordSuccessful,\r\n isSignInSuccessful,\r\n loading\r\n } = nextProps;\r\n\r\n if (isSignInSuccessful) {\r\n this.setState(formStateHelpers.updateProcessingState(false), this.handleSignInSuccessful);\r\n return;\r\n }\r\n\r\n if (!loading && isResetPasswordSuccessful) {\r\n this.setState(formStateHelpers.updateProcessingState(false), this.signInUser);\r\n return;\r\n }\r\n\r\n if (!loading && !isResetPasswordSuccessful) {\r\n this.setState(formStateHelpers.updateProcessingState(false));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.resetForm();\r\n }\r\n\r\n resetForm() {\r\n const { actions } = this.props;\r\n this.setState(initialState.resetPasswordFormState);\r\n actions.resetResetPasswordFormState();\r\n }\r\n\r\n componentDidMount() {\r\n const verificationCode = getParameterByName(formConstants.verificationCode);\r\n this.setState(formStateHelpers.updateVerificationCode(verificationCode));\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { resetPasswordFormData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(resetPasswordFormData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (!this.state.formHasErrors) {\r\n this.setState(formStateHelpers.updateProcessingState(true), this.submitResetPasswordData);\r\n }\r\n }\r\n\r\n submitResetPasswordData() {\r\n const { actions, resetPasswordFormData } = this.props;\r\n const { callBackUrl } = resetPasswordFormData;\r\n actions.handleResetPassword(this.state, callBackUrl);\r\n }\r\n\r\n signInUser() {\r\n const { actions } = this.props;\r\n const userSignInData = {\r\n [formConstants.emailAddress]: this.state[formConstants.emailAddress],\r\n [formConstants.password]: this.state[formConstants.password]\r\n };\r\n\r\n actions.signInUser(userSignInData);\r\n }\r\n\r\n handleSignInSuccessful() {\r\n reloadToBasePage();\r\n }\r\n\r\n getFormHeaderLabel() {\r\n const { resetPasswordFormData } = this.props;\r\n\r\n if (isEmpty(resetPasswordFormData)) {\r\n return formMessageConstants.resetPasswordFormHeaderLabel;\r\n }\r\n\r\n return resetPasswordFormData.formText;\r\n }\r\n\r\n displayForm() {\r\n const {\r\n isResetPasswordSuccessful,\r\n resetPasswordMessages,\r\n resetPasswordFormData\r\n } = this.props;\r\n\r\n if (isEmpty(resetPasswordFormData)) {\r\n return null;\r\n }\r\n\r\n return (
    \r\n \r\n {this.displayResetPasswordForm()}\r\n \r\n );\r\n }\r\n\r\n displayResetPasswordForm() {\r\n const { resetPasswordFormData } = this.props;\r\n const { verificationCode } = this.state;\r\n\r\n return FormBuilder({\r\n formData: resetPasswordFormData,\r\n verificationCode,\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleConfirmPasswordChange: (event) => { this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target)); },\r\n handleFieldValidState: (fieldName) => { const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors); },\r\n });\r\n }\r\n\r\n render() {\r\n const { isProcessing } = this.state;\r\n const { loading } = this.props;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {(isProcessing || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nResetPasswordForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n resetPasswordFormData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n resetPasswordFormData: state.resetPasswordForm.resetPasswordFormData,\r\n isResetPasswordSuccessful: state.resetPasswordForm.isResetPasswordSuccessful,\r\n resetPasswordMessages: state.resetPasswordForm.resetPasswordMessages,\r\n isSignInSuccessful: state.signInForm.isSignInSuccessful,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n loadSSOResetPasswordFormData: bindActionCreators(resetPasswordFormActions.loadSSOResetPasswordFormData, dispatch),\r\n handleResetPassword: bindActionCreators(resetPasswordFormActions.handleResetPassword, dispatch),\r\n resetResetPasswordFormState: bindActionCreators(resetPasswordFormActions.resetResetPasswordFormState, dispatch),\r\n signInUser: bindActionCreators(signInFormActions.signInUser, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ResetPasswordForm);\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport './change-password.scss';\r\n\r\nfunction ChangePasswordFooter({\r\n onSubmit,\r\n isSubmit = true,\r\n}) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nChangePasswordFooter.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default ChangePasswordFooter;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport * as signInFormActions from '../../../store/actions/sign-in-form-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport ChangePasswordFooter from './ChangePasswordFooter';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport './change-password.scss';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport Oauth from '../../oauth';\r\n\r\nclass ChangePasswordForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = initialState.userDetailsFormState;\r\n\r\n this.displayChangePasswordForm = this.displayChangePasswordForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.submitPasswordData = this.submitPasswordData.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { loading, actions, isUserPasswordChangedSuccessful } = nextProps;\r\n\r\n if (!loading && isUserPasswordChangedSuccessful) {\r\n actions.signOutUser();\r\n }\r\n }\r\n\r\n displayForm() {\r\n const { formData, isUserPasswordChangedSuccessful, changePasswordMessages } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n return null;\r\n }\r\n\r\n return (
    \r\n \r\n {/* {this.displayChangePasswordForm()} */}\r\n \r\n );\r\n }\r\n\r\n displayChangePasswordForm() {\r\n const { formData } = this.props;\r\n\r\n return FormBuilder({\r\n formData,\r\n handleFieldChange: (event) => {\r\n const { oldPassword } = this.state;\r\n const eventTarget = event.target;\r\n const fieldName = eventTarget.name;\r\n const fieldData = formData[fieldName];\r\n this.setState(formStateHelpers.handleFieldChangeWithValidation(eventTarget, fieldData));\r\n this.setState(formStateHelpers.handleOldPasswordFieldChange({ name: formConstants.oldPassword, value: oldPassword }));\r\n },\r\n handleOldPasswordChange: (event) => {\r\n this.setState(formStateHelpers.handleOldPasswordFieldChange(event.target));\r\n },\r\n handleConfirmPasswordChange: (event) => {\r\n this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target));\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n });\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitPasswordData);\r\n }\r\n\r\n submitPasswordData() {\r\n const { actions, formData } = this.props;\r\n const { actionSuccessText, callBackUrl } = formData;\r\n const { oldPassword, password } = this.state;\r\n\r\n actions.changeUserPassword({ oldPassword, newPassword: password }, actionSuccessText, callBackUrl);\r\n }\r\n\r\n render() {\r\n const { formData } = this.props;\r\n const { formTitle } = formData;\r\n return (\r\n \r\n

    {formTitle}

    \r\n
    \r\n {this.displayForm()}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nChangePasswordForm.propTypes = {\r\n formData: PropTypes.object.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isUserPasswordChangedSuccessful: state.userAccount.isUserPasswordChangedSuccessful,\r\n changePasswordMessages: state.userAccount.changePasswordMessages,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n changeUserPassword: bindActionCreators(userAccountActions.changeUserPassword, dispatch),\r\n signOutUser: bindActionCreators(signInFormActions.signOutUser, dispatch),\r\n }\r\n };\r\n}\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ChangePasswordForm);\r\n","import * as types from './action-types';\r\nimport * as verifyEmailFormApi from '../api/verify-email-form-api';\r\nimport * as apiResponseMessages from './api-response-messages';\r\nimport { beginApiCall, apiCallError } from './api-status-actions';\r\nimport * as dataFormatHelper from './helpers/data-format-helper';\r\n\r\nexport function loadSSOVerifyEmailFormDataSuccess(verifyEmailFormData) {\r\n return { type: types.LOAD_VERIFY_EMAIL_FORM_SUCCESS, verifyEmailFormData };\r\n}\r\n\r\nexport function loadSSOVerifyEmailFormDataError() {\r\n return { type: types.LOAD_VERIFY_EMAIL_FORM_ERROR };\r\n}\r\n\r\nexport function handleUserVerifyEmailSuccess(verifyEmailMessages) {\r\n return { type: types.VERIFY_EMAIL_SUCCESS, verifyEmailMessages };\r\n}\r\n\r\nexport function handleUserVerifyEmailError(verifyEmailMessages) {\r\n return { type: types.VERIFY_EMAIL_ERROR, verifyEmailMessages };\r\n}\r\n\r\nexport function resetVerifyEmailFormState() {\r\n return { type: types.RESET_VERIFY_EMAIL_FORM_STATE };\r\n}\r\n\r\nexport function loadSSOVerifyEmailFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return verifyEmailFormApi.getSSOVerifyEmailFormData()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSOVerifyEmailFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSOVerifyEmailFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSOVerifyEmailFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function handleUserVerifyEmail(verifyEmailData) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return verifyEmailFormApi\r\n .verifyEmail(dataFormatHelper.getFormattedVerifyEmailData(verifyEmailData))\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(handleUserVerifyEmailError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n\r\n const { actionSuccessText } = verifyEmailData;\r\n dispatch(handleUserVerifyEmailSuccess([actionSuccessText]));\r\n })\r\n .catch((error) => {\r\n dispatch(handleUserVerifyEmailError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n dispatch(apiCallError([error]));\r\n throw error;\r\n });\r\n };\r\n}\r\n","import { Auth } from 'aws-amplify';\r\nimport { handleResponse, handleError } from './api-utils';\r\nimport { apiConstants } from './api-constants';\r\n\r\nexport function getSSOVerifyEmailFormData() {\r\n return fetch(apiConstants.loadVerifyEmailFormDataUrl)\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function verifyEmail(verificationCode) {\r\n return Auth.verifyCurrentUserAttributeSubmit(apiConstants.emailAttributeName, verificationCode);\r\n}\r\n","import React, { Component } from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport SSOFormHeader from '../../common/utility/SSOFormHeader';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport * as verifyEmailFormActions from '../../../store/actions/verify-email-actions';\r\nimport * as signInActions from '../../../store/actions/sign-in-form-actions';\r\n\r\nclass VerifyEmailForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = initialState.verifyEmailFormState;\r\n\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.displayVerifyEmailForm = this.displayVerifyEmailForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.resetForm = this.resetForm.bind(this);\r\n\r\n this.loadVerifyEmailFormData();\r\n }\r\n\r\n loadVerifyEmailFormData() {\r\n const { actions, verifyEmailFormData } = this.props;\r\n\r\n if (!isEmpty(verifyEmailFormData)) {\r\n return;\r\n }\r\n\r\n actions.loadSSOVerifyEmailFormData();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isVerifyEmailSuccessful,\r\n loading\r\n } = nextProps;\r\n\r\n const { actions } = this.props;\r\n\r\n if (!loading && isVerifyEmailSuccessful) {\r\n this.setState(formStateHelpers.updateProcessingState(false));\r\n actions.signOutUser();\r\n\r\n return;\r\n }\r\n\r\n if (!loading && !isVerifyEmailSuccessful) {\r\n this.setState(formStateHelpers.updateProcessingState(false));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.resetForm();\r\n }\r\n\r\n resetForm() {\r\n const { actions } = this.props;\r\n this.setState(initialState.verifyEmailFormState);\r\n actions.resetVerifyEmailFormState();\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { verifyEmailFormData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(verifyEmailFormData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (!this.state.formHasErrors) {\r\n this.setState(formStateHelpers.updateProcessingState(true), this.submitVerifyEmailData);\r\n }\r\n }\r\n\r\n submitVerifyEmailData() {\r\n const { actions, verifyEmailFormData } = this.props;\r\n const { verificationCode } = this.state;\r\n const actionSuccessText = verifyEmailFormData.actionSuccessText || formMessageConstants.verifyEmailSuccessText;\r\n\r\n actions.handleUserVerifyEmail({ verificationCode, actionSuccessText });\r\n }\r\n\r\n displayForm() {\r\n const {\r\n isVerifyEmailSuccessful,\r\n verifyEmailMessages,\r\n verifyEmailFormData\r\n } = this.props;\r\n\r\n if (isEmpty(verifyEmailFormData)) {\r\n return null;\r\n }\r\n\r\n const { titleText, formText, buttonText } = verifyEmailFormData;\r\n\r\n return (
    \r\n \r\n \r\n {this.displayVerifyEmailForm()}\r\n \r\n \r\n );\r\n }\r\n\r\n displayVerifyEmailForm() {\r\n const { verifyEmailFormData, isReadOnly } = this.props;\r\n\r\n return FormBuilder({\r\n isReadOnly,\r\n formData: verifyEmailFormData,\r\n formReferences: this.formReferences,\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleFieldValidState: (fieldName) => { const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors); },\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {this.displayForm()}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nVerifyEmailForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n verifyEmailFormData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n verifyEmailFormData: state.verifyEmailForm.verifyEmailFormData,\r\n isVerifyEmailSuccessful: state.verifyEmailForm.isVerifyEmailSuccessful,\r\n verifyEmailMessages: state.verifyEmailForm.verifyEmailMessages,\r\n loading: state.apiStatus.apiCallsInProgress > 0\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n loadSSOVerifyEmailFormData: bindActionCreators(verifyEmailFormActions.loadSSOVerifyEmailFormData, dispatch),\r\n handleUserVerifyEmail: bindActionCreators(verifyEmailFormActions.handleUserVerifyEmail, dispatch),\r\n resetVerifyEmailFormState: bindActionCreators(verifyEmailFormActions.resetVerifyEmailFormState, dispatch),\r\n signOutUser: bindActionCreators(signInActions.signOutUser, dispatch),\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(VerifyEmailForm);\r\n","/* eslint-disable no-restricted-globals */\r\nimport React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport _ from 'lodash';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport * as userAddressActions from '../../../store/actions/user-address-actions';\r\nimport * as signInActions from '../../../store/actions/sign-in-form-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport './user-details.scss';\r\nimport ConfirmationModal from '../../common/utility/ConfirmationModal';\r\nimport { deepCopyObject } from '../../utils/obj-utils';\r\nimport VerifyEmailForm from '../verify-email/VerifyEmailForm';\r\nimport ReactModal from '../../../../modal/js/react-modal';\r\nimport { domainConstants } from '../../utils/constants/domain-constants';\r\nimport {\r\n getMultilineText\r\n} from '../../../../../general/js/utils';\r\nimport Oauth from '../../oauth';\r\nimport { IdentityBrokerConfig } from '../../../../../general/js/utils/oauth/constants/identity-broker-config';\r\n\r\nclass UserDetailsForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { formData } = this.props;\r\n const copyOfFormData = deepCopyObject(formData);\r\n this.state = {\r\n ...initialState.userDetailsFormState,\r\n formData: copyOfFormData,\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.isWomensOpen = formData.ssoDomain === domainConstants.womensOpen;\r\n\r\n this.displayUserDetailsForm = this.displayUserDetailsForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleRemoveAccountClick = this.handleRemoveAccountClick.bind(this);\r\n this.toggleConfirmationModal = this.toggleConfirmationModal.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleUserDetailsUpdateSuccess = this.handleUserDetailsUpdateSuccess.bind(this);\r\n this.handleUserDetailsEmailUpdateSuccess = this.handleUserDetailsEmailUpdateSuccess.bind(this);\r\n this.submitUserDetailsData = this.submitUserDetailsData.bind(this);\r\n this.updateFormData = this.updateFormData.bind(this);\r\n this.handleSSOUpgradeToMemberPlusRedirect = this.handleSSOUpgradeToMemberPlusRedirect.bind(this);\r\n this.handleSSOUpdateTicketingAccountRedirect = this.handleSSOUpdateTicketingAccountRedirect.bind(this);\r\n this.handleSSOUpdateAccountRedirect = this.handleSSOUpdateAccountRedirect.bind(this);\r\n\r\n this.formReferences = formScrollHelpers.getFormReferences(formData);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { isSaving } = this.state;\r\n const { actions } = this.props;\r\n const {\r\n loading,\r\n formData,\r\n isUserAddressRetrieveSuccessful,\r\n retrievedUserAddress,\r\n isUserDetailsUpdatedSuccessful,\r\n isUserAccountRemovedSuccessful,\r\n isUserUpdatingEmail\r\n } = nextProps;\r\n\r\n if (!loading && isUserAddressRetrieveSuccessful) {\r\n const { county, state } = formData;\r\n this.setState(formStateHelpers.handleAddressDataChange(retrievedUserAddress, county, state));\r\n }\r\n\r\n if (!loading && isUserAccountRemovedSuccessful) {\r\n actions.signOutUser();\r\n return;\r\n }\r\n\r\n if (isSaving &&\r\n !loading &&\r\n isUserDetailsUpdatedSuccessful) {\r\n if (isUserUpdatingEmail) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserDetailsEmailUpdateSuccess);\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserDetailsUpdateSuccess);\r\n return;\r\n }\r\n\r\n if (isSaving &&\r\n !loading &&\r\n !isUserDetailsUpdatedSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false),\r\n () => {\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.userDetailsFormState);\r\n actions.resetUserDetailsFormState();\r\n }\r\n\r\n componentDidMount() {\r\n const { formData } = this.state;\r\n this.setState(formStateHelpers.updateFormFields(formData));\r\n this.updateFormData();\r\n }\r\n\r\n updateFormData() {\r\n const { formData } = this.state;\r\n const copyOfFormData = deepCopyObject(formData);\r\n this.setState(formStateHelpers.updateFormData(copyOfFormData));\r\n }\r\n\r\n handleUserDetailsUpdateSuccess() {\r\n const { refreshAccountPage } = this.props;\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n refreshAccountPage(false);\r\n }\r\n\r\n handleUserDetailsEmailUpdateSuccess() {\r\n const { isUserUpdatingEmail } = this.state;\r\n this.setState(formStateHelpers.toggleKey(Object.keys({ isUserUpdatingEmail })[0]));\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.state;\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleSSOUpdateTicketingAccountRedirect() {\r\n Oauth.updateAccountData(IdentityBrokerConfig.upgradeToTicketingRoute);\r\n }\r\n\r\n handleSSOUpgradeToMemberPlusRedirect() {\r\n Oauth.updateAccountData(IdentityBrokerConfig.upgradeToOneClubAdvantageRoute);\r\n }\r\n\r\n handleSSOUpdateAccountRedirect() {\r\n Oauth.updateAccountData(IdentityBrokerConfig.updateAccountRoute);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitUserDetailsData);\r\n }\r\n\r\n submitUserDetailsData() {\r\n const { actions, accountData } = this.props;\r\n const { formData } = this.state;\r\n const {\r\n callBackUrl,\r\n actionSuccessText,\r\n emailChangedConflictMessage\r\n } = formData;\r\n const formattedActionSuccessText = actionSuccessText || formMessageConstants.updateUserDetailsSuccessText;\r\n\r\n formScrollHelpers.scrollToField(this.formReferences[formConstants.title]);\r\n actions.updateUserDetails({\r\n userDetails: this.state,\r\n accountData,\r\n actionSuccessText: formattedActionSuccessText,\r\n callBackUrl,\r\n emailChangedConflictMessage\r\n });\r\n }\r\n\r\n handleRemoveAccountClick() {\r\n const { actions } = this.props;\r\n const { formData } = this.state;\r\n const { removeAccountCallbackUrl } = formData;\r\n actions.removeAccount(removeAccountCallbackUrl);\r\n }\r\n\r\n toggleConfirmationModal() {\r\n this.setState(formStateHelpers.toggleKey('isConfirmationPopUpOpen'));\r\n }\r\n\r\n displayVerifyEmailForm() {\r\n const { isUserUpdatingEmail } = this.state;\r\n\r\n return isUserUpdatingEmail ? \r\n \r\n : null;\r\n }\r\n\r\n displayUserDetailsForm() {\r\n const { actions } = this.props;\r\n const {\r\n formData, availableCounties, country, availableStates\r\n } = this.state;\r\n const { county, mobilePhone, state } = formData;\r\n\r\n const copyOfFormData = deepCopyObject(formData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n copyOfFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfFormData[formConstants.city].defaultValue = this.state[formConstants.city];\r\n copyOfFormData[formConstants.addressLine1].defaultValue = this.state[formConstants.addressLine1];\r\n copyOfFormData[formConstants.addressLine2].defaultValue = this.state[formConstants.addressLine2];\r\n copyOfFormData[formConstants.addressLine3].defaultValue = this.state[formConstants.addressLine3];\r\n copyOfFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n if (this.state[formConstants.dateOfBirth] !== undefined && this.state[formConstants.dateOfBirth] instanceof Date && !isNaN(this.state[formConstants.dateOfBirth])) {\r\n copyOfFormData[formConstants.dateOfBirth].defaultValue = this.state[formConstants.dateOfBirth];\r\n }\r\n\r\n if (copyOfFormData[formConstants.offersDetails]) {\r\n if (copyOfFormData[formConstants.offersDetails][formConstants.refuseOffers]) {\r\n copyOfFormData[formConstants.offersDetails][formConstants.refuseOffers].isHidden = true;\r\n }\r\n }\r\n\r\n return FormBuilder({\r\n isReadOnly: true,\r\n formData: copyOfFormData,\r\n formReferences: this.formReferences,\r\n countryData: { selectedCountry: country },\r\n countyData: { availableCounties, label: county ? county.label : formMessageConstants.emptyString },\r\n stateData: { availableStates, label: state ? state.label : formMessageConstants.emptyString },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target), this.updateFormData); },\r\n handleFieldChange: (event) => {\r\n const eventTarget = event.target;\r\n const fieldName = eventTarget.name;\r\n const fieldData = formData[fieldName];\r\n this.setState(formStateHelpers.handleFieldChangeWithValidation(eventTarget, fieldData), this.updateFormData);\r\n },\r\n handleConfirmPasswordChange: (event) => { this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target)); },\r\n handleConfirmEmailChange: (event) => { this.setState(formStateHelpers.handleConfirmEmailFieldChange(event.target)); },\r\n handleDateChange: (event) => { this.setState(formStateHelpers.handleDateChange(event)); },\r\n handleMobilePhoneChange: (event) => { this.setState(formStateHelpers.handleMobilePhoneChange(event, mobilePhone.isOptional)); },\r\n handleCountryChange: (event) => {\r\n this.setState(formStateHelpers.handleCountryChange(event.target, county, state),\r\n () => {\r\n actions.resetRetrievedUserAddress();\r\n });\r\n },\r\n handleFieldValidState: (fieldName) => { const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors); },\r\n });\r\n }\r\n\r\n render() {\r\n const { isConfirmationPopUpOpen } = this.state;\r\n const { updateUserDetailsMessages, isUserDetailsUpdatedSuccessful } = this.props;\r\n const { formData } = this.state;\r\n const {\r\n formTitle,\r\n removeAccountInputText,\r\n removeAccountInputWarning,\r\n removeAccountModalWarning\r\n } = formData;\r\n const removeAccountModalWarningSplit = getMultilineText(removeAccountModalWarning);\r\n return (\r\n \r\n

    {formTitle}

    \r\n
    \r\n
    \r\n \r\n {this.displayUserDetailsForm()}\r\n {this.displayVerifyEmailForm()}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {removeAccountInputText}\r\n \r\n {`${removeAccountInputWarning}`}\r\n
    \r\n \r\n {removeAccountModalWarningSplit.map((text) => {\r\n return

    {text}

    ;\r\n })}\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nUserDetailsForm.propTypes = {\r\n formData: PropTypes.object.isRequired,\r\n accountData: PropTypes.object.isRequired,\r\n refreshAccountPage: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isUserDetailsUpdatedSuccessful: state.userAccount.isUserDetailsUpdatedSuccessful,\r\n isUserAccountRemovedSuccessful: state.userAccount.isUserAccountRemovedSuccessful,\r\n updateUserDetailsMessages: state.userAccount.updateUserDetailsMessages,\r\n isUserAddressRetrieveSuccessful: state.userAddressSearchData.isUserAddressRetrieveSuccessful,\r\n retrieveAddressMessages: state.userAddressSearchData.retrieveAddressMessages,\r\n retrievedUserAddress: state.userAddressSearchData.retrievedUserAddress,\r\n isUserUpdatingEmail: state.userAccount.isUserUpdatingEmail\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n updateUserDetails: bindActionCreators(userAccountActions.updateUserDetails, dispatch),\r\n removeAccount: bindActionCreators(userAccountActions.removeAccount, dispatch),\r\n signOutUser: bindActionCreators(signInActions.signOutUser, dispatch),\r\n resetUserDetailsFormState: bindActionCreators(userAccountActions.resetUserDetailsFormState, dispatch),\r\n resetRetrievedUserAddress: bindActionCreators(userAddressActions.resetRetrievedUserAddress, dispatch),\r\n displayVerifyUserEmail: bindActionCreators(userAccountActions.displayVerifyUserEmail, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(UserDetailsForm);\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\n\r\nfunction LastOrder({\r\n lastOrder,\r\n noOrdersFoundText,\r\n fileStateValues,\r\n orderTypeValues,\r\n onViewLastOrderSummaryClick\r\n}) {\r\n\r\n function handleViewLastOrderSummaryClick(event) {\r\n event.preventDefault();\r\n onViewLastOrderSummaryClick(lastOrder.fileNumber);\r\n }\r\n\r\n function hasOrders(lastOrder){\r\n return isEmpty(lastOrder) || isEmpty(lastOrder.fileNumber);\r\n }\r\n \r\n return (\r\n
    \r\n

    {formMessageConstants.lastOrderText}

    \r\n {hasOrders(lastOrder) ?\r\n
    \r\n

    {noOrdersFoundText}

    \r\n
    :\r\n \r\n
    {orderTypeValues[lastOrder.orderTypeIndex]}
    \r\n

    \r\n {formMessageConstants.fileNumber}\r\n {lastOrder.fileNumber}\r\n

    \r\n

    \r\n {formMessageConstants.fileStatus}\r\n {fileStateValues[lastOrder.fileStateIndex]}\r\n

    \r\n

    \r\n {formMessageConstants.lastUpdate}\r\n {lastOrder.lastUpdateText}\r\n

    \r\n

    \r\n {formMessageConstants.fileAmount}\r\n {lastOrder.formattedFileAmount}\r\n

    \r\n
    \r\n {formMessageConstants.seeDetails}\r\n
    \r\n
    }\r\n
    \r\n );\r\n}\r\n\r\nLastOrder.propTypes = {\r\n lastOrder: PropTypes.object.isRequired,\r\n noOrdersFoundText: PropTypes.string.isRequired,\r\n fileStateValues: PropTypes.object.isRequired,\r\n orderTypeValues: PropTypes.object.isRequired,\r\n onViewLastOrderSummaryClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default LastOrder;\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport { domainConstants } from '../../utils/constants/domain-constants'\r\n\r\nfunction Upcoming({ upcomingTicket, noUpcomingEventText, ssoDomain, showParkingButton,\r\n showParkingButtonText, parkingButtonUrl,onViewTicketsClick }) {\r\n function handleViewTicketsClick(event) {\r\n event.preventDefault();\r\n onViewTicketsClick(upcomingTicket);\r\n }\r\n\r\n function showParking() {\r\n return showParkingButton && (ssoDomain === domainConstants.theOpen)\r\n }\r\n return (\r\n
    \r\n

    {formMessageConstants.upcoming}

    \r\n {isEmpty(upcomingTicket) ?\r\n
    \r\n

    {noUpcomingEventText}

    \r\n
    : \r\n }\r\n
    \r\n );\r\n}\r\n\r\n\r\nUpcoming.propTypes = {\r\n upcomingTicket: PropTypes.object,\r\n noUpcomingEventText: PropTypes.string.isRequired,\r\n onViewTicketsClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default Upcoming;\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\n\r\nfunction FileActionsTable({\r\n files,\r\n noActionsToPerformText,\r\n orderTypeValues,\r\n onViewFileSummaryClick,\r\n showExpiryDate\r\n}) {\r\n function handleViewFileSummaryClick(event, fileNumber) {\r\n event.preventDefault();\r\n onViewFileSummaryClick(fileNumber);\r\n }\r\n function displayFiles() {\r\n return files.map((file, index) => {\r\n const isLast = index + 1 === files.length;\r\n return \r\n
    \r\n {formMessageConstants.file}\r\n {file.fileNumber}\r\n
    \r\n {\r\n showExpiryDate ?\r\n
    \r\n {formMessageConstants.expiryDate}\r\n {file.expiryDateText}\r\n
    :\r\n
    \r\n }\r\n
    \r\n {formMessageConstants.actions}\r\n { handleViewFileSummaryClick(event, file.fileNumber); }} >{orderTypeValues[file.orderTypeIndex]}\r\n \r\n
    \r\n
    ;\r\n });\r\n }\r\n\r\n return (\r\n
    \r\n {isEmpty(files) ?\r\n
    \r\n

    {noActionsToPerformText}

    \r\n
    :\r\n \r\n
    \r\n
    {formMessageConstants.file}
    \r\n {\r\n showExpiryDate ?\r\n
    {formMessageConstants.expiryDate}
    :\r\n
    \r\n }\r\n
    {formMessageConstants.actions}
    \r\n
    \r\n {displayFiles()}\r\n
    \r\n }\r\n
    \r\n );\r\n}\r\n\r\nFileActionsTable.propTypes = {\r\n files: PropTypes.array.isRequired,\r\n noActionsToPerformText: PropTypes.string.isRequired,\r\n orderTypeValues: PropTypes.object.isRequired,\r\n onViewFileSummaryClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default FileActionsTable;\r\n","import React, { Component } from 'react';\r\n\r\nconst withLoadingInterval = (WrappedComponent) => {\r\n class WithLoadingInterval extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { elapsedTime: 0 };\r\n this.interval = null;\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.loading) {\r\n this.startInterval();\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (!prevProps.loading && this.props.loading) {\r\n this.startInterval();\r\n } else if (prevProps.loading && !this.props.loading) {\r\n this.stopInterval();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.stopInterval();\r\n }\r\n\r\n startInterval = () => {\r\n this.setState({ elapsedTime: 0 });\r\n this.interval = setInterval(() => {\r\n this.setState((prevState) => ({\r\n ...prevState,\r\n elapsedTime: prevState.elapsedTime + 1\r\n }));\r\n }, 1000);\r\n };\r\n\r\n stopInterval = () => {\r\n clearInterval(this.interval);\r\n this.setState({ elapsedTime: 0 });\r\n };\r\n\r\n render() {\r\n return ;\r\n }\r\n }\r\n\r\n WithLoadingInterval.displayName = `WithLoadingInterval(${WrappedComponent.displayName || WrappedComponent.name || 'Component'})`;\r\n\r\n return WithLoadingInterval;\r\n};\r\n\r\nexport default withLoadingInterval;\r\n","import withLoadingInterval from './withLoadingInterval';\r\n\r\nexport default withLoadingInterval;\r\n","import React, { Fragment, Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport _ from 'lodash';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport LastOrder from './LastOrder';\r\nimport Upcoming from './Upcoming';\r\nimport FileActionsTable from './FileActionsTable';\r\nimport './account-home-page.scss';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport { getMultilineText } from '../../../../../general/js/utils';\r\nimport withLoadingInterval from '../../hocComponents';\r\n\r\nclass AccountHomePage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.loadHomePageTicketsData = this.loadHomePageTicketsData.bind(this);\r\n this.loadHomePageTicketsData();\r\n this.errorMessages = this.props.loadHomePageTicketsDataErrorMessages;\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n\r\n actions.resetHomePageTicketsData();\r\n }\r\n\r\n loadHomePageTicketsData() {\r\n const { actions, formData } = this.props;\r\n\r\n actions.getHomePageTicketsData(\r\n formData.getHomePageTicketsDataCallbackUrl,\r\n formData[formConstants.ssoDomain],\r\n formData[formConstants.secuTixErrorMessage]\r\n );\r\n }\r\n\r\n checkElapsedTimeMessage() {\r\n const { formData, elapsedTime } = this.props;\r\n const loadingErrorMessage = formData[formConstants.loadingErrorMessage];\r\n\r\n if (!loadingErrorMessage) {\r\n this.errorMessages = this.props.loadHomePageTicketsDataErrorMessages;\r\n return;\r\n }\r\n const elapsedTimeLimit = formData[formConstants.elapsedTimeLimit];\r\n\r\n if (elapsedTime > elapsedTimeLimit && !this.errorMessages.includes(loadingErrorMessage)) {\r\n this.errorMessages.push(loadingErrorMessage);\r\n } else {\r\n this.errorMessages = this.props.loadHomePageTicketsDataErrorMessages;\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n loading,\r\n formData,\r\n isTicketsDataLoadedSuccessful,\r\n homePageTicketsData,\r\n onViewFileSummaryClick,\r\n onViewTicketsClick,\r\n elapsedTime\r\n } = this.props;\r\n const { actionItems, upcomingTicket, lastOrder } = homePageTicketsData;\r\n const actionsToPerformValue = isEmpty(actionItems) ? formMessageConstants.emptyString : actionItems.length;\r\n const {\r\n formTitle,\r\n formSubTitle,\r\n orderType,\r\n actionOrderType,\r\n fileState,\r\n noOrdersFoundText,\r\n noActionsToPerformText,\r\n noUpcomingEventText,\r\n showExpiryDate,\r\n showParkingButton,\r\n showParkingButtonText,\r\n parkingButtonUrl,\r\n ssoDomain,\r\n } = formData;\r\n\r\n const formSubtitleSplit = getMultilineText(formSubTitle);\r\n const shouldDisplayHomePageTicketsData = !loading &&\r\n isTicketsDataLoadedSuccessful && !isEmpty(homePageTicketsData);\r\n\r\n this.checkElapsedTimeMessage();\r\n const elapsedTimeLimit = formData[formConstants.elapsedTimeLimit];\r\n const loadingErrorMessage = formData[formConstants.loadingErrorMessage];\r\n const elapsedTimeError = elapsedTime >= elapsedTimeLimit && !!loadingErrorMessage;\r\n\r\n return (\r\n \r\n {loading ? / : null}\r\n

    {formTitle}

    \r\n {formSubtitleSplit.map((subtitle) => {\r\n return
    {subtitle}
    ;\r\n })}\r\n
    \r\n \r\n \r\n {shouldDisplayHomePageTicketsData &&\r\n

    {formMessageConstants.actionsToPerform}\r\n {isEmpty(actionItems) || {actionsToPerformValue}}\r\n

    }\r\n {shouldDisplayHomePageTicketsData &&\r\n }\r\n {shouldDisplayHomePageTicketsData &&\r\n }\r\n
    \r\n {shouldDisplayHomePageTicketsData &&\r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nAccountHomePage.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n formData: PropTypes.object.isRequired,\r\n onViewFileSummaryClick: PropTypes.func.isRequired,\r\n onViewTicketsClick: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n homePageTicketsData: state.userAccount.homePageTicketsData,\r\n loadHomePageTicketsDataErrorMessages: state.userAccount.loadHomePageTicketsDataErrorMessages,\r\n isTicketsDataLoadedSuccessful: state.userAccount.isTicketsDataLoadedSuccessful,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n getHomePageTicketsData: bindActionCreators(userAccountActions.getHomePageTicketsData, dispatch),\r\n resetHomePageTicketsData: bindActionCreators(userAccountActions.resetHomePageTicketsData, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withLoadingInterval(AccountHomePage));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction SSOCloseButton({ onCloseButtonClick }) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nSSOCloseButton.propTypes = {\r\n onCloseButtonClick: PropTypes.func.isRequired\r\n};\r\n\r\n\r\nexport default SSOCloseButton;\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport * as userAddressActions from '../../../store/actions/user-address-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport SSOCloseButton from '../../common/utility/SSOCloseButton';\r\nimport './user-addresses.scss';\r\nimport { deepCopyObject } from '../../utils/obj-utils';\r\n\r\nclass AddAddressForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = initialState.addUserAddressesFormState;\r\n\r\n this.displayAddAddressForm = this.displayAddAddressForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.submitAddressData = this.submitAddressData.bind(this);\r\n this.buildNewAddress = this.buildNewAddress.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n loading,\r\n formData,\r\n retrievedUserAddress,\r\n isUserAddressRetrieveSuccessful\r\n } = nextProps;\r\n\r\n if (!loading && isUserAddressRetrieveSuccessful) {\r\n const { county, state } = formData;\r\n this.setState(formStateHelpers.handleAddressDataChange(retrievedUserAddress, county, state));\r\n }\r\n }\r\n\r\n displayAddAddressForm() {\r\n const { actions, formData } = this.props;\r\n const { availableCounties, country, availableStates } = this.state;\r\n const { county, state } = formData;\r\n const copyOfFormData = deepCopyObject(formData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n copyOfFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfFormData[formConstants.city].defaultValue = this.state[formConstants.city];\r\n copyOfFormData[formConstants.addressLine1].defaultValue = this.state[formConstants.addressLine1];\r\n copyOfFormData[formConstants.addressLine2].defaultValue = this.state[formConstants.addressLine2];\r\n copyOfFormData[formConstants.addressLine3].defaultValue = this.state[formConstants.addressLine3];\r\n copyOfFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n\r\n return FormBuilder({\r\n formData: copyOfFormData,\r\n countryData: { selectedCountry: country },\r\n countyData: { availableCounties, label: county ? county.label : formMessageConstants.emptyString },\r\n stateData: { availableStates, label: state ? state.label : formMessageConstants.emptyString },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleCountryChange: (event) => {\r\n this.setState(formStateHelpers.handleCountryChange(event.target, county, state),\r\n () => {\r\n actions.resetRetrievedUserAddress();\r\n });\r\n },\r\n handleFieldValidState: (fieldName) => { const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors); },\r\n });\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitAddressData);\r\n }\r\n\r\n submitAddressData() {\r\n const { onAddAddressClick } = this.props;\r\n onAddAddressClick(this.buildNewAddress());\r\n }\r\n\r\n buildNewAddress() {\r\n const newAddress = {};\r\n newAddress[formConstants.addressLine1] = this.state[formConstants.addressLine1];\r\n newAddress[formConstants.addressLine2] = this.state[formConstants.addressLine2];\r\n newAddress[formConstants.addressLine3] = this.state[formConstants.addressLine3];\r\n newAddress[formConstants.postcode] = this.state[formConstants.postcode];\r\n newAddress[formConstants.city] = this.state[formConstants.city];\r\n newAddress[formConstants.country] = this.state[formConstants.country];\r\n newAddress[formConstants.county] = this.state[formConstants.county];\r\n newAddress[formConstants.state] = this.state[formConstants.state];\r\n newAddress[formConstants.main] = this.state[formConstants.mainAddress];\r\n newAddress[formConstants.shippingAddress] = this.state[formConstants.shippingAddress];\r\n newAddress[formConstants.billingAddress] = this.state[formConstants.billingAddress];\r\n return newAddress;\r\n }\r\n\r\n render() {\r\n const { onCloseAddAddressFormClick } = this.props;\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n {this.displayAddAddressForm()}\r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nAddAddressForm.propTypes = {\r\n formData: PropTypes.object.isRequired,\r\n onAddAddressClick: PropTypes.func.isRequired,\r\n onCloseAddAddressFormClick: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isUserAddressRetrieveSuccessful: state.userAddressSearchData.isUserAddressRetrieveSuccessful,\r\n retrieveAddressMessages: state.userAddressSearchData.retrieveAddressMessages,\r\n retrievedUserAddress: state.userAddressSearchData.retrievedUserAddress\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n resetRetrievedUserAddress: bindActionCreators(userAddressActions.resetRetrievedUserAddress, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AddAddressForm);\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { deepCopyObject, isEmpty } from '../../utils/obj-utils';\r\n\r\nclass FormAddressDisplayField extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { mainValue: false, shippingAddressValue: false, billingAddressValue: false };\r\n this.handleEditAddress = this.handleEditAddress.bind(this);\r\n this.handleRemoveAddress = this.handleRemoveAddress.bind(this);\r\n this.handleUpdateAddress = this.handleUpdateAddress.bind(this);\r\n this.updateAddressValues = this.updateAddressValues.bind(this);\r\n this.displayCitySection = this.displayCitySection.bind(this);\r\n this.displayCountrySection = this.displayCountrySection.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const { address } = this.props;\r\n this.updateAddressValues(address);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { address } = nextProps;\r\n this.updateAddressValues(address);\r\n }\r\n\r\n handleEditAddress(event) {\r\n event.preventDefault();\r\n const { address, onEditAddressClick } = this.props;\r\n onEditAddressClick(address);\r\n }\r\n\r\n handleRemoveAddress(event) {\r\n event.preventDefault();\r\n const { address, onRemoveAddressClick } = this.props;\r\n onRemoveAddressClick(address);\r\n }\r\n\r\n handleUpdateAddress(event, addressType) {\r\n event.preventDefault();\r\n const { address, onUpdateAddressClick } = this.props;\r\n\r\n const updatedAddress = deepCopyObject(address);\r\n updatedAddress[addressType] = !updatedAddress[addressType];\r\n\r\n this.updateAddressValues(updatedAddress);\r\n onUpdateAddressClick({ addressFlaggedForUpdate: address, updatedAddress });\r\n }\r\n\r\n updateAddressValues(address) {\r\n const mainValue = address.main;\r\n const shippingAddressValue = address.shippingAddress;\r\n const billingAddressValue = address.billingAddress;\r\n\r\n this.setState({ mainValue, shippingAddressValue, billingAddressValue });\r\n }\r\n\r\n displayCitySection() {\r\n const { address } = this.props;\r\n\r\n if (isEmpty(address[formConstants.city])) {\r\n return `${address[formConstants.postcode]}`;\r\n }\r\n\r\n return `${address[formConstants.postcode]}, ${address[formConstants.city]}`;\r\n }\r\n\r\n displayCountrySection() {\r\n const { address } = this.props;\r\n\r\n if (isEmpty(address[formConstants.county])) {\r\n if (isEmpty(address[formConstants.stateName])) {\r\n return `${address[formConstants.countryName]}`;\r\n }\r\n\r\n return `${address[formConstants.countryName]}, ${address[formConstants.stateName]}`;\r\n }\r\n\r\n return `${address[formConstants.countryName]}, ${address[formConstants.county]}`;\r\n }\r\n\r\n render() {\r\n const {\r\n formData,\r\n address,\r\n isLast\r\n } = this.props;\r\n\r\n const { mainValue, shippingAddressValue, billingAddressValue } = this.state;\r\n const { mainAddress, shippingAddress, billingAddress } = formData;\r\n\r\n return (\r\n
    \r\n

    {mainValue ? '● Main address' : ''} {shippingAddressValue ? '● Shipping address' : ''} {billingAddressValue ? '● Billing address' : ''}

    \r\n
    \r\n
    \r\n
    {address[formConstants.addressLine1]}
    \r\n
    {address[formConstants.addressLine2]}
    \r\n
    {address[formConstants.addressLine3]}
    \r\n
    {`${this.displayCitySection()}`}
    \r\n
    {`${this.displayCountrySection()}`}
    \r\n
    \r\n
      \r\n
    • \r\n \r\n \r\n
    \r\n \r\n
  • \r\n \r\n \r\n
  • \r\n \r\n
  • \r\n \r\n \r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nFormAddressDisplayField.propTypes = {\r\n formData: PropTypes.object.isRequired,\r\n address: PropTypes.object.isRequired,\r\n onEditAddressClick: PropTypes.func.isRequired,\r\n onRemoveAddressClick: PropTypes.func.isRequired,\r\n onUpdateAddressClick: PropTypes.func.isRequired,\r\n isLast: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default FormAddressDisplayField;\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport * as userAddressActions from '../../../store/actions/user-address-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport SSOCloseButton from '../../common/utility/SSOCloseButton';\r\nimport { deepCopyObject } from '../../utils/obj-utils';\r\n\r\nclass UpdateAddressForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = initialState.updateUserAddressesFormState;\r\n\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.displayUpdateAddressForm = this.displayUpdateAddressForm.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n loading,\r\n formData,\r\n retrievedUserAddress,\r\n isUserAddressRetrieveSuccessful\r\n } = nextProps;\r\n\r\n if (!loading && isUserAddressRetrieveSuccessful) {\r\n const { county, state } = formData;\r\n this.setState(formStateHelpers.handleAddressDataChange(retrievedUserAddress, county, state));\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n const { formData } = this.props;\r\n this.setState(formStateHelpers.updateFormFields(formData));\r\n }\r\n\r\n displayUpdateAddressForm() {\r\n const { actions, formData } = this.props;\r\n const { availableCounties, country, availableStates } = this.state;\r\n const { county, state } = formData;\r\n const copyOfFormData = deepCopyObject(formData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n copyOfFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfFormData[formConstants.city].defaultValue = this.state[formConstants.city];\r\n copyOfFormData[formConstants.addressLine1].defaultValue = this.state[formConstants.addressLine1];\r\n copyOfFormData[formConstants.addressLine2].defaultValue = this.state[formConstants.addressLine2];\r\n copyOfFormData[formConstants.addressLine3].defaultValue = this.state[formConstants.addressLine3];\r\n copyOfFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n copyOfFormData[formConstants.mainAddress].defaultValue = this.state[formConstants.mainAddress];\r\n copyOfFormData[formConstants.billingAddress].defaultValue = this.state[formConstants.billingAddress];\r\n copyOfFormData[formConstants.shippingAddress].defaultValue = this.state[formConstants.shippingAddress];\r\n\r\n\r\n return FormBuilder({\r\n formData: copyOfFormData,\r\n countryData: { selectedCountry: country },\r\n countyData: { availableCounties, label: county ? county.label : formMessageConstants.emptyString },\r\n stateData: { availableStates, label: state ? state.label : formMessageConstants.emptyString },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleCountryChange: (event) => {\r\n this.setState(formStateHelpers.handleCountryChange(event.target, county, state),\r\n () => {\r\n actions.resetRetrievedUserAddress();\r\n });\r\n },\r\n handleFieldValidState: (fieldName) => { const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors); },\r\n });\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitAddressData);\r\n }\r\n\r\n submitAddressData() {\r\n const { onUpdateAddressClick } = this.props;\r\n onUpdateAddressClick({ updatedAddress: this.getAddressForUpdate() });\r\n }\r\n\r\n getAddressForUpdate() {\r\n const addressForUpdate = {};\r\n addressForUpdate[formConstants.addressLine1] = this.state[formConstants.addressLine1];\r\n addressForUpdate[formConstants.addressLine2] = this.state[formConstants.addressLine2];\r\n addressForUpdate[formConstants.addressLine3] = this.state[formConstants.addressLine3];\r\n addressForUpdate[formConstants.postcode] = this.state[formConstants.postcode];\r\n addressForUpdate[formConstants.city] = this.state[formConstants.city];\r\n addressForUpdate[formConstants.country] = this.state[formConstants.country];\r\n addressForUpdate[formConstants.county] = this.state[formConstants.county];\r\n addressForUpdate[formConstants.state] = this.state[formConstants.state];\r\n addressForUpdate[formConstants.main] = this.state[formConstants.mainAddress];\r\n addressForUpdate[formConstants.shippingAddress] = this.state[formConstants.shippingAddress];\r\n addressForUpdate[formConstants.billingAddress] = this.state[formConstants.billingAddress];\r\n\r\n return addressForUpdate;\r\n }\r\n\r\n render() {\r\n const { onCloseUpdateAddressFormClick } = this.props;\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n {this.displayUpdateAddressForm()}\r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nUpdateAddressForm.propTypes = {\r\n formData: PropTypes.object.isRequired,\r\n onUpdateAddressClick: PropTypes.func.isRequired,\r\n onCloseUpdateAddressFormClick: PropTypes.func.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isUserAddressRetrieveSuccessful: state.userAddressSearchData.isUserAddressRetrieveSuccessful,\r\n retrieveAddressMessages: state.userAddressSearchData.retrieveAddressMessages,\r\n retrievedUserAddress: state.userAddressSearchData.retrievedUserAddress\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n resetRetrievedUserAddress: bindActionCreators(userAddressActions.resetRetrievedUserAddress, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(UpdateAddressForm);\r\n","import React, { Fragment } from 'react';\r\nimport SSOFormFooter from '../common/utility/SSOFormFooter';\r\nimport { formConstants } from './constants/form-constants';\r\nimport { formMessageConstants } from './constants/form-message-constants';\r\nimport { isEmpty, deepCopyObject } from './obj-utils';\r\nimport AddAddressForm from '../forms/user-addresses/AddAddressForm';\r\nimport FormAddressDisplayField from '../forms/user-addresses/FormAddressDisplayField';\r\nimport UpdateAddressForm from '../forms/user-addresses/UpdateAddressForm';\r\n\r\nexport const addressesFormConstants = {\r\n /* eslint-disable */\r\n addressDisplayForm: ({ accountFormData, accountData, callbackFunctions }) => {\r\n return displayUserAddresses(accountFormData, accountData, callbackFunctions);\r\n },\r\n addressAddForm: ({ accountFormData, callbackFunctions }) => {\r\n const { handleAddNewAddress, handleShowDisplayAddressForm } = callbackFunctions;\r\n return \r\n },\r\n addressUpdateForm: ({ accountFormData, callbackFunctions, addressForUpdate }) => {\r\n const { handleUpdateAddress, handleShowDisplayAddressForm } = callbackFunctions;\r\n const formData = getUpdateAddressFormData(accountFormData, addressForUpdate);\r\n return \r\n },\r\n /* eslint-enable */\r\n};\r\n\r\n\r\nconst displayUserAddresses = (accountFormData, accountData, callbackFunctions) => {\r\n const { addresses } = accountData;\r\n const { handleShowAddAddressForm } = callbackFunctions;\r\n\r\n if (isEmpty(addresses)) {\r\n return (\r\n
    \r\n

    {accountFormData[formConstants.noAddressFoundText] || formMessageConstants.noAddressesFound}

    \r\n
    \r\n \r\n \r\n
    );\r\n }\r\n\r\n return displayAddresses(accountFormData, accountData, callbackFunctions);\r\n};\r\n\r\nconst displayAddresses = (accountFormData, accountData, callbackFunctions) => {\r\n const { addresses } = accountData;\r\n const {\r\n handleShowAddAddressForm,\r\n handleShowUpdateAddressForm,\r\n handleUpdateAddress,\r\n handleRemoveAddress\r\n } = callbackFunctions;\r\n const { mainAddress, shippingAddress, billingAddress } = accountFormData;\r\n const formData = { mainAddress, shippingAddress, billingAddress };\r\n const addressesDisplayForm = addresses\r\n .sort((a, b) => {\r\n if (a.main === b.main) {\r\n return 0;\r\n }\r\n\r\n return a.main ? -1 : 1;\r\n })\r\n .map((address, index) => {\r\n const isLast = index === addresses.length - 1;\r\n\r\n return
    \r\n \r\n
    ;\r\n });\r\n\r\n return (\r\n {addressesDisplayForm}\r\n \r\n \r\n );\r\n};\r\n\r\nconst getUpdateAddressFormData = (accountFormData, addressForUpdate) => {\r\n const formData = deepCopyObject(accountFormData);\r\n\r\n formData[formConstants.addressLine1].defaultValue = addressForUpdate[formConstants.addressLine1] || formMessageConstants.emptyString;\r\n formData[formConstants.addressLine2].defaultValue = addressForUpdate[formConstants.addressLine2] || formMessageConstants.emptyString;\r\n formData[formConstants.addressLine3].defaultValue = addressForUpdate[formConstants.addressLine3] || formMessageConstants.emptyString;\r\n formData[formConstants.postcode].defaultValue = addressForUpdate[formConstants.postcode] || formMessageConstants.emptyString;\r\n formData[formConstants.city].defaultValue = addressForUpdate[formConstants.city] || formMessageConstants.emptyString;\r\n\r\n formData[formConstants.country].defaultValue = addressForUpdate[formConstants.country];\r\n formData[formConstants.country].countryName = addressForUpdate[formConstants.countryName] || formMessageConstants.emptyString;\r\n formData[formConstants.county].defaultValue = addressForUpdate[formConstants.county];\r\n formData[formConstants.state].defaultValue = addressForUpdate[formConstants.state];\r\n\r\n formData[formConstants.mainAddress].defaultValue = addressForUpdate[formConstants.main];\r\n formData[formConstants.shippingAddress].defaultValue = addressForUpdate[formConstants.shippingAddress];\r\n formData[formConstants.billingAddress].defaultValue = addressForUpdate[formConstants.billingAddress];\r\n\r\n return formData;\r\n};\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport _ from 'lodash';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport { addressesFormStateConstants, addressesFormCallbackFunctions } from '../helpers/form-helpers/user-account/address-form-state';\r\nimport { addressesFormConstants } from '../../utils/addresses-form-constants';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { isEmpty, deepCopyObject } from '../../utils/obj-utils';\r\nimport ConfirmationModal from '../../common/utility/ConfirmationModal';\r\nimport { MembershipTypes, getMultilineText } from '../../../../../general/js/utils';\r\nimport userService from '../../../../../general/js/user/user-service';\r\n\r\nclass UserAddressesForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = initialState.userAddressesFormState;\r\n\r\n const { accountData } = props;\r\n const copyOfAccountData = deepCopyObject(accountData);\r\n this.state.accountData = copyOfAccountData;\r\n\r\n this.submitAddressesData = this.submitAddressesData.bind(this);\r\n this.resetForm = this.resetForm.bind(this);\r\n\r\n this.displayAddressesForm = this.displayAddressesForm.bind(this);\r\n this.handleShowDisplayAddressForm = this.handleShowDisplayAddressForm.bind(this);\r\n\r\n this.handleShowAddAddressForm = this.handleShowAddAddressForm.bind(this);\r\n this.handleAddNewAddress = this.handleAddNewAddress.bind(this);\r\n\r\n this.handleShowUpdateAddressForm = this.handleShowUpdateAddressForm.bind(this);\r\n this.handleUpdateAddress = this.handleUpdateAddress.bind(this);\r\n\r\n this.handleUpdateFinish = this.handleUpdateFinish.bind(this);\r\n\r\n this.handleRemoveAddress = this.handleRemoveAddress.bind(this);\r\n this.toggleConfirmationModal = this.toggleConfirmationModal.bind(this);\r\n this.removeAddressConfirmation = this.removeAddressConfirmation.bind(this);\r\n\r\n this.callbackFunctions = {};\r\n\r\n this.callbackFunctions[addressesFormCallbackFunctions.HandleShowDisplayAddressForm] = this.handleShowDisplayAddressForm;\r\n\r\n this.callbackFunctions[addressesFormCallbackFunctions.HandleShowAddAddressForm] = this.handleShowAddAddressForm;\r\n this.callbackFunctions[addressesFormCallbackFunctions.HandleAddNewAddress] = this.handleAddNewAddress;\r\n\r\n this.callbackFunctions[addressesFormCallbackFunctions.HandleShowUpdateAddressForm] = this.handleShowUpdateAddressForm;\r\n this.callbackFunctions[addressesFormCallbackFunctions.HandleUpdateAddress] = this.handleUpdateAddress;\r\n\r\n this.callbackFunctions[addressesFormCallbackFunctions.HandleRemoveAddress] = this.handleRemoveAddress;\r\n\r\n this.addressToRemove = null;\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { isSaving } = this.state;\r\n const { accountData, loading, isUserAccountDataLoadedSuccessful } = nextProps;\r\n\r\n if (isSaving && !loading) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUpdateFinish);\r\n }\r\n\r\n if (!isSaving && !loading && isUserAccountDataLoadedSuccessful) {\r\n this.setState(formStateHelpers.updateAddressesFormAccountData(accountData));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.resetForm();\r\n }\r\n\r\n handleShowDisplayAddressForm() {\r\n this.resetForm();\r\n this.setState(formStateHelpers.updateAddressesFormState(addressesFormStateConstants.AddressDisplayForm));\r\n }\r\n\r\n handleShowAddAddressForm() {\r\n this.resetForm();\r\n this.setState(formStateHelpers.updateAddressesFormState(addressesFormStateConstants.AddressAddForm));\r\n }\r\n\r\n handleShowUpdateAddressForm(addressForUpdate) {\r\n this.resetForm();\r\n this.setState(formStateHelpers.updateAddressesFormState(addressesFormStateConstants.AddressUpdateForm, addressForUpdate));\r\n }\r\n\r\n displayAddressesForm() {\r\n const { accountData, addressForUpdate } = this.state;\r\n const { formData } = this.props;\r\n const { formState } = this.state;\r\n const copyOfAccountData = deepCopyObject(accountData);\r\n\r\n return addressesFormConstants[formState]({\r\n accountFormData: formData,\r\n accountData: copyOfAccountData,\r\n callbackFunctions: this.callbackFunctions,\r\n addressForUpdate\r\n });\r\n }\r\n\r\n handleAddNewAddress(newAddress) {\r\n const { accountData } = this.state;\r\n const { formData } = this.props;\r\n const { addAddress } = formData;\r\n const { actionSuccessText, callBackUrl } = addAddress;\r\n\r\n let copyOfAccountData = deepCopyObject(accountData);\r\n\r\n if (isEmpty(copyOfAccountData.addresses)) {\r\n newAddress.main = true;\r\n newAddress.shippingAddress = true;\r\n newAddress.billingAddress = true;\r\n copyOfAccountData.addresses = [];\r\n copyOfAccountData.addresses.push(newAddress);\r\n this.setState(formStateHelpers.updateSavingState(true),\r\n () => { this.submitAddressesData(copyOfAccountData, actionSuccessText, callBackUrl); });\r\n return;\r\n }\r\n\r\n copyOfAccountData = this.getUpdatedAddresses(newAddress, newAddress);\r\n copyOfAccountData.addresses.push(newAddress);\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), () => {\r\n this.submitAddressesData(copyOfAccountData, actionSuccessText, callBackUrl);\r\n });\r\n }\r\n\r\n handleUpdateAddress({ addressFlaggedForUpdate, updatedAddress }) {\r\n const { addressForUpdate } = this.state;\r\n const { formData } = this.props;\r\n const { updateAddress } = formData;\r\n const { actionSuccessText, callBackUrl } = updateAddress;\r\n\r\n const flaggedForUpdate = isEmpty(addressFlaggedForUpdate) ? addressForUpdate : addressFlaggedForUpdate;\r\n if (!this.canUpdatedAddresses(flaggedForUpdate, updatedAddress)) {\r\n return;\r\n }\r\n\r\n const copyOfAccountData = this.getUpdatedAddresses(flaggedForUpdate, updatedAddress);\r\n\r\n this.setState(formStateHelpers.updateSavingState(true),\r\n () => { this.submitAddressesData(copyOfAccountData, actionSuccessText, callBackUrl); });\r\n }\r\n\r\n handleRemoveAddress(address) {\r\n const canRemoveAddress = this.canRemoveAddress(address);\r\n if (canRemoveAddress) {\r\n this.addressToRemove = address;\r\n this.setState(formStateHelpers.toggleKey('isConfirmationPopUpOpen'));\r\n }\r\n }\r\n\r\n removeAddressConfirmation() {\r\n const { formData } = this.props;\r\n const { updateAddress } = formData;\r\n const { accountData } = this.state;\r\n const { membership } = accountData;\r\n const { actionSuccessText, callBackUrl } = updateAddress;\r\n\r\n const copyOfAccountData = deepCopyObject(accountData);\r\n const addressToRemoveIndex = this.getAddressIndex(this.addressToRemove);\r\n\r\n if (accountData.addresses.length === 1 &&\r\n !membership.includes(MembershipTypes.OneClub) &&\r\n !userService.hasTicketingAccount(accountData)) {\r\n copyOfAccountData.addresses = [];\r\n this.setState(formStateHelpers.updateSavingState(true), () => { this.submitAddressesData(copyOfAccountData, actionSuccessText, callBackUrl); });\r\n }\r\n\r\n if (accountData.addresses.length > 1 &&\r\n !this.addressToRemove.main &&\r\n !this.addressToRemove.shippingAddress &&\r\n !this.addressToRemove.billingAddress) {\r\n copyOfAccountData.addresses.splice(addressToRemoveIndex, 1);\r\n this.setState(formStateHelpers.updateSavingState(true), () => { this.submitAddressesData(copyOfAccountData, actionSuccessText, callBackUrl); });\r\n }\r\n this.toggleConfirmationModal();\r\n }\r\n\r\n canRemoveAddress(address) {\r\n const { actions, formData } = this.props;\r\n const {\r\n cannotRemoveLastAddressMessage,\r\n cannotRemoveMainAddressMessage,\r\n cannotRemoveShippingAddressMessage,\r\n cannotRemoveBillingAddressMessage\r\n } = formData;\r\n const { accountData } = this.state;\r\n const { membership } = accountData;\r\n\r\n if (accountData.addresses.length === 1 &&\r\n (membership.includes(MembershipTypes.OneClub) ||\r\n userService.hasTicketingAccount(accountData))) {\r\n actions.displayUserAddressesErrorMessage([cannotRemoveLastAddressMessage || formMessageConstants.cannotRemoveLastAddress]);\r\n return false;\r\n }\r\n\r\n if (address.main) {\r\n actions.displayUserAddressesErrorMessage([cannotRemoveMainAddressMessage || formMessageConstants.cannotRemoveMainAddress]);\r\n return false;\r\n }\r\n\r\n if (address.shippingAddress) {\r\n actions.displayUserAddressesErrorMessage([cannotRemoveShippingAddressMessage || formMessageConstants.cannotRemoveShippingAddress]);\r\n return false;\r\n }\r\n\r\n if (address.billingAddress) {\r\n actions.displayUserAddressesErrorMessage([cannotRemoveBillingAddressMessage || formMessageConstants.cannotRemoveBillingAddress]);\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n getUpdatedAddresses(addressFlaggedForUpdate, updatedAddress) {\r\n const { accountData } = this.state;\r\n const copyOfAccountData = deepCopyObject(accountData);\r\n let addressFlaggedForUpdateIndex = this.getAddressIndex(addressFlaggedForUpdate);\r\n\r\n if (isEmpty(copyOfAccountData.addresses)) {\r\n copyOfAccountData.addresses = [];\r\n addressFlaggedForUpdateIndex = 0;\r\n }\r\n\r\n copyOfAccountData.addresses.forEach((address, index) => {\r\n if (addressFlaggedForUpdateIndex !== index) {\r\n if (updatedAddress.main) {\r\n address.main = false;\r\n }\r\n\r\n if (updatedAddress.shippingAddress) {\r\n address.shippingAddress = false;\r\n }\r\n\r\n if (updatedAddress.billingAddress) {\r\n address.billingAddress = false;\r\n }\r\n }\r\n });\r\n\r\n if (addressFlaggedForUpdateIndex !== -1) {\r\n copyOfAccountData.addresses[addressFlaggedForUpdateIndex] = updatedAddress;\r\n }\r\n\r\n return copyOfAccountData;\r\n }\r\n\r\n canUpdatedAddresses(addressFlaggedForUpdate, updatedAddress) {\r\n const { actions, formData } = this.props;\r\n const {\r\n cannotRemoveMainAddressMessage,\r\n cannotRemoveShippingAddressMessage,\r\n cannotRemoveBillingAddressMessage\r\n } = formData;\r\n\r\n if (!updatedAddress.main && addressFlaggedForUpdate.main) {\r\n actions.displayUserAddressesErrorMessage([cannotRemoveMainAddressMessage || formMessageConstants.cannotRemoveMainAddress]);\r\n return false;\r\n }\r\n\r\n if (!updatedAddress.shippingAddress && addressFlaggedForUpdate.shippingAddress) {\r\n actions.displayUserAddressesErrorMessage([cannotRemoveShippingAddressMessage || formMessageConstants.cannotRemoveShippingAddress]);\r\n return false;\r\n }\r\n\r\n if (!updatedAddress.billingAddress && addressFlaggedForUpdate.billingAddress) {\r\n actions.displayUserAddressesErrorMessage([cannotRemoveBillingAddressMessage || formMessageConstants.cannotRemoveBillingAddress]);\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n getAddressIndex(addressForFind) {\r\n const { accountData } = this.state;\r\n const addressForFindJSON = JSON.stringify(addressForFind);\r\n let addressIndex = -1;\r\n\r\n if (isEmpty(accountData.addresses)) {\r\n return -1;\r\n }\r\n\r\n accountData.addresses.forEach((address, index) => {\r\n if (addressForFindJSON === JSON.stringify(address)) {\r\n addressIndex = index;\r\n }\r\n });\r\n\r\n return addressIndex;\r\n }\r\n\r\n submitAddressesData(accountData, actionSuccessText, callBackUrl) {\r\n const { actions } = this.props;\r\n const formattedActionSuccessText = actionSuccessText || formMessageConstants.updateUserAddressesSuccessText;\r\n actions.updateUserAddresses(accountData, formattedActionSuccessText, callBackUrl);\r\n }\r\n\r\n handleUpdateFinish() {\r\n const { refreshAccountPage } = this.props;\r\n refreshAccountPage(false);\r\n this.handleShowDisplayAddressForm(false);\r\n }\r\n\r\n resetForm() {\r\n const { actions } = this.props;\r\n this.setState(initialState.userAddressesFormStateConstants);\r\n actions.resetAddressesFormStateConstants();\r\n }\r\n\r\n toggleConfirmationModal() {\r\n this.setState(formStateHelpers.toggleKey('isConfirmationPopUpOpen'));\r\n }\r\n\r\n render() {\r\n const { isSaving, isConfirmationPopUpOpen } = this.state;\r\n const {\r\n formData,\r\n updateUserAddressesMessages,\r\n areUserAddressesUpdatedSuccessful\r\n } = this.props;\r\n const {\r\n formTitle,\r\n removeAddressInputText,\r\n removeAddressModalWarning\r\n } = formData;\r\n const removeAddressModalWarningSplit = getMultilineText(removeAddressModalWarning);\r\n return (\r\n \r\n

    {formTitle}

    \r\n
    \r\n {isSaving ? / : null}\r\n \r\n {this.displayAddressesForm()}\r\n
    \r\n \r\n {removeAddressModalWarningSplit.map((text) => {\r\n return

    {text}

    ;\r\n })}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nUserAddressesForm.propTypes = {\r\n formData: PropTypes.object.isRequired,\r\n accountData: PropTypes.object.isRequired,\r\n refreshAccountPage: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n areUserAddressesUpdatedSuccessful: state.userAccount.areUserAddressesUpdatedSuccessful,\r\n isUserAccountDataLoadedSuccessful: state.userAccount.isUserAccountDataLoadedSuccessful,\r\n updateUserAddressesMessages: state.userAccount.updateUserAddressesMessages,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n updateUserAddresses: bindActionCreators(userAccountActions.updateUserAddresses, dispatch),\r\n resetAddressesFormStateConstants: bindActionCreators(userAccountActions.resetAddressesFormState, dispatch),\r\n displayUserAddressesErrorMessage: bindActionCreators(userAccountActions.displayUserAddressesErrorMessage, dispatch),\r\n resetUserDetailsFormState: bindActionCreators(userAccountActions.resetUserDetailsFormState, dispatch),\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(UserAddressesForm);\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { deepCopyObject } from '../../utils/obj-utils';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport './email-notification-settings.scss';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport { getMultilineText } from '../../../../../general/js/utils';\r\n\r\nclass EmailNotificationSettingsForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const { formData } = props;\r\n\r\n const copyOfFormData = this.getSelectedFormData(props);\r\n\r\n this.state = {\r\n ...initialState.emailNotificationSettingsFormState,\r\n formData: copyOfFormData\r\n };\r\n\r\n this.displayEmailNotificationSettingsFrom = this.displayEmailNotificationSettingsFrom.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.submitUserData = this.submitUserData.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n\r\n this.formReferences = formScrollHelpers.getFormReferences(formData);\r\n\r\n this.handleUserDetailsUpdateSuccess = this.handleUserDetailsUpdateSuccess.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { isSaving } = this.state;\r\n const {\r\n loading,\r\n isUserDetailsUpdatedSuccessful,\r\n } = nextProps;\r\n\r\n if (isSaving &&\r\n !loading &&\r\n isUserDetailsUpdatedSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserDetailsUpdateSuccess);\r\n }\r\n\r\n if (isSaving &&\r\n !loading &&\r\n !isUserDetailsUpdatedSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false));\r\n }\r\n }\r\n\r\n getSelectedFormData(props) {\r\n const { formData, accountData } = props;\r\n const { championships, channels, interests } = accountData.preferences;\r\n\r\n const copyOfFormData = deepCopyObject(formData);\r\n\r\n\r\n copyOfFormData.championshipSection.defaultValue = this.getSelectedValues(championships, copyOfFormData.championshipSection.choices);\r\n copyOfFormData.channelSection.defaultValue = this.getSelectedValuesFromProperty(channels, copyOfFormData.channelSection.choices);\r\n copyOfFormData.interestSection.defaultValue = this.getSelectedValuesFromProperty(interests, copyOfFormData.interestSection.choices);\r\n\r\n return copyOfFormData;\r\n }\r\n\r\n getSelectedValuesFromProperty(obj, choices) {\r\n if (obj == null) return null;\r\n\r\n const defaultChoices = [];\r\n\r\n Object.keys(obj).forEach((key) => {\r\n console.log(key, obj[key]);\r\n if (obj[key] === true) {\r\n const choiceItem = choices.find((o) => o.id.toUpperCase() === key.toUpperCase());\r\n if (choiceItem != null) defaultChoices.push(key);\r\n }\r\n });\r\n\r\n return defaultChoices;\r\n }\r\n\r\n getSelectedValues(selectedValues, choices) {\r\n if (selectedValues == null) return null;\r\n\r\n const defaultChoices = [];\r\n\r\n selectedValues.forEach((item) => {\r\n if (item.value) {\r\n const choiceItem = choices.find((o) => o.id.toUpperCase() === item.id.toUpperCase());\r\n if (choiceItem != null) defaultChoices.push(item.id);\r\n }\r\n });\r\n\r\n return defaultChoices;\r\n }\r\n\r\n handleUserDetailsUpdateSuccess() {\r\n const { refreshAccountPage } = this.props;\r\n refreshAccountPage(false);\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.theOneClubFormState);\r\n actions.resetUserDetailsFormState();\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.state;\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitUserData);\r\n }\r\n\r\n submitUserData() {\r\n const { actions, accountData } = this.props;\r\n const { formData } = this.state;\r\n const {\r\n callBackUrl,\r\n updatedNotificationSuccessMessage,\r\n } = formData;\r\n\r\n actions.updateUserEmailNotificationSettings({\r\n userDetails: this.state,\r\n accountData,\r\n actionSuccessText: updatedNotificationSuccessMessage,\r\n callBackUrl\r\n });\r\n }\r\n\r\n displayEmailNotificationSettingsFrom() {\r\n const { formData } = this.state;\r\n\r\n return FormBuilder({\r\n formData,\r\n formReferences: this.formReferences,\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => {\r\n const eventTarge = event.target;\r\n const fieldName = eventTarge.name;\r\n const fieldData = formData[fieldName];\r\n this.setState(formStateHelpers.handleFieldChangeWithValidation(eventTarge, fieldData));\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n loading,\r\n isUserDetailsUpdatedSuccessful,\r\n updateUserDetailsMessages,\r\n } = this.props;\r\n const { formData } = this.state;\r\n const {\r\n formTitle,\r\n formSubTitle\r\n } = formData;\r\n const formSubtitleSplit = getMultilineText(formSubTitle);\r\n\r\n return (\r\n \r\n

    {formTitle}

    \r\n {formSubtitleSplit.map((subtitle) => {\r\n return
    ;\r\n })}\r\n
    \r\n {loading ? / : null}\r\n
    \r\n
    \r\n \r\n \r\n {this.displayEmailNotificationSettingsFrom()}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nEmailNotificationSettingsForm.propTypes = {\r\n formData: PropTypes.object.isRequired,\r\n accountData: PropTypes.object.isRequired,\r\n refreshAccountPage: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isUserDetailsUpdatedSuccessful: state.userAccount.isUserDetailsUpdatedSuccessful,\r\n updateUserDetailsMessages: state.userAccount.updateUserDetailsMessages,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n updateUserEmailNotificationSettings: bindActionCreators(userAccountActions.updateUserEmailNotificationSettings, dispatch),\r\n resetUserDetailsFormState: bindActionCreators(userAccountActions.resetUserDetailsFormState, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(EmailNotificationSettingsForm);\r\n","import React from 'react';\r\n\r\nexport default function PushNotificationsForm() {\r\n return (\r\n
    \r\n {'Push Notification Form'}\r\n
    \r\n );\r\n}\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction ResaleTicketsButton({\r\n onResaleClick,\r\n buttonText,\r\n buttonColor\r\n}) {\r\n return (\r\n \r\n {buttonText}\r\n \r\n \r\n );\r\n}\r\n\r\nResaleTicketsButton.propTypes = {\r\n onResaleClick: PropTypes.func.isRequired,\r\n buttonText: PropTypes.string.isRequired,\r\n buttonColor: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default ResaleTicketsButton;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\n\r\nfunction ResaleTicketsFAQ({ title, questions }) {\r\n function displayQuestions() {\r\n if (isEmpty(questions)) {\r\n return null;\r\n }\r\n\r\n return questions.map((question, index) => {\r\n const checkId = `chk${index}`;\r\n return \r\n \r\n \r\n
    \r\n ;\r\n });\r\n }\r\n\r\n return (\r\n
    \r\n

    {title}

    \r\n
    \r\n {displayQuestions()}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nResaleTicketsFAQ.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n questions: PropTypes.array.isRequired\r\n};\r\n\r\nexport default ResaleTicketsFAQ;\r\n","import { isNullOrUndefined, hasValue } from \"../../../../../general/js/general-helpers\";\r\n\r\nexport const shouldDisplayResaleButton = (buttonCriteria = null, ballotCriteria = null, membership = null) => {\r\n var showResaleButton = false;\r\n\r\n if( isNullOrUndefined(membership) || !hasValue(buttonCriteria)) return showResaleButton;\r\n\r\n const userMemberships = membership.toLowerCase().split(';').filter(m => m);;\r\n const criteriaList = buttonCriteria.toLowerCase().split(';').filter(criterion => criterion);\r\n\r\n if ( hasValue(ballotCriteria) ) {\r\n if (criteriaList.includes(ballotCriteria.toLowerCase())) {\r\n showResaleButton = true;\r\n }\r\n }\r\n\r\n criteriaList.every(criterion => {\r\n if(userMemberships.includes(criterion.toLowerCase())){\r\n showResaleButton = true;\r\n return false;\r\n }\r\n\r\n return true;\r\n });\r\n\r\n return showResaleButton;\r\n};\r\n\r\nexport const shouldDisplayResaleSection = (buyButtonCriteria = null, sellButtonCriteria = null, ballotCriteria = null, membership = null) => {\r\n const showBuyLink = shouldDisplayResaleButton(buyButtonCriteria, ballotCriteria, membership);\r\n const showSellLink = shouldDisplayResaleButton(sellButtonCriteria, ballotCriteria, membership);\r\n\r\n return showBuyLink || showSellLink;\r\n};","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport _ from 'lodash';\r\nimport ResaleTicketsButton from './ResaleTicketsButton';\r\nimport ResaleTicketsFAQ from './ResaleTicketsFAQ';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport './resale-tickets.scss';\r\nimport {\r\n shouldDisplayResaleButton,\r\n} from './resale-tickets-helpers';\r\nimport { addQueryParam, getMultilineText, getOauthReturnUrl } from '../../../../../general/js/utils';\r\n\r\nclass ResaleTickets extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.handleTicketsResaleBuy = this.handleTicketsResaleBuy.bind(this);\r\n this.handleTicketsResaleSell = this.handleTicketsResaleSell.bind(this);\r\n this.getOauthResaleRedirectUri = this.getOauthResaleRedirectUri.bind(this);\r\n }\r\n\r\n handleTicketsResaleBuy(event) {\r\n event.preventDefault();\r\n const { actions, formData } = this.props;\r\n\r\n actions.handleRedirectToResaleTickets({\r\n resaleTicketsUrl: formData.buyLink,\r\n secutixResaleUrl: formData.secutixResaleUrl,\r\n secutixPointOfSaleId: formData.secutixPointOfSaleId,\r\n secutixVirtualOperator: formData.secutixVirtualOperator,\r\n redirectUri: this.getOauthResaleRedirectUri()\r\n });\r\n }\r\n\r\n getOauthResaleRedirectUri() {\r\n const { renderedComponent } = this.props;\r\n\r\n const returnUri = getOauthReturnUrl({\r\n useEncode: false\r\n });\r\n\r\n if (returnUri.includes('account/profile')) {\r\n return encodeURIComponent(addQueryParam(returnUri, 'componentToRender', renderedComponent));\r\n }\r\n\r\n return encodeURIComponent(returnUri);\r\n }\r\n\r\n handleTicketsResaleSell(event) {\r\n event.preventDefault();\r\n const { actions, formData } = this.props;\r\n actions.handleRedirectToResaleTickets({\r\n resaleTicketsUrl: formData.sellLink,\r\n secutixResaleUrl: formData.secutixResaleUrl,\r\n secutixPointOfSaleId: formData.secutixPointOfSaleId,\r\n secutixVirtualOperator: formData.secutixVirtualOperator,\r\n redirectUri: this.getOauthResaleRedirectUri()\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n formData,\r\n accountData,\r\n } = this.props;\r\n const {\r\n resaleTicketsTitle,\r\n resaleTicketsInformationOpen,\r\n sellButtonCriteria,\r\n buyButtonCriteria,\r\n resaleTicketsImageSource,\r\n resaleTicketsImageText,\r\n resaleTicketsFAQTitle,\r\n resaleTicketsFAQs,\r\n resaleTicketsIntro\r\n } = formData;\r\n\r\n const { ballotCriteria } = accountData;\r\n const { membership } = accountData;\r\n\r\n const showBuyLink = shouldDisplayResaleButton(buyButtonCriteria, ballotCriteria, membership);\r\n const showSellLink = shouldDisplayResaleButton(sellButtonCriteria, ballotCriteria, membership);\r\n\r\n const texts = getMultilineText(resaleTicketsInformationOpen);\r\n\r\n return (\r\n \r\n

    {resaleTicketsTitle}

    \r\n
    \r\n

    {resaleTicketsIntro}

    \r\n
    \r\n
    \r\n
    \r\n {texts.map((introText) => {\r\n return

    {introText}

    ;\r\n })}\r\n
    \r\n
    \r\n {showBuyLink &&\r\n }\r\n {showSellLink &&\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {texts.map((introText) => {\r\n return

    {introText}

    ;\r\n })}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {!_.isEmpty(resaleTicketsImageText) &&\r\n

    {resaleTicketsImageText}

    }\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nResaleTickets.propTypes = {\r\n formData: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n homePageTicketsData: state.userAccount.homePageTicketsData,\r\n loadHomePageTicketsDataErrorMessages: state.userAccount.loadHomePageTicketsDataErrorMessages,\r\n isTicketsDataLoadedSuccessful: state.userAccount.isTicketsDataLoadedSuccessful,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n handleRedirectToResaleTickets: bindActionCreators(userAccountActions.handleRedirectToResaleTickets, dispatch),\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ResaleTickets);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../../utils/constants/form-message-constants';\r\n\r\nfunction Order({\r\n orderItem,\r\n orderTypeValues,\r\n fileStateValues,\r\n onViewFileDetailsClick\r\n}) {\r\n function handleViewFileDetailsClick(event, fileNumber) {\r\n event.preventDefault();\r\n onViewFileDetailsClick(fileNumber);\r\n }\r\n\r\n function displayOrderItem() {\r\n return (\r\n
  • \r\n
    \r\n
    {orderTypeValues[orderItem.orderTypeIndex]}
    \r\n

    \r\n {formMessageConstants.fileNumber}\r\n {orderItem.fileNumber}\r\n

    \r\n

    \r\n {formMessageConstants.fileStatus}\r\n {fileStateValues[orderItem.fileStateIndex]}\r\n

    \r\n

    \r\n {formMessageConstants.lastUpdate}\r\n {orderItem.formattedLastUpdate}\r\n

    \r\n

    \r\n {formMessageConstants.fileAmount}\r\n {orderItem.formattedFileAmount}\r\n

    \r\n
    \r\n \r\n
  • \r\n );\r\n }\r\n\r\n return displayOrderItem();\r\n}\r\n\r\nOrder.propTypes = {\r\n orderItem: PropTypes.object.isRequired,\r\n orderTypeValues: PropTypes.object.isRequired,\r\n fileStateValues: PropTypes.object.isRequired,\r\n onViewFileDetailsClick: PropTypes.func.isRequired\r\n};\r\n\r\nexport default Order;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction OrdersPagination({ numberOfPages, activePageNumber, onPageNumberChange }) {\r\n function displayPagination() {\r\n const pagination = [];\r\n\r\n if (!shouldDisplayPaginator()) {\r\n return pagination;\r\n }\r\n\r\n if (activePageNumber >= 3) {\r\n pagination.push(getFirstPageNumber());\r\n }\r\n\r\n if (activePageNumber > 3) {\r\n pagination.push(getSpreadButton());\r\n }\r\n\r\n const pageNumberButtons = getPageNumberButtons();\r\n const updatedPagination = pagination.concat(pageNumberButtons);\r\n\r\n if (activePageNumber < numberOfPages - 2) {\r\n updatedPagination.push(...);\r\n }\r\n\r\n updatedPagination.push(getLastPageNumber());\r\n return updatedPagination;\r\n }\r\n\r\n function shouldDisplayPaginator() {\r\n return activePageNumber > 0 && numberOfPages >= activePageNumber;\r\n }\r\n\r\n function getFirstPageNumber() {\r\n return { goToPage(e, 1); }}\r\n className={`page ${activePageNumber === 1 ? 'active' : ''}`}>{'1'};\r\n }\r\n\r\n function getSpreadButton() {\r\n return ...;\r\n }\r\n\r\n function getPageNumberButtons() {\r\n const pageNumberButtons = [];\r\n for (let i = activePageNumber - 1; i < activePageNumber + 2; i++) {\r\n if (i > 0 && i < numberOfPages) {\r\n pageNumberButtons.push( { goToPage(e, i); }}\r\n className={`page ${i === activePageNumber ? 'active' : ''}`}>\r\n {`${i}`}\r\n );\r\n }\r\n }\r\n\r\n return pageNumberButtons;\r\n }\r\n\r\n function getLastPageNumber() {\r\n return { goToPage(e, numberOfPages); }}\r\n className={`page ${activePageNumber === numberOfPages ? 'active' : ''}`}>\r\n {`${numberOfPages}`}\r\n ;\r\n }\r\n\r\n function goToPage(event, pageNumber) {\r\n event.preventDefault();\r\n\r\n onPageNumberChange(pageNumber);\r\n }\r\n\r\n function nextPage() {\r\n onPageNumberChange(activePageNumber + 1 > numberOfPages ? numberOfPages : activePageNumber + 1);\r\n }\r\n\r\n function prevPage() {\r\n onPageNumberChange(activePageNumber - 1 < 1 ? 1 : activePageNumber - 1);\r\n }\r\n\r\n return (\r\n
    \r\n {shouldDisplayPaginator() ? \r\n \r\n : null}\r\n {displayPagination()}\r\n {shouldDisplayPaginator() ? \r\n \r\n : null}\r\n
    \r\n );\r\n}\r\n\r\nOrdersPagination.propTypes = {\r\n numberOfPages: PropTypes.number.isRequired,\r\n activePageNumber: PropTypes.number.isRequired,\r\n onPageNumberChange: PropTypes.func.isRequired\r\n};\r\n\r\n\r\nexport default OrdersPagination;\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport Order from './Order';\r\nimport { isEmpty } from '../../../utils/obj-utils';\r\nimport OrdersPagination from './OrdersPagination';\r\nimport { formMessageConstants } from '../../../utils/constants/form-message-constants';\r\nimport FormMessage from '../../../common/utility/FormMessage';\r\nimport { formConstants } from '../../../utils/constants/form-constants';\r\nimport withLoadingInterval from '../../../hocComponents';\r\n\r\nfunction OrdersList({\r\n formData = {},\r\n displayCancelledFiles,\r\n orders,\r\n orderTypeValues,\r\n numberOfPages,\r\n orderHistoryActivePageNumber,\r\n onViewFileDetailsClick,\r\n handleDisplayCancelledFilesChange,\r\n handlePageNumberChange,\r\n loading,\r\n elapsedTime\r\n}) {\r\n function displayNoOrderAvailableText() {\r\n const { noOrdersFoundText } = formData;\r\n if (loading || !isEmpty(orders)) {\r\n return null;\r\n }\r\n\r\n return (
    \r\n

    {formMessageConstants.information}

    \r\n

    {noOrdersFoundText}

    \r\n
    );\r\n }\r\n\r\n function displayLoadingError() {\r\n const errorMessage = formData[formConstants.loadingErrorMessage];\r\n if (!errorMessage) {\r\n return null;\r\n }\r\n return ;\r\n }\r\n\r\n function displayOrderList() {\r\n if (loading || isEmpty(orders)) {\r\n return null;\r\n }\r\n\r\n const { fileState } = formData;\r\n return orders.map((orderHistoryItem, index) => {\r\n return ();\r\n });\r\n }\r\n\r\n function displayPagination() {\r\n if (loading || isEmpty(orders)) {\r\n return null;\r\n }\r\n\r\n if (numberOfPages <= 1) {\r\n return null;\r\n }\r\n\r\n return ;\r\n }\r\n\r\n const elapsedTimeLimit = formData[formConstants.elapsedTimeLimit];\r\n\r\n return (\r\n \r\n {!isEmpty(orders) &&\r\n
    \r\n

    {formMessageConstants.display}:

    \r\n \r\n
    }\r\n
    \r\n {displayNoOrderAvailableText()}\r\n {elapsedTime > elapsedTimeLimit && displayLoadingError()}\r\n
    \r\n
      \r\n {displayOrderList()}\r\n
    \r\n
    \r\n {displayPagination()}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nOrdersList.propTypes = {\r\n formData: PropTypes.object.isRequired,\r\n displayCancelledFiles: PropTypes.bool.isRequired,\r\n orders: PropTypes.array.isRequired,\r\n orderTypeValues: PropTypes.object.isRequired,\r\n numberOfPages: PropTypes.number.isRequired,\r\n orderHistoryActivePageNumber: PropTypes.number.isRequired,\r\n onViewFileDetailsClick: PropTypes.func.isRequired,\r\n handleDisplayCancelledFilesChange: PropTypes.func.isRequired,\r\n handlePageNumberChange: PropTypes.func.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps)(withLoadingInterval(OrdersList));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { fileState } from '../../../utils/file-state';\r\nimport { formMessageConstants } from '../../../utils/constants/form-message-constants';\r\nimport { formConstants } from '../../../utils/constants/form-constants';\r\nimport SSOCloseButton from '../../../common/utility/SSOCloseButton';\r\n\r\nfunction FileSummary({\r\n orderItem,\r\n orderTypeValues,\r\n fileStateValues,\r\n onPrintSummaryButtonClick,\r\n onCancelButtonClick,\r\n onCloseButtonClick,\r\n onPayReservationClick,\r\n showCancelButton\r\n}) {\r\n const {\r\n fileNumber,\r\n channel,\r\n status,\r\n created,\r\n formattedFileAmount,\r\n fileContact,\r\n orderType\r\n } = orderItem;\r\n\r\n function handleOnCancelClick(event) {\r\n event.preventDefault();\r\n onCancelButtonClick();\r\n }\r\n\r\n function handleOnPrintSummaryButtonClick(event) {\r\n event.preventDefault();\r\n onPrintSummaryButtonClick(fileNumber);\r\n }\r\n\r\n function handleOnPayReservationClick(event) {\r\n event.preventDefault();\r\n onPayReservationClick(fileNumber);\r\n }\r\n\r\n function isInReservation() {\r\n return status === formConstants.SecutixReservationStatus \r\n || (orderType === formConstants.SecutixReservationOrderType\r\n && status === formConstants.SecutixReservationRunningStatus);\r\n }\r\n\r\n return (\r\n
    \r\n\r\n \r\n

    {formMessageConstants.fileSummary}

    \r\n
    {orderTypeValues[orderItem.orderTypeIndex]}
    \r\n

    \r\n {formMessageConstants.fileNumber}\r\n {fileNumber}\r\n

    \r\n

    \r\n {formMessageConstants.fileStatus}\r\n {fileStateValues[fileState[status]]}\r\n

    \r\n

    \r\n {formMessageConstants.fileContact}\r\n {fileContact}\r\n

    \r\n

    \r\n {formMessageConstants.fileAmount}\r\n {formattedFileAmount}\r\n

    \r\n \r\n
    \r\n );\r\n}\r\n\r\nFileSummary.propTypes = {\r\n orderItem: PropTypes.object.isRequired,\r\n orderTypeValues: PropTypes.object.isRequired,\r\n fileStateValues: PropTypes.object.isRequired,\r\n onPrintSummaryButtonClick: PropTypes.func.isRequired,\r\n onPayReservationClick: PropTypes.func.isRequired,\r\n onCancelButtonClick: PropTypes.func.isRequired,\r\n onCloseButtonClick: PropTypes.func.isRequired,\r\n showCancelButton: PropTypes.bool.isRequired\r\n};\r\n\r\n\r\nexport default FileSummary;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../../utils/constants/form-message-constants';\r\nimport { isEmpty } from '../../../utils/obj-utils';\r\n\r\nfunction FileContentSummary({ fileContents, noProductsFoundText }) {\r\n function displayProducts() {\r\n if (isEmpty(fileContents)) {\r\n return (
    \r\n

    {noProductsFoundText}

    \r\n
    );\r\n }\r\n\r\n return fileContents.map((fileContent, index) => {\r\n const isLast = index + 1 === fileContents.length;\r\n return (\r\n
    \r\n
    \r\n \r\n {displayInfoText(fileContent)}\r\n
    \r\n {displayFunctionContentTable(fileContent)}\r\n
    );\r\n });\r\n }\r\n\r\n function displayInfoText({ name, details }) {\r\n return (
    \r\n

    {`${name || formMessageConstants.emptyString}`}

    \r\n

    {`${details || formMessageConstants.emptyString}`}

    \r\n
    );\r\n }\r\n\r\n function displayFunctionContentTable({ fileContentItems, formattedTotalAmount }) {\r\n return fileContentItems.map((fileContentItem, index) => {\r\n const isLast = index + 1 === fileContentItems.length;\r\n return (\r\n
    \r\n
    \r\n
    {formMessageConstants.Type}
    \r\n
    {formMessageConstants.qty}
    \r\n
    {formMessageConstants.unitPrice}
    \r\n
    {formMessageConstants.subTotal}
    \r\n
    \r\n\r\n
    \r\n
    {`${fileContentItem.type}`}
    \r\n
    {`${fileContentItem.quantity}`}
    \r\n
    {`${fileContentItem.formattedUnitPrice}`}
    \r\n
    {`${fileContentItem.formattedSubTotal}`}
    \r\n
    \r\n\r\n {isLast && (
    \r\n
    {`Sub-total = ${formattedTotalAmount}`}
    \r\n
    )}\r\n
    );\r\n });\r\n }\r\n\r\n return (\r\n
    \r\n

    {formMessageConstants.fileContent}

    \r\n {displayProducts()}\r\n
    \r\n );\r\n}\r\n\r\nFileContentSummary.propTypes = {\r\n fileContents: PropTypes.array.isRequired,\r\n noProductsFoundText: PropTypes.string\r\n};\r\n\r\nexport default FileContentSummary;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { isEmpty } from '../../../utils/obj-utils';\r\nimport { formMessageConstants } from '../../../utils/constants/form-message-constants';\r\n\r\nfunction InstallmentTable({ installments }) {\r\n function displayInstallmentsTable() {\r\n if (isEmpty(installments)) {\r\n return null;\r\n }\r\n\r\n return (
    \r\n

    {formMessageConstants.installments}

    \r\n
    \r\n
    \r\n
    {formMessageConstants.dueDate}
    \r\n
    {formMessageConstants.amountDue}
    \r\n
    {formMessageConstants.amountPaid}
    \r\n
    {formMessageConstants.paymentDate}
    \r\n
    \r\n {displayInstallmentRows(installments)}\r\n
    \r\n
    );\r\n }\r\n\r\n function displayInstallmentRows() {\r\n return installments.map((installment, index) => {\r\n return displayInstallmentRow(installment, index);\r\n });\r\n }\r\n function displayInstallmentRow(installment, index) {\r\n return (
    \r\n
    {formMessageConstants.dueDate}{installment.formattedDueDate}
    \r\n
    {formMessageConstants.amountDue}{installment.formattedAmountDue}
    \r\n
    {formMessageConstants.amountPaid}{installment.formattedAmountPaid}
    \r\n
    {formMessageConstants.paymentDate}\r\n \r\n {isEmpty(installment.paymentDate) ?\r\n \r\n \r\n \r\n \r\n {formMessageConstants.payByCreditCard}\r\n : installment.paymentDate}\r\n \r\n
    \r\n
    );\r\n }\r\n\r\n return displayInstallmentsTable();\r\n}\r\n\r\nInstallmentTable.propTypes = {\r\n installments: PropTypes.array.isRequired\r\n};\r\n\r\nexport default InstallmentTable;\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport InstallmentTable from './InstallmentTable';\r\nimport { formMessageConstants } from '../../../utils/constants/form-message-constants';\r\nimport { isEmpty } from '../../../utils/obj-utils';\r\n\r\nfunction PaymentSummary({ paymentSummary, noPaymentSummaryFoundText, country }) {\r\n function displayPaymentSummary() {\r\n const isPaymentSummaryEmpty = isEmpty(paymentSummary);\r\n const foundCountry = getCountry();\r\n return (\r\n
    \r\n

    {formMessageConstants.paymentSummary}

    \r\n
    \r\n {isPaymentSummaryEmpty ?\r\n
    \r\n

    {noPaymentSummaryFoundText}

    \r\n
    :\r\n \r\n

    \r\n {formMessageConstants.amountInvoiced}\r\n {paymentSummary.formattedAmountInvoiced}\r\n

    \r\n \r\n
    \r\n

    \r\n {formMessageConstants.totalAmountPaid}\r\n {paymentSummary.formattedTotalAmountPaid}\r\n

    \r\n

    \r\n {formMessageConstants.paymentMethod}\r\n {paymentSummary.paymentMethod}\r\n

    \r\n

    \r\n {formMessageConstants.lastStatus}\r\n {paymentSummary.lastStatus}\r\n

    \r\n

    \r\n {formMessageConstants.lastPayment}\r\n {paymentSummary.formattedLastPaymentDate}\r\n

    \r\n

    \r\n {formMessageConstants.billingContactName}\r\n {paymentSummary.billingContactName}\r\n

    \r\n

    \r\n {formMessageConstants.billingContactDetails}\r\n {paymentSummary.billingContactDetails}\r\n

    \r\n
    \r\n

    \r\n {formMessageConstants.billingAddress}\r\n {isEmpty(paymentSummary.billingAddress) ?\r\n null :\r\n < span className='right'>\r\n {displayAddressLine1()}\r\n {displayAddressLine2()}\r\n {displayAddressLine3()}\r\n {displayCity()}\r\n {displayPostcode()}\r\n {!isEmpty(foundCountry) ? foundCountry.label : paymentSummary.billingAddress.country}\r\n }\r\n

    \r\n
    }\r\n
    \r\n
    );\r\n }\r\n\r\n function getCountry() {\r\n if (isEmpty(paymentSummary)) {\r\n return formMessageConstants.emptyString;\r\n }\r\n\r\n return isEmpty(paymentSummary.billingAddress) ?\r\n formMessageConstants.emptyString :\r\n country.options.find((option) => option.code === paymentSummary.billingAddress.country);\r\n }\r\n\r\n\r\n function displayAddressLine1() {\r\n if (isEmpty(paymentSummary.billingAddress.addressLine1)) {\r\n return null;\r\n }\r\n return {paymentSummary.billingAddress.addressLine1} < br >
    ;\r\n }\r\n\r\n function displayAddressLine2() {\r\n if (isEmpty(paymentSummary.billingAddress.addressLine2)) {\r\n return null;\r\n }\r\n return {paymentSummary.billingAddress.addressLine2} < br >
    ;\r\n }\r\n\r\n function displayAddressLine3() {\r\n if (isEmpty(paymentSummary.billingAddress.addressLine3)) {\r\n return null;\r\n }\r\n return {paymentSummary.billingAddress.addressLine3} < br >
    ;\r\n }\r\n\r\n function displayCity() {\r\n if (isEmpty(paymentSummary.billingAddress.city)) {\r\n return null;\r\n }\r\n return {paymentSummary.billingAddress.city} < br >
    ;\r\n }\r\n\r\n function displayPostcode() {\r\n if (isEmpty(paymentSummary.billingAddress.postcode)) {\r\n return null;\r\n }\r\n return {paymentSummary.billingAddress.postcode} < br >
    ;\r\n }\r\n\r\n return displayPaymentSummary();\r\n}\r\n\r\nPaymentSummary.propTypes = {\r\n paymentSummary: PropTypes.object.isRequired,\r\n country: PropTypes.object.isRequired,\r\n noPaymentSummaryFoundText: PropTypes.string\r\n};\r\n\r\nexport default PaymentSummary;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../../utils/constants/form-message-constants';\r\nimport { isEmpty } from '../../../utils/obj-utils';\r\n\r\nfunction ChangeHistorySection({\r\n historyContents,\r\n onPrintDocumentInvoiceButtonClick,\r\n orderTypeValues,\r\n noHistoryDataFoundText,\r\n}) {\r\n function handleOnPrintDocumentInvoiceButtonClick(event, orderId) {\r\n event.preventDefault();\r\n onPrintDocumentInvoiceButtonClick(orderId);\r\n }\r\n\r\n function displayHistorySection() {\r\n const isHistoryContentsEmpty = isEmpty(historyContents);\r\n\r\n return (
    \r\n

    {formMessageConstants.changeHistory}

    \r\n\r\n {isHistoryContentsEmpty ?\r\n
    \r\n

    {noHistoryDataFoundText}

    \r\n
    :\r\n
    \r\n
    \r\n
    {formMessageConstants.order}
    \r\n
    {formMessageConstants.type}
    \r\n
    {formMessageConstants.open}
    \r\n
    {formMessageConstants.confirmed}
    \r\n
    \r\n {displayHistorySummary()}\r\n
    }\r\n
    );\r\n }\r\n\r\n function displayHistorySummary() {\r\n const historyContentsLength = historyContents.length;\r\n return historyContents.map((historyContent, index) => {\r\n const isLast = historyContentsLength === index + 1;\r\n return (
    \r\n
    {formMessageConstants.order}{historyContent.orderId}
    \r\n
    {formMessageConstants.type}{orderTypeValues[historyContent.orderTypeIndex]}
    \r\n
    {formMessageConstants.open}{historyContent.formattedOpen}
    \r\n
    {formMessageConstants.confirmed}{historyContent.formattedConfirmed}
    \r\n
    );\r\n });\r\n }\r\n return displayHistorySection();\r\n}\r\n\r\nChangeHistorySection.propTypes = {\r\n historyContents: PropTypes.array.isRequired,\r\n orderTypeValues: PropTypes.object.isRequired,\r\n onPrintDocumentInvoiceButtonClick: PropTypes.func.isRequired,\r\n noHistoryDataFoundText: PropTypes.string\r\n};\r\n\r\nexport default ChangeHistorySection;\r\n","import React, { Fragment } from 'react';\r\nimport OrdersList from '../forms/user-order-history/order-history-display/OrdersList';\r\nimport FileSummary from '../forms/user-order-history/file-summary-display/FileSummary';\r\nimport FileContentSummary from '../forms/user-order-history/file-summary-display/FileContentSummary';\r\nimport PaymentSummary from '../forms/user-order-history/file-summary-display/PaymentSummary';\r\nimport ChangeHistorySection from '../forms/user-order-history/file-summary-display/ChangeHistorySection';\r\n\r\nexport const orderHistoryFormConstants = {\r\n /* eslint-disable */\r\n orderHistoryDisplayForm: ({\r\n formData,\r\n displayCancelledFiles,\r\n orderHistoryData,\r\n orderHistoryPages,\r\n orderHistoryActivePageNumber,\r\n handleViewFileDetailsClick,\r\n handleDisplayCancelledFilesChange,\r\n handlePageNumberChange }) => {\r\n const { orderType } = formData;\r\n return \r\n },\r\n fileDetailsDisplayForm: ({\r\n formData,\r\n orderHistoryForDisplay,\r\n handlePrintSummaryButton,\r\n handlePrintDocumentInvoiceButtonClick,\r\n handleCloseFormButton,\r\n handlePayReservationClick\r\n }) => {\r\n const {\r\n noProductsFoundText,\r\n noPaymentSummaryFoundText,\r\n noHistoryDataFoundText,\r\n country,\r\n fileState,\r\n orderType,\r\n showCancelButton } = formData;\r\n const { files, paymentSummary, history } = orderHistoryForDisplay;\r\n return \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n },\r\n /* eslint-enable */\r\n};\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport BasketDialogBoxContentBody from 'general/js/basket/basket-dialog-box-content-body';\r\nimport ConfirmationModal from '../../common/utility/ConfirmationModal';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport { orderHistoryFormConstants } from '../../utils/order-history-form-constants';\r\nimport { orderHistoryFormStateConstants } from '../helpers/form-helpers/user-account/order-history-form-state';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport { isNullOrUndefined } from '../../../../../general/js/general-helpers';\r\n\r\nclass UserOrderHistory extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const { fileNumberForDisplay } = props;\r\n this.state = initialState.orderHistoryFormState;\r\n this.state.fileNumberForDisplay = fileNumberForDisplay;\r\n this.state.showPopup = false;\r\n this.state.fileNumber = null;\r\n\r\n this.loadOrderHistoryData = this.loadOrderHistoryData.bind(this);\r\n this.reloadOrderHistoryData = this.reloadOrderHistoryData.bind(this);\r\n this.displayOrderHistoryForm = this.displayOrderHistoryForm.bind(this);\r\n this.handleViewFileDetailsClick = this.handleViewFileDetailsClick.bind(this);\r\n this.loadFileDetails = this.loadFileDetails.bind(this);\r\n this.handlePageNumberChange = this.handlePageNumberChange.bind(this);\r\n this.handleDisplayCancelledFilesChange = this.handleDisplayCancelledFilesChange.bind(this);\r\n this.handlePrintSummaryButton = this.handlePrintSummaryButton.bind(this);\r\n this.handlePayReservationClick = this.handlePayReservationClick.bind(this);\r\n this.handlePrintDocumentInvoiceButtonClick = this.handlePrintDocumentInvoiceButtonClick.bind(this);\r\n this.handleCloseFileDetailsDisplayForm = this.handleCloseFileDetailsDisplayForm.bind(this);\r\n this.toggleModalClose = this.toggleModalClose.bind(this);\r\n this.handlePayReservation = this.handlePayReservation.bind(this);\r\n\r\n this.loadOrderHistoryData();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n loading,\r\n areOrderDetailsLoadedSuccessful,\r\n orderDetails\r\n } = nextProps;\r\n const { fileNumberForDisplay } = this.state;\r\n if (!loading &&\r\n fileNumberForDisplay !== 0 &&\r\n areOrderDetailsLoadedSuccessful) {\r\n this.setState(formStateHelpers.updateFileSummaryFormState(orderHistoryFormStateConstants.FileDetailsDisplayForm, orderDetails));\r\n }\r\n }\r\n\r\n loadOrderHistoryData() {\r\n const {\r\n actions, formData, orderHistoryData, displayCancelledFiles\r\n } = this.props;\r\n const { fileNumberForDisplay } = this.state;\r\n\r\n if (fileNumberForDisplay !== 0) {\r\n this.loadFileDetails();\r\n return;\r\n }\r\n\r\n if (!isEmpty(orderHistoryData)) {\r\n return;\r\n }\r\n\r\n this.loadOrders(actions, formData, displayCancelledFiles);\r\n }\r\n\r\n loadOrders(actions, formData, displayCancelledFiles) {\r\n const { orderHistoryActivePageNumber } = this.state;\r\n\r\n actions.getOrderHistoryPages(formData.getOrderHistoryPagesCallbackUrl,\r\n { displayCancelledFiles, [formConstants.ssoDomain]: formData[formConstants.ssoDomain] });\r\n\r\n actions.getOrderHistory(formData.getOrderHistoryCallbackUrl,\r\n {\r\n pageNumber: orderHistoryActivePageNumber,\r\n displayCancelledFiles,\r\n [formConstants.ssoDomain]: formData[formConstants.ssoDomain]\r\n });\r\n }\r\n\r\n reloadOrderHistoryData() {\r\n const { actions, formData } = this.props;\r\n const { displayCancelledFiles } = this.state;\r\n this.loadOrders(actions, formData, displayCancelledFiles);\r\n }\r\n\r\n handleViewFileDetailsClick(fileNumber) {\r\n this.setState(formStateHelpers.updateFileNumberForDisplay(fileNumber), this.loadFileDetails);\r\n }\r\n\r\n loadFileDetails() {\r\n const { actions, formData } = this.props;\r\n const { getOrderDetailsCallbackUrl } = formData;\r\n const { fileNumberForDisplay } = this.state;\r\n actions.getOrderDetails(getOrderDetailsCallbackUrl,\r\n { fileNumber: fileNumberForDisplay, [formConstants.ssoDomain]: formData[formConstants.ssoDomain] });\r\n }\r\n\r\n handlePageNumberChange(pageNumber) {\r\n this.setState(formStateHelpers.updateOrderHistoryActivePageNumber(pageNumber), this.reloadOrderHistoryData);\r\n }\r\n\r\n handleDisplayCancelledFilesChange() {\r\n this.setState(formStateHelpers.toggleKey('displayCancelledFiles'), this.reloadOrderHistoryData);\r\n }\r\n\r\n handlePrintSummaryButton(fileNumber) {\r\n const { actions, formData } = this.props;\r\n const { downloadFileSummaryPdfCallbackUrl } = formData;\r\n actions.downloadPdfDocumentById(downloadFileSummaryPdfCallbackUrl,\r\n { id: fileNumber, [formConstants.ssoDomain]: formData[formConstants.ssoDomain] });\r\n }\r\n\r\n handlePayReservationClick(fileNumber) {\r\n const { actions, formData } = this.props;\r\n const { resumePaymentCallbackUrl, secutixAuthUrl } = formData;\r\n\r\n if (formData.showDialogBox) { this.setState({ showPopup: !this.state.showPopup, fileNumber }); } else {\r\n actions.resumePaymentByFileNumber({ resumePaymentCallbackUrl, secutixAuthUrl },\r\n { fileNumber, [formConstants.ssoDomain]: formData[formConstants.ssoDomain] });\r\n }\r\n }\r\n\r\n handlePayReservation() {\r\n const { actions, formData } = this.props;\r\n const { resumePaymentCallbackUrl, secutixAuthUrl } = formData;\r\n const { fileNumber } = this.state;\r\n\r\n actions.resumePaymentByFileNumber({ resumePaymentCallbackUrl, secutixAuthUrl },\r\n { fileNumber, [formConstants.ssoDomain]: formData[formConstants.ssoDomain] });\r\n }\r\n\r\n toggleModalClose() {\r\n this.setState({ showPopup: false });\r\n }\r\n\r\n handlePrintDocumentInvoiceButtonClick(documentId) {\r\n const { actions, formData } = this.props;\r\n const { downloadDocumentPdfCallbackUrl } = formData;\r\n actions.downloadPdfDocumentById(downloadDocumentPdfCallbackUrl,\r\n { id: documentId, [formConstants.ssoDomain]: formData[formConstants.ssoDomain] });\r\n }\r\n\r\n handleCloseFileDetailsDisplayForm() {\r\n this.setState(formStateHelpers.updateOrderHistoryDisplayFormState(orderHistoryFormStateConstants.OrderHistoryDisplayForm), this.loadOrderHistoryData);\r\n }\r\n\r\n displayOrderHistoryForm() {\r\n const { formState, orderHistoryForDisplay, orderHistoryActivePageNumber } = this.state;\r\n const { displayCancelledFiles } = this.props;\r\n const { formData, orderHistoryData, orderHistoryPages } = this.props;\r\n const orderHistoryDisplayData = {\r\n formData,\r\n displayCancelledFiles,\r\n orderHistoryData,\r\n orderHistoryPages,\r\n orderHistoryActivePageNumber,\r\n orderHistoryForDisplay,\r\n handleViewFileDetailsClick: this.handleViewFileDetailsClick,\r\n handleDisplayCancelledFilesChange: this.handleDisplayCancelledFilesChange,\r\n handlePageNumberChange: this.handlePageNumberChange,\r\n handlePrintSummaryButton: this.handlePrintSummaryButton,\r\n handlePayReservationClick: this.handlePayReservationClick,\r\n handlePrintDocumentInvoiceButtonClick: this.handlePrintDocumentInvoiceButtonClick,\r\n handleCloseFormButton: this.handleCloseFileDetailsDisplayForm\r\n };\r\n\r\n return orderHistoryFormConstants[formState](orderHistoryDisplayData);\r\n }\r\n\r\n render() {\r\n const { loading, formData } = this.props;\r\n const { formTitle } = formData;\r\n const logoSrc = formData.masterCardDialogBox.logo ? formData.masterCardDialogBox.logo.src : null;\r\n return (\r\n \r\n {loading ? / : null}\r\n

    {formTitle}

    \r\n {this.displayOrderHistoryForm()}\r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nUserOrderHistory.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n formData: PropTypes.object.isRequired,\r\n fileNumberForDisplay: PropTypes.number.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n orderHistoryData: state.userAccount.orderHistoryData,\r\n orderHistoryPages: state.userAccount.orderHistoryPages,\r\n areOrderHistoryPagesLoadedSuccessful: state.userAccount.areOrderHistoryPagesLoadedSuccessful,\r\n isOrderHistoryLoadedSuccessful: state.userAccount.isOrderHistoryLoadedSuccessful,\r\n areOrderDetailsLoadedSuccessful: state.userAccount.areOrderDetailsLoadedSuccessful,\r\n orderDetails: state.userAccount.orderDetails,\r\n displayCancelledFiles: isNullOrUndefined(state.userAccount.displayCancelledFiles) ? initialState.orderHistoryFormState.displayCancelledFiles : state.userAccount.displayCancelledFiles\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n getOrderHistory: bindActionCreators(userAccountActions.getOrderHistory, dispatch),\r\n getOrderHistoryPages: bindActionCreators(userAccountActions.getOrderHistoryPages, dispatch),\r\n getOrderDetails: bindActionCreators(userAccountActions.getOrderDetails, dispatch),\r\n downloadPdfDocumentById: bindActionCreators(userAccountActions.downloadPdfDocumentById, dispatch),\r\n resumePaymentByFileNumber: bindActionCreators(userAccountActions.resumePaymentByFileNumber, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(UserOrderHistory);\r\n","import _ from 'lodash';\r\nimport { formConstants } from '../../../../utils/constants/form-constants';\r\nimport { isEmpty } from '../../../../utils/obj-utils';\r\nimport { createDateFromExisting } from '../../../../utils/date-utils';\r\nimport { domainConstants } from '../../../../utils/constants/domain-constants';\r\nimport { hasValue } from '../../../../../../../general/js/general-helpers';\r\n\r\nconst UserDetailsFormData = (\r\n {\r\n ssoDomain,\r\n ssoUserDetailsFields,\r\n updateUserDetailsCallbackUrl,\r\n removeAccountCallbackUrl\r\n },\r\n userAccountData\r\n) => {\r\n function buildUserDetailsFormData() {\r\n const formData = getUserDetailsFields();\r\n return getUserDetailsFieldsWithDefaultValues(formData);\r\n }\r\n\r\n function getUserDetailsFields() {\r\n const formData = {};\r\n const { formTitle, actionSuccessText, emailChangedConflictMessage } = ssoUserDetailsFields;\r\n formData[formConstants.formTitle] = formTitle;\r\n formData[formConstants.callBackUrl] = updateUserDetailsCallbackUrl;\r\n formData[formConstants.ssoDomain] = ssoDomain;\r\n formData[formConstants.removeAccountCallbackUrl] = removeAccountCallbackUrl;\r\n formData[formConstants.actionSuccessText] = actionSuccessText;\r\n formData[formConstants.emailChangedConflictMessage] = emailChangedConflictMessage;\r\n formData[formConstants.emailAddress] = ssoUserDetailsFields[formConstants.emailAddress];\r\n formData[formConstants.confirmEmailAddress] = ssoUserDetailsFields[formConstants.confirmEmailAddress];\r\n formData[formConstants.title] = ssoUserDetailsFields[formConstants.title];\r\n formData[formConstants.firstName] = ssoUserDetailsFields[formConstants.firstName];\r\n formData[formConstants.lastName] = ssoUserDetailsFields[formConstants.lastName];\r\n formData[formConstants.dateOfBirth] = ssoUserDetailsFields[formConstants.dateOfBirth];\r\n formData[formConstants.mainAddressLabel] = ssoUserDetailsFields[formConstants.mainAddressLabel];\r\n formData[formConstants.country] = ssoUserDetailsFields[formConstants.country];\r\n formData[formConstants.county] = ssoUserDetailsFields[formConstants.county];\r\n formData[formConstants.state] = ssoUserDetailsFields[formConstants.state];\r\n formData[formConstants.addressLine1] = ssoUserDetailsFields[formConstants.addressLine1];\r\n formData[formConstants.addressLine2] = ssoUserDetailsFields[formConstants.addressLine2];\r\n formData[formConstants.addressLine3] = ssoUserDetailsFields[formConstants.addressLine3];\r\n formData[formConstants.city] = ssoUserDetailsFields[formConstants.city];\r\n formData[formConstants.postcode] = ssoUserDetailsFields[formConstants.postcode];\r\n formData[formConstants.mobilePhone] = ssoUserDetailsFields[formConstants.mobilePhone];\r\n formData[formConstants.becomeOneClubMemberInfo] = ssoUserDetailsFields[formConstants.becomeOneClubMemberInfo];\r\n formData[formConstants.offersDetails] = ssoUserDetailsFields[formConstants.offersDetails];\r\n formData[formConstants.privacyPolicy] = ssoUserDetailsFields[formConstants.privacyPolicy];\r\n formData[formConstants.removeAccountInputText] = ssoUserDetailsFields[formConstants.removeAccountInputText];\r\n formData[formConstants.removeAccountInputWarning] = ssoUserDetailsFields[formConstants.removeAccountInputWarning];\r\n formData[formConstants.removeAccountModalWarning] = ssoUserDetailsFields[formConstants.removeAccountModalWarning];\r\n return formData;\r\n }\r\n\r\n function getUserDetailsFieldsWithDefaultValues(formData) {\r\n const { isOneClubMember } = userAccountData;\r\n const isWomensOpen = ssoDomain === domainConstants.womensOpen;\r\n\r\n formData[formConstants.emailAddress].defaultValue = userAccountData[formConstants.email];\r\n formData[formConstants.confirmEmailAddress].defaultValue = userAccountData[formConstants.email];\r\n formData[formConstants.title].defaultValue = userAccountData[formConstants.title];\r\n formData[formConstants.firstName].defaultValue = userAccountData[formConstants.firstName];\r\n formData[formConstants.lastName].defaultValue = userAccountData[formConstants.lastName];\r\n\r\n if (!_.isEmpty(userAccountData[formConstants.mobilePhone])) {\r\n formData[formConstants.mobilePhone].defaultValue = {};\r\n\r\n const userMobilePhone = _.cloneDeep(userAccountData[formConstants.mobilePhone]);\r\n\r\n const userCountryCodeMobilePhonePrefix = userAccountData[formConstants.countryCodeMobilePhonePrefix];\r\n\r\n const selectedCountry = getSelectedCountry(formData, userCountryCodeMobilePhonePrefix, userMobilePhone);\r\n\r\n formData[formConstants.mobilePhone].defaultValue.selectedCountry = selectedCountry;\r\n\r\n formData[formConstants.mobilePhone].defaultValue.phoneNumber = hasValue(selectedCountry) ?\r\n userMobilePhone.replace(selectedCountry.phonePrefix, '') :\r\n userMobilePhone;\r\n }\r\n\r\n if (userAccountData.dateOfBirth !== undefined) {\r\n formData[formConstants.dateOfBirth].defaultValue = createDateFromExisting(userAccountData.dateOfBirth);\r\n }\r\n\r\n let mainAddress = {};\r\n if (!isEmpty(userAccountData.addresses)) {\r\n const foundAddress = userAccountData.addresses.find((address) => address.main);\r\n mainAddress = isEmpty(foundAddress) ? {} : foundAddress;\r\n }\r\n\r\n formData[formConstants.addressLine1].defaultValue = mainAddress.addressLine1;\r\n formData[formConstants.addressLine2].defaultValue = mainAddress.addressLine2;\r\n formData[formConstants.addressLine3].defaultValue = mainAddress.addressLine3;\r\n formData[formConstants.postcode].defaultValue = mainAddress.postcode;\r\n formData[formConstants.city].defaultValue = mainAddress.city;\r\n formData[formConstants.country].defaultValue = mainAddress.country;\r\n formData[formConstants.county].defaultValue = mainAddress.county;\r\n formData[formConstants.state].defaultValue = mainAddress.state;\r\n\r\n const optIns = userAccountData[formConstants.optIns];\r\n formData[formConstants.offersDetails].defaultValue =\r\n {\r\n [formConstants.refuseOffers]: !optIns.optedTheOpenOffersByEmail,\r\n [formConstants.acceptOffers]: optIns.optedPartnerOffersByEmail\r\n };\r\n\r\n formData[formConstants.becomeOneClubMemberInfo].isHidden = isWomensOpen || isOneClubMember;\r\n\r\n formData[formConstants.privacyPolicy].defaultValue = optIns.agreedToPrivacyPolicy;\r\n\r\n return formData;\r\n }\r\n\r\n return buildUserDetailsFormData();\r\n};\r\n\r\nfunction getSelectedCountry(formData, userCountryCodeMobilePhonePrefix, userMobilePhone) {\r\n let selectedCountry = formData[formConstants.country].options\r\n .find((country) => !_.isEmpty(country.phonePrefix) &&\r\n country.code === userCountryCodeMobilePhonePrefix);\r\n\r\n if (selectedCountry) return selectedCountry;\r\n\r\n selectedCountry = formData[formConstants.country].options\r\n .find((country) => !_.isEmpty(country.phonePrefix) &&\r\n userMobilePhone.includes(country.phonePrefix));\r\n\r\n return selectedCountry;\r\n}\r\n\r\nexport default UserDetailsFormData;\r\n","export const paymentStatus = {\r\n WAITING: 0,\r\n IN_PROGRESS: 1,\r\n AUTHORIZED: 2,\r\n PAID: 3,\r\n CANCELLED_BY_USER: 4,\r\n FAILED: 5,\r\n ABANDONED: 6,\r\n WAITING_MANUAL_VALIDATION: 7,\r\n FAILED_REJECTED: 8,\r\n};\r\n","import { paymentStatus } from '../../../../utils/payment-status';\r\nimport { orderType } from '../../../../utils/order-type';\r\nimport { fileState } from '../../../../utils/file-state';\r\n\r\nexport function getFileStates({\r\n runningFileStateText,\r\n suspendedFileStateText,\r\n inOptionFileStateText,\r\n inReservationFileStateText,\r\n optionReservFileStateText,\r\n confirmedFileStateText,\r\n soldFileStateText,\r\n notSoldFileStateText,\r\n partSoldFileStateText,\r\n canceledFileStateText,\r\n abandonedFileStateText,\r\n techErrorFileStateText,\r\n}) {\r\n const fileStates = {};\r\n\r\n fileStates[fileState.RUNNING] = runningFileStateText;\r\n fileStates[fileState.SUSPENDED] = suspendedFileStateText;\r\n fileStates[fileState.IN_OPTION] = inOptionFileStateText;\r\n fileStates[fileState.IN_RESERVATION] = inReservationFileStateText;\r\n fileStates[fileState.OPTION_RESERV] = optionReservFileStateText;\r\n fileStates[fileState.CONFIRMED] = confirmedFileStateText;\r\n fileStates[fileState.SOLD] = soldFileStateText;\r\n fileStates[fileState.NOT_SOLD] = notSoldFileStateText;\r\n fileStates[fileState.PART_SOLD] = partSoldFileStateText;\r\n fileStates[fileState.CANCELED] = canceledFileStateText;\r\n fileStates[fileState.ABANDONED] = abandonedFileStateText;\r\n fileStates[fileState.TECH_ERROR] = techErrorFileStateText;\r\n\r\n return fileStates;\r\n}\r\n\r\nexport function getPaymentStatuses({\r\n waitingPaymentStatusText,\r\n inProgressPaymentStatusText,\r\n authorizedPaymentStatusText,\r\n paidPaymentStatusText,\r\n cancelledByUserPaymentStatusText,\r\n failedPaymentStatusText,\r\n abandonedPaymentStatusText,\r\n waitingManualValidationPaymentStatusText,\r\n failedRejectedPaymentStatusText\r\n}) {\r\n const paymentStatuses = {};\r\n paymentStatuses[paymentStatus.WAITING] = waitingPaymentStatusText;\r\n paymentStatuses[paymentStatus.IN_PROGRESS] = inProgressPaymentStatusText;\r\n paymentStatuses[paymentStatus.AUTHORIZED] = authorizedPaymentStatusText;\r\n paymentStatuses[paymentStatus.PAID] = paidPaymentStatusText;\r\n paymentStatuses[paymentStatus.CANCELLED_BY_USER] = cancelledByUserPaymentStatusText;\r\n paymentStatuses[paymentStatus.FAILED] = failedPaymentStatusText;\r\n paymentStatuses[paymentStatus.ABANDONED] = abandonedPaymentStatusText;\r\n paymentStatuses[paymentStatus.WAITING_MANUAL_VALIDATION] = waitingManualValidationPaymentStatusText;\r\n paymentStatuses[paymentStatus.FAILED_REJECTED] = failedRejectedPaymentStatusText;\r\n\r\n return paymentStatuses;\r\n}\r\n\r\nexport function getOrderTypes({\r\n saleOrderTypeText,\r\n refundClientOrderTypeText,\r\n refundOrganizationOrderTypeText,\r\n exchangeOrganizationOrderTypeText,\r\n exchangeClientOrderTypeText,\r\n reservationOrderTypeText,\r\n renewalOrderTypeText,\r\n optionOrderTypeText,\r\n reservationFreeingOrderTypeText,\r\n optionFreeingOrderTypeText,\r\n stTransferOrderTypeText\r\n}) {\r\n const orderTypes = {};\r\n orderTypes[orderType.SALE] = saleOrderTypeText;\r\n orderTypes[orderType.REFUND_CLIENT] = refundClientOrderTypeText;\r\n orderTypes[orderType.REFUND_ORGANIZATION] = refundOrganizationOrderTypeText;\r\n orderTypes[orderType.EXCHANGE_ORGANIZATION] = exchangeOrganizationOrderTypeText;\r\n orderTypes[orderType.EXCHANGE_CLIENT] = exchangeClientOrderTypeText;\r\n orderTypes[orderType.RESERVATION] = reservationOrderTypeText;\r\n orderTypes[orderType.RENEWAL] = renewalOrderTypeText;\r\n orderTypes[orderType.OPTION] = optionOrderTypeText;\r\n orderTypes[orderType.RESERVATION_FREEING] = reservationFreeingOrderTypeText;\r\n orderTypes[orderType.OPTION_FREEING] = optionFreeingOrderTypeText;\r\n orderTypes[orderType.ST_TRANSFER] = stTransferOrderTypeText;\r\n\r\n return orderTypes;\r\n}\r\n\r\nexport function getActionOrderTypes({\r\n saleActionOrderTypeText,\r\n refundClientActionOrderTypeText,\r\n refundOrganizationActionOrderTypeText,\r\n exchangeOrganizationActionOrderTypeText,\r\n exchangeClientActionOrderTypeText,\r\n reservationActionOrderTypeText,\r\n renewalActionOrderTypeText,\r\n optionActionOrderTypeText,\r\n reservationFreeingActionOrderTypeText,\r\n optionFreeingActionOrderTypeText,\r\n stTransferActionOrderTypeText\r\n}) {\r\n const actionOrderTypes = {};\r\n actionOrderTypes[orderType.SALE] = saleActionOrderTypeText;\r\n actionOrderTypes[orderType.REFUND_CLIENT] = refundClientActionOrderTypeText;\r\n actionOrderTypes[orderType.REFUND_ORGANIZATION] = refundOrganizationActionOrderTypeText;\r\n actionOrderTypes[orderType.EXCHANGE_ORGANIZATION] = exchangeOrganizationActionOrderTypeText;\r\n actionOrderTypes[orderType.EXCHANGE_CLIENT] = exchangeClientActionOrderTypeText;\r\n actionOrderTypes[orderType.RESERVATION] = reservationActionOrderTypeText;\r\n actionOrderTypes[orderType.RENEWAL] = renewalActionOrderTypeText;\r\n actionOrderTypes[orderType.OPTION] = optionActionOrderTypeText;\r\n actionOrderTypes[orderType.RESERVATION_FREEING] = reservationFreeingActionOrderTypeText;\r\n actionOrderTypes[orderType.OPTION_FREEING] = optionFreeingActionOrderTypeText;\r\n actionOrderTypes[orderType.ST_TRANSFER] = stTransferActionOrderTypeText;\r\n\r\n return actionOrderTypes;\r\n}\r\n","import { formConstants } from '../../../../utils/constants/form-constants';\r\nimport {\r\n getFileStates,\r\n getPaymentStatuses,\r\n getOrderTypes,\r\n getActionOrderTypes\r\n} from './account-form-data-utils';\r\nimport { formMessageConstants } from '../../../../utils/constants/form-message-constants';\r\n\r\nconst AccountHomePageFormData = (\r\n {\r\n ssoAccountHomePageFields,\r\n ssoOrderHistoryFields,\r\n getHomePageTicketsDataCallbackUrl,\r\n ssoDomain\r\n }\r\n) => {\r\n function buildAccountHomePageFormData() {\r\n const formData = {};\r\n const {\r\n formTitle,\r\n formSubTitle,\r\n showParkingButton,\r\n showParkingButtonText,\r\n showExpiryDate,\r\n secuTixErrorMessage,\r\n parkingButtonUrl,\r\n loadingErrorMessage,\r\n elapsedTimeLimit,\r\n } = ssoAccountHomePageFields;\r\n\r\n formData[formConstants.formTitle] = formTitle;\r\n formData[formConstants.formSubTitle] = formSubTitle;\r\n formData[formConstants.getHomePageTicketsDataCallbackUrl] = getHomePageTicketsDataCallbackUrl;\r\n formData[formConstants.secuTixErrorMessage] = secuTixErrorMessage;\r\n formData[formConstants.loadingErrorMessage] = loadingErrorMessage;\r\n formData[formConstants.elapsedTimeLimit] = elapsedTimeLimit;\r\n formData[formConstants.fileState] = getFileStates(ssoOrderHistoryFields);\r\n formData[formConstants.paymentStatus] = getPaymentStatuses(ssoOrderHistoryFields);\r\n formData[formConstants.orderType] = getOrderTypes(ssoOrderHistoryFields);\r\n formData[formConstants.actionOrderType] = getActionOrderTypes(ssoAccountHomePageFields);\r\n formData[formConstants.noOrdersFoundText] = ssoOrderHistoryFields.noOrdersFoundText || formMessageConstants.noOrdersFoundText;\r\n formData[formConstants.noActionsToPerformText] = ssoOrderHistoryFields.noActionsToPerformText || formMessageConstants.noActionsToPerformText;\r\n formData[formConstants.noUpcomingEventText] = ssoOrderHistoryFields.noUpcomingEventText || formMessageConstants.noUpcomingEventText;\r\n formData[formConstants.ssoDomain] = ssoDomain;\r\n formData[formConstants.showExpiryDate] = showExpiryDate;\r\n formData[formConstants.showParkingButton] = showParkingButton;\r\n formData[formConstants.showParkingButtonText] = showParkingButtonText;\r\n formData[formConstants.parkingButtonUrl] = parkingButtonUrl;\r\n return formData;\r\n }\r\n\r\n return buildAccountHomePageFormData();\r\n};\r\n\r\nexport default AccountHomePageFormData;\r\n","import { formConstants } from '../../../../utils/constants/form-constants';\r\n\r\nconst UserAddressesDisplayFormData = (accountFormData) => {\r\n function buildUserAddressesDisplayFormData() {\r\n const { ssoUserAddressesFields, ssoUserDetailsFields } = accountFormData;\r\n const formData = {};\r\n const {\r\n formTitle,\r\n noAddressFoundText,\r\n addAddressCallBackUrl,\r\n addAddressActionSuccessText,\r\n updateAddressCallBackUrl,\r\n updateAddressActionSuccessText,\r\n cannotRemoveLastAddressMessage,\r\n cannotRemoveMainAddressMessage,\r\n cannotRemoveShippingAddressMessage,\r\n cannotRemoveBillingAddressMessage\r\n } = ssoUserAddressesFields;\r\n\r\n formData[formConstants.formTitle] = formTitle;\r\n formData[formConstants.noAddressFoundText] = noAddressFoundText;\r\n formData[formConstants.addAddress] = {};\r\n formData[formConstants.addAddress][formConstants.callBackUrl] = addAddressCallBackUrl;\r\n formData[formConstants.addAddress][formConstants.actionSuccessText] = addAddressActionSuccessText;\r\n\r\n formData[formConstants.updateAddress] = {};\r\n formData[formConstants.updateAddress][formConstants.callBackUrl] = updateAddressCallBackUrl;\r\n formData[formConstants.updateAddress][formConstants.actionSuccessText] = updateAddressActionSuccessText;\r\n\r\n formData[formConstants.cannotRemoveLastAddressMessage] = cannotRemoveLastAddressMessage;\r\n formData[formConstants.cannotRemoveMainAddressMessage] = cannotRemoveMainAddressMessage;\r\n formData[formConstants.cannotRemoveShippingAddressMessage] = cannotRemoveShippingAddressMessage;\r\n formData[formConstants.cannotRemoveBillingAddressMessage] = cannotRemoveBillingAddressMessage;\r\n\r\n formData[formConstants.country] = ssoUserAddressesFields[formConstants.country];\r\n formData[formConstants.country].options = ssoUserDetailsFields[formConstants.country].options;\r\n\r\n formData[formConstants.county] = ssoUserAddressesFields[formConstants.county];\r\n formData[formConstants.county].options = ssoUserDetailsFields[formConstants.county].options;\r\n\r\n formData[formConstants.state] = ssoUserAddressesFields[formConstants.state];\r\n formData[formConstants.state].options = ssoUserDetailsFields[formConstants.state].options;\r\n\r\n formData[formConstants.city] = ssoUserAddressesFields[formConstants.city];\r\n formData[formConstants.addressLine1] = ssoUserAddressesFields[formConstants.addressLine1];\r\n formData[formConstants.addressLine2] = ssoUserAddressesFields[formConstants.addressLine2];\r\n formData[formConstants.addressLine3] = ssoUserDetailsFields[formConstants.addressLine3];\r\n formData[formConstants.postcode] = ssoUserAddressesFields[formConstants.postcode];\r\n\r\n formData[formConstants.mainAddress] = ssoUserAddressesFields[formConstants.mainAddress];\r\n formData[formConstants.shippingAddress] = ssoUserAddressesFields[formConstants.shippingAddress];\r\n formData[formConstants.billingAddress] = ssoUserAddressesFields[formConstants.billingAddress];\r\n\r\n formData[formConstants.removeAddressInputText] = ssoUserAddressesFields[formConstants.removeAddressInputText];\r\n formData[formConstants.removeAddressModalWarning] = ssoUserAddressesFields[formConstants.removeAddressModalWarning];\r\n\r\n return formData;\r\n }\r\n\r\n\r\n return buildUserAddressesDisplayFormData();\r\n};\r\n\r\nexport default UserAddressesDisplayFormData;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\n\r\nclass TicketOwnerDialog extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.displayTicketsDialogForm = this.displayTicketsDialogForm.bind(this);\r\n this.handleSaveAndContinue = this.handleSaveAndContinue.bind(this);\r\n\r\n this.state = { modalFormData: {} };\r\n }\r\n\r\n displayTicketsDialogForm() {\r\n const { formData } = this.props;\r\n const { firstName, lastName } = formData;\r\n const modalFormData = { firstName, lastName };\r\n\r\n return FormBuilder({\r\n formData: modalFormData,\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => {\r\n const eventTarget = event.target;\r\n const fieldName = eventTarget.name;\r\n const fieldData = modalFormData[fieldName];\r\n this.setState(formStateHelpers.handleFieldChangeWithValidation(eventTarget, fieldData));\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n });\r\n }\r\n\r\n handleSaveAndContinue(event) {\r\n event.preventDefault();\r\n const { onSaveAndContinueClick } = this.props;\r\n const { firstName, lastName } = this.state;\r\n onSaveAndContinueClick(firstName, lastName);\r\n }\r\n\r\n render() {\r\n const { formData, handleCloseTicketDialog } = this.props;\r\n const { printTicketDialogText } = formData;\r\n return (\r\n
    \r\n
    \r\n {printTicketDialogText}\r\n
    \r\n {this.displayTicketsDialogForm()}\r\n
    \r\n \r\n \r\n \r\n {formMessageConstants.close}\r\n \r\n {formMessageConstants.saveAndContinue}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nTicketOwnerDialog.propTypes = {\r\n formData: PropTypes.object.isRequired,\r\n onSaveAndContinueClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default TicketOwnerDialog;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport TicketOwnerDialog from './TicketOwnerDialog';\r\n\r\nclass TicketsDisplay extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n ticketForPrint: {}\r\n };\r\n\r\n this.getTicketStatusTexts = this.getTicketStatusTexts.bind(this);\r\n this.handlePrintTicket = this.handlePrintTicket.bind(this);\r\n this.handleCloseTicketDialog = this.handleCloseTicketDialog.bind(this);\r\n this.handleSaveAndContinue = this.handleSaveAndContinue.bind(this);\r\n }\r\n\r\n getTicketStatusTexts(ticket) {\r\n const { formData } = this.props;\r\n const {\r\n ticketIsPrintableText,\r\n ticketIsNotPrintableText,\r\n ticketIsAlreadyPrintedText\r\n } = formData;\r\n\r\n if (ticket.isPrintable && ticket.isAlreadyPrinted) {\r\n return ticketIsAlreadyPrintedText;\r\n }\r\n\r\n if (ticket.isPrintable && !ticket.isAlreadyPrinted) {\r\n return ticketIsPrintableText;\r\n }\r\n\r\n return ticketIsNotPrintableText;\r\n }\r\n\r\n handlePrintTicket(event, ticket) {\r\n event.preventDefault();\r\n if (!ticket.isPrintable) {\r\n return;\r\n }\r\n\r\n this.setState((prevState) => {\r\n return {\r\n ...prevState,\r\n ticketForPrint: ticket\r\n };\r\n });\r\n }\r\n\r\n handleCloseTicketDialog(event) {\r\n event.preventDefault();\r\n this.setState((prevState) => {\r\n return {\r\n ...prevState,\r\n ticketForPrint: {}\r\n };\r\n });\r\n }\r\n\r\n handleSaveAndContinue(firstNameValue, lastNameValue) {\r\n const { onSaveAndContinueClick } = this.props;\r\n const { ticketForPrint } = this.state;\r\n onSaveAndContinueClick({ firstNameValue, lastNameValue, ticketForPrint });\r\n }\r\n\r\n render() {\r\n const { tickets, formData } = this.props;\r\n const { ticketForPrint } = this.state;\r\n return tickets.map((ticket, index) => {\r\n const isLast = index === tickets.length - 1;\r\n return \r\n
    \r\n
    \r\n
    Type {ticket.ticketType}
    \r\n
    Ticket number {ticket.ticketId}
    \r\n
    File number {ticket.fileId}
    \r\n {this.getTicketStatusTexts(ticket)}\r\n
    \r\n
    \r\n { this.handlePrintTicket(event, ticket); }}>\r\n
    \r\n
    \r\n {ticketForPrint.ticketId === ticket.ticketId ?\r\n : null}\r\n
    ;\r\n });\r\n }\r\n}\r\n\r\nTicketsDisplay.propTypes = {\r\n tickets: PropTypes.array.isRequired,\r\n onSaveAndContinueClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default TicketsDisplay;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport TicketsDisplay from './TicketsDisplay';\r\nimport { scrollToField } from '../helpers/form-scroll-helper';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\n\r\nclass TicketGroups extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.formReferences = {};\r\n const { ticketGroups } = props;\r\n\r\n this.formReferences = ticketGroups.reduce((acc, ticketGroup) => {\r\n acc[ticketGroup.productName] = React.createRef();\r\n return acc;\r\n }, {});\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { scrollTo } = nextProps;\r\n if (!isEmpty(scrollTo)) {\r\n scrollToField(scrollTo.productName);\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n const { scrollTo } = this.props;\r\n if (!isEmpty(scrollTo)) {\r\n const scrollToRef = this.formReferences[scrollTo.productName];\r\n scrollToField(scrollToRef);\r\n }\r\n }\r\n\r\n render() {\r\n const { ticketGroups, formData, onSaveAndContinueClick } = this.props;\r\n return ticketGroups.map((ticketGroup, index) => {\r\n const {\r\n ticketEvent,\r\n productName,\r\n quantity,\r\n tickets\r\n } = ticketGroup;\r\n const isLast = index === ticketGroups.length - 1;\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    {`${quantity} ticket(s) available`}
    \r\n \r\n );\r\n });\r\n }\r\n}\r\n\r\n\r\nTicketGroups.propTypes = {\r\n ticketGroups: PropTypes.array.isRequired,\r\n formData: PropTypes.object.isRequired,\r\n scrollTo: PropTypes.object.isRequired,\r\n onSaveAndContinueClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default TicketGroups;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\n\r\nfunction TicketModalBody({\r\n printTicketModalText,\r\n ticketForPrint,\r\n ticketType,\r\n ticketId,\r\n firstName,\r\n firstNameValue,\r\n lastName,\r\n lastNameValue\r\n}) {\r\n return (\r\n
    \r\n

    {printTicketModalText}

    \r\n
    \r\n

    \r\n {formMessageConstants.type}\r\n {ticketForPrint &&\r\n ticketType}\r\n

    \r\n

    \r\n {formMessageConstants.ticketNumber}\r\n {ticketForPrint &&\r\n ticketId}\r\n

    \r\n

    \r\n {firstName}\r\n {firstNameValue}\r\n

    \r\n

    \r\n {lastName}\r\n {lastNameValue}\r\n

    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nTicketModalBody.propTypes = {\r\n printTicketModalText: PropTypes.string,\r\n ticketForPrint: PropTypes.object,\r\n ticketType: PropTypes.string,\r\n ticketId: PropTypes.number,\r\n firstName: PropTypes.string,\r\n firstNameValue: PropTypes.string,\r\n lastName: PropTypes.string,\r\n lastNameValue: PropTypes.string\r\n};\r\n\r\nexport default TicketModalBody;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport _ from 'lodash';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport './user-tickets.scss';\r\nimport TicketGroups from './TicketGroups';\r\nimport ConfirmationModal from '../../common/utility/ConfirmationModal';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport TicketModalBody from './TicketModalBody';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport { isNullOrUndefined } from '../../../../../general/js/general-helpers';\r\nimport withLoadingInterval from '../../hocComponents';\r\n\r\nclass UserTickets extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = initialState.userTicketsFormState;\r\n this.loadUserTicketsData = this.loadUserTicketsData.bind(this);\r\n this.reloadUserTicketsData = this.reloadUserTicketsData.bind(this);\r\n this.displayUserTicketsForm = this.displayUserTicketsForm.bind(this);\r\n this.displayAvailableTicketsData = this.displayAvailableTicketsData.bind(this);\r\n this.displayConfirmationModal = this.displayConfirmationModal.bind(this);\r\n this.handleHideOldTicketsChange = this.handleHideOldTicketsChange.bind(this);\r\n this.handleSaveAndContinue = this.handleSaveAndContinue.bind(this);\r\n this.handlePrintTicketClick = this.handlePrintTicketClick.bind(this);\r\n this.toggleConfirmationModal = this.toggleConfirmationModal.bind(this);\r\n this.loadUserTicketsData();\r\n }\r\n\r\n displayUserTicketsForm() {\r\n const {\r\n isPdfFileDownloadedSuccessful,\r\n downloadPdfFileErrorMessages,\r\n hideOldTickets,\r\n } = this.props;\r\n\r\n return \r\n
    \r\n \r\n

    {formMessageConstants.display}:

    \r\n \r\n
    \r\n {this.displayAvailableTicketsData()}\r\n {this.displayConfirmationModal()}\r\n
    ;\r\n }\r\n\r\n displayAvailableTicketsData() {\r\n const {\r\n formData,\r\n loading,\r\n isUserTicketsDataLoadedSuccessful,\r\n userTicketsData,\r\n upcomingTicket,\r\n elapsedTime\r\n } = this.props;\r\n const { noTicketsFoundText } = formData;\r\n const shouldDisplayAvailableTickets = isUserTicketsDataLoadedSuccessful && !isEmpty(userTicketsData);\r\n const shouldDisplayNoTicketsFound = !loading &&\r\n !isUserTicketsDataLoadedSuccessful &&\r\n isEmpty(userTicketsData);\r\n\r\n const elapsedTimeLimit = formData[formConstants.elapsedTimeLimit];\r\n return
    \r\n {shouldDisplayAvailableTickets &&\r\n userTicketsData.map((userTicket, index) => {\r\n const { ticketGroups } = userTicket;\r\n return ;\r\n })}\r\n {shouldDisplayNoTicketsFound &&
    \r\n

    {noTicketsFoundText}

    \r\n
    }\r\n {elapsedTime > elapsedTimeLimit && this.displayLoadingError()}\r\n
    ;\r\n }\r\n\r\n displayConfirmationModal() {\r\n const { formData } = this.props;\r\n const { printTicketModalText, printTicketInputText } = formData;\r\n const { isTicketPrintModalOpen, printOptions } = this.state;\r\n return \r\n {!_.isEmpty(printOptions) && \r\n }\r\n ;\r\n }\r\n\r\n displayLoadingError() {\r\n const { formData } = this.props;\r\n const errorMessage = formData[formConstants.loadingErrorMessage];\r\n if (!errorMessage) {\r\n return null;\r\n }\r\n return ;\r\n }\r\n\r\n handleSaveAndContinue(printOptions) {\r\n const { firstNameValue, lastNameValue } = this.props.formData;\r\n this.setState((prevState) => {\r\n return {\r\n ...prevState,\r\n isTicketPrintModalOpen: true,\r\n printOptions: {\r\n ticketForPrint: printOptions.ticketForPrint,\r\n firstNameValue: printOptions.firstNameValue || firstNameValue,\r\n lastNameValue: printOptions.lastNameValue || lastNameValue\r\n }\r\n };\r\n });\r\n }\r\n\r\n handlePrintTicketClick(event) {\r\n event.preventDefault();\r\n const { actions, formData } = this.props;\r\n const { printOptions } = this.state;\r\n this.setState(formStateHelpers.toggleKey('isTicketPrintModalOpen'),\r\n () => {\r\n actions.downloadTicketPdf(formData.downloadTicketPdfCallbackUrl, printOptions, formData[formConstants.ssoDomain]);\r\n });\r\n }\r\n\r\n toggleConfirmationModal() {\r\n this.setState(formStateHelpers.toggleKey('isTicketPrintModalOpen'));\r\n }\r\n\r\n handleHideOldTicketsChange(event) {\r\n event.preventDefault();\r\n this.setState(formStateHelpers.toggleKey('hideOldTickets'), this.reloadUserTicketsData);\r\n }\r\n\r\n reloadUserTicketsData() {\r\n const { actions, formData } = this.props;\r\n const { hideOldTickets } = this.state;\r\n actions.getUserTickets(formData.getTicketsCallbackUrl, hideOldTickets,\r\n formData[formConstants.ssoDomain]);\r\n }\r\n\r\n loadUserTicketsData() {\r\n const {\r\n actions, formData, userTicketsData, hideOldTickets\r\n } = this.props;\r\n\r\n if (!isEmpty(userTicketsData)) {\r\n return;\r\n }\r\n\r\n actions.getUserTickets(formData.getTicketsCallbackUrl, hideOldTickets,\r\n formData[formConstants.ssoDomain]);\r\n }\r\n\r\n render() {\r\n const {\r\n loading,\r\n formData\r\n } = this.props;\r\n const { formTitle } = formData;\r\n\r\n return \r\n {loading ? / : null}\r\n

    {formTitle}

    \r\n {this.displayUserTicketsForm()}\r\n
    ;\r\n }\r\n}\r\n\r\nUserTickets.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n formData: PropTypes.object.isRequired,\r\n upcomingTicket: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n hideOldTickets: isNullOrUndefined(state.userAccount.hideOldTickets) ? initialState.userTicketsFormState.hideOldTickets : state.userAccount.hideOldTickets,\r\n userTicketsData: state.userAccount.userTicketsData,\r\n isUserTicketsDataLoadedSuccessful: state.userAccount.isUserTicketsDataLoadedSuccessful,\r\n isPdfFileDownloadedSuccessful: state.userAccount.isPdfFileDownloadedSuccessful,\r\n downloadPdfFileErrorMessages: state.userAccount.downloadPdfFileErrorMessages\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n getUserTickets: bindActionCreators(userAccountActions.getUserTickets, dispatch),\r\n downloadTicketPdf: bindActionCreators(userAccountActions.downloadTicketPdf, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withLoadingInterval(UserTickets));\r\n","import { formConstants } from '../../../../utils/constants/form-constants';\r\n\r\nconst ChangePasswordFormData = (accountFormData, userAccountData) => {\r\n function buildChangePasswordFormData() {\r\n const { ssoChangePasswordFields } = accountFormData;\r\n const formData = {};\r\n const { formTitle, callBackUrl, actionSuccessText } = ssoChangePasswordFields;\r\n formData[formConstants.formTitle] = formTitle;\r\n formData[formConstants.callBackUrl] = callBackUrl;\r\n formData[formConstants.actionSuccessText] = actionSuccessText;\r\n\r\n formData[formConstants.username] = ssoChangePasswordFields[formConstants.username];\r\n formData[formConstants.username].defaultValue = userAccountData[formConstants.email];\r\n formData[formConstants.oldPassword] = ssoChangePasswordFields[formConstants.oldPassword];\r\n formData[formConstants.password] = ssoChangePasswordFields[formConstants.password];\r\n formData[formConstants.confirmPassword] = ssoChangePasswordFields[formConstants.confirmPassword];\r\n\r\n return formData;\r\n }\r\n\r\n\r\n return buildChangePasswordFormData();\r\n};\r\n\r\nexport default ChangePasswordFormData;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { getMultilineText } from '../../../../../general/js/utils';\r\n\r\nfunction TheOneClubIntro({ text, imageSource, imageText }) {\r\n const texts = getMultilineText(text);\r\n return (\r\n
    \r\n
    \r\n {texts.map((introText) => {\r\n return

    {introText}

    ;\r\n })}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n

    {imageText}

    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nTheOneClubIntro.propTypes = {\r\n text: PropTypes.string.isRequired,\r\n imageSource: PropTypes.string.isRequired,\r\n imageText: PropTypes.string.isRequired\r\n};\r\n\r\nexport default TheOneClubIntro;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\n\r\nfunction TheOneClubMotivation({ title, imageSource, reasons }) {\r\n function displayTheOneClubReasons() {\r\n if (!_.isEmpty(imageSource)) {\r\n return
    \r\n \r\n \r\n
    ;\r\n }\r\n\r\n if (_.isEmpty(reasons)) {\r\n return null;\r\n }\r\n\r\n return reasons.map((reason) => {\r\n return
      \r\n

      {reason.label}

      \r\n
      \r\n
    ;\r\n });\r\n }\r\n\r\n return (\r\n
    \r\n

    {title}

    \r\n {displayTheOneClubReasons()}\r\n
    \r\n );\r\n}\r\n\r\nTheOneClubMotivation.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n imageSource: PropTypes.string.isRequired,\r\n reasons: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default TheOneClubMotivation;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\n\r\nfunction TheOneClubFAQ({ title, questions }) {\r\n function displayQuestions() {\r\n if (isEmpty(questions)) {\r\n return null;\r\n }\r\n\r\n return questions.map((question, index) => {\r\n const checkId = `chk${index}`;\r\n return \r\n \r\n \r\n
    \r\n ;\r\n });\r\n }\r\n\r\n return (\r\n
    \r\n

    {title}

    \r\n
    \r\n {displayQuestions()}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nTheOneClubFAQ.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n questions: PropTypes.array.isRequired\r\n};\r\n\r\nexport default TheOneClubFAQ;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport BulletPointList from '../../common/utility/BulletPointList';\r\nimport { getMultilineText } from '../../../../../general/js/utils';\r\n\r\nfunction LeaveOneClubModalBody({\r\n leaveTheOneClubDialogBoxTitle,\r\n leaveTheOneClubDialogBoxMessage,\r\n leaveOneClubDialogBoxCheckText,\r\n leaveOneClubCheck,\r\n onLeaveOneClubClick\r\n}) {\r\n const leaveTheOneClubDialogBoxMessageSplit = getMultilineText(leaveTheOneClubDialogBoxMessage);\r\n return (\r\n
    \r\n

    {leaveTheOneClubDialogBoxTitle}

    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nLeaveOneClubModalBody.propTypes = {\r\n leaveTheOneClubDialogBoxTitle: PropTypes.string.isRequired,\r\n leaveTheOneClubDialogBoxMessage: PropTypes.string.isRequired,\r\n leaveOneClubDialogBoxCheckText: PropTypes.string.isRequired,\r\n leaveOneClubCheck: PropTypes.bool.isRequired,\r\n onLeaveOneClubClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default LeaveOneClubModalBody;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport TheOneClubIntro from './TheOneClubIntro';\r\nimport TheOneClubMotivation from './TheOneClubMotivation';\r\nimport TheOneClubFAQ from './TheOneClubFAQ';\r\nimport { deepCopyObject } from '../../utils/obj-utils';\r\nimport ConfirmationModal from '../../common/utility/ConfirmationModal';\r\nimport './the-one-club.scss';\r\nimport LeaveOneClubModalBody from './LeaveOneClubModalBody';\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\nimport { updateUserDataCookie } from '../../utils/user-data-cookie/user-data-cookie-helpers';\r\n\r\nclass TheOneClub extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const { formData, accountData } = props;\r\n const copyOfAccountData = deepCopyObject(accountData);\r\n const copyOfFormData = deepCopyObject(formData);\r\n this.state = {\r\n ...initialState.theOneClubFormState,\r\n formData: copyOfFormData,\r\n becomeOneClubMember: copyOfFormData.becomeOneClubMember.defaultValue,\r\n accountData: copyOfAccountData,\r\n shouldLeaveOneClub: false\r\n };\r\n\r\n this.displayTheOneClubForm = this.displayTheOneClubForm.bind(this);\r\n this.displayConfirmationModal = this.displayConfirmationModal.bind(this);\r\n this.handleUserDetailsUpdateSuccess = this.handleUserDetailsUpdateSuccess.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleJoinNowClick = this.handleJoinNowClick.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.scrollToForm = this.scrollToForm.bind(this);\r\n this.submitUserDetailsData = this.submitUserDetailsData.bind(this);\r\n this.updateFormData = this.updateFormData.bind(this);\r\n this.toggleConfirmationModal = this.toggleConfirmationModal.bind(this);\r\n this.handleApproveLeaveOneClub = this.handleApproveLeaveOneClub.bind(this);\r\n this.handleLeaveOneClubCheck = this.handleLeaveOneClubCheck.bind(this);\r\n\r\n this.formReferences = formScrollHelpers.getFormReferences(formData);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { isSaving } = this.state;\r\n const {\r\n loading,\r\n isUserDetailsUpdatedSuccessful,\r\n formData\r\n } = nextProps;\r\n const { hasOneClubAccount } = formData;\r\n\r\n if (isSaving &&\r\n !loading &&\r\n isUserDetailsUpdatedSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserDetailsUpdateSuccess);\r\n }\r\n\r\n if (isSaving &&\r\n !loading &&\r\n !isUserDetailsUpdatedSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false));\r\n }\r\n\r\n if (this.state.formData.hasOneClubAccount !== hasOneClubAccount) {\r\n this.setState((prevState) => ({\r\n formData: {\r\n ...prevState.formData,\r\n hasOneClubAccount\r\n }\r\n }));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.theOneClubFormState);\r\n actions.resetUserDetailsFormState();\r\n }\r\n\r\n componentDidMount() {\r\n const { formData } = this.state;\r\n this.setState(formStateHelpers.updateFormFields(formData));\r\n this.updateFormData();\r\n }\r\n\r\n updateFormData() {\r\n const { accountData } = this.props;\r\n const { becomeOneClubMember, shouldLeaveOneClub } = this.state;\r\n const copyOfFormData = deepCopyObject(this.state.formData);\r\n const { hasTicketingAccount } = copyOfFormData;\r\n const { isOneClubMember } = accountData;\r\n\r\n if (isOneClubMember &&\r\n copyOfFormData[formConstants.becomeOneClubMember].defaultValue === true &&\r\n becomeOneClubMember === false) {\r\n this.setState(formStateHelpers.toggleKey('shouldLeaveOneClub'));\r\n }\r\n\r\n copyOfFormData[formConstants.becomeOneClubMember].defaultValue = becomeOneClubMember;\r\n\r\n if (!hasTicketingAccount) {\r\n copyOfFormData[formConstants.title].isHidden = !becomeOneClubMember;\r\n copyOfFormData[formConstants.dateOfBirth].isHidden = !becomeOneClubMember;\r\n copyOfFormData[formConstants.country].isHidden = !becomeOneClubMember;\r\n copyOfFormData[formConstants.county].isHidden = !becomeOneClubMember;\r\n copyOfFormData[formConstants.state].isHidden = !becomeOneClubMember;\r\n copyOfFormData[formConstants.postcode].isHidden = !becomeOneClubMember;\r\n }\r\n\r\n copyOfFormData[formConstants.venues].isHidden = !becomeOneClubMember;\r\n copyOfFormData[formConstants.oneClubTermsAndServices].isHidden = !becomeOneClubMember;\r\n\r\n this.setState(formStateHelpers.updateFormData(copyOfFormData), () => {\r\n if (shouldLeaveOneClub) {\r\n this.setState(formStateHelpers.toggleKey('shouldLeaveOneClub'));\r\n }\r\n });\r\n }\r\n\r\n handleUserDetailsUpdateSuccess() {\r\n const {\r\n refreshAccountPage,\r\n actions,\r\n formData,\r\n accountData,\r\n userAddedToAddressBookSuccessful,\r\n saveUserToAddressBookErrorMessages\r\n } = this.props;\r\n const { becomeOneClubMember } = this.state;\r\n const { isOneClubMember } = hasValue(accountData) ? accountData : { isOneClubMember: false };\r\n\r\n if (!userAddedToAddressBookSuccessful && !hasValue(saveUserToAddressBookErrorMessages) && !isOneClubMember && becomeOneClubMember) {\r\n actions.saveUserToAddressBook(formData, accountData);\r\n }\r\n\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n\r\n updateUserDataCookie(true, true);\r\n this.updateFormData();\r\n refreshAccountPage(false);\r\n }\r\n\r\n handleJoinNowClick(event) {\r\n event.preventDefault();\r\n this.scrollToForm();\r\n\r\n const { becomeOneClubMember } = this.state;\r\n if (becomeOneClubMember) {\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.toggleKey(formConstants.becomeOneClubMember), this.updateFormData);\r\n }\r\n\r\n scrollToForm() {\r\n formScrollHelpers.scrollToField(this.formReferences[formConstants.becomeOneClubMember]);\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.state;\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitUserDetailsData);\r\n }\r\n\r\n submitUserDetailsData() {\r\n const { actions, accountData } = this.props;\r\n const { isOneClubMember } = accountData;\r\n const { formData, becomeOneClubMember } = this.state;\r\n const {\r\n callBackUrl,\r\n joinTheOneClubActionSuccessText,\r\n leaveTheOneClubActionSuccessText,\r\n updateDetailsActionSuccessText\r\n } = formData;\r\n\r\n let formattedActionSuccessText = isOneClubMember ?\r\n updateDetailsActionSuccessText :\r\n joinTheOneClubActionSuccessText || formMessageConstants.updateUserDetailsSuccessText;\r\n\r\n if (!becomeOneClubMember) {\r\n formattedActionSuccessText = leaveTheOneClubActionSuccessText || formMessageConstants.updateUserDetailsSuccessText;\r\n }\r\n\r\n formScrollHelpers.scrollToField(this.formReferences[formConstants.title]);\r\n\r\n this.setState(formStateHelpers.updateOneClubTermsAndConditions(becomeOneClubMember),\r\n () => {\r\n actions.joinTheOneClub({\r\n userDetails: this.state,\r\n accountData,\r\n actionSuccessText: formattedActionSuccessText,\r\n callBackUrl\r\n });\r\n this.updateFormData();\r\n });\r\n }\r\n\r\n displayConfirmationModal() {\r\n const {\r\n shouldLeaveOneClub,\r\n formData,\r\n leaveOneClubCheck\r\n } = this.state;\r\n const {\r\n leaveTheOneClubDialogBoxTitle,\r\n leaveTheOneClubDialogBoxMessage,\r\n leaveTheOneClubDialogBoxAgreeButton,\r\n leaveOneClubDialogBoxCheckText\r\n } = formData;\r\n\r\n return \r\n \r\n \r\n ;\r\n }\r\n\r\n toggleConfirmationModal() {\r\n const { leaveOneClubCheck } = this.state;\r\n if (leaveOneClubCheck) {\r\n this.setState(formStateHelpers.toggleKey('leaveOneClubCheck'));\r\n }\r\n\r\n this.setState(formStateHelpers.toggleKey('shouldLeaveOneClub'));\r\n this.setState(formStateHelpers.toggleKey('becomeOneClubMember'), this.updateFormData);\r\n }\r\n\r\n handleApproveLeaveOneClub(event) {\r\n event.preventDefault();\r\n const { leaveOneClubCheck } = this.state;\r\n if (!leaveOneClubCheck) {\r\n return;\r\n }\r\n this.setState(formStateHelpers.toggleKey('leaveOneClubCheck'));\r\n this.setState(formStateHelpers.toggleKey('shouldLeaveOneClub'), this.handleValidationResult);\r\n document.getElementById('overlay').classList.remove('is-visible');\r\n document.documentElement.classList.remove('is-blocked');\r\n }\r\n\r\n handleLeaveOneClubCheck() {\r\n this.setState(formStateHelpers.toggleKey('leaveOneClubCheck'));\r\n }\r\n\r\n displayTheOneClubForm() {\r\n const { formData, availableCounties, availableStates } = this.state;\r\n const { county, state } = formData;\r\n const { hasOneClubAccount, joinTheOneClubInputLabelText } = formData;\r\n const copyOfFormData = deepCopyObject(formData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n copyOfFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n\r\n copyOfFormData[formConstants.becomeOneClubMember].label = hasOneClubAccount ?\r\n joinTheOneClubInputLabelText :\r\n this.state.formData[formConstants.becomeOneClubMember].label;\r\n\r\n return FormBuilder({\r\n formData: copyOfFormData,\r\n formReferences: this.formReferences,\r\n countyData: { availableCounties, label: county ? county.label : formMessageConstants.emptyString },\r\n stateData: { availableStates, label: state ? state.label : formMessageConstants.emptyString },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => {\r\n const eventTarget = event.target;\r\n const fieldName = eventTarget.name;\r\n const fieldData = formData[fieldName];\r\n this.setState(formStateHelpers.handleFieldChangeWithValidation(eventTarget, fieldData), this.updateFormData);\r\n },\r\n handleDateChange: (event) => { this.setState(formStateHelpers.handleDateChange(event)); },\r\n handleCountryChange: (event) => {\r\n this.setState(formStateHelpers.handleCountryChange(event.target, county, state));\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n loading,\r\n updateUserDetailsMessages,\r\n isUserDetailsUpdatedSuccessful,\r\n accountData\r\n } = this.props;\r\n const { isOneClubMember } = accountData;\r\n const { formData } = this.state;\r\n const {\r\n formTitle,\r\n introText,\r\n theOneClubImageSource,\r\n theOneClubImageText,\r\n theOneClubMotivationTitle,\r\n theOneClubMotivationImageSource,\r\n theOneClubReasons,\r\n theOneClubFAQTitle,\r\n theOneClubFAQs\r\n } = formData;\r\n const { isSaving, becomeOneClubMember } = this.state;\r\n\r\n return (\r\n \r\n

    {formTitle}

    \r\n
    \r\n {isSaving || loading ? / : null}\r\n \r\n
    \r\n
    \r\n \r\n {this.displayTheOneClubForm()}\r\n {this.displayConfirmationModal()}\r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nTheOneClub.propTypes = {\r\n formData: PropTypes.object.isRequired,\r\n accountData: PropTypes.object.isRequired,\r\n refreshAccountPage: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isUserDetailsUpdatedSuccessful: state.userAccount.isUserDetailsUpdatedSuccessful,\r\n updateUserDetailsMessages: state.userAccount.updateUserDetailsMessages,\r\n userAddedToAddressBookSuccessful: state.userAccount.userAddedToAddressBookSuccessful,\r\n saveUserToAddressBookErrorMessages: state.userAccount.saveUserToAddressBookErrorMessages\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n joinTheOneClub: bindActionCreators(userAccountActions.joinTheOneClub, dispatch),\r\n resetUserDetailsFormState: bindActionCreators(userAccountActions.resetUserDetailsFormState, dispatch),\r\n saveUserToAddressBook: bindActionCreators(userAccountActions.saveUserToAddressBook, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(TheOneClub);\r\n","import { formConstants } from '../../../../utils/constants/form-constants';\r\nimport { getFileStates, getPaymentStatuses, getOrderTypes } from './account-form-data-utils';\r\nimport { formMessageConstants } from '../../../../utils/constants/form-message-constants';\r\n\r\n\r\nconst OrderHistoryDisplayFormData = (accountFormData) => {\r\n function buildOrderHistoryFormData() {\r\n const {\r\n getOrderHistoryCallbackUrl,\r\n getOrderHistoryPagesCallbackUrl,\r\n getOrderDetailsCallbackUrl,\r\n downloadDocumentPdfCallbackUrl,\r\n downloadFileSummaryPdfCallbackUrl,\r\n ssoOrderHistoryFields,\r\n ssoUserDetailsFields,\r\n ssoDomain,\r\n resumePaymentCallbackUrl,\r\n secutixAuthUrl,\r\n ssoAccountHomePageFields\r\n } = accountFormData;\r\n const formData = {};\r\n const {\r\n formTitle,\r\n noOrdersFoundText,\r\n noProductsFoundText,\r\n noPaymentSummaryFoundText,\r\n noDeliveryDataFoundText,\r\n noHistoryDataFoundText,\r\n mastercardDialogBox,\r\n mastercardDialogBoxBanner,\r\n showDialogBox,\r\n showCancelButton\r\n } = ssoOrderHistoryFields;\r\n\r\n const {\r\n loadingErrorMessage,\r\n elapsedTimeLimit,\r\n } = ssoAccountHomePageFields;\r\n\r\n const { country } = ssoUserDetailsFields;\r\n\r\n formData[formConstants.getOrderHistoryCallbackUrl] = getOrderHistoryCallbackUrl;\r\n formData[formConstants.getOrderHistoryPagesCallbackUrl] = getOrderHistoryPagesCallbackUrl;\r\n formData[formConstants.getOrderDetailsCallbackUrl] = getOrderDetailsCallbackUrl;\r\n formData[formConstants.downloadDocumentPdfCallbackUrl] = downloadDocumentPdfCallbackUrl;\r\n formData[formConstants.downloadFileSummaryPdfCallbackUrl] = downloadFileSummaryPdfCallbackUrl;\r\n formData[formConstants.resumePaymentCallbackUrl] = resumePaymentCallbackUrl;\r\n formData[formConstants.secutixAuthUrl] = secutixAuthUrl;\r\n formData[formConstants.formTitle] = formTitle;\r\n formData[formConstants.noOrdersFoundText] = noOrdersFoundText || formMessageConstants.noOrdersFoundText;\r\n formData[formConstants.noProductsFoundText] = noProductsFoundText || formMessageConstants.noProductsFoundText;\r\n formData[formConstants.noPaymentSummaryFoundText] = noPaymentSummaryFoundText || formMessageConstants.noPaymentSummaryFoundText;\r\n formData[formConstants.noDeliveryDataFoundText] = noDeliveryDataFoundText || formMessageConstants.noDeliveryDataFoundText;\r\n formData[formConstants.noHistoryDataFoundText] = noHistoryDataFoundText || formMessageConstants.noHistoryDataFoundText;\r\n formData[formConstants.masterCardDialogBox] = mastercardDialogBox;\r\n formData[formConstants.masterCardDialogBoxBanner] = mastercardDialogBoxBanner;\r\n formData[formConstants.showDialogBox] = showDialogBox;\r\n formData[formConstants.showCancelButton] = showCancelButton;\r\n\r\n formData[formConstants.fileState] = getFileStates(ssoOrderHistoryFields);\r\n formData[formConstants.paymentStatus] = getPaymentStatuses(ssoOrderHistoryFields);\r\n formData[formConstants.orderType] = getOrderTypes(ssoOrderHistoryFields);\r\n\r\n formData[formConstants.country] = country;\r\n formData[formConstants.ssoDomain] = ssoDomain;\r\n\r\n formData[formConstants.loadingErrorMessage] = loadingErrorMessage;\r\n formData[formConstants.elapsedTimeLimit] = elapsedTimeLimit;\r\n\r\n return formData;\r\n }\r\n\r\n return buildOrderHistoryFormData();\r\n};\r\n\r\nexport default OrderHistoryDisplayFormData;\r\n","import { formConstants } from '../../../../utils/constants/form-constants';\r\n\r\nconst UserTicketsDisplayFormData = (accountFormData, userAccountData) => {\r\n function buildUserTicketsFormData() {\r\n const {\r\n getTicketsCallbackUrl,\r\n downloadTicketPdfCallbackUrl,\r\n ssoUserTicketsFields,\r\n ssoDomain,\r\n ssoAccountHomePageFields,\r\n } = accountFormData;\r\n\r\n const {\r\n formTitle,\r\n noTicketsFoundText,\r\n printTicketModalText,\r\n printTicketDialogText,\r\n printTicketInputText,\r\n ticketIsPrintableText,\r\n ticketIsNotPrintableText,\r\n ticketIsAlreadyPrintedText,\r\n firstName,\r\n lastName,\r\n } = ssoUserTicketsFields;\r\n\r\n const {\r\n loadingErrorMessage,\r\n elapsedTimeLimit,\r\n } = ssoAccountHomePageFields;\r\n\r\n const formData = {};\r\n\r\n formData[formConstants.getTicketsCallbackUrl] = getTicketsCallbackUrl;\r\n formData[formConstants.downloadTicketPdfCallbackUrl] = downloadTicketPdfCallbackUrl;\r\n formData[formConstants.formTitle] = formTitle;\r\n formData.firstNameValue = userAccountData.firstName;\r\n formData.lastNameValue = userAccountData.lastName;\r\n formData[formConstants.noTicketsFoundText] = noTicketsFoundText;\r\n formData[formConstants.printTicketModalText] = printTicketModalText;\r\n formData[formConstants.printTicketDialogText] = printTicketDialogText;\r\n formData[formConstants.printTicketInputText] = printTicketInputText;\r\n formData[formConstants.ticketIsPrintableText] = ticketIsPrintableText;\r\n formData[formConstants.ticketIsNotPrintableText] = ticketIsNotPrintableText;\r\n formData[formConstants.ticketIsAlreadyPrintedText] = ticketIsAlreadyPrintedText;\r\n formData[formConstants.firstName] = firstName;\r\n formData[formConstants.lastName] = lastName;\r\n formData[formConstants.ssoDomain] = ssoDomain;\r\n\r\n formData[formConstants.loadingErrorMessage] = loadingErrorMessage;\r\n formData[formConstants.elapsedTimeLimit] = elapsedTimeLimit;\r\n\r\n return formData;\r\n }\r\n\r\n return buildUserTicketsFormData();\r\n};\r\n\r\nexport default UserTicketsDisplayFormData;\r\n","import { formConstants } from '../../../../utils/constants/form-constants';\r\nimport { isEmpty } from '../../../../utils/obj-utils';\r\nimport { formMessageConstants } from '../../../../utils/constants/form-message-constants';\r\nimport { createDateFromExisting } from '../../../../utils/date-utils';\r\nimport { MembershipTypes } from '../../../../../../../general/js/utils';\r\nimport userService from '../../../../../../../general/js/user/user-service';\r\n\r\nconst TheOneClubFormData = (accountFormData, userAccountData) => {\r\n function buildTheOneClubFormData() {\r\n const {\r\n ssoUserDetailsFields,\r\n ssoTheOneClubFields,\r\n updateUserDetailsCallbackUrl,\r\n } = accountFormData;\r\n\r\n const {\r\n formTitle,\r\n introText,\r\n joinTheOneClubActionSuccessText,\r\n leaveTheOneClubActionSuccessText,\r\n updateDetailsActionSuccessText,\r\n theOneClubImageSource,\r\n theOneClubImageText,\r\n theOneClubVideoText,\r\n theOneClubVideoWebmSource,\r\n theOneClubThumbnailSource,\r\n theOneClubVideoSource,\r\n theOneClubMotivationTitle,\r\n theOneClubMotivationImageSource,\r\n theOneClubReasons,\r\n theOneClubFAQTitle,\r\n theOneClubFAQs,\r\n oneClubTermsAndServices,\r\n leaveTheOneClubDialogBoxTitle,\r\n leaveTheOneClubDialogBoxMessage,\r\n leaveTheOneClubDialogBoxAgreeButton,\r\n leaveOneClubDialogBoxCheckText,\r\n dotDigitalAddressBookData,\r\n saveUserToDotDigitalCallbackUrl\r\n } = ssoTheOneClubFields;\r\n\r\n const formData = {};\r\n\r\n formData[formConstants.formTitle] = formTitle;\r\n formData[formConstants.introText] = introText;\r\n formData[formConstants.callBackUrl] = updateUserDetailsCallbackUrl;\r\n formData[formConstants.joinTheOneClubActionSuccessText] = joinTheOneClubActionSuccessText;\r\n formData[formConstants.leaveTheOneClubActionSuccessText] = leaveTheOneClubActionSuccessText;\r\n formData[formConstants.updateDetailsActionSuccessText] = updateDetailsActionSuccessText;\r\n formData[formConstants.theOneClubImageSource] = theOneClubImageSource;\r\n formData[formConstants.theOneClubImageText] = theOneClubImageText;\r\n formData[formConstants.theOneClubVideoText] = theOneClubVideoText;\r\n formData[formConstants.theOneClubThumbnailSource] = theOneClubThumbnailSource;\r\n formData[formConstants.theOneClubVideoWebmSource] = theOneClubVideoWebmSource;\r\n formData[formConstants.theOneClubVideoSource] = theOneClubVideoSource;\r\n formData[formConstants.theOneClubMotivationTitle] = theOneClubMotivationTitle;\r\n formData[formConstants.theOneClubMotivationImageSource] = theOneClubMotivationImageSource;\r\n formData[formConstants.theOneClubReasons] = theOneClubReasons;\r\n formData[formConstants.theOneClubFAQTitle] = theOneClubFAQTitle;\r\n formData[formConstants.theOneClubFAQs] = theOneClubFAQs;\r\n formData[formConstants.leaveTheOneClubDialogBoxAgreeButton] = leaveTheOneClubDialogBoxAgreeButton;\r\n formData[formConstants.leaveOneClubDialogBoxCheckText] = leaveOneClubDialogBoxCheckText;\r\n formData[formConstants.leaveTheOneClubDialogBoxMessage] = leaveTheOneClubDialogBoxMessage;\r\n formData[formConstants.leaveTheOneClubDialogBoxTitle] = leaveTheOneClubDialogBoxTitle;\r\n formData[formConstants.dotDigitalAddressBookData] = dotDigitalAddressBookData;\r\n formData[formConstants.saveUserToDotDigitalCallbackUrl] = saveUserToDotDigitalCallbackUrl;\r\n\r\n formData[formConstants.becomeOneClubMember] = ssoUserDetailsFields[formConstants.becomeOneClubMember];\r\n formData[formConstants.joinTheOneClubInputLabelText] = ssoUserDetailsFields[formConstants.joinTheOneClubInputLabelText];\r\n formData[formConstants.title] = ssoUserDetailsFields[formConstants.title];\r\n formData[formConstants.dateOfBirth] = ssoUserDetailsFields[formConstants.dateOfBirth];\r\n formData[formConstants.country] = ssoUserDetailsFields[formConstants.country];\r\n formData[formConstants.county] = ssoUserDetailsFields[formConstants.county];\r\n formData[formConstants.state] = ssoUserDetailsFields[formConstants.state];\r\n formData[formConstants.postcode] = ssoUserDetailsFields[formConstants.postcode];\r\n formData[formConstants.favoritePlayer] = ssoUserDetailsFields[formConstants.favoritePlayer];\r\n formData[formConstants.venues] = ssoUserDetailsFields[formConstants.venues];\r\n formData[formConstants.oneClubTermsAndServices] = oneClubTermsAndServices;\r\n\r\n return getFieldsWithDefaultValues(formData);\r\n }\r\n\r\n function getFieldsWithDefaultValues(formData) {\r\n const { membership } = userAccountData;\r\n const hasTicketingAccount = userService.hasTicketingAccount(userAccountData);\r\n const hasOneClubAccount = membership.includes(MembershipTypes.OneClub);\r\n formData[formConstants.becomeOneClubMember].defaultValue = hasOneClubAccount;\r\n formData[formConstants.becomeOneClubMember].fieldHeaderTitle = formMessageConstants.emptyString;\r\n formData[formConstants.becomeOneClubMember].fieldHeaderText = formMessageConstants.emptyString;\r\n formData[formConstants.hasTicketingAccount] = hasTicketingAccount;\r\n formData[formConstants.hasOneClubAccount] = hasOneClubAccount;\r\n formData[formConstants.membership] = membership;\r\n formData[formConstants.activeMemberships] = membership.split(';');\r\n\r\n formData[formConstants.title].defaultValue = userAccountData[formConstants.title];\r\n formData[formConstants.title].fieldHeaderTitle = formMessageConstants.emptyString;\r\n formData[formConstants.title].isHidden = hasTicketingAccount;\r\n if (userAccountData.dateOfBirth !== undefined) {\r\n formData[formConstants.dateOfBirth].defaultValue = createDateFromExisting(userAccountData.dateOfBirth);\r\n formData[formConstants.dateOfBirth].isHidden = hasTicketingAccount;\r\n }\r\n\r\n let mainAddress = {};\r\n if (!isEmpty(userAccountData.addresses)) {\r\n const foundAddress = userAccountData.addresses.find((address) => address.main);\r\n mainAddress = isEmpty(foundAddress) ? {} : foundAddress;\r\n }\r\n\r\n formData[formConstants.country].defaultValue = mainAddress.country;\r\n formData[formConstants.country].isHidden = hasTicketingAccount;\r\n\r\n formData[formConstants.county].defaultValue = mainAddress.county;\r\n formData[formConstants.county].isHidden = hasTicketingAccount;\r\n\r\n formData[formConstants.state].defaultValue = mainAddress.state;\r\n formData[formConstants.state].isHidden = hasTicketingAccount;\r\n\r\n formData[formConstants.postcode].defaultValue = mainAddress.postcode;\r\n formData[formConstants.postcode].isHidden = hasTicketingAccount;\r\n\r\n const interests = userAccountData[formConstants.interests];\r\n formData[formConstants.favoritePlayer].defaultValue = interests.favoritePlayer;\r\n formData[formConstants.venues].defaultValue = interests.venues;\r\n\r\n const optIns = userAccountData[formConstants.optIns];\r\n\r\n formData[formConstants.privacyPolicy] = optIns.agreedToPrivacyPolicy;\r\n formData[formConstants.oneClubTermsAndServices].defaultValue = optIns.agreedToTermsAndConditions;\r\n\r\n return formData;\r\n }\r\n\r\n return buildTheOneClubFormData();\r\n};\r\n\r\nexport default TheOneClubFormData;\r\n","import { formConstants } from '../../../../utils/constants/form-constants';\r\n\r\nconst TicketsResaleFormData = ({\r\n ssoAccountResaleTicketsFields\r\n}) => {\r\n function buildTicketsResaleFormData() {\r\n const formData = {};\r\n const {\r\n resaleTicketsTitle, displayResaleCriteria, resaleTicketsInformationOpen, buyLink, sellLink,\r\n sellButtonCriteria, buyButtonCriteria, secutixResaleUrl, secutixPointOfSaleId, secutixVirtualOperator,\r\n resaleTicketsImageSource, resaleTicketsImageText, resaleTicketsFAQTitle, resaleTicketsFAQs, resaleTicketsIntro\r\n } = ssoAccountResaleTicketsFields;\r\n formData[formConstants.resaleTicketsTitle] = resaleTicketsTitle;\r\n formData[formConstants.displayResaleCriteria] = displayResaleCriteria;\r\n formData[formConstants.resaleTicketsInformationOpen] = resaleTicketsInformationOpen;\r\n formData[formConstants.buyLink] = buyLink;\r\n formData[formConstants.sellLink] = sellLink;\r\n formData[formConstants.sellButtonCriteria] = sellButtonCriteria;\r\n formData[formConstants.buyButtonCriteria] = buyButtonCriteria;\r\n formData[formConstants.secutixResaleUrl] = secutixResaleUrl;\r\n formData[formConstants.secutixPointOfSaleId] = secutixPointOfSaleId;\r\n formData[formConstants.secutixVirtualOperator] = secutixVirtualOperator;\r\n formData[formConstants.resaleTicketsImageSource] = resaleTicketsImageSource;\r\n formData[formConstants.resaleTicketsImageText] = resaleTicketsImageText;\r\n formData[formConstants.resaleTicketsFAQTitle] = resaleTicketsFAQTitle;\r\n formData[formConstants.resaleTicketsFAQs] = resaleTicketsFAQs;\r\n formData[formConstants.resaleTicketsIntro] = resaleTicketsIntro;\r\n\r\n return formData;\r\n }\r\n\r\n\r\n return buildTicketsResaleFormData();\r\n};\r\n\r\nexport default TicketsResaleFormData;\r\n","import { formConstants } from '../../../../utils/constants/form-constants';\r\n\r\nconst EmailNotificationSettingsFormData = (accountFormData, userAccountData) => {\r\n function buildEmailNotificationSettingsFormData() {\r\n const {\r\n ssoEmailNotificationSettingsFields,\r\n updateNotificationSettingsDataCallbackUrl\r\n } = accountFormData;\r\n\r\n const {\r\n formTitle,\r\n description,\r\n updatedNotificationSuccessMessage,\r\n championshipSection,\r\n channelsSection,\r\n interestsSection\r\n } = ssoEmailNotificationSettingsFields;\r\n\r\n const formData = {};\r\n\r\n formData[formConstants.formTitle] = formTitle;\r\n formData[formConstants.formSubTitle] = description;\r\n formData[formConstants.updatedNotificationSuccessMessage] = updatedNotificationSuccessMessage;\r\n formData[formConstants.callBackUrl] = updateNotificationSettingsDataCallbackUrl;\r\n formData[formConstants.championshipSection] = championshipSection;\r\n formData[formConstants.channelSection] = channelsSection;\r\n formData[formConstants.interestSection] = interestsSection;\r\n\r\n return formData;\r\n }\r\n\r\n return buildEmailNotificationSettingsFormData();\r\n};\r\n\r\nexport default EmailNotificationSettingsFormData;\r\n","import React from 'react';\r\nimport ChangePasswordForm from '../forms/change-password/ChangePasswordForm';\r\nimport UserDetailsForm from '../forms/user-details/UserDetailsForm';\r\nimport AccountHomePage from '../forms/account-home-page/AccountHomePage';\r\nimport UserAddressesForm from '../forms/user-addresses/UserAddressesForm';\r\nimport EmailNotificationSettingsForm from '../forms/email-notification-settings/EmailNotificationSettingsForm';\r\nimport PushNotificationsForm from '../forms/push-notifications/PushNotificationsForm';\r\nimport ResaleTickets from '../forms/resale-tickets/ResaleTickets';\r\nimport UserOrderHistory from '../forms/user-order-history/UserOrderHistory';\r\nimport UserDetailsFormData from '../forms/helpers/form-helpers/user-account/user-details-form-data';\r\nimport AccountHomePageFormData from '../forms/helpers/form-helpers/user-account/account-home-page-form-data';\r\nimport { findOptionInSelectField } from '../forms/helpers/form-helpers/form-field-helpers';\r\nimport UserAddressesDisplayFormData from '../forms/helpers/form-helpers/user-account/user-addresses-display-form-data';\r\nimport UserTickets from '../forms/user-tickets/UserTickets';\r\nimport ChangePasswordFormData from '../forms/helpers/form-helpers/user-account/change-password-form-data';\r\nimport { formConstants } from './constants/form-constants';\r\nimport { formMessageConstants } from './constants/form-message-constants';\r\nimport { isEmpty } from './obj-utils';\r\nimport TheOneClub from '../forms/the-one-club/TheOneClub';\r\nimport OrderHistoryDisplayFormData from '../forms/helpers/form-helpers/user-account/order-history-display-form-data';\r\nimport UserTicketsDisplayFormData from '../forms/helpers/form-helpers/user-account/user-tickets-display-form-data';\r\nimport TheOneClubFormData from '../forms/helpers/form-helpers/user-account/the-one-club-form-data';\r\nimport TicketsResaleFormData from '../forms/helpers/form-helpers/user-account/tickets-resale-form-data';\r\nimport EmailNotificationSettingsFormData from '../forms/helpers/form-helpers/user-account/email-notification-settings-form-data';\r\nimport { createDateFromExisting } from './date-utils';\r\nimport { formFieldConstants } from './constants/form-field-constants';\r\n\r\nexport const userAccountConstants = {\r\n oneClub: 'OneClub',\r\n\r\n address: 'address',\r\n birthdate: 'birthdate',\r\n\r\n customInterests: 'custom:Interests',\r\n customMembership: 'custom:Membership',\r\n membership: 'membership',\r\n\r\n isOneClubMember: 'isOneClubMember',\r\n customOptIns: 'custom: OptIns',\r\n customTitle: 'custom: Title',\r\n\r\n email: 'email',\r\n emailVerified: 'email_verified',\r\n familyName: 'family_name',\r\n givenName: 'given_name',\r\n initials: 'initials',\r\n\r\n name: 'name',\r\n sub: 'sub',\r\n\r\n somethingWentWrong: 'Something went wrong.'\r\n};\r\n\r\nexport const userAccountContentConstants = {\r\n accountHomePage: 'accountHomePage',\r\n userDetailsForm: 'userDetailsForm',\r\n changePasswordForm: 'changePasswordForm',\r\n userAddressesForm: 'userAddressesForm',\r\n emailNotificationSettings: 'emailNotificationSettings',\r\n pushNotifications: 'pushNotifications',\r\n userOrderHistory: 'userOrderHistory',\r\n userTickets: 'userTickets',\r\n theOneClub: 'theOneClub',\r\n resaleTickets: 'resaleTickets'\r\n};\r\n\r\nexport const userAccountMenuConstants =\r\n [{\r\n id: 'abad0895',\r\n title: 'Account settings',\r\n children: [\r\n { id: 'j785', title: 'Home', form: userAccountContentConstants.accountHomePage },\r\n { id: 'c156', title: 'My details', form: userAccountContentConstants.userDetailsForm },\r\n { id: '4088', title: 'Change password', form: userAccountContentConstants.changePasswordForm },\r\n { id: '9b16', title: 'My addresses', form: userAccountContentConstants.userAddressesForm },\r\n ]\r\n },\r\n // {\r\n // id: 'dd8940a9',\r\n // title: 'Preference centre',\r\n // children: [\r\n // { id: 'bbc7', title: 'Preference Centre', form: userAccountContentConstants.emailNotificationSettings },\r\n // ]\r\n // },\r\n // {\r\n // id: '690e99e0',\r\n // title: '',\r\n // children: [\r\n // {\r\n // id: 'a377',\r\n // title: 'The One Club',\r\n // form: userAccountContentConstants.theOneClub,\r\n // tag: Member\r\n // },\r\n // ]\r\n // },\r\n {\r\n id: '783d88f1',\r\n title: '',\r\n children: [\r\n {\r\n id: 'bf3d',\r\n title: 'Ticket Resale Platform',\r\n form: userAccountContentConstants.resaleTickets,\r\n },\r\n ]\r\n },\r\n {\r\n id: '7820a8a5',\r\n title: 'My purchases',\r\n children: [\r\n { id: 'c550', title: 'Tickets', form: userAccountContentConstants.userTickets },\r\n { id: '413b', title: 'View order history', form: userAccountContentConstants.userOrderHistory },\r\n ]\r\n }];\r\n\r\nexport const userAccountFormConstants = {\r\n\r\n /* eslint-disable */\r\n accountHomePage: ({\r\n accountFormData,\r\n userAccountData,\r\n refreshAccountPage,\r\n handleViewFileSummaryClick,\r\n handleViewTicketsClick\r\n }) => {\r\n let formData = new AccountHomePageFormData(accountFormData, userAccountData);\r\n return \r\n },\r\n userDetailsForm: ({ accountFormData, userAccountData, refreshAccountPage }) => {\r\n let formData = new UserDetailsFormData(accountFormData, userAccountData);\r\n return \r\n },\r\n changePasswordForm: ({ accountFormData, userAccountData }) => {\r\n let formData = new ChangePasswordFormData(accountFormData, userAccountData)\r\n return \r\n },\r\n userAddressesForm: ({ accountFormData, userAccountData, refreshAccountPage }) => {\r\n let formData = new UserAddressesDisplayFormData(accountFormData, userAccountData);\r\n const { country, state } = accountFormData.ssoUserDetailsFields;\r\n\r\n userAccountData[formConstants.emailAddress] = userAccountData[formConstants.email];\r\n\r\n if (userAccountData[formConstants.dateOfBirth] !== undefined) {\r\n userAccountData[formConstants.dateOfBirth] = createDateFromExisting(userAccountData.dateOfBirth);\r\n }\r\n\r\n if (!isEmpty(userAccountData[formConstants.addresses])) {\r\n userAccountData[formConstants.addresses] = userAccountData[formConstants.addresses].map((address) => {\r\n\r\n address[formConstants.addressLine1] = address[formConstants.addressLine1] || formMessageConstants.emptyString;\r\n address[formConstants.addressLine2] = address[formConstants.addressLine2] || formMessageConstants.emptyString;\r\n address[formConstants.addressLine3] = address[formConstants.addressLine3] || formMessageConstants.emptyString;\r\n address[formConstants.postcode] = address[formConstants.postcode] || formMessageConstants.emptyString;\r\n address[formConstants.city] = address[formConstants.city] || formMessageConstants.emptyString;\r\n\r\n const selectedCountry = getCountry(address.country, country.options);\r\n address[formConstants.countryName] = selectedCountry.label;\r\n\r\n address[formConstants.county] = address[formConstants.county] || formMessageConstants.emptyString;\r\n address[formConstants.state] = address[formConstants.state] || formMessageConstants.emptyString;\r\n\r\n const selectedStateName = findOptionInSelectField(state, address[formConstants.state], formFieldConstants.selectFieldOptionsLabel);\r\n address[formConstants.stateName] = selectedStateName;\r\n\r\n return address;\r\n });\r\n }\r\n\r\n return \r\n },\r\n theOneClub: ({ accountFormData, userAccountData, refreshAccountPage }) => {\r\n let formData = new TheOneClubFormData(accountFormData, userAccountData);\r\n return \r\n },\r\n resaleTickets: ({ accountFormData, userAccountData }) => {\r\n let formData = new TicketsResaleFormData(accountFormData);\r\n return \r\n },\r\n emailNotificationSettings: ({ accountFormData, userAccountData, refreshAccountPage }) => {\r\n let formData = new EmailNotificationSettingsFormData(accountFormData, userAccountData);\r\n return \r\n },\r\n pushNotifications: ({ accountFormData, userAccountData }) => {\r\n return \r\n },\r\n userOrderHistory: ({ accountFormData, userAccountData, fileNumberForDisplay }) => {\r\n let formData = new OrderHistoryDisplayFormData(accountFormData);\r\n return \r\n },\r\n userTickets: ({ accountFormData, userAccountData, upcomingTicket }) => {\r\n let formData = new UserTicketsDisplayFormData(accountFormData, userAccountData);\r\n return \r\n }\r\n /* eslint-enable */\r\n};\r\n\r\nfunction getCountry(country, options) {\r\n const value = options.find((x) => x.code === country);\r\n\r\n if (value == null) { return options[0]; }\r\n\r\n return value;\r\n}\r\n","/* eslint-disable react/jsx-no-target-blank */\r\nimport React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { userAccountMenuConstants, userAccountContentConstants } from '../utils/user-account-constants';\r\nimport { domainConstants } from '../utils/constants/domain-constants';\r\nimport { shouldDisplayResaleButton } from '../forms/resale-tickets/resale-tickets-helpers';\r\n\r\nfunction AccountMenuLinks({\r\n userAccountData,\r\n accountFormData,\r\n ssoDomain,\r\n displayResaleTicketsMenuItem,\r\n componentToRender,\r\n toggleDisplayMenu,\r\n handleChangeAccountDetailsContent\r\n}) {\r\n const isWomensOpen = ssoDomain === domainConstants.womensOpen;\r\n\r\n function displayAccountMenu() {\r\n const accountMenu = userAccountMenuConstants.map((menuItem) => {\r\n const theOneClubChildItem = menuItem.children.find((x) => x.form.includes(userAccountContentConstants.theOneClub));\r\n const resaleTicketsChildItem = menuItem.children.find((x) => x.form.includes(userAccountContentConstants.resaleTickets));\r\n if (!_.isEmpty(theOneClubChildItem) && isWomensOpen) {\r\n return null;\r\n }\r\n\r\n if (!_.isEmpty(resaleTicketsChildItem) && !displayResaleTicketsMenuItem) {\r\n return null;\r\n }\r\n if (!_.isEmpty(resaleTicketsChildItem)) {\r\n const isUserMatchCriteria = doesUserMatchCriteria();\r\n if (!isUserMatchCriteria) {\r\n return null;\r\n }\r\n }\r\n\r\n\r\n return (
      \r\n
    • {menuItem.title}
    • \r\n {displayMenuChildren(menuItem)}\r\n
    );\r\n });\r\n\r\n return
    {accountMenu}
    ;\r\n }\r\n\r\n function doesUserMatchCriteria() {\r\n const { ballotCriteria } = userAccountData;\r\n const { membership } = userAccountData;\r\n\r\n const { displayResaleCriteria } = accountFormData.ssoAccountResaleTicketsFields;\r\n\r\n return shouldDisplayResaleButton(displayResaleCriteria, ballotCriteria, membership);\r\n }\r\n const displayMenuChildren = (menuItem) => {\r\n return menuItem.children.map((childItem) => {\r\n const newUrl = `${window.location.pathname}#${childItem.form}`;\r\n return (\r\n
  • \r\n {\r\n if (!e.ctrlKey && !e.metaKey && e.button === 0) {\r\n e.preventDefault();\r\n window.history.pushState(null, '', newUrl);\r\n handleChangeAccountDetailsContent(e, childItem.form);\r\n toggleDisplayMenu();\r\n } else {\r\n window.open(`?componentToRender=${childItem.form}`, '_blank', 'noopener,noreferrer');\r\n }\r\n }}\r\n className={getActiveClassName(childItem.form)}>\r\n {childItem.title}\r\n \r\n
  • );\r\n });\r\n };\r\n\r\n function getActiveClassName(accountDetailsLink) {\r\n if (accountDetailsLink === componentToRender) {\r\n return 'active';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n return (\r\n {displayAccountMenu()}\r\n
    \r\n {isWomensOpen ?\r\n AIG Womens Open :\r\n The Open}\r\n Randa\r\n OneClub\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nAccountMenuLinks.propTypes = {\r\n userAccountData: PropTypes.object.isRequired,\r\n ssoDomain: PropTypes.string.isRequired,\r\n displayResaleTicketsMenuItem: PropTypes.bool.isRequired,\r\n shouldDisplayMenu: PropTypes.bool.isRequired,\r\n toggleDisplayMenu: PropTypes.func,\r\n componentToRender: PropTypes.string.isRequired,\r\n handleChangeAccountDetailsContent: PropTypes.func.isRequired\r\n};\r\n\r\nexport default AccountMenuLinks;\r\n","import React, { Fragment, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport AccountMenuLinks from './AccountMenuLinks';\r\n\r\nfunction AccountMenu({\r\n userAccountData,\r\n accountFormData,\r\n ssoDomain,\r\n displayResaleTicketsMenuItem,\r\n shouldDisplayMenu,\r\n componentToRender,\r\n handleChangeAccountDetailsContent,\r\n toggleDisplayMenu\r\n}) {\r\n const { initials, fullName } = userAccountData;\r\n const handleHashChange = () => {\r\n const hash = window.location.hash.substring(1); // Remove the leading '#'\r\n if (hash) {\r\n handleChangeAccountDetailsContent(null, hash);\r\n }\r\n };\r\n useEffect(() => {\r\n handleHashChange(); // Handle the initial hash\r\n window.addEventListener('hashchange', handleHashChange);\r\n\r\n return () => {\r\n window.removeEventListener('hashchange', handleHashChange);\r\n };\r\n }, []);\r\n return (\r\n \r\n
    \r\n \r\n My account\r\n
    \r\n
    \r\n
    \r\n
    \r\n {initials}\r\n
    \r\n
    \r\n {'Hi,'}\r\n {fullName}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nAccountMenu.propTypes = {\r\n userAccountData: PropTypes.object.isRequired,\r\n accountFormData: PropTypes.object.isRequired,\r\n ssoDomain: PropTypes.string.isRequired,\r\n shouldDisplayMenu: PropTypes.bool.isRequired,\r\n componentToRender: PropTypes.string.isRequired,\r\n handleChangeAccountDetailsContent: PropTypes.func.isRequired,\r\n toggleDisplayMenu: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default AccountMenu;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport _ from 'lodash';\r\nimport FormSpinner from '../common/utility/FormSpinner';\r\nimport { userAccountConstants, userAccountContentConstants, userAccountFormConstants } from '../utils/user-account-constants';\r\nimport * as formStateHelpers from '../forms/helpers/form-helpers/form-state-helper';\r\nimport * as userAccountActions from '../../store/actions/user-account-actions';\r\nimport * as apiResponseMessages from '../../store/actions/api-response-messages';\r\n\r\nimport * as signInFormActions from '../../store/actions/sign-in-form-actions';\r\nimport { isEmpty } from '../utils/obj-utils';\r\nimport AccountMenu from './AccountMenu';\r\nimport { formMessageConstants } from '../utils/constants/form-message-constants';\r\nimport { domainConstants } from '../utils/constants/domain-constants';\r\nimport userService from '../../../../general/js/user/user-service';\r\nimport { hasValue, isRefMounted } from '../../../../general/js/general-helpers';\r\nimport ModalTriggerPromoPanelComponent from '../../../modal-trigger-promo-panel/js/modal-trigger-promo-panel.component';\r\nimport {\r\n getInitials,\r\n getParameterByName,\r\n getTitleLabel,\r\n removeParameterByName\r\n} from '../../../../general/js/utils';\r\nimport withLoadingInterval from '../hocComponents';\r\nimport { USER_STATE_VALID } from '../../../../general/js/user/constants';\r\n\r\nclass UserAccountPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n userAccountData: {},\r\n shouldDisplayMenu: false,\r\n componentToRender: userAccountContentConstants.accountHomePage,\r\n fileNumberForDisplay: 0,\r\n upcomingTicket: {}\r\n };\r\n\r\n this.modalTriggerPromoPanelRef = React.createRef();\r\n this.modalTrigger = null;\r\n this.updateUserAccountData = this.updateUserAccountData.bind(this);\r\n this.updateComponentToRenderDisplay = this.updateComponentToRenderDisplay.bind(this);\r\n this.updateComponentToRender = this.updateComponentToRender.bind(this);\r\n this.displayMyAccountPage = this.displayMyAccountPage.bind(this);\r\n this.handleChangeAccountDetailsContent = this.handleChangeAccountDetailsContent.bind(this);\r\n this.handleViewFileSummaryClick = this.handleViewFileSummaryClick.bind(this);\r\n this.handleViewTicketsClick = this.handleViewTicketsClick.bind(this);\r\n this.displayAccountDetailsContent = this.displayAccountDetailsContent.bind(this);\r\n this.refreshAccountPage = this.refreshAccountPage.bind(this);\r\n this.toggleDisplayMenu = this.toggleDisplayMenu.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.refreshAccountPage(true);\r\n }\r\n\r\n componentDidUpdate() {\r\n if (!hasValue(this.modalTrigger)) {\r\n const refMounted = isRefMounted(this.modalTriggerPromoPanelRef);\r\n this.modalTrigger = refMounted ?\r\n new ModalTriggerPromoPanelComponent(this.modalTriggerPromoPanelRef.current, 'modal-trigger-promo-panel') :\r\n null;\r\n } else if (!isRefMounted(this.modalTriggerPromoPanelRef)) {\r\n this.modalTrigger.destroy();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (hasValue(this.modalTrigger)) {\r\n this.modalTrigger.destroy();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isUserAccountDataLoadedSuccessful,\r\n isAccountPageRefresh,\r\n userAccountData\r\n } = nextProps;\r\n\r\n if (isUserAccountDataLoadedSuccessful &&\r\n !isEmpty(userAccountData)) {\r\n this.updateUserAccountData(userAccountData);\r\n\r\n if (isAccountPageRefresh) {\r\n this.updateComponentToRenderDisplay();\r\n }\r\n }\r\n }\r\n\r\n updateComponentToRenderDisplay() {\r\n let componentToRender = getParameterByName('componentToRender');\r\n const { ssoDomain } = this.props.accountFormData;\r\n\r\n if (isEmpty(componentToRender)) {\r\n return;\r\n }\r\n\r\n if (componentToRender === userAccountContentConstants.theOneClub &&\r\n ssoDomain === domainConstants.womensOpen) {\r\n componentToRender = userAccountContentConstants.accountHomePage;\r\n }\r\n\r\n this.updateComponentToRender(componentToRender);\r\n\r\n removeParameterByName('componentToRender');\r\n }\r\n\r\n updateUserAccountData(nextUserAccountData) {\r\n const { accountFormData, actions } = this.props;\r\n\r\n if (isEmpty(accountFormData) || isEmpty(nextUserAccountData)) {\r\n actions.signOutUser();\r\n return;\r\n }\r\n\r\n const userAccountData = _.cloneDeep(nextUserAccountData);\r\n userAccountData.titleLabel = getTitleLabel(userAccountData.title, accountFormData.ssoUserDetailsFields.title.options);\r\n userAccountData.initials = getInitials(userAccountData.firstName, userAccountData.lastName);\r\n\r\n const isOneClubMember = userAccountData.membership.includes(userAccountConstants.oneClub);\r\n userAccountData.isOneClubMember = isOneClubMember;\r\n\r\n userService.setTOCHUserMembershipsInLocalStorage(JSON.stringify(userAccountData.membership));\r\n const customEvent = new CustomEvent('tochDataChanged', { detail: { showOneClubHubLink: isOneClubMember, membership: userAccountData.membership } });\r\n document.dispatchEvent(customEvent);\r\n\r\n this.setState(\r\n (prevState) => ({\r\n ...prevState,\r\n userAccountData\r\n })\r\n );\r\n }\r\n\r\n handleChangeAccountDetailsContent(event, nexComponentToRender) {\r\n if (event !== null) {\r\n event.preventDefault();\r\n }\r\n\r\n this.updateComponentToRender(nexComponentToRender);\r\n }\r\n\r\n updateComponentToRender(componentToRender, callbackFunction) {\r\n this.setState(\r\n (state) => ({\r\n ...state,\r\n componentToRender,\r\n fileNumberForDisplay: 0,\r\n upcomingTicket: {}\r\n }), callbackFunction\r\n );\r\n }\r\n\r\n refreshAccountPage(shouldRefreshComponent) {\r\n const { actions, accountFormData } = this.props;\r\n if (isEmpty(accountFormData)) {\r\n actions.signOutUser();\r\n return;\r\n }\r\n\r\n const { getUserDataCallbackUrl } = accountFormData;\r\n actions.getUserAccountData(getUserDataCallbackUrl, shouldRefreshComponent);\r\n }\r\n\r\n handleViewFileSummaryClick(fileNumber) {\r\n this.setState(\r\n (state) => ({\r\n ...state,\r\n componentToRender: userAccountContentConstants.userOrderHistory,\r\n fileNumberForDisplay: fileNumber\r\n })\r\n );\r\n }\r\n\r\n handleViewTicketsClick(upcomingTicket) {\r\n this.setState(\r\n (state) => ({\r\n ...state,\r\n componentToRender: userAccountContentConstants.userTickets,\r\n upcomingTicket\r\n })\r\n );\r\n }\r\n\r\n toggleDisplayMenu() {\r\n this.setState(formStateHelpers.toggleKey('shouldDisplayMenu'));\r\n }\r\n\r\n displayMyAccountPage() {\r\n const {\r\n componentToRender, userAccountData, shouldDisplayMenu\r\n } = this.state;\r\n const {\r\n accountFormData, isUserAccountDataLoadedSuccessful,\r\n isUserNotSignedIn, elapsedTime\r\n } = this.props;\r\n const { ssoDomain } = accountFormData;\r\n const { ssoAccountHomePageFields } = accountFormData;\r\n const {\r\n modalTriggerPromoPanel,\r\n serverErrorMessage,\r\n loadingErrorMessage,\r\n elapsedTimeLimit,\r\n } = ssoAccountHomePageFields;\r\n const { displayResaleTicketsMenuItem } = accountFormData;\r\n const dataLoadedSuccessful = !isUserNotSignedIn && isUserAccountDataLoadedSuccessful && !isEmpty(userAccountData);\r\n\r\n if (isUserNotSignedIn) {\r\n userService.removeDataFromLocalStorage(USER_STATE_VALID);\r\n if (serverErrorMessage && isUserNotSignedIn\r\n .includes(apiResponseMessages.SERVER_ERROR_MESSAGE)) {\r\n return
    \r\n

    {serverErrorMessage}

    \r\n
    ;\r\n }\r\n\r\n return (\r\n \r\n \r\n );\r\n }\r\n\r\n if (isEmpty(userAccountData)) {\r\n if (elapsedTime > elapsedTimeLimit && loadingErrorMessage) {\r\n return \r\n
    \r\n

    {loadingErrorMessage}

    \r\n
    \r\n \r\n
    ;\r\n }\r\n return ;\r\n }\r\n\r\n return (
    \r\n {dataLoadedSuccessful && }\r\n
    \r\n {dataLoadedSuccessful && this.displayAccountDetailsContent()}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n displayAccountDetailsContent() {\r\n const {\r\n componentToRender,\r\n userAccountData,\r\n fileNumberForDisplay,\r\n upcomingTicket\r\n } = this.state;\r\n const { accountFormData } = this.props;\r\n if (isEmpty(userAccountFormConstants[componentToRender])) {\r\n return

    {formMessageConstants.somethingWentWrong}

    ;\r\n }\r\n\r\n const copyOfAccountFormData = _.cloneDeep(accountFormData);\r\n const copyOfUserAccountData = _.cloneDeep(userAccountData);\r\n\r\n return userAccountFormConstants[componentToRender]({\r\n accountFormData: copyOfAccountFormData,\r\n userAccountData: copyOfUserAccountData,\r\n fileNumberForDisplay,\r\n upcomingTicket,\r\n refreshAccountPage: this.refreshAccountPage,\r\n handleViewFileSummaryClick: this.handleViewFileSummaryClick,\r\n handleViewTicketsClick: this.handleViewTicketsClick\r\n });\r\n }\r\n\r\n render() {\r\n return this.displayMyAccountPage();\r\n }\r\n}\r\n\r\nUserAccountPage.propTypes = {\r\n accountFormData: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n isUserNotSignedIn: state.userAccount.isUserNotSignedIn,\r\n isUserAccountDataLoadedSuccessful: state.userAccount.isUserAccountDataLoadedSuccessful,\r\n isAccountPageRefresh: state.userAccount.isAccountPageRefresh,\r\n userAccountData: state.userAccount.userAccountData,\r\n loadHomePageTicketsDataErrorMessages: state.userAccount.loadHomePageTicketsDataErrorMessages,\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n getUserAccountData: bindActionCreators(userAccountActions.getUserAccountData, dispatch),\r\n signOutUser: bindActionCreators(signInFormActions.signOutUser, dispatch),\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withLoadingInterval(UserAccountPage));\r\n","/* eslint-disable react/no-direct-mutation-state */\r\nimport React, { Component, Fragment } from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport * as registerFormActions from '../../../store/actions/register-form-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport SSOFormHeader from '../../common/utility/SSOFormHeader';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport { deepCopyObject, isEmpty } from '../../utils/obj-utils';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\nimport { getFormContainerWideLeftClassList, getModalContentClassListForSSOForm, toggleBemClassesForSSOFormModal } from '../helpers/form-helpers/form-modal-helpers';\r\nimport { ssoFormTypes } from '../../utils/form-types';\r\n\r\nclass DefaultRegisterForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { formData, formData: ssoDomain } = this.props;\r\n\r\n this.state = {\r\n ...initialState.defaultRegisterFormState,\r\n ssoDomain,\r\n isModalStylingUpdated: false\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.formReference = React.createRef();\r\n this.formReferences = formScrollHelpers.getFormReferences(formData);\r\n\r\n this.loadRegisterFormData = this.loadRegisterFormData.bind(this);\r\n this.displayDefaultRegisterForm = this.displayDefaultRegisterForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleUserRegisterSuccess = this.handleUserRegisterSuccess.bind(this);\r\n this.submitRegisterData = this.submitRegisterData.bind(this);\r\n\r\n this.loadRegisterFormData();\r\n }\r\n\r\n loadRegisterFormData() {\r\n const { actions, formData } = this.props;\r\n\r\n if (!hasValue(formData)) {\r\n actions.loadSSODefaultRegisterFormData();\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, this.props, ssoFormTypes.DefaultRegister);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isRegisterSuccessful,\r\n loading,\r\n formData\r\n } = nextProps;\r\n\r\n if (hasValue(formData) && !hasValue(this.state.ssoDomain)) {\r\n this.state.ssoDomain = formData.ssoDomain;\r\n }\r\n\r\n if (hasValue(formData) && !hasValue(this.formReferences)) {\r\n this.formReferences = formScrollHelpers.getFormReferences(formData);\r\n }\r\n\r\n if (hasValue(formData) && !this.state.isModalStylingUpdated) {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, nextProps, ssoFormTypes.DefaultRegister);\r\n }\r\n\r\n if (!loading &&\r\n isRegisterSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserRegisterSuccess);\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n !isRegisterSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false),\r\n () => {\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.defaultRegisterFormState);\r\n actions.resetRegisterFormState();\r\n }\r\n\r\n handleUserRegisterSuccess() {\r\n const { onUserRegisterSuccess } = this.props;\r\n const {\r\n formType,\r\n actionSuccessText,\r\n requestEmailVerificationCallbackUrl,\r\n requestEmailVerificationActionSuccessText\r\n } = this.props.formData;\r\n\r\n onUserRegisterSuccess(this.state[formConstants.emailAddress],\r\n {\r\n registerFormType: formType,\r\n successText: actionSuccessText,\r\n emailVerificationCallbackUrl: requestEmailVerificationCallbackUrl,\r\n emailVerificationActionSuccessText: requestEmailVerificationActionSuccessText\r\n });\r\n }\r\n\r\n async handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.props;\r\n const { reCaptcha } = this.state;\r\n\r\n if (reCaptcha) {\r\n formData.reCaptchaToken = reCaptcha;\r\n }\r\n\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n const captchaRef = this.formReferences[formConstants.reCaptcha];\r\n\r\n if (captchaRef) {\r\n captchaRef.current.props.grecaptcha.reset();\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.updateState);\r\n }\r\n\r\n updateState() {\r\n const { formData } = this.props;\r\n\r\n this.setState({ ssoEmailNotificationSettingsFields: formData.ssoEmailNotificationSettingsFields }, () => {\r\n this.submitRegisterData();\r\n });\r\n }\r\n\r\n submitRegisterData() {\r\n const { actions, formData } = this.props;\r\n const { callBackUrlPost } = formData;\r\n const actionSuccessText = formData.actionSuccessText || formMessageConstants.registrationSuccessText;\r\n\r\n actions.registerNewUser(this.state, actionSuccessText, callBackUrlPost);\r\n this.setState({ reCaptcha: '' });\r\n }\r\n\r\n displayForm() {\r\n const {\r\n onSignIn,\r\n onForgotPassword,\r\n isRegisterSuccessful,\r\n userRegistrationMessages,\r\n formData\r\n } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n return null;\r\n }\r\n\r\n const { formHeader } = formData;\r\n\r\n return (\r\n \r\n
    \r\n \r\n {this.displayDefaultRegisterForm()}\r\n \r\n \r\n
    );\r\n }\r\n\r\n displayDefaultRegisterForm() {\r\n const { formData } = this.props;\r\n const { mobilePhone } = formData;\r\n const copyOfFormData = deepCopyObject(formData);\r\n\r\n return FormBuilder({\r\n formData: copyOfFormData,\r\n formReferences: this.formReferences,\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleConfirmPasswordChange: (event) => { this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target)); },\r\n handleMobilePhoneChange: (event) => { this.setState(formStateHelpers.handleMobilePhoneChange(event, mobilePhone.isOptional)); },\r\n handleCaptchaChange: (token) => { this.setState(formStateHelpers.handleCaptchaChange(token)); },\r\n handleMastercardNumberChange: (event) => {\r\n this.setState(formStateHelpers.handleMastercardNumberChange(event.target,\r\n formData.mastercardRegex, formData.mastercardValidationError));\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const { isSaving } = this.state;\r\n const { loading, formData } = this.props;\r\n\r\n const { formBanner, desktopImageSrc, mobileImageSrc } = formData;\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n hasValue(mobileImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n \r\n
    \r\n {(isSaving || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n {\r\n hasValue(desktopImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nDefaultRegisterForm.propTypes = {\r\n onSignIn: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n onUserRegisterSuccess: PropTypes.func.isRequired,\r\n formData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n formData: !hasValue(ownProps.registerFormData) ? state.registerForm.registerFormData : ownProps.formData,\r\n isRegisterSuccessful: state.registerForm.isRegisterSuccessful,\r\n userRegistrationMessages: state.registerForm.userRegistrationMessages,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n loadSSODefaultRegisterFormData: bindActionCreators(registerFormActions.loadSSODefaultRegisterFormData, dispatch),\r\n registerNewUser: bindActionCreators(registerFormActions.registerNewUser, dispatch),\r\n resetRegisterFormState: bindActionCreators(registerFormActions.resetRegisterFormState, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(DefaultRegisterForm);\r\n","/* eslint-disable react/no-direct-mutation-state */\r\nimport React, { Component, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport { isEmpty, deepCopyObject } from '../../utils/obj-utils';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport * as registerFormActions from '../../../store/actions/register-form-actions';\r\nimport * as userAddressActions from '../../../store/actions/user-address-actions';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport SSOFormHeader from '../../common/utility/SSOFormHeader';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\nimport GTMUserActions from '../../common/utility/GTMUserActions';\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\nimport { getFormContainerWideLeftClassList, getModalContentClassListForSSOForm, toggleBemClassesForSSOFormModal } from '../helpers/form-helpers/form-modal-helpers';\r\nimport { ssoFormTypes } from '../../utils/form-types';\r\n\r\nclass TicketingRegisterForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const { registerFormData, ssoDomain } = this.props;\r\n\r\n this.state = {\r\n ...initialState.ticketingRegisterFormState,\r\n ssoDomain,\r\n isModalStylingUpdated: false\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.formReference = React.createRef();\r\n this.formReferences = formScrollHelpers.getFormReferences(registerFormData);\r\n\r\n this.loadRegisterFormData = this.loadRegisterFormData.bind(this);\r\n this.displayTicketingRegisterForm = this.displayTicketingRegisterForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleUserRegisterSuccess = this.handleUserRegisterSuccess.bind(this);\r\n this.submitRegisterData = this.submitRegisterData.bind(this);\r\n this.finishFormSubmit = this.finishFormSubmit.bind(this);\r\n\r\n this.loadRegisterFormData();\r\n }\r\n\r\n loadRegisterFormData() {\r\n const { actions, registerFormData } = this.props;\r\n\r\n if (isEmpty(registerFormData)) {\r\n actions.loadSSORegisterFormData();\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, this.props, ssoFormTypes.TicketingRegister);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isRegisterSuccessful,\r\n registerFormData,\r\n loading,\r\n isUserAddressRetrieveSuccessful,\r\n retrievedUserAddress\r\n } = nextProps;\r\n\r\n if (hasValue(registerFormData) && !this.state.isModalStylingUpdated) {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, nextProps, ssoFormTypes.TicketingRegister);\r\n }\r\n\r\n if (!loading && isUserAddressRetrieveSuccessful) {\r\n const { county, state } = registerFormData;\r\n this.setState(formStateHelpers.handleAddressDataChange(retrievedUserAddress, county, state));\r\n }\r\n\r\n if (!isEmpty(registerFormData) && isEmpty(this.formReferences)) {\r\n this.formReferences = formScrollHelpers.getFormReferences(registerFormData);\r\n }\r\n\r\n if (!loading &&\r\n isRegisterSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserRegisterSuccess);\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n !isRegisterSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false),\r\n () => {\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.ticketingRegisterFormState);\r\n actions.resetRegisterFormState();\r\n }\r\n\r\n handleUserRegisterSuccess() {\r\n const { onUserRegisterSuccess } = this.props;\r\n const {\r\n formType,\r\n actionSuccessText,\r\n requestEmailVerificationCallbackUrl,\r\n requestEmailVerificationActionSuccessText\r\n } = this.props.registerFormData;\r\n\r\n GTMUserActions.trackTicketingAccountAction();\r\n\r\n onUserRegisterSuccess(this.state[formConstants.emailAddress],\r\n {\r\n registerFormType: formType,\r\n successText: actionSuccessText,\r\n emailVerificationCallbackUrl: requestEmailVerificationCallbackUrl,\r\n emailVerificationActionSuccessText: requestEmailVerificationActionSuccessText\r\n });\r\n }\r\n\r\n async handleSubmit(event) {\r\n event.preventDefault();\r\n const { registerFormData } = this.props;\r\n const { reCaptcha } = this.state;\r\n\r\n if (reCaptcha) {\r\n registerFormData.reCaptchaToken = reCaptcha;\r\n }\r\n\r\n this.setState(formStateHelpers.handleFormValidation(registerFormData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n const captchaRef = this.formReferences[formConstants.reCaptcha];\r\n\r\n if (captchaRef) {\r\n captchaRef.current.props.grecaptcha.reset();\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitRegisterData);\r\n }\r\n\r\n submitRegisterData() {\r\n const { registerFormData } = this.props;\r\n\r\n GTMUserActions.trackTicketingAccountActionClick();\r\n\r\n if (registerFormData.membership) {\r\n this.setState({ membership: registerFormData.membership, ssoEmailNotificationSettingsFields: registerFormData.ssoEmailNotificationSettingsFields }, () => {\r\n this.finishFormSubmit();\r\n });\r\n return;\r\n }\r\n\r\n this.finishFormSubmit();\r\n }\r\n\r\n finishFormSubmit() {\r\n const { actions, registerFormData } = this.props;\r\n const { callBackUrlPost } = registerFormData;\r\n const actionSuccessText = registerFormData.actionSuccessText || formMessageConstants.registrationSuccessText;\r\n\r\n formScrollHelpers.scrollToField(this.formReferences[formConstants.dateOfBirth]);\r\n actions.registerNewUser(this.state, actionSuccessText, callBackUrlPost);\r\n this.setState({ reCaptcha: '' });\r\n }\r\n\r\n displayForm() {\r\n const {\r\n onSignIn,\r\n onForgotPassword,\r\n isRegisterSuccessful,\r\n userRegistrationMessages,\r\n registerFormData\r\n } = this.props;\r\n\r\n if (isEmpty(registerFormData)) {\r\n return null;\r\n }\r\n\r\n const { formHeader } = registerFormData;\r\n\r\n return (\r\n \r\n
    \r\n \r\n {this.displayTicketingRegisterForm()}\r\n \r\n \r\n
    );\r\n }\r\n\r\n displayTicketingRegisterForm() {\r\n const { actions, registerFormData } = this.props;\r\n const { availableCounties, country, availableStates } = this.state;\r\n const { county, mobilePhone, state } = registerFormData;\r\n const copyOfRegisterFormData = deepCopyObject(registerFormData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfRegisterFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n copyOfRegisterFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfRegisterFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfRegisterFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfRegisterFormData[formConstants.city].defaultValue = this.state[formConstants.city];\r\n copyOfRegisterFormData[formConstants.addressLine1].defaultValue = this.state[formConstants.addressLine1];\r\n copyOfRegisterFormData[formConstants.addressLine2].defaultValue = this.state[formConstants.addressLine2];\r\n copyOfRegisterFormData[formConstants.addressLine3].defaultValue = this.state[formConstants.addressLine3];\r\n copyOfRegisterFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n\r\n return FormBuilder({\r\n formData: copyOfRegisterFormData,\r\n formReferences: this.formReferences,\r\n countryData: { selectedCountry: country },\r\n countyData: { availableCounties, label: county ? county.label : formMessageConstants.emptyString },\r\n stateData: { availableStates, label: state ? state.label : formMessageConstants.emptyString },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleConfirmPasswordChange: (event) => { this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target)); },\r\n handleDateChange: (event) => { this.setState(formStateHelpers.handleDateChange(event)); },\r\n handleMobilePhoneChange: (event) => { this.setState(formStateHelpers.handleMobilePhoneChange(event, mobilePhone.isOptional)); },\r\n handleCaptchaChange: (token) => { this.setState(formStateHelpers.handleCaptchaChange(token)); },\r\n handleMastercardNumberChange: (event) => {\r\n this.setState(formStateHelpers.handleMastercardNumberChange(event.target,\r\n registerFormData.mastercardRegex, registerFormData.mastercardValidationError));\r\n },\r\n handleCountryChange: (event) => {\r\n this.setState(formStateHelpers.handleCountryChange(event.target, county, state),\r\n () => {\r\n actions.resetRetrievedUserAddress();\r\n });\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const { isSaving } = this.state;\r\n const { loading, registerFormData } = this.props;\r\n const { formBanner, desktopImageSrc, mobileImageSrc } = registerFormData;\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n hasValue(mobileImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n \r\n
    \r\n {(isSaving || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n {\r\n hasValue(desktopImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nTicketingRegisterForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n onSignIn: PropTypes.func.isRequired,\r\n onUserRegisterSuccess: PropTypes.func.isRequired,\r\n ssoDomain: PropTypes.string,\r\n registerFormData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n registerFormData: _.isEmpty(ownProps.registerFormData) ? state.registerForm.registerFormData : ownProps.registerFormData,\r\n isRegisterSuccessful: state.registerForm.isRegisterSuccessful,\r\n userRegistrationMessages: state.registerForm.userRegistrationMessages,\r\n isUserAddressRetrieveSuccessful: state.userAddressSearchData.isUserAddressRetrieveSuccessful,\r\n retrieveAddressMessages: state.userAddressSearchData.retrieveAddressMessages,\r\n retrievedUserAddress: state.userAddressSearchData.retrievedUserAddress\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n loadSSORegisterFormData: bindActionCreators(registerFormActions.loadSSOTicketingRegisterFormData, dispatch),\r\n registerNewUser: bindActionCreators(registerFormActions.registerNewUser, dispatch),\r\n resetRegisterFormState: bindActionCreators(registerFormActions.resetRegisterFormState, dispatch),\r\n resetRetrievedUserAddress: bindActionCreators(userAddressActions.resetRetrievedUserAddress, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(TicketingRegisterForm);\r\n","/* eslint-disable react/no-direct-mutation-state */\r\nimport React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport gtm from 'general/js/gtm';\r\nimport * as signInFormActions from '../../../store/actions/sign-in-form-actions';\r\nimport * as signInFormHelpers from '../helpers/form-helpers/sign-in-form-helpers';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport * as upgradeAccountFormActions from '../../../store/actions/upgrade-account-actions';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport SSOFormHeader from '../../common/utility/SSOFormHeader';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport userService from '../../../../../general/js/user/user-service';\r\nimport { SECUTIX_CONTACT_ID, USER_ID } from '../../../../../general/js/user/constants';\r\nimport { hasValue, isNullOrUndefined } from '../../../../../general/js/general-helpers';\r\nimport { toggleBemClassesForSSOFormModal } from '../helpers/form-helpers/form-modal-helpers';\r\nimport * as upgradeFormHelper from '../helpers/form-helpers/upgrade-form-helper';\r\nimport { ssoFormTypes } from '../../utils/form-types';\r\nimport { getWebsiteDomain } from '../../../../../general/js/helpers';\r\nimport { domainConstants } from '../../utils/constants/domain-constants';\r\nimport {\r\n MembershipTypes,\r\n getParameterByName,\r\n redirectTo,\r\n reloadPage,\r\n reloadToBasePage\r\n} from '../../../../../general/js/utils';\r\nimport { QueryConstants } from '../../../../../general/js/utils/query-constants';\r\nimport { CookieNames } from '../../../../../general/js/utils/cookies';\r\n\r\nclass SignInForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n ...initialState.signInFormState,\r\n isModalStylingUpdated: false,\r\n gtmTrigger: false\r\n };\r\n\r\n this.formReference = React.createRef();\r\n this.displaySignInForm = this.displaySignInForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.submitSignInData = this.submitSignInData.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleSignInSuccess = this.handleSignInSuccess.bind(this);\r\n this.updateLastLogInUserDetails = this.updateLastLogInUserDetails.bind(this);\r\n this.loadSignInFormData = this.loadSignInFormData.bind(this);\r\n this.getNextComponentToRender = this.getNextComponentToRender.bind(this);\r\n this.loadSSOSignInSuccessFormData = this.loadSSOSignInSuccessFormData.bind(this);\r\n this.loadSSOUpgradeToOneClubFormData = this.loadSSOUpgradeToOneClubFormData.bind(this);\r\n\r\n this.loadSignInFormData();\r\n this.loadSSOSignInSuccessFormData();\r\n }\r\n\r\n loadSignInFormData() {\r\n const { actions, signInFormData } = this.props;\r\n\r\n if (isEmpty(signInFormData)) {\r\n actions.loadSSOSignInFormData();\r\n }\r\n }\r\n\r\n loadSSOSignInSuccessFormData() {\r\n const { actions } = this.props;\r\n\r\n actions.loadSSOSignInSuccessFormData();\r\n }\r\n\r\n componentDidMount() {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, this.props, ssoFormTypes.SignIn);\r\n }\r\n\r\n loadSSOUpgradeToOneClubFormData() {\r\n const { actions } = this.props;\r\n\r\n actions.loadSSOUpgradeToOneClubFormData();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isSignInSuccessful,\r\n isNewPasswordRequired,\r\n cognitoUser,\r\n onNewPasswordRequired,\r\n loading,\r\n isUserLastLogInDataUpdated,\r\n userLastLogInDataErrorMessages,\r\n signInFormData\r\n } = nextProps;\r\n\r\n if (hasValue(signInFormData) && !this.state.isModalStylingUpdated) {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, nextProps, ssoFormTypes.SignIn);\r\n }\r\n\r\n if (signInFormHelpers.isSignInSuccess(nextProps) && !(isUserLastLogInDataUpdated || hasValue(userLastLogInDataErrorMessages))) {\r\n this.updateLastLogInUserDetails(nextProps);\r\n }\r\n\r\n if (signInFormHelpers.isSignInSuccess(nextProps) && (isUserLastLogInDataUpdated || hasValue(userLastLogInDataErrorMessages))) {\r\n this.handleSignInSuccess(cognitoUser, nextProps);\r\n }\r\n\r\n if (!loading && isNewPasswordRequired && isSignInSuccessful) {\r\n onNewPasswordRequired(cognitoUser);\r\n }\r\n\r\n if (!loading && !isSignInSuccessful) {\r\n this.setState(formStateHelpers.updateProcessingState(false));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.signInFormState);\r\n actions.resetSignInFormState();\r\n }\r\n\r\n updateLastLogInUserDetails(nextProps) {\r\n if (isNullOrUndefined(nextProps)) return;\r\n\r\n const { actions, signInFormData } = nextProps;\r\n\r\n if (isNullOrUndefined(actions) || isNullOrUndefined(signInFormData)) return;\r\n\r\n const { lastLoggedInDataCallBackUrl } = signInFormData;\r\n\r\n const { lastLoginDate, lastLoginPlatform, lastLoginDevice } = signInFormHelpers.getLastLogInData();\r\n\r\n actions.updateUserSignInDetails({\r\n lastLoginDate,\r\n lastLoginPlatform,\r\n lastLoginDevice,\r\n callBackUrl: lastLoggedInDataCallBackUrl\r\n });\r\n }\r\n\r\n handleSignInSuccess(cognitUser, nextProps) {\r\n const { onSignInSuccess, signInSuccessFormData, upgradeToOneClubFormData } = nextProps;\r\n const website = getWebsiteDomain();\r\n\r\n if (!hasValue(upgradeToOneClubFormData) && website === domainConstants.theOpen) {\r\n this.loadSSOUpgradeToOneClubFormData();\r\n }\r\n\r\n this.setState(formStateHelpers.updateProcessingState(false), () => {\r\n const redirectToAddress = getParameterByName(QueryConstants.REDIRECT_TO);\r\n const showPopup = getParameterByName(QueryConstants.SHOW_POPUP);\r\n\r\n const isOneClub = cognitUser.attributes['custom:Membership'].includes(MembershipTypes.OneClub);\r\n const optIns = JSON.parse(cognitUser.attributes['custom:OptIns']);\r\n userService.setTOCHUserMembershipsInLocalStorage(JSON.stringify(cognitUser.attributes['custom:Membership']));\r\n userService.setDataInLocalStorage(CookieNames.TOCH_USER_EMAIL, cognitUser.attributes.email);\r\n userService.setDataInLocalStorage(USER_ID, cognitUser.attributes.sub);\r\n\r\n const ticketingAccountId = cognitUser.attributes['custom:TicketingAccountId'];\r\n\r\n if (ticketingAccountId) {\r\n userService.setDataInLocalStorage(SECUTIX_CONTACT_ID, ticketingAccountId);\r\n }\r\n\r\n if (this.state.gtmTrigger === false) {\r\n this.state.gtmTrigger = true;\r\n gtm.push('Sign In', 'Sign in Success', window.location.href);\r\n }\r\n\r\n if (!isEmpty(redirectToAddress)) {\r\n redirectTo(redirectToAddress);\r\n return;\r\n }\r\n\r\n if (isOneClub && website === domainConstants.theOpen) {\r\n //check if should render upgrade to One Club account\r\n if (hasValue(upgradeToOneClubFormData)) {\r\n const currentUser = upgradeToOneClubFormData.currentUser;\r\n const hasOneClubRequiredFields = upgradeFormHelper.hasOneClubRequiredFields(currentUser, optIns);\r\n if (!hasOneClubRequiredFields) {\r\n onSignInSuccess(upgradeToOneClubFormData, ssoFormTypes.UpgradeToOneClubAccountFromDefault);\r\n } else {\r\n reloadPage();\r\n }\r\n }\r\n } else {\r\n const hasAgreeToPrivacyPolicyChecked = signInFormHelpers.hasAgreeToPrivacyPolicyChecked(optIns);\r\n\r\n if (!hasAgreeToPrivacyPolicyChecked) {\r\n onSignInSuccess(signInSuccessFormData, ssoFormTypes.SignInSuccess);\r\n return;\r\n }\r\n\r\n if (isEmpty(showPopup)) {\r\n reloadPage();\r\n return;\r\n }\r\n\r\n reloadToBasePage();\r\n }\r\n });\r\n }\r\n\r\n getNextComponentToRender(optIns) {\r\n if (optIns.agreedToPrivacyPolicy === undefined || optIns.agreedToPrivacyPolicy === false) return true;\r\n\r\n return false;\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { signInFormData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(signInFormData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (!this.state.formHasErrors) {\r\n this.setState(formStateHelpers.updateProcessingState(true), this.submitSignInData);\r\n }\r\n }\r\n\r\n submitSignInData() {\r\n const { actions, signInFormData } = this.props;\r\n const { actionSuccessText } = signInFormData;\r\n const {\r\n userName,\r\n emailAddress,\r\n password\r\n } = this.state;\r\n const { maxIdleTimeInSeconds } = signInFormData;\r\n\r\n actions.signInUser({\r\n userName,\r\n emailAddress,\r\n password,\r\n actionSuccessText,\r\n maxIdleTimeInSeconds\r\n });\r\n }\r\n\r\n displayForm() {\r\n const {\r\n onForgotPassword,\r\n onRegister,\r\n signInFormData,\r\n isSignInSuccessful,\r\n signInMessages\r\n } = this.props;\r\n\r\n if (isEmpty(signInFormData)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n \r\n {this.displaySignInForm()}\r\n \r\n \r\n
    );\r\n }\r\n\r\n displaySignInForm() {\r\n const { signInFormData } = this.props;\r\n return FormBuilder({\r\n formData: signInFormData,\r\n formReferences: this.formReferences,\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleFieldValidState: (fieldName) => { const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors); },\r\n });\r\n }\r\n\r\n render() {\r\n const { loading } = this.props;\r\n const { isProcessing } = this.state;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {isProcessing || loading ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSignInForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n onForgotPassword: PropTypes.func.isRequired,\r\n onRegister: PropTypes.func.isRequired,\r\n onNewPasswordRequired: PropTypes.func.isRequired,\r\n onSignInSuccess: PropTypes.func.isRequired,\r\n signInFormData: PropTypes.object,\r\n signInSuccessFormData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n signInFormData: state.signInForm.signInFormData,\r\n isSignInSuccessful: state.signInForm.isSignInSuccessful,\r\n isUserLastLogInDataUpdated: state.signInForm.isUserLastLogInDataUpdated,\r\n userLastLogInDataErrorMessages: state.signInForm.userLastLogInDataErrorMessages,\r\n isNewPasswordRequired: state.signInForm.isNewPasswordRequired,\r\n cognitoUser: state.signInForm.cognitoUser,\r\n signInMessages: state.signInForm.signInMessages,\r\n signInSuccessFormData: state.signInForm.signInSuccessFormData,\r\n upgradeToOneClubFormData: state.upgradeAccountForm.upgradeToOneClubFormData\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n updateUserSignInDetails: bindActionCreators(signInFormActions.updateUserSignInDetails, dispatch),\r\n loadSSOSignInFormData: bindActionCreators(signInFormActions.loadSSOSignInFormData, dispatch),\r\n signInUser: bindActionCreators(signInFormActions.signInUser, dispatch),\r\n resetSignInFormState: bindActionCreators(signInFormActions.resetSignInFormState, dispatch),\r\n loadSSOSignInSuccessFormData: bindActionCreators(signInFormActions.loadSSOSignInSuccessFormData, dispatch),\r\n loadSSOUpgradeToOneClubFormData: bindActionCreators(upgradeAccountFormActions.loadSSOUpgradeToOneClubFormData, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(SignInForm);\r\n","import basketService from '../../../../general/js/basket/basket-service';\r\nimport * as types from './action-types';\r\nimport * as apiResponseMessages from './api-response-messages';\r\nimport { beginApiCall, apiCallError } from './api-status-actions';\r\n\r\nexport function purchaseAttemptSuccess(purchaseAttemptMessages) {\r\n return { type: types.PURCHASE_ATTEMPT_SUCCESS, purchaseAttemptMessages };\r\n}\r\n\r\nexport function purchaseAttemptError(purchaseAttemptMessages) {\r\n return { type: types.PURCHASE_ATTEMPT_ERROR, purchaseAttemptMessages };\r\n}\r\n\r\nexport function resetUpgradeAccountFormState() {\r\n return { type: types.RESET_UPGRADE_ACCOUNT_FORM };\r\n}\r\n\r\nexport function retryPurchase() {\r\n const products = localStorage.getItem('ticketBasket2019');\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n basketService.checkout(products, false)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(purchaseAttemptError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n\r\n dispatch(purchaseAttemptSuccess([apiResponseMessages.UPGRADE_TO_TICKETING_ACCOUNT_SUCCESSFULLY]));\r\n }).catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(purchaseAttemptError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n","/* eslint-disable no-restricted-globals */\r\n/* eslint-disable no-nested-ternary */\r\n/* eslint-disable react/no-direct-mutation-state */\r\nimport React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport _ from 'lodash';\r\nimport get from 'lodash/get';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport * as upgradeAccountActions from '../../../store/actions/upgrade-account-actions';\r\nimport * as userAddressActions from '../../../store/actions/user-address-actions';\r\nimport * as basketActions from '../../../store/actions/basket-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport * as upgradeFormHelper from '../helpers/form-helpers/upgrade-form-helper';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport { isEmpty, deepCopyObject } from '../../utils/obj-utils';\r\nimport { createDate } from '../../utils/date-utils';\r\nimport { domainConstants } from '../../utils/constants/domain-constants';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\nimport { getFormContainerWideLeftClassList, getModalContentClassListForSSOForm, toggleBemClassesForSSOFormModal } from '../helpers/form-helpers/form-modal-helpers';\r\nimport { ssoFormTypes } from '../../utils/form-types';\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\n\r\nclass UpgradeToTicketingAccountForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { formData } = this.props;\r\n const { ssoDomain } = formData;\r\n\r\n const mainAddress = upgradeFormHelper.getMainAddress(formData.currentUser);\r\n const birthDate = upgradeFormHelper.getDateOfBirth(formData.currentUser);\r\n\r\n this.state = {\r\n ...initialState.upgradeAccountFormState,\r\n ssoDomain,\r\n [formConstants.title]: upgradeFormHelper.getTitle(formData.currentUser),\r\n [formConstants.dateOfBirth]: birthDate ? createDate(birthDate.year, birthDate.month, birthDate.day) : null,\r\n [formConstants.country]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.country),\r\n [formConstants.county]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.county),\r\n [formConstants.state]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.state),\r\n [formConstants.city]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.city),\r\n [formConstants.addressLine1]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine1),\r\n [formConstants.addressLine2]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine2),\r\n [formConstants.addressLine3]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine3),\r\n [formConstants.postcode]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.postcode),\r\n [formConstants.mobilePhone]: upgradeFormHelper.getMobilePhone(formData, formConstants),\r\n isModalStylingUpdated: false\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.formReference = React.createRef();\r\n\r\n this.displayUpgradeToTicketingAccountForm = this.displayUpgradeToTicketingAccountForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleAccountUpgradeSuccess = this.handleAccountUpgradeSuccess.bind(this);\r\n this.submitUserDetailsData = this.submitUserDetailsData.bind(this);\r\n\r\n this.formReferences = formScrollHelpers.getFormReferences(formData);\r\n }\r\n\r\n componentDidMount() {\r\n const { onSignIn, formData } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n onSignIn();\r\n }\r\n\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, this.props, ssoFormTypes.UpgradeToTicketingAccount);\r\n\r\n this.updateActiveMemberships();\r\n\r\n this.updateAvailableCounties();\r\n\r\n this.updateAvailableStates();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n formData,\r\n isUpgradeSuccessful,\r\n loading,\r\n retrievedUserAddress,\r\n isUserAddressRetrieveSuccessful\r\n } = nextProps;\r\n\r\n if (hasValue(formData) && !this.state.isModalStylingUpdated) {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, nextProps, ssoFormTypes.UpgradeToTicketingAccount);\r\n }\r\n\r\n if (!loading && isUserAddressRetrieveSuccessful) {\r\n const { county, state } = formData;\r\n this.setState(formStateHelpers.handleAddressDataChange(retrievedUserAddress, county, state));\r\n }\r\n\r\n if (!loading &&\r\n isUpgradeSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleAccountUpgradeSuccess);\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n !isUpgradeSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false),\r\n () => {\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.upgradeAccountFormState);\r\n actions.resetUpgradeAccountFormState();\r\n }\r\n\r\n updateActiveMemberships() {\r\n const { onSignIn, formData: { activeMemberships } } = this.props;\r\n\r\n if (isEmpty(activeMemberships)) {\r\n onSignIn();\r\n }\r\n\r\n this.setState(formStateHelpers.updateActiveMemberships(activeMemberships));\r\n }\r\n\r\n updateAvailableCounties() {\r\n const { formData: { county } } = this.props;\r\n const receivedCountry = get(this.state, formConstants.country, null);\r\n\r\n this.setState(formStateHelpers.updateAvailableCounties(receivedCountry, county));\r\n }\r\n\r\n updateAvailableStates() {\r\n const { formData: { state } } = this.props;\r\n const receivedCountry = get(this.state, formConstants.country, null);\r\n\r\n this.setState(formStateHelpers.updateAvailableStates(receivedCountry, state));\r\n }\r\n\r\n handleAccountUpgradeSuccess() {\r\n const { actions, formData } = this.props;\r\n const { isFromResale, resaleTickets } = formData;\r\n if (isFromResale) {\r\n actions.handleRedirectToResaleTickets(resaleTickets.buyLink, resaleTickets.secutixResaleUrl, resaleTickets.secutixPointOfSaleId, resaleTickets.secutixVirtualOperator);\r\n } else {\r\n actions.retryPurchase();\r\n }\r\n }\r\n\r\n async handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.props;\r\n const { reCaptcha } = this.state;\r\n\r\n if (reCaptcha) {\r\n formData.reCaptchaToken = reCaptcha;\r\n }\r\n\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitUserDetailsData);\r\n }\r\n\r\n submitUserDetailsData() {\r\n const { actions, formData } = this.props;\r\n const { callBackUrlPut, currentUser, ssoDomain } = formData;\r\n\r\n formScrollHelpers.scrollToField(this.formReferences[formConstants.title]);\r\n actions.upgradeToTicketingAccount(ssoDomain, this.state, currentUser, callBackUrlPut);\r\n }\r\n\r\n displayForm() {\r\n const {\r\n onSignIn,\r\n isUpgradeSuccessful,\r\n accountUpgradeMessages,\r\n isPaymentAttemptSuccessful,\r\n purchaseAttemptMessages,\r\n formData\r\n } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n return null;\r\n }\r\n\r\n const messagesToDisplay = _.isEmpty(accountUpgradeMessages) ? purchaseAttemptMessages : accountUpgradeMessages;\r\n const isWomensOpen = window.location.hostname.toLowerCase().includes(domainConstants.womensOpen.toLowerCase());\r\n\r\n const isFromResale = formData.isFromResale;\r\n const footerLinkText = !isFromResale ? `${formMessageConstants.alreadyHaveATicketingAccount} ${formMessageConstants.signInHere}` : '';\r\n const footerButtonText = !isFromResale ? (isWomensOpen ? formMessageConstants.updateAccount : formMessageConstants.upgradeAccount) : formMessageConstants.upgradeAccountResale;\r\n\r\n return (\r\n
    \r\n \r\n {this.displayUpgradeToTicketingAccountForm()}\r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n displayUpgradeToTicketingAccountForm() {\r\n const { actions, formData } = this.props;\r\n const { availableCounties, country, availableStates } = this.state;\r\n const { county, mobilePhone, state } = formData;\r\n const copyOfFormData = deepCopyObject(formData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n copyOfFormData[formConstants.title].defaultValue = this.state[formConstants.title];\r\n\r\n if (this.state[formConstants.dateOfBirth] !== undefined && this.state[formConstants.dateOfBirth] instanceof Date && !isNaN(this.state[formConstants.dateOfBirth])) {\r\n if (!copyOfFormData[formConstants.dateOfBirth].defaultValue) {\r\n copyOfFormData[formConstants.dateOfBirth].defaultValue = this.state[formConstants.dateOfBirth];\r\n }\r\n }\r\n\r\n copyOfFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfFormData[formConstants.city].defaultValue = this.state[formConstants.city];\r\n copyOfFormData[formConstants.addressLine1].defaultValue = this.state[formConstants.addressLine1];\r\n copyOfFormData[formConstants.addressLine2].defaultValue = this.state[formConstants.addressLine2];\r\n copyOfFormData[formConstants.addressLine3].defaultValue = this.state[formConstants.addressLine3];\r\n copyOfFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n\r\n if (this.state[formConstants.mobilePhone]) {\r\n if (!copyOfFormData[formConstants.mobilePhone].defaultValue) {\r\n copyOfFormData[formConstants.mobilePhone].defaultValue = {};\r\n copyOfFormData[formConstants.mobilePhone].defaultValue.selectedCountry = this.state[formConstants.mobilePhone].selectedCountry;\r\n copyOfFormData[formConstants.mobilePhone].defaultValue.phoneNumber = this.state[formConstants.mobilePhone].phoneNumber;\r\n }\r\n }\r\n\r\n return FormBuilder({\r\n formData: copyOfFormData,\r\n formReferences: this.formReferences,\r\n countryData: { selectedCountry: country },\r\n countyData: { availableCounties, label: county ? county.label : formMessageConstants.emptyString },\r\n stateData: { availableStates, label: state ? state.label : formMessageConstants.emptyString },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleDateChange: (event) => { this.setState(formStateHelpers.handleDateChange(event)); },\r\n handleMobilePhoneChange: (event) => { this.setState(formStateHelpers.handleMobilePhoneChange(event, mobilePhone.isOptional)); },\r\n handleCaptchaChange: (token) => { this.setState(formStateHelpers.handleCaptchaChange(token)); },\r\n handleCountryChange: (event) => {\r\n this.setState(formStateHelpers.handleCountryChange(event.target, county, state),\r\n () => {\r\n actions.resetRetrievedUserAddress();\r\n });\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const { isSaving } = this.state;\r\n const { loading, formData } = this.props;\r\n const { formBanner, desktopImageSrc, mobileImageSrc } = formData;\r\n\r\n const isFromResale = formData.isFromResale;\r\n const headerTitle = !isFromResale ? formMessageConstants.upgradeToTicketingAccount : formMessageConstants.upgradeToTicketingAccountFromResale;\r\n\r\n formBanner.bannerTitle = headerTitle;\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n hasValue(mobileImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n \r\n
    \r\n {(isSaving || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n {\r\n hasValue(desktopImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nUpgradeToTicketingAccountForm.propTypes = {\r\n onSignIn: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n formData: PropTypes.object,\r\n ssoDomain: PropTypes.string\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isUpgradeSuccessful: state.upgradeAccountForm.isUpgradeSuccessful,\r\n accountUpgradeMessages: state.upgradeAccountForm.accountUpgradeMessages,\r\n isPaymentAttemptSuccessful: state.basket.isPaymentAttemptSuccessful,\r\n purchaseAttemptMessages: state.basket.purchaseAttemptMessages,\r\n isUserAddressRetrieveSuccessful: state.userAddressSearchData.isUserAddressRetrieveSuccessful,\r\n retrieveAddressMessages: state.userAddressSearchData.retrieveAddressMessages,\r\n retrievedUserAddress: state.userAddressSearchData.retrievedUserAddress\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n upgradeToTicketingAccount: bindActionCreators(upgradeAccountActions.upgradeToTicketingAccount, dispatch),\r\n resetUpgradeAccountFormState: bindActionCreators(upgradeAccountActions.resetUpgradeAccountFormState, dispatch),\r\n retryPurchase: bindActionCreators(basketActions.retryPurchase, dispatch),\r\n resetRetrievedUserAddress: bindActionCreators(userAddressActions.resetRetrievedUserAddress, dispatch),\r\n handleRedirectToResaleTickets: bindActionCreators(userAccountActions.handleRedirectToResaleTickets, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(UpgradeToTicketingAccountForm);\r\n","/* eslint-disable no-nested-ternary */\r\n/* eslint-disable no-restricted-globals */\r\nimport React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport _ from 'lodash';\r\nimport get from 'lodash/get';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport * as upgradeAccountActions from '../../../store/actions/upgrade-account-actions';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport * as userAddressActions from '../../../store/actions/user-address-actions';\r\nimport * as basketActions from '../../../store/actions/basket-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport * as upgradeFormHelper from '../helpers/form-helpers/upgrade-form-helper';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport SSOFormHeader from '../../common/utility/SSOFormHeader';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport { isEmpty, deepCopyObject } from '../../utils/obj-utils';\r\nimport { ssoFormTypes } from '../../utils/form-types';\r\nimport GTMUserActions from '../../common/utility/GTMUserActions';\r\nimport { updateTOCHUserMemberships } from '../../../../../general/js/helpers';\r\nimport { updateUserDataCookie } from '../../utils/user-data-cookie/user-data-cookie-helpers';\r\nimport { getFormContainerWideLeftClassList, toggleBemClassesForSSOFormModal } from '../helpers/form-helpers/form-modal-helpers';\r\nimport { hasValue, isNullOrUndefined, toggleCssClass } from '../../../../../general/js/general-helpers';\r\nimport { createDate } from '../../utils/date-utils';\r\nimport { MembershipTypes, redirectTo, reloadPage } from '../../../../../general/js/utils';\r\n\r\nclass UpgradeToOneClubAccountForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { formData } = this.props;\r\n\r\n const mainAddress = upgradeFormHelper.getMainAddress(formData.currentUser);\r\n const formType = get(formData, formConstants.formType, null);\r\n const birthDate = upgradeFormHelper.getDateOfBirth(formData.currentUser);\r\n\r\n this.state = {\r\n ...initialState.upgradeAccountFormState,\r\n [formConstants.title]: upgradeFormHelper.getTitle(formData.currentUser),\r\n [formConstants.dateOfBirth]: birthDate ? createDate(birthDate.year, birthDate.month, birthDate.day) : null,\r\n [formConstants.country]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.country),\r\n [formConstants.county]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.county),\r\n [formConstants.state]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.state),\r\n [formConstants.city]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.city),\r\n [formConstants.addressLine1]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine1),\r\n [formConstants.addressLine2]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine2),\r\n [formConstants.addressLine3]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine3),\r\n [formConstants.postcode]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.postcode),\r\n [formConstants.mobilePhone]: upgradeFormHelper.getMobilePhone(formData, formConstants),\r\n [formConstants.formType]: formType\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.formReference = React.createRef();\r\n\r\n this.displayUpgradeToOneClubAccountForm = this.displayUpgradeToOneClubAccountForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleAccountUpgradeSuccess = this.handleAccountUpgradeSuccess.bind(this);\r\n this.submitUserDetailsData = this.submitUserDetailsData.bind(this);\r\n\r\n this.formReferences = formScrollHelpers.getFormReferences(formData);\r\n }\r\n\r\n componentDidMount() {\r\n const { onSignIn, formData, ssoFormType } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n onSignIn();\r\n }\r\n\r\n this.hideModalCloseButton();\r\n\r\n if (ssoFormType === ssoFormTypes.UpgradeToOneClubAccountFromDefault) {\r\n toggleBemClassesForSSOFormModal(this.formReference, this.props, ssoFormType);\r\n }\r\n\r\n this.updateActiveMemberships();\r\n\r\n this.updateAvailableCounties();\r\n\r\n this.updateAvailableStates();\r\n }\r\n\r\n async componentWillReceiveProps(nextProps) {\r\n const {\r\n formData,\r\n isUpgradeSuccessful,\r\n loading,\r\n retrievedUserAddress,\r\n isUserAddressRetrieveSuccessful\r\n } = nextProps;\r\n\r\n const { isSubmitAction } = this.state;\r\n\r\n this.hideModalCloseButton(nextProps);\r\n\r\n if (!loading && (!isSubmitAction && isUserAddressRetrieveSuccessful)) {\r\n const { county, state } = formData;\r\n this.setState(formStateHelpers.handleAddressDataChange(retrievedUserAddress, county, state));\r\n }\r\n\r\n if (!loading &&\r\n isUpgradeSuccessful) {\r\n updateTOCHUserMemberships('OneClub');\r\n await updateUserDataCookie(true, true);\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleAccountUpgradeSuccess);\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n !isUpgradeSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false),\r\n () => {\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n this.setState(formStateHelpers.handleSubmit(false));\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.upgradeAccountFormState);\r\n actions.resetUpgradeAccountFormState();\r\n }\r\n\r\n\r\n hideModalCloseButton(nextProps = {}) {\r\n const { formData } = hasValue(nextProps) ? nextProps : this.props;\r\n const { hideCloseButton } = hasValue(formData) ? formData : { hideCloseButton: false };\r\n\r\n if (hideCloseButton) {\r\n const closeButton = document.querySelector('.modal__close');\r\n\r\n if (!isNullOrUndefined(closeButton)) {\r\n toggleCssClass(closeButton, 'is-hidden', hideCloseButton);\r\n }\r\n }\r\n }\r\n\r\n updateActiveMemberships() {\r\n const { onSignIn, formData: { activeMemberships } } = this.props;\r\n\r\n if (isEmpty(activeMemberships)) {\r\n onSignIn();\r\n }\r\n\r\n this.setState(formStateHelpers.updateActiveMemberships(activeMemberships));\r\n }\r\n\r\n updateAvailableCounties() {\r\n const { formData: { county } } = this.props;\r\n const receivedCountry = get(this.state, formConstants.country, null);\r\n\r\n this.setState(formStateHelpers.updateAvailableCounties(receivedCountry, county));\r\n }\r\n\r\n updateAvailableStates() {\r\n const { formData: { state } } = this.props;\r\n const receivedCountry = get(this.state, formConstants.country, null);\r\n\r\n this.setState(formStateHelpers.updateAvailableStates(receivedCountry, state));\r\n }\r\n\r\n handleAccountUpgradeSuccess() {\r\n const {\r\n actions,\r\n formData,\r\n userAddedToAddressBookSuccessful,\r\n saveUserToAddressBookErrorMessages\r\n } = this.props;\r\n\r\n this.setState(formStateHelpers.handleSubmit(false));\r\n\r\n const { currentUser } = hasValue(formData) ? formData : { currentUser: {} };\r\n\r\n if (!userAddedToAddressBookSuccessful && !hasValue(saveUserToAddressBookErrorMessages)) {\r\n actions.saveUserToAddressBook(formData, currentUser);\r\n return;\r\n }\r\n\r\n if (formData.reloadPage) {\r\n reloadPage();\r\n return;\r\n }\r\n\r\n if (formData.oneClubHubData === null || formData.oneClubHubData === undefined || formData.oneClubHubData.IsOneClubHubUpgrade === false) {\r\n actions.retryPurchase();\r\n } else {\r\n redirectTo(formData.oneClubHubData.ReturnUrl);\r\n }\r\n }\r\n\r\n async handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.props;\r\n const { reCaptcha } = this.state;\r\n\r\n if (reCaptcha) {\r\n formData.reCaptchaToken = reCaptcha;\r\n }\r\n\r\n this.setState(formStateHelpers.handleSubmit(true));\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitUserDetailsData);\r\n }\r\n\r\n submitUserDetailsData() {\r\n const { actions, formData } = this.props;\r\n const { callBackUrlPut, currentUser } = formData;\r\n\r\n formScrollHelpers.scrollToField(this.formReferences[formConstants.title]);\r\n actions.upgradeToOneClubAccount(this.state, currentUser, callBackUrlPut);\r\n\r\n GTMUserActions.trackJoinTheOneClubAction();\r\n }\r\n\r\n displayForm() {\r\n const {\r\n onSignIn,\r\n isUpgradeSuccessful,\r\n accountUpgradeMessages,\r\n isPaymentAttemptSuccessful,\r\n purchaseAttemptMessages,\r\n formData\r\n } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n return null;\r\n }\r\n const messagesToDisplay = _.isEmpty(accountUpgradeMessages) ? purchaseAttemptMessages : accountUpgradeMessages;\r\n const isOneClub = formData.activeMemberships.includes(MembershipTypes.OneClub);\r\n const headerTitle = isOneClub ? formMessageConstants.completeToOneClubAccount : formMessageConstants.upgradeToOneClubAccount;\r\n\r\n return (\r\n \r\n
    \r\n \r\n {this.displayUpgradeToOneClubAccountForm()}\r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n displayUpgradeToOneClubAccountForm() {\r\n const { actions, formData } = this.props;\r\n const { availableCounties, country, availableStates } = this.state;\r\n const { county, mobilePhone, state } = formData;\r\n const copyOfFormData = deepCopyObject(formData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n if (formData.formType === ssoFormTypes.UpgradeToOneClubAccountFromDefault) {\r\n copyOfFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfFormData[formConstants.city].defaultValue = this.state[formConstants.city];\r\n copyOfFormData[formConstants.addressLine1].defaultValue = this.state[formConstants.addressLine1];\r\n copyOfFormData[formConstants.addressLine2].defaultValue = this.state[formConstants.addressLine2];\r\n copyOfFormData[formConstants.addressLine3].defaultValue = this.state[formConstants.addressLine3];\r\n copyOfFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n copyOfFormData[formConstants.title].defaultValue = this.state[formConstants.title];\r\n\r\n if (this.state[formConstants.mobilePhone]) {\r\n if (!copyOfFormData[formConstants.mobilePhone].defaultValue) {\r\n copyOfFormData[formConstants.mobilePhone].defaultValue = {};\r\n copyOfFormData[formConstants.mobilePhone].defaultValue.selectedCountry = this.state[formConstants.mobilePhone].selectedCountry;\r\n copyOfFormData[formConstants.mobilePhone].defaultValue.phoneNumber = this.state[formConstants.mobilePhone].phoneNumber;\r\n }\r\n }\r\n\r\n if (this.state[formConstants.dateOfBirth] !== undefined && this.state[formConstants.dateOfBirth] instanceof Date && !isNaN(this.state[formConstants.dateOfBirth])) {\r\n if (!copyOfFormData[formConstants.dateOfBirth].defaultValue) {\r\n copyOfFormData[formConstants.dateOfBirth].defaultValue = this.state[formConstants.dateOfBirth];\r\n }\r\n }\r\n }\r\n\r\n return FormBuilder({\r\n formData: copyOfFormData,\r\n formReferences: this.formReferences,\r\n countryData: { selectedCountry: country },\r\n countyData: { availableCounties, label: county ? county.label : formMessageConstants.emptyString },\r\n stateData: { availableStates, label: state ? state.label : formMessageConstants.emptyString },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleDateChange: (event) => { this.setState(formStateHelpers.handleDateChange(event)); },\r\n handleMobilePhoneChange: (event) => { this.setState(formStateHelpers.handleMobilePhoneChange(event, mobilePhone.isOptional)); },\r\n handleCaptchaChange: (token) => { this.setState(formStateHelpers.handleCaptchaChange(token)); },\r\n handleCountryChange: (event) => {\r\n this.setState(formStateHelpers.handleCountryChange(event.target, county, state),\r\n () => {\r\n actions.resetRetrievedUserAddress();\r\n });\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const { isSaving } = this.state;\r\n const { loading, formData, ssoFormType } = this.props;\r\n\r\n const { desktopImageSrc, mobileImageSrc } = formData;\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n hasValue(mobileImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n {(isSaving || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n {\r\n hasValue(desktopImageSrc) && ssoFormType === ssoFormTypes.UpgradeToOneClubAccountFromDefault &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nUpgradeToOneClubAccountForm.propTypes = {\r\n onSignIn: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n formData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isUpgradeSuccessful: state.upgradeAccountForm.isUpgradeSuccessful,\r\n accountUpgradeMessages: state.upgradeAccountForm.accountUpgradeMessages,\r\n isPaymentAttemptSuccessful: state.basket.isPaymentAttemptSuccessful,\r\n purchaseAttemptMessages: state.basket.purchaseAttemptMessages,\r\n isUserAddressRetrieveSuccessful: state.userAddressSearchData.isUserAddressRetrieveSuccessful,\r\n retrieveAddressMessages: state.userAddressSearchData.retrieveAddressMessages,\r\n retrievedUserAddress: state.userAddressSearchData.retrievedUserAddress,\r\n userAddedToAddressBookSuccessful: state.userAccount.userAddedToAddressBookSuccessful,\r\n saveUserToAddressBookErrorMessages: state.userAccount.saveUserToAddressBookErrorMessages\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n upgradeToOneClubAccount: bindActionCreators(upgradeAccountActions.upgradeToOneClubAccount, dispatch),\r\n resetUpgradeAccountFormState: bindActionCreators(upgradeAccountActions.resetUpgradeAccountFormState, dispatch),\r\n retryPurchase: bindActionCreators(basketActions.retryPurchase, dispatch),\r\n resetRetrievedUserAddress: bindActionCreators(userAddressActions.resetRetrievedUserAddress, dispatch),\r\n saveUserToAddressBook: bindActionCreators(userAccountActions.saveUserToAddressBook, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(UpgradeToOneClubAccountForm);\r\n","/* eslint-disable no-useless-return */\r\nimport React, { Component, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport * as signInFormActions from '../../../store/actions/sign-in-form-actions';\r\nimport * as upgradeAccountFormActions from '../../../store/actions/upgrade-account-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport SSOFormHeader from '../../common/utility/SSOFormHeader';\r\nimport { ssoFormTypes } from '../../utils/form-types';\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\nimport * as upgradeFormHelper from '../helpers/form-helpers/upgrade-form-helper';\r\nimport * as signInFormHelpers from '../helpers/form-helpers/sign-in-form-helpers';\r\nimport { domainConstants } from '../../utils/constants/domain-constants';\r\nimport { getWebsiteDomain } from '../../../../../general/js/helpers';\r\nimport {\r\n MembershipTypes,\r\n getParameterByName,\r\n reloadPage,\r\n reloadToBasePage\r\n} from '../../../../../general/js/utils';\r\nimport { QueryConstants } from '../../../../../general/js/utils/query-constants';\r\n\r\nclass NewPasswordRequiredForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = initialState.newPasswordRequiredFormState;\r\n this.displayForm = this.displayForm.bind(this);\r\n this.displayNewPasswordRequiredForm = this.displayNewPasswordRequiredForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.submitNewPasswordData = this.submitNewPasswordData.bind(this);\r\n this.handleSignInSuccess = this.handleSignInSuccess.bind(this);\r\n this.loadNewPasswordRequiredForm = this.loadNewPasswordRequiredForm.bind(this);\r\n this.loadSSOSignInSuccessFormData = this.loadSSOSignInSuccessFormData.bind(this);\r\n this.loadSSOUpgradeToOneClubFormData = this.loadSSOUpgradeToOneClubFormData.bind(this);\r\n this.getNextComponentToRender = this.getNextComponentToRender.bind(this);\r\n\r\n this.loadNewPasswordRequiredForm();\r\n this.loadSSOSignInSuccessFormData();\r\n }\r\n\r\n loadNewPasswordRequiredForm() {\r\n const {\r\n actions,\r\n cognitoUser,\r\n onSignIn,\r\n formData\r\n } = this.props;\r\n\r\n if (isEmpty(cognitoUser)) {\r\n onSignIn();\r\n return;\r\n }\r\n\r\n if (isEmpty(formData)) {\r\n actions.loadNewPasswordRequiredFormData();\r\n }\r\n }\r\n\r\n loadSSOSignInSuccessFormData() {\r\n const { actions } = this.props;\r\n\r\n actions.loadSSOSignInSuccessFormData();\r\n }\r\n\r\n loadSSOUpgradeToOneClubFormData() {\r\n const { actions } = this.props;\r\n\r\n actions.loadSSOUpgradeToOneClubFormData();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isNewPasswordSavedSuccessful,\r\n loading,\r\n cognitoUser\r\n } = nextProps;\r\n\r\n if (!loading && isNewPasswordSavedSuccessful) {\r\n this.handleSignInSuccess(cognitoUser, nextProps);\r\n return;\r\n }\r\n\r\n if (!loading && !isNewPasswordSavedSuccessful) {\r\n this.setState(formStateHelpers.updateProcessingState(false));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.signInFormState);\r\n actions.resetSignInFormState();\r\n }\r\n\r\n handleSignInSuccess(cognitoUser, nextProps) {\r\n const { onResetSuccess, signInSuccessFormData, upgradeToOneClubFormData } = nextProps;\r\n\r\n const website = getWebsiteDomain();\r\n if (!hasValue(upgradeToOneClubFormData) && website === domainConstants.theOpen) {\r\n this.loadSSOUpgradeToOneClubFormData();\r\n }\r\n\r\n this.setState(formStateHelpers.updateProcessingState(false), () => {\r\n const isOneClub = cognitoUser.challengeParam.userAttributes['custom:Membership'].includes(MembershipTypes.OneClub);\r\n const optIns = JSON.parse(cognitoUser.challengeParam.userAttributes['custom:OptIns']);\r\n\r\n\r\n if (isOneClub && website === domainConstants.theOpen) {\r\n //check if should render upgrade to One Club account\r\n if (hasValue(upgradeToOneClubFormData)) {\r\n const currentUser = upgradeToOneClubFormData.currentUser;\r\n const hasOneClubRequiredFields = upgradeFormHelper.hasOneClubRequiredFields(currentUser, optIns);\r\n if (!hasOneClubRequiredFields) {\r\n onResetSuccess(upgradeToOneClubFormData, ssoFormTypes.UpgradeToOneClubAccountFromDefault);\r\n return;\r\n }\r\n }\r\n } else {\r\n const hasAgreeToPrivacyPolicyChecked = signInFormHelpers.hasAgreeToPrivacyPolicyChecked(optIns);\r\n\r\n if (!hasAgreeToPrivacyPolicyChecked) {\r\n onResetSuccess(signInSuccessFormData, ssoFormTypes.SignInSuccess);\r\n return;\r\n }\r\n\r\n if (isEmpty(getParameterByName(QueryConstants.SHOW_POPUP))) {\r\n reloadPage();\r\n return;\r\n }\r\n\r\n reloadToBasePage();\r\n }\r\n });\r\n }\r\n\r\n getNextComponentToRender(optIns) {\r\n if (optIns.agreedToPrivacyPolicy === undefined || optIns.agreedToPrivacyPolicy === false) return true;\r\n\r\n return false;\r\n }\r\n\r\n displayForm() {\r\n const {\r\n loading,\r\n onSignIn,\r\n isNewPasswordSavedSuccessful,\r\n newPasswordSavedMessages,\r\n isNewPasswordRequiredFormDataLoadedSuccessful,\r\n loadPasswordRequiredFormDataMessages,\r\n formData\r\n } = this.props;\r\n const { formTitle } = formData;\r\n\r\n if (!loading &&\r\n !isNewPasswordRequiredFormDataLoadedSuccessful &&\r\n isEmpty(formData)) {\r\n return \r\n \r\n \r\n ;\r\n }\r\n\r\n if (isEmpty(formData)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n
    \r\n \r\n {this.displayNewPasswordRequiredForm()}\r\n \r\n \r\n \r\n
    );\r\n }\r\n\r\n displayNewPasswordRequiredForm() {\r\n const { formData } = this.props;\r\n\r\n return FormBuilder({\r\n formData,\r\n formReferences: this.formReferences,\r\n handleFieldChange: (event) => {\r\n this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target));\r\n },\r\n handleConfirmPasswordChange: (event) => { this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target)); },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n }\r\n });\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateProcessingState(true), this.submitNewPasswordData);\r\n }\r\n\r\n submitNewPasswordData() {\r\n const { actions, cognitoUser, formData } = this.props;\r\n const { password } = this.state;\r\n const { maxIdleTimeInSeconds } = formData;\r\n const actionSuccessText = formData.actionSuccessText || formMessageConstants.newPasswordRequiredSuccessText;\r\n\r\n actions.handleNewPasswordRequired({\r\n password,\r\n cognitoUser,\r\n maxIdleTimeInSeconds,\r\n actionSuccessText\r\n });\r\n }\r\n\r\n render() {\r\n const { isProcessing } = this.state;\r\n const { loading } = this.props;\r\n return (\r\n
    \r\n
    \r\n
    \r\n {(isProcessing || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nNewPasswordRequiredForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n onSignIn: PropTypes.func.isRequired,\r\n cognitoUser: PropTypes.object.isRequired,\r\n onResetSuccess: PropTypes.func.isRequired,\r\n signInSuccessFormData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isNewPasswordRequiredFormDataLoadedSuccessful: state.signInForm.isNewPasswordRequiredFormDataLoadedSuccessful,\r\n loadPasswordRequiredFormDataMessages: state.signInForm.loadPasswordRequiredFormDataMessages,\r\n formData: state.signInForm.newPasswordRequiredFormData,\r\n isNewPasswordSavedSuccessful: state.signInForm.isNewPasswordSavedSuccessful,\r\n newPasswordSavedMessages: state.signInForm.newPasswordSavedMessages,\r\n signInSuccessFormData: state.signInForm.signInSuccessFormData,\r\n upgradeToOneClubFormData: state.upgradeAccountForm.upgradeToOneClubFormData\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n loadNewPasswordRequiredFormData: bindActionCreators(signInFormActions.loadNewPasswordRequiredFormData, dispatch),\r\n handleNewPasswordRequired: bindActionCreators(signInFormActions.handleNewPasswordRequired, dispatch),\r\n resetSignInFormState: bindActionCreators(signInFormActions.resetSignInFormState, dispatch),\r\n loadSSOSignInSuccessFormData: bindActionCreators(signInFormActions.loadSSOSignInSuccessFormData, dispatch),\r\n loadSSOUpgradeToOneClubFormData: bindActionCreators(upgradeAccountFormActions.loadSSOUpgradeToOneClubFormData, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(NewPasswordRequiredForm);\r\n","import React, { Component, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport { isEmpty, deepCopyObject } from '../../utils/obj-utils';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport * as registerFormActions from '../../../store/actions/register-form-actions';\r\nimport * as userAddressActions from '../../../store/actions/user-address-actions';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport SSOFormHeader from '../../common/utility/SSOFormHeader';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\n\r\nclass RaMembersRegisterForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const { registerFormData, ssoDomain } = this.props;\r\n\r\n this.state = {\r\n ...initialState.raMembersRegisterFormState,\r\n registerFormData,\r\n ssoDomain\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.formReferences = formScrollHelpers.getFormReferences(registerFormData);\r\n\r\n this.loadRegisterFormData = this.loadRegisterFormData.bind(this);\r\n this.displayRaMembersRegisterForm = this.displayRaMembersRegisterForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleUserRegisterSuccess = this.handleUserRegisterSuccess.bind(this);\r\n this.submitRegisterData = this.submitRegisterData.bind(this);\r\n this.finishFormSubmit = this.finishFormSubmit.bind(this);\r\n\r\n this.loadRegisterFormData();\r\n }\r\n\r\n loadRegisterFormData() {\r\n const { actions, registerFormData } = this.props;\r\n\r\n if (isEmpty(registerFormData)) {\r\n actions.loadSSORegisterFormData();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isRegisterSuccessful,\r\n registerFormData,\r\n loading,\r\n isUserAddressRetrieveSuccessful,\r\n retrievedUserAddress\r\n } = nextProps;\r\n\r\n if (!loading && isUserAddressRetrieveSuccessful) {\r\n const { county, state } = registerFormData;\r\n this.setState(formStateHelpers.handleAddressDataChange(retrievedUserAddress, county, state));\r\n }\r\n\r\n if (!isEmpty(registerFormData) && isEmpty(this.formReferences)) {\r\n this.formReferences = formScrollHelpers.getFormReferences(registerFormData);\r\n }\r\n\r\n if (!loading &&\r\n isRegisterSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserRegisterSuccess);\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n !isRegisterSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false),\r\n () => {\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.ticketingRegisterFormState);\r\n actions.resetRegisterFormState();\r\n }\r\n\r\n handleUserRegisterSuccess() {\r\n const { onUserRegisterSuccess } = this.props;\r\n const {\r\n formType,\r\n actionSuccessText,\r\n requestEmailVerificationCallbackUrl,\r\n requestEmailVerificationActionSuccessText\r\n } = this.props.registerFormData;\r\n onUserRegisterSuccess(this.state[formConstants.emailAddress],\r\n {\r\n registerFormType: formType,\r\n successText: actionSuccessText,\r\n emailVerificationCallbackUrl: requestEmailVerificationCallbackUrl,\r\n emailVerificationActionSuccessText: requestEmailVerificationActionSuccessText\r\n });\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { registerFormData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(registerFormData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitRegisterData);\r\n }\r\n\r\n submitRegisterData() {\r\n const { registerFormData } = this.props;\r\n\r\n if (registerFormData.membership) {\r\n this.setState({ membership: registerFormData.membership, ssoEmailNotificationSettingsFields: registerFormData.ssoEmailNotificationSettingsFields }, () => {\r\n this.finishFormSubmit();\r\n });\r\n return;\r\n }\r\n\r\n this.finishFormSubmit();\r\n }\r\n\r\n finishFormSubmit() {\r\n const { actions, registerFormData } = this.props;\r\n const { callBackUrl } = registerFormData;\r\n const actionSuccessText = registerFormData.actionSuccessText || formMessageConstants.registrationSuccessText;\r\n\r\n registerFormData.zoneInfo = formConstants.isRAMembersRegister;\r\n\r\n formScrollHelpers.scrollToField(this.formReferences[formConstants.dateOfBirth]);\r\n actions.registerNewUser(this.state, actionSuccessText, callBackUrl);\r\n }\r\n\r\n displayForm() {\r\n const {\r\n onSignIn,\r\n onForgotPassword,\r\n isRegisterSuccessful,\r\n userRegistrationMessages,\r\n registerFormData\r\n } = this.props;\r\n\r\n if (isEmpty(registerFormData)) {\r\n return null;\r\n }\r\n\r\n const { formHeader } = registerFormData;\r\n\r\n return (\r\n \r\n
    \r\n \r\n {this.displayRaMembersRegisterForm()}\r\n \r\n \r\n
    );\r\n }\r\n\r\n displayRaMembersRegisterForm() {\r\n const { actions, registerFormData } = this.props;\r\n const { availableCounties, country, availableStates } = this.state;\r\n const { county, state } = registerFormData;\r\n const copyOfRegisterFormData = deepCopyObject(registerFormData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfRegisterFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n copyOfRegisterFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfRegisterFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfRegisterFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfRegisterFormData[formConstants.city].defaultValue = this.state[formConstants.city];\r\n copyOfRegisterFormData[formConstants.addressLine1].defaultValue = this.state[formConstants.addressLine1];\r\n copyOfRegisterFormData[formConstants.addressLine2].defaultValue = this.state[formConstants.addressLine2];\r\n copyOfRegisterFormData[formConstants.addressLine3].defaultValue = this.state[formConstants.addressLine3];\r\n copyOfRegisterFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n\r\n return FormBuilder({\r\n formData: copyOfRegisterFormData,\r\n formReferences: this.formReferences,\r\n countryData: { selectedCountry: country },\r\n countyData: { availableCounties, label: county ? county.label : formMessageConstants.emptyString },\r\n stateData: { availableStates, label: state ? state.label : formMessageConstants.emptyString },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleConfirmPasswordChange: (event) => { this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target)); },\r\n handleDateChange: (event) => { this.setState(formStateHelpers.handleDateChange(event)); },\r\n handleMobilePhoneChange: (event) => { this.setState(formStateHelpers.handleMobilePhoneChange(event)); },\r\n handleCountryChange: (event) => {\r\n this.setState(formStateHelpers.handleCountryChange(event.target, county, state),\r\n () => {\r\n actions.resetRetrievedUserAddress();\r\n });\r\n },\r\n handleFieldValidState: (fieldName) => { const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors); },\r\n });\r\n }\r\n\r\n render() {\r\n const { isSaving } = this.state;\r\n const { loading, registerFormData } = this.props;\r\n\r\n if (isEmpty(registerFormData)) return null;\r\n\r\n const { formBanner } = registerFormData;\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n {(isSaving || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nRaMembersRegisterForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n onSignIn: PropTypes.func.isRequired,\r\n onUserRegisterSuccess: PropTypes.func.isRequired,\r\n ssoDomain: PropTypes.string,\r\n registerFormData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n registerFormData: _.isEmpty(ownProps.registerFormData) ? state.registerForm.registerFormData : ownProps.registerFormData,\r\n isRegisterSuccessful: state.registerForm.isRegisterSuccessful,\r\n userRegistrationMessages: state.registerForm.userRegistrationMessages,\r\n isUserAddressRetrieveSuccessful: state.userAddressSearchData.isUserAddressRetrieveSuccessful,\r\n retrieveAddressMessages: state.userAddressSearchData.retrieveAddressMessages,\r\n retrievedUserAddress: state.userAddressSearchData.retrievedUserAddress\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n loadSSORegisterFormData: bindActionCreators(registerFormActions.loadSSORaMembersRegisterFormData, dispatch),\r\n registerNewUser: bindActionCreators(registerFormActions.registerNewUser, dispatch),\r\n resetRegisterFormState: bindActionCreators(registerFormActions.resetRegisterFormState, dispatch),\r\n resetRetrievedUserAddress: bindActionCreators(userAddressActions.resetRetrievedUserAddress, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(RaMembersRegisterForm);\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport * as signInFormActions from '../../../store/actions/sign-in-form-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport SSOFormHeader from '../../common/utility/SSOFormHeader';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport {\r\n getParameterByName,\r\n redirectTo,\r\n reloadPage,\r\n reloadToBasePage\r\n} from '../../../../../general/js/utils';\r\nimport { QueryConstants } from '../../../../../general/js/utils/query-constants';\r\n\r\nclass RaMembersSignInForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = initialState.signInFormState;\r\n\r\n this.displaySignInForm = this.displaySignInForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.submitSignInData = this.submitSignInData.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleSignInSuccess = this.handleSignInSuccess.bind(this);\r\n this.loadSignInFormData = this.loadSignInFormData.bind(this);\r\n\r\n\r\n this.loadSignInFormData();\r\n }\r\n\r\n loadSignInFormData() {\r\n const { actions, signInFormData } = this.props;\r\n\r\n if (isEmpty(signInFormData)) {\r\n actions.loadRaMembersSignInFormData();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isSignInSuccessful,\r\n isNewPasswordRequired,\r\n cognitoUser,\r\n onNewPasswordRequired,\r\n loading\r\n } = nextProps;\r\n\r\n if (!loading && !isNewPasswordRequired && isSignInSuccessful) {\r\n this.handleSignInSuccess();\r\n }\r\n\r\n if (!loading && isNewPasswordRequired && isSignInSuccessful) {\r\n onNewPasswordRequired(cognitoUser);\r\n }\r\n\r\n if (!loading && !isSignInSuccessful) {\r\n this.setState(formStateHelpers.updateProcessingState(false));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.signInFormState);\r\n actions.resetSignInFormState();\r\n }\r\n\r\n handleSignInSuccess() {\r\n this.setState(formStateHelpers.updateProcessingState(false), () => {\r\n const redirectToAddress = getParameterByName(QueryConstants.REDIRECT_TO);\r\n const showPopup = getParameterByName(QueryConstants.SHOW_POPUP);\r\n\r\n if (!isEmpty(redirectToAddress)) {\r\n redirectTo(redirectToAddress);\r\n return;\r\n }\r\n\r\n if (isEmpty(showPopup)) {\r\n reloadPage();\r\n return;\r\n }\r\n\r\n reloadToBasePage();\r\n });\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { signInFormData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(signInFormData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (!this.state.formHasErrors) {\r\n this.setState(formStateHelpers.updateProcessingState(true), this.submitSignInData);\r\n }\r\n }\r\n\r\n submitSignInData() {\r\n const { actions, signInFormData } = this.props;\r\n const { actionSuccessText } = signInFormData;\r\n const {\r\n userName,\r\n emailAddress,\r\n password\r\n } = this.state;\r\n const { maxIdleTimeInSeconds } = signInFormData;\r\n\r\n actions.signInUser({\r\n userName,\r\n emailAddress,\r\n password,\r\n actionSuccessText,\r\n maxIdleTimeInSeconds\r\n });\r\n }\r\n\r\n displayForm() {\r\n const {\r\n onForgotPassword,\r\n onRegister,\r\n signInFormData,\r\n isSignInSuccessful,\r\n signInMessages\r\n } = this.props;\r\n\r\n if (isEmpty(signInFormData)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n \r\n {this.displaySignInForm()}\r\n \r\n \r\n
    );\r\n }\r\n\r\n displaySignInForm() {\r\n const { signInFormData } = this.props;\r\n return FormBuilder({\r\n formData: signInFormData,\r\n formReferences: this.formReferences,\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleFieldValidState: (fieldName) => { const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors); },\r\n });\r\n }\r\n\r\n render() {\r\n const { loading } = this.props;\r\n const { isProcessing } = this.state;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {isProcessing || loading ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nRaMembersSignInForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n onForgotPassword: PropTypes.func.isRequired,\r\n onRegister: PropTypes.func.isRequired,\r\n onNewPasswordRequired: PropTypes.func.isRequired,\r\n signInFormData: PropTypes.object,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n signInFormData: state.signInForm.signInFormData,\r\n isSignInSuccessful: state.signInForm.isSignInSuccessful,\r\n isNewPasswordRequired: state.signInForm.isNewPasswordRequired,\r\n cognitoUser: state.signInForm.cognitoUser,\r\n signInMessages: state.signInForm.signInMessages\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n loadRaMembersSignInFormData: bindActionCreators(signInFormActions.loadRaMembersSignInFormData, dispatch),\r\n signInUser: bindActionCreators(signInFormActions.signInUser, dispatch),\r\n resetSignInFormState: bindActionCreators(signInFormActions.resetSignInFormState, dispatch),\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(RaMembersSignInForm);\r\n","import _, { fromPairs } from 'lodash';\r\nimport { formConstants } from '../../../utils/constants/form-constants';\r\nimport { isEmpty } from '../../../utils/obj-utils';\r\nimport { createDateFromExisting } from '../../../utils/date-utils';\r\nimport { domainConstants } from '../../../utils/constants/domain-constants';\r\n'../../utils/constants/domain-constants';\r\n\r\nconst RaMembersSummaryDetailsFormData = (\r\n formData,\r\n userAccountData\r\n) => {\r\n function buildRaMembersSummaryDetailsFormData() {\r\n const raMembersFormData = getRaMembersSummaryUserDetailsFields();\r\n return getRaMembersSummaryUserDetailsFieldsWithDefaultValues(raMembersFormData);\r\n }\r\n\r\n function getRaMembersSummaryUserDetailsFields() {\r\n const { requestEmailVerificationActionSuccessText, callBackUrl } = formData;\r\n\r\n formData[formConstants.callBackUrl] = callBackUrl;\r\n formData[formConstants.ssoDomain] = formData[formConstants.ssoDomain];\r\n formData[formConstants.actionSuccessText] = requestEmailVerificationActionSuccessText;\r\n formData[formConstants.emailAddress] = formData[formConstants.emailAddress];\r\n formData[formConstants.confirmEmailAddress] = formData[formConstants.confirmEmailAddress];\r\n formData[formConstants.title] = formData[formConstants.title];\r\n formData[formConstants.firstName] = formData[formConstants.firstName];\r\n formData[formConstants.lastName] = formData[formConstants.lastName];\r\n formData[formConstants.dateOfBirth] = formData[formConstants.dateOfBirth];\r\n formData[formConstants.mainAddressLabel] = formData[formConstants.mainAddressLabel];\r\n formData[formConstants.country] = formData[formConstants.country];\r\n formData[formConstants.county] = formData[formConstants.county];\r\n formData[formConstants.state] = formData[formConstants.state];\r\n formData[formConstants.addressLine1] = formData[formConstants.addressLine1];\r\n formData[formConstants.addressLine2] = formData[formConstants.addressLine2];\r\n formData[formConstants.addressLine3] = formData[formConstants.addressLine3];\r\n formData[formConstants.city] = formData[formConstants.city];\r\n formData[formConstants.postcode] = formData[formConstants.postcode];\r\n formData[formConstants.mobilePhone] = formData[formConstants.mobilePhone];\r\n formData[formConstants.becomeOneClubMemberInfo] = formData[formConstants.becomeOneClubMemberInfo];\r\n formData[formConstants.offersDetails] = formData[formConstants.offersDetails];\r\n formData[formConstants.privacyPolicy] = formData[formConstants.privacyPolicy];\r\n formData[formConstants.raMemberId] = formData[formConstants.raMemberId];\r\n \r\n return formData;\r\n }\r\n\r\n function getRaMembersSummaryUserDetailsFieldsWithDefaultValues(formData) {\r\n\r\n formData[formConstants.emailAddress].defaultValue = userAccountData[formConstants.email];\r\n formData[formConstants.title].defaultValue = userAccountData[formConstants.title];\r\n formData[formConstants.firstName].defaultValue = userAccountData[formConstants.firstName];\r\n formData[formConstants.lastName].defaultValue = userAccountData[formConstants.lastName];\r\n formData[formConstants.raMemberId].defaultValue = userAccountData[formConstants.raMemberId];\r\n\r\n if (!_.isEmpty(userAccountData[formConstants.mobilePhone])) {\r\n formData[formConstants.mobilePhone].defaultValue = {};\r\n\r\n const userMobilePhone = _.cloneDeep(userAccountData[formConstants.mobilePhone]);\r\n\r\n const userCountryCodeMobilePhonePrefix = userAccountData[formConstants.countryCodeMobilePhonePrefix];\r\n\r\n const selectedCountry = getSelectedCountry(formData, userCountryCodeMobilePhonePrefix, userMobilePhone);\r\n\r\n formData[formConstants.mobilePhone].defaultValue.selectedCountry = selectedCountry;\r\n\r\n formData[formConstants.mobilePhone].defaultValue.phoneNumber = userMobilePhone.replace(selectedCountry.phonePrefix, '');\r\n }\r\n\r\n if (userAccountData.dateOfBirth !== undefined) {\r\n formData[formConstants.dateOfBirth].defaultValue = createDateFromExisting(userAccountData.dateOfBirth);\r\n }\r\n\r\n let mainAddress = {};\r\n if (!isEmpty(userAccountData.addresses)) {\r\n const foundAddress = userAccountData.addresses.find((address) => address.main);\r\n mainAddress = isEmpty(foundAddress) ? {} : foundAddress;\r\n }\r\n\r\n formData[formConstants.addressLine1].defaultValue = mainAddress.addressLine1;\r\n formData[formConstants.addressLine2].defaultValue = mainAddress.addressLine2;\r\n formData[formConstants.addressLine3].defaultValue = mainAddress.addressLine3;\r\n formData[formConstants.postcode].defaultValue = mainAddress.postcode;\r\n formData[formConstants.city].defaultValue = mainAddress.city;\r\n formData[formConstants.country].defaultValue = mainAddress.country;\r\n formData[formConstants.county].defaultValue = mainAddress.county;\r\n formData[formConstants.state].defaultValue = mainAddress.state;\r\n\r\n const optIns = userAccountData[formConstants.optIns];\r\n formData[formConstants.offersDetails].defaultValue =\r\n {\r\n [formConstants.refuseOffers]: !optIns.optedTheOpenOffersByEmail,\r\n [formConstants.acceptOffers]: optIns.optedPartnerOffersByEmail\r\n };\r\n\r\n formData[formConstants.privacyPolicy].defaultValue = optIns.agreedToPrivacyPolicy;\r\n\r\n return formData;\r\n }\r\n\r\n return buildRaMembersSummaryDetailsFormData();\r\n};\r\n\r\nfunction getSelectedCountry(formData, userCountryCodeMobilePhonePrefix, userMobilePhone) {\r\n\r\n let selectedCountry = formData[formConstants.country].options\r\n .find((country) => !_.isEmpty(country.phonePrefix) &&\r\n country.code === userCountryCodeMobilePhonePrefix);\r\n\r\n if (selectedCountry)\r\n return selectedCountry;\r\n\r\n selectedCountry = formData[formConstants.country].options\r\n .find((country) => !_.isEmpty(country.phonePrefix) &&\r\n userMobilePhone.includes(country.phonePrefix));\r\n\r\n return selectedCountry;\r\n}\r\n\r\nexport default RaMembersSummaryDetailsFormData;\r\n","import React, { Component, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport { isEmpty, deepCopyObject } from '../../utils/obj-utils';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport * as upgradeAccountActions from '../../../store/actions/upgrade-account-actions';\r\nimport * as userAddressActions from '../../../store/actions/user-address-actions';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport * as upgradeFormHelper from '../helpers/form-helpers/upgrade-form-helper';\r\nimport RaMembersSummaryDetailsFormData from '../ra-members/helpers/ra-members-summary-form-data';\r\nimport * as signInFormActions from '../../../store/actions/sign-in-form-actions';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\n\r\nclass RaMembersSummaryForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { formData, ssoDomain } = this.props;\r\n\r\n const mainAddress = upgradeFormHelper.getMainAddress(formData.currentUser);\r\n\r\n this.state = {\r\n ...initialState.upgradeRaMembersFormState,\r\n [formConstants.country]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.country),\r\n [formConstants.county]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.county),\r\n [formConstants.state]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.state),\r\n [formConstants.city]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.city),\r\n [formConstants.addressLine1]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine1),\r\n [formConstants.addressLine2]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine2),\r\n [formConstants.addressLine3]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine3),\r\n [formConstants.postcode]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.postcode),\r\n ssoDomain,\r\n userDataLoaded:false\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.formReferences = formScrollHelpers.getFormReferences(formData);\r\n\r\n this.displayRaMembersSummaryForm = this.displayRaMembersSummaryForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleUserUpdateRaMembersSummarySuccess = this.handleUserUpdateRaMembersSummarySuccess.bind(this);\r\n this.submitRaMembersSummaryData = this.submitRaMembersSummaryData.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const { onSignIn, formData, actions } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n onSignIn();\r\n }\r\n\r\n const { callBackUrl } = formData;\r\n actions.getUserAccountData(callBackUrl, false);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n formData,\r\n isUpgradeSuccessful,\r\n loading,\r\n retrievedUserAddress,\r\n isUserAddressRetrieveSuccessful,\r\n isUserAccountDataLoadedSuccessful,\r\n userAccountData\r\n } = nextProps;\r\n\r\n const {userDataLoaded} = this.state;\r\n\r\n if (!loading && isUserAddressRetrieveSuccessful && !isUpgradeSuccessful) {\r\n const { county, state } = formData;\r\n this.setState(formStateHelpers.handleAddressDataChange(retrievedUserAddress, county, state));\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n isUpgradeSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserUpdateBallotSummarySuccess);\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n !isUpgradeSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false),\r\n () => {\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n });\r\n }\r\n\r\n if (!loading && !isEmpty(userAccountData) &&\r\n isUserAccountDataLoadedSuccessful && !userDataLoaded) {\r\n this.updateUserAccountData(userAccountData);\r\n }\r\n }\r\n\r\n updateUserAccountData(nextUserAccountData) {\r\n const { formData } = this.props;\r\n\r\n const userAccountData = _.cloneDeep(nextUserAccountData);\r\n\r\n const userDetailsFormData = new RaMembersSummaryDetailsFormData(formData, userAccountData);\r\n\r\n this.setState(formStateHelpers.updateFormFields(userDetailsFormData));\r\n\r\n this.setState(\r\n (prevState) => ({\r\n ...prevState,\r\n userDetailsFormData,\r\n userDataLoaded:true\r\n })\r\n );\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.upgradeAccountFormState);\r\n actions.resetUpgradeAccountFormState();\r\n }\r\n\r\n handleUserUpdateRaMembersSummarySuccess() {\r\n const { actions } = this.props;\r\n actions.retryPurchase();\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitRaMembersSummaryData);\r\n }\r\n\r\n submitRaMembersSummaryData() {\r\n const { actions, formData, userAccountData } = this.props;\r\n const { callBackUrl } = formData;\r\n\r\n formScrollHelpers.scrollToField(this.formReferences[formConstants.title]);\r\n actions.upgradeRaMembersSummaryAccount(this.state, userAccountData, callBackUrl);\r\n signInFormActions.setRaMembersCookie();\r\n }\r\n\r\n displayForm() {\r\n const {\r\n isUpgradeSuccessful,\r\n accountUpgradeMessages,\r\n purchaseAttemptMessages,\r\n formData\r\n } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n return null;\r\n }\r\n\r\n const messagesToDisplay = _.isEmpty(accountUpgradeMessages) ? purchaseAttemptMessages : accountUpgradeMessages;\r\n\r\n return (\r\n
    \r\n \r\n {this.displayRaMembersSummaryForm()}\r\n \r\n \r\n
    );\r\n }\r\n\r\n displayRaMembersSummaryForm() {\r\n const { actions, formData } = this.props;\r\n const { availableCounties, country, availableStates } = this.state;\r\n const { county, state } = formData;\r\n const copyOfFormData = deepCopyObject(formData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n copyOfFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfFormData[formConstants.city].defaultValue = this.state[formConstants.city];\r\n copyOfFormData[formConstants.addressLine1].defaultValue = this.state[formConstants.addressLine1];\r\n copyOfFormData[formConstants.addressLine2].defaultValue = this.state[formConstants.addressLine2];\r\n copyOfFormData[formConstants.addressLine3].defaultValue = this.state[formConstants.addressLine3];\r\n copyOfFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n\r\n return FormBuilder({\r\n formData: copyOfFormData,\r\n formReferences: this.formReferences,\r\n countryData: { selectedCountry: country },\r\n countyData: { availableCounties, label: county ? county.label : formMessageConstants.emptyString },\r\n stateData: { availableStates, label: state ? state.label : formMessageConstants.emptyString },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target), this.updateFormData); },\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target), this.updateFormData); },\r\n handleDateChange: (event) => { this.setState(formStateHelpers.handleDateChange(event), this.updateFormData); },\r\n handleMobilePhoneChange: (event) => { this.setState(formStateHelpers.handleMobilePhoneChange(event), this.updateFormData); },\r\n handleRaMemberIdChange: (event) => { this.setState(formStateHelpers.handleRaMemberIdChange(event), this.updateFormData); },\r\n handleCountryChange: (event) => {\r\n this.setState(formStateHelpers.handleCountryChange(event.target, county, state),);\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const { isSaving } = this.state;\r\n const { loading, formData } = this.props;\r\n const { formBanner } = formData;\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n {(isSaving || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nRaMembersSummaryForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n onSignIn: PropTypes.func.isRequired,\r\n ssoDomain: PropTypes.string,\r\n formData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n formData: _.isEmpty(ownProps.formData) ? state.registerForm.formData : ownProps.formData,\r\n isUpgradeSuccessful: state.upgradeAccountForm.isUpgradeSuccessful,\r\n accountUpgradeMessages: state.upgradeAccountForm.accountUpgradeMessages,\r\n isUserAddressRetrieveSuccessful: state.userAddressSearchData.isUserAddressRetrieveSuccessful,\r\n retrieveAddressMessages: state.userAddressSearchData.retrieveAddressMessages,\r\n retrievedUserAddress: state.userAddressSearchData.retrievedUserAddress,\r\n userAccountData: state.userAccount.userAccountData,\r\n isUserAccountDataLoadedSuccessful: state.userAccount.isUserAccountDataLoadedSuccessful,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n upgradeRaMembersSummaryAccount: bindActionCreators(upgradeAccountActions.upgradeRaMembersSummaryAccount, dispatch),\r\n resetUpgradeAccountFormState: bindActionCreators(upgradeAccountActions.resetUpgradeAccountFormState, dispatch),\r\n resetRetrievedUserAddress: bindActionCreators(userAddressActions.resetRetrievedUserAddress, dispatch),\r\n getUserAccountData: bindActionCreators(userAccountActions.getUserAccountData, dispatch),\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(RaMembersSummaryForm);\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, { useState, useEffect, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport _ from 'lodash';\r\nimport { Auth } from 'aws-amplify';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport * as upgradeAccountActions from '../../../store/actions/upgrade-account-actions';\r\nimport { hasValue, isNullOrUndefined, toggleCssClass } from '../../../../../general/js/general-helpers';\r\nimport { MembershipTypes, getDestructuredTextWithMultipleLinks, getMultilineText } from '../../../../../general/js/utils';\r\n\r\nfunction SignInSuccessForm({\r\n actions,\r\n formData,\r\n loading,\r\n}) {\r\n const [agreedPrivacyPolicy, setAgreePrivacyPolicy] = useState(false);\r\n const [displayForm, setDisplayForm] = useState(false);\r\n const [agreedTermsAndConditions, setAgreeTermsAndConditions] = useState(false);\r\n const [isOneClubMember, setIsOneClubMember] = useState(false);\r\n\r\n toggleModalCloseButton(formData);\r\n\r\n useEffect(() => {\r\n Auth.currentAuthenticatedUser().then((user) => {\r\n setIsOneClubMember(user.attributes['custom:Membership'].includes(MembershipTypes.OneClub));\r\n setAgreePrivacyPolicy(JSON.parse(user.attributes['custom:OptIns']).agreedToPrivacyPolicy);\r\n setAgreeTermsAndConditions(JSON.parse(user.attributes['custom:OptIns']).agreedToTermsAndConditions);\r\n setDisplayForm(true);\r\n }).catch((err) => { console.log(err); });\r\n });\r\n\r\n return (\r\n
    \r\n {loading || !displayForm ? / : null}\r\n
    \r\n {displayForm ? \r\n {\r\n isOneClubMember && !agreedTermsAndConditions ?\r\n :\r\n !agreedPrivacyPolicy &&\r\n \r\n }\r\n : null}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nfunction toggleModalCloseButton(formData = {}, displayButton = false) {\r\n const { hideCloseButton } = hasValue(formData) ? (displayButton === true ? { hideCloseButton: false } : formData) : { hideCloseButton: false };\r\n\r\n const closeButton = document.querySelector('.modal__close');\r\n\r\n if (!isNullOrUndefined(closeButton)) {\r\n toggleCssClass(closeButton, 'is-hidden', hideCloseButton);\r\n }\r\n}\r\n\r\nfunction MultiLineMessage({ messageParagraphs, show }) {\r\n return (
    \r\n {\r\n messageParagraphs.map((message) => {\r\n return

    {message}


    ;\r\n })\r\n }\r\n
    );\r\n}\r\n\r\nfunction PrivacyPolicyMessage(props) {\r\n const { formData, actions } = props;\r\n\r\n const [hideSaveButton, setHideSaveButton] = useState(true);\r\n const [showSuccessMessage, setShowSuccessMessage] = useState(false);\r\n\r\n const { privacyAndPolicy, successMessage, privacyPolicyMessage } = formData;\r\n\r\n const messageParagraphs = getMultilineText(privacyPolicyMessage);\r\n const successMessageParagraphs = getMultilineText(successMessage);\r\n\r\n const updatePrivacyPolicy = (event) => {\r\n event.preventDefault();\r\n\r\n actions.agreeToPrivacyPolicyAndTermsAndConditions(formData.callbackUrl, true, null).then(() => {\r\n toggleModalCloseButton(formData, true);\r\n setShowSuccessMessage(true);\r\n });\r\n };\r\n\r\n const onAgreePrivacyPolicy = (event) => {\r\n setHideSaveButton(!event.target.checked);\r\n };\r\n\r\n return (\r\n {\r\n messageParagraphs.length > 0 ?\r\n :\r\n null\r\n }\r\n \r\n
    \r\n {getDestructuredTextWithMultipleLinks(\r\n privacyAndPolicy.policy.label,\r\n privacyAndPolicy.policy.link.split(';')\r\n )}\r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n {formData.updateButtonText}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    );\r\n}\r\n\r\nfunction PrivacyPolicyAndTermsAndConditionsMessage(props) {\r\n const { formData, actions } = props;\r\n\r\n const [hideSaveButton, setHideSaveButton] = useState(true);\r\n const [showSuccessMessage, setShowSuccessMessage] = useState(false);\r\n\r\n const { privacyPolicyAndTermsAndConditions, privacyAndTermsMessage, successMessage } = formData;\r\n\r\n const messageParagraphs = getMultilineText(privacyAndTermsMessage);\r\n const successMessageParagraphs = getMultilineText(successMessage);\r\n\r\n const agreeTermsAndPrivacy = (event) => {\r\n event.preventDefault();\r\n\r\n actions.agreeToPrivacyPolicyAndTermsAndConditions(formData.callbackUrl, true, true).then(() => {\r\n toggleModalCloseButton(formData, true);\r\n setShowSuccessMessage(true);\r\n });\r\n };\r\n\r\n const onAgreeTermsAndPrivacy = (event) => {\r\n setHideSaveButton(!event.target.checked);\r\n };\r\n\r\n return (\r\n {\r\n messageParagraphs.length > 0 ?\r\n :\r\n null\r\n }\r\n \r\n
    \r\n {getDestructuredTextWithMultipleLinks(\r\n privacyPolicyAndTermsAndConditions.policy.label,\r\n privacyPolicyAndTermsAndConditions.policy.link.split(';')\r\n )}\r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n {formData.updateButtonText}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    );\r\n}\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n formData: hasValue(ownProps.formData) ? ownProps.formData : state.signInForm.signInSuccessFormData\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n agreeToPrivacyPolicyAndTermsAndConditions: bindActionCreators(upgradeAccountActions.agreePrivacyPolicyAndTermsAndCoditions, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SignInSuccessForm);\r\n","import React from 'react';\r\nimport OneClubRegisterForm from './forms/one-club-register/OneClubRegisterForm';\r\nimport UserRegisterSuccessForm from './forms/user-register-success-form/UserRegisterSuccessForm';\r\nimport BallotRegisterForm from './forms/ballot/BallotRegisterForm';\r\nimport BallotSummaryForm from './forms/ballot/BallotSummaryForm';\r\nimport SSOItemListForm from './forms/item-list/SSOItemListForm';\r\nimport BallotSignInForm from './forms/ballot/BallotSignInForm';\r\nimport BallotSignInSuccessForm from './forms/ballot/BallotSignInSuccessForm';\r\nimport ForgotPasswordForm from './forms/forgot-password/ForgotPasswordForm';\r\nimport ResetPasswordForm from './forms/reset-password/ResetPasswordForm';\r\nimport UserAccountPage from './user-account/UserAccountPage';\r\nimport DefaultRegisterForm from './forms/default-register/DefaultRegisterForm';\r\nimport TicketingRegisterForm from './forms/ticketing-register/TicketingRegisterForm';\r\nimport SignInForm from './forms/sign-in/SignInForm';\r\nimport UpgradeToTicketingAccountForm from './forms/upgrade-to-ticketing/UpgradeToTicketingAccountForm';\r\nimport UpgradeToOneClubAccountForm from './forms/upgrade-to-one-club/UpgradeToOneClubAccountForm';\r\nimport VerifyEmailForm from './forms/verify-email/VerifyEmailForm';\r\nimport NewPasswordRequiredForm from './forms/new-password-required/NewPasswordRequiredForm';\r\nimport RaMembersRegisterForm from './forms/ra-members/RaMembersRegisterForm';\r\nimport RaMembersSignInForm from './forms/ra-members/RaMembersSignInForm';\r\nimport RaMembersSummaryForm from './forms/ra-members/RaMembersSummaryForm';\r\nimport { ssoFormTypes } from './utils/form-types';\r\nimport SignInSuccessForm from './forms/sign-in/SignInSuccessForm';\r\n\r\n/* eslint-disable */\r\nexport const ssoFormConstants = {\r\n [ssoFormTypes.OneClubRegister]: ({\r\n formData,\r\n ssoDomain,\r\n handleUserRegisterSuccess,\r\n handleSignIn,\r\n handleForgotPassword,\r\n loadSSORegisterFormData,\r\n ssoFormType }) => {\r\n return \r\n },\r\n [ssoFormTypes.DefaultRegister]: ({\r\n formData,\r\n ssoDomain,\r\n handleUserRegisterSuccess,\r\n handleSignIn,\r\n handleForgotPassword }) => {\r\n return \r\n },\r\n [ssoFormTypes.TicketingRegister]: ({\r\n formData,\r\n ssoDomain,\r\n handleUserRegisterSuccess,\r\n handleSignIn,\r\n handleForgotPassword }) => {\r\n return \r\n },\r\n [ssoFormTypes.RaMembersRegister]: ({\r\n formData,\r\n ssoDomain,\r\n handleRaMembersRegisterSuccess,\r\n handleRaMembersSignIn,\r\n handleForgotPassword }) => {\r\n return \r\n },\r\n [ssoFormTypes.UpgradeToTicketingAccount]: ({ formData, ssoDomain, handleSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.UpgradeToOneClubAccountFromDefault]: ({ formData, handleSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.UpgradeToOneClubAccountFromTicketing]: ({ formData, handleSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.SignIn]: ({\r\n formData,\r\n handleForgotPassword,\r\n handleRegister,\r\n handleNewPasswordRequired,\r\n handleSignInSucces\r\n }) => {\r\n return \r\n },\r\n [ssoFormTypes.RaMembersSignInForm]: ({\r\n formData,\r\n handleForgotPassword,\r\n handleRegister,\r\n handleNewPasswordRequired\r\n }) => {\r\n return \r\n },\r\n [ssoFormTypes.SignInSuccess]: ({\r\n formData,\r\n ssoDomain,\r\n }) => {\r\n return \r\n \r\n },\r\n [ssoFormTypes.NewPasswordRequired]: ({ cognitoUser, handleSignIn, handleSignInSucces }) => {\r\n return \r\n },\r\n [ssoFormTypes.ForgotPassword]: ({ formData, handleSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.BallotForgotPassword]: ({ formData, handleBallotSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.ResetPassword]: ({ formData }) => {\r\n return \r\n },\r\n [ssoFormTypes.VerifyEmail]: ({ formData }) => {\r\n return \r\n },\r\n [ssoFormTypes.OneClubRegisterSuccess]: ({\r\n emailAddress,\r\n ssoDomain,\r\n requestEmailVerificationCallbackUrl,\r\n actionSuccessText,\r\n requestEmailVerificationActionSuccessText,\r\n displayBanner,\r\n isBallotRegister,\r\n handleSignIn,\r\n handleBallotSignIn,\r\n bannerBackgroundImageSrc,\r\n bannerSuccessRegistration}) => {\r\n return \r\n },\r\n [ssoFormTypes.RaMembersRegisterSuccess]: ({\r\n emailAddress,\r\n ssoDomain,\r\n requestEmailVerificationCallbackUrl,\r\n actionSuccessText,\r\n requestEmailVerificationActionSuccessText,\r\n displayBanner,\r\n handleRaMembersSignIn,\r\n bannerBackgroundImageSrc }) => {\r\n return \r\n },\r\n [ssoFormTypes.UserAccount]: ({ formData }) => {\r\n return \r\n },\r\n [ssoFormTypes.BallotLiteRegister]: ({\r\n formData,\r\n ssoDomain,\r\n handleUserRegisterSuccess,\r\n handleBallotSignIn,\r\n ssoFormType }) => {\r\n return \r\n },\r\n [ssoFormTypes.BallotFullRegister]: ({\r\n formData,\r\n ssoDomain,\r\n handleUserRegisterSuccess,\r\n handleBallotSignIn,\r\n loadSSORegisterFormData,\r\n ssoFormType }) => {\r\n return \r\n },\r\n [ssoFormTypes.UpgradeToTicketingAccount]: ({ formData, handleSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.BallotSummaryForm]: ({\r\n formData,\r\n ssoDomain,\r\n handleSignIn,\r\n handleBallotSummarySuccess,\r\n handleBallotPortalRedirect }) => {\r\n return \r\n },\r\n [ssoFormTypes.SSOItemListForm]: ({\r\n formData,\r\n ssoDomain,\r\n handleBallotPortalRedirect,\r\n formId,\r\n isFromBallot }) => {\r\n return \r\n },\r\n [ssoFormTypes.RaMembersSummaryForm]: ({\r\n formData,\r\n ssoDomain,\r\n handleSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.BallotSignInForm]: ({\r\n formData,\r\n ssoDomain,\r\n handleCognitoHostedUISignIn,\r\n handleBallotForgotPassword,\r\n handleBallotRegister }) => {\r\n return \r\n },\r\n [ssoFormTypes.BallotSignInSuccessForm]: ({\r\n formData,\r\n ssoDomain }) => {\r\n return \r\n },\r\n [ssoFormTypes.PreRegisterForm]: ({\r\n formData,\r\n ssoDomain,\r\n handleSignIn,\r\n handleForgotPassword,\r\n handleBallotRegister }) => {\r\n return \r\n },\r\n};\r\n","/* eslint-disable no-nested-ternary */\r\n/* eslint-disable no-prototype-builtins */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport app from 'general/js/app';\r\nimport { SSOFormContext } from './sso-form-context';\r\nimport { ssoFormTypes } from './utils/form-types';\r\nimport eventBus from '../../../general/js/event-bus';\r\nimport { ssoFormConstants } from './sso-form-constants';\r\nimport { domainConstants } from './utils/constants/domain-constants';\r\nimport userService from '../../../general/js/user/user-service';\r\nimport { formConstants } from './utils/constants/form-constants';\r\nimport { getProperty, hasValue } from '../../../general/js/general-helpers';\r\nimport { sitecoreFieldConstants } from '../../sitecore-fields/js/sitecore-field-constants';\r\nimport { isBallotForm } from './forms/helpers/form-helpers/form-field-helpers';\r\nimport { redirectTo, reloadPageWithoutQueryParams } from '../../../general/js/utils';\r\n\r\n\r\nclass SSOForm extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.ssoContext = {\r\n currentScenarioTitle: 'SSO Forms',\r\n cognitoUser: {}\r\n };\r\n const { IsPopup, formType, registerFormType } = this.props.formData;\r\n\r\n this.state = {\r\n ssoFormType: formType,\r\n initialFormType: formType,\r\n isFormDataDirty: false,\r\n registerFormType,\r\n IsPopup,\r\n modalOpen: true\r\n };\r\n\r\n this.displaySSOForm = this.displaySSOForm.bind(this);\r\n this.handleSignIn = this.handleSignIn.bind(this);\r\n this.handleRaMembersSignIn = this.handleRaMembersSignIn.bind(this);\r\n this.handleRegister = this.handleRegister.bind(this);\r\n this.handleNewPasswordRequired = this.handleNewPasswordRequired.bind(this);\r\n this.handleUserRegisterSuccess = this.handleUserRegisterSuccess.bind(this);\r\n this.handleRaMembersRegisterSuccess = this.handleRaMembersRegisterSuccess.bind(this);\r\n this.handleForgotPassword = this.handleForgotPassword.bind(this);\r\n this.handleBallotForgotPassword = this.handleBallotForgotPassword.bind(this);\r\n this.onModalClose = this.onModalClose.bind(this);\r\n this.onModalOpen = this.onModalOpen.bind(this);\r\n this.getTransitionToForm = this.getTransitionToForm.bind(this);\r\n this.handleBallotSignIn = this.handleBallotSignIn.bind(this);\r\n this.handleBallotRegister = this.handleBallotRegister.bind(this);\r\n this.handleCognitoHostedUISignIn = this.handleCognitoHostedUISignIn.bind(this);\r\n this.handleSignInSucces = this.handleSignInSucces.bind(this);\r\n this.handleBallotSummarySuccess = this.handleBallotSummarySuccess.bind(this);\r\n this.handleBallotPortalRedirect = this.handleBallotPortalRedirect.bind(this);\r\n\r\n eventBus.addListener('modal:closed', this.onModalClose);\r\n eventBus.addListener('modal:open', this.onModalOpen);\r\n }\r\n\r\n onModalClose() {\r\n const { IsPopup } = this.props;\r\n\r\n sessionStorage.removeItem(formConstants.ballotSignInStorageItem);\r\n\r\n if (!IsPopup) {\r\n return;\r\n }\r\n this.setState((state) => ({\r\n ...state,\r\n modalOpen: false,\r\n ssoFormType: state.initialFormType\r\n }));\r\n }\r\n\r\n onModalOpen() {\r\n const { IsPopup } = this.props;\r\n if (!IsPopup) {\r\n return;\r\n }\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n modalOpen: true\r\n }));\r\n }\r\n\r\n handleRegister() {\r\n const { initialFormType } = this.state;\r\n const transitionToForm = this.getTransitionToForm();\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: transitionToForm,\r\n isFormDataDirty: initialFormType !== transitionToForm\r\n }));\r\n }\r\n\r\n handleBallotRegister() {\r\n const { initialFormType } = this.state;\r\n const { formData } = this.props;\r\n const { nextFormTypeAfterRegister } = formData;\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: nextFormTypeAfterRegister,\r\n isFormDataDirty: initialFormType !== nextFormTypeAfterRegister\r\n }));\r\n }\r\n\r\n handleBallotSummarySuccess() {\r\n const { initialFormType } = this.state;\r\n const { formData: { nextFormTypeAfterSubmit, nextFormAfterSubmit } } = this.props;\r\n\r\n if (nextFormAfterSubmit === sitecoreFieldConstants.emptyGUID || !hasValue(nextFormAfterSubmit) || !hasValue(nextFormTypeAfterSubmit)) {\r\n this.handleBallotPortalRedirect();\r\n return;\r\n }\r\n\r\n const nextFormType = getProperty(ssoFormTypes, nextFormTypeAfterSubmit);\r\n\r\n if (!hasValue(nextFormType)) {\r\n this.handleBallotPortalRedirect();\r\n return;\r\n }\r\n\r\n const isFromBallot = isBallotForm(initialFormType);\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: nextFormType,\r\n isFormDataDirty: initialFormType !== nextFormType,\r\n isFromBallot\r\n }));\r\n }\r\n\r\n handleBallotPortalRedirect() {\r\n const { state: { ssoConfig: { ballotRedirectUrl } } } = app;\r\n\r\n if (!hasValue(ballotRedirectUrl)) {\r\n reloadPageWithoutQueryParams();\r\n }\r\n\r\n redirectTo(ballotRedirectUrl);\r\n }\r\n\r\n handleBallotSignIn() {\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.BallotSignInForm,\r\n isFormDataDirty: false\r\n }));\r\n }\r\n\r\n handleRaMembersSignIn() {\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.RaMembersSignInForm\r\n }));\r\n }\r\n\r\n handleNewPasswordRequired(cognitoUser) {\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.NewPasswordRequired,\r\n cognitoUser\r\n }));\r\n }\r\n\r\n handleSignInSucces(formData, formType = ssoFormTypes.SignInSuccess) {\r\n formData = hasValue(formData) ? { ...formData, hideCloseButton: true, reloadPage: true } : formData;\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: formType,\r\n formData\r\n }));\r\n }\r\n\r\n getTransitionToForm() {\r\n const { registerFormType, initialFormType } = this.state;\r\n\r\n if (registerFormType >= 0) {\r\n return registerFormType;\r\n }\r\n\r\n const { ssoDomain, nextFormTypeAfterRegister } = this.props.formData;\r\n const formForTransitionTo = ssoDomain === domainConstants.womensOpen ?\r\n ssoFormTypes.TicketingRegister :\r\n ssoFormTypes.OneClubRegister;\r\n\r\n return initialFormType === ssoFormTypes.SignIn || initialFormType === ssoFormTypes.PreRegisterForm ?\r\n (hasValue(nextFormTypeAfterRegister) ? nextFormTypeAfterRegister : formForTransitionTo) :\r\n initialFormType;\r\n }\r\n\r\n handleUserRegisterSuccess(emailAddress, {\r\n isBallotRegister,\r\n successText,\r\n emailVerificationCallbackUrl,\r\n emailVerificationActionSuccessText,\r\n displayBanner,\r\n bannerBackgroundImageSrc,\r\n bannerSuccessRegistration\r\n }) {\r\n const {\r\n requestEmailVerificationCallbackUrl,\r\n actionSuccessText,\r\n requestEmailVerificationActionSuccessText\r\n } = this.props.formData;\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.OneClubRegisterSuccess,\r\n emailAddress,\r\n requestEmailVerificationCallbackUrl: requestEmailVerificationCallbackUrl || emailVerificationCallbackUrl,\r\n actionSuccessText: successText || actionSuccessText,\r\n requestEmailVerificationActionSuccessText: requestEmailVerificationActionSuccessText || emailVerificationActionSuccessText,\r\n displayBanner,\r\n isBallotRegister,\r\n bannerBackgroundImageSrc,\r\n bannerSuccessRegistration\r\n }));\r\n }\r\n\r\n handleRaMembersRegisterSuccess(emailAddress, {\r\n successText,\r\n emailVerificationCallbackUrl,\r\n emailVerificationActionSuccessText,\r\n displayBanner,\r\n bannerBackgroundImageSrc\r\n }) {\r\n const {\r\n requestEmailVerificationCallbackUrl,\r\n actionSuccessText,\r\n requestEmailVerificationActionSuccessText\r\n } = this.props.formData;\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.RaMembersRegisterSuccess,\r\n emailAddress,\r\n requestEmailVerificationCallbackUrl: requestEmailVerificationCallbackUrl || emailVerificationCallbackUrl,\r\n actionSuccessText: successText || actionSuccessText,\r\n requestEmailVerificationActionSuccessText: requestEmailVerificationActionSuccessText || emailVerificationActionSuccessText,\r\n displayBanner,\r\n bannerBackgroundImageSrc\r\n }));\r\n }\r\n\r\n handleForgotPassword() {\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.ForgotPassword\r\n }));\r\n }\r\n\r\n handleBallotForgotPassword() {\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.BallotForgotPassword\r\n }));\r\n }\r\n\r\n handleSignIn() {\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.SignIn\r\n }));\r\n }\r\n\r\n handleCognitoHostedUISignIn(returnUrl = '') {\r\n if (!hasValue(returnUrl) || this.isFromButtonEvent(returnUrl)) {\r\n returnUrl = window.location.href;\r\n }\r\n\r\n userService.onSignInLinkClickAction(returnUrl, true);\r\n }\r\n\r\n isFromButtonEvent(returnUrl) {\r\n return returnUrl.hasOwnProperty('type');\r\n }\r\n\r\n displaySSOForm() {\r\n const {\r\n ssoFormType,\r\n isFromBallot,\r\n emailAddress,\r\n isFormDataDirty,\r\n requestEmailVerificationCallbackUrl,\r\n actionSuccessText,\r\n requestEmailVerificationActionSuccessText,\r\n displayBanner,\r\n isBallotRegister,\r\n cognitoUser,\r\n bannerBackgroundImageSrc,\r\n bannerSuccessRegistration\r\n } = this.state;\r\n\r\n const { formData } = hasValue(this.state.formData) ? this.state : this.props;\r\n const { ssoDomain } = formData;\r\n\r\n const copyOfFormData = _.cloneDeep(formData);\r\n const { nextFormAfterSubmit } = copyOfFormData;\r\n\r\n return ssoFormConstants[ssoFormType]({\r\n formData: isFormDataDirty ? {} : copyOfFormData,\r\n emailAddress,\r\n ssoDomain,\r\n requestEmailVerificationCallbackUrl,\r\n actionSuccessText,\r\n requestEmailVerificationActionSuccessText,\r\n displayBanner,\r\n isBallotRegister,\r\n cognitoUser,\r\n ssoFormType,\r\n bannerBackgroundImageSrc,\r\n bannerSuccessRegistration,\r\n isFromBallot: isFromBallot || copyOfFormData.isFromBallot,\r\n formId: nextFormAfterSubmit,\r\n handleRegister: this.handleRegister,\r\n handleUserRegisterSuccess: this.handleUserRegisterSuccess,\r\n handleRaMembersRegisterSuccess: this.handleRaMembersRegisterSuccess,\r\n handleSignIn: this.handleSignIn,\r\n handleCognitoHostedUISignIn: this.handleCognitoHostedUISignIn,\r\n handleForgotPassword: this.handleForgotPassword,\r\n handleSignInSucces: this.handleSignInSucces,\r\n handleNewPasswordRequired: this.handleNewPasswordRequired,\r\n handleBallotSignIn: this.handleBallotSignIn,\r\n handleBallotRegister: this.handleBallotRegister,\r\n handleBallotForgotPassword: this.handleBallotForgotPassword,\r\n handleBallotSummarySuccess: this.handleBallotSummarySuccess,\r\n handleBallotPortalRedirect: this.handleBallotPortalRedirect,\r\n handleRaMembersSignIn: this.handleRaMembersSignIn\r\n });\r\n }\r\n\r\n render() {\r\n const { modalOpen } = this.state;\r\n const { IsPopup } = this.props;\r\n const shouldDisplayForm = IsPopup ? modalOpen : true;\r\n return (\r\n \r\n {shouldDisplayForm ? this.displaySSOForm() : null}\r\n \r\n );\r\n }\r\n}\r\n\r\nSSOForm.propTypes = {\r\n formData: PropTypes.object.isRequired\r\n};\r\n\r\nexport default SSOForm;\r\n","export const sitecoreFieldConstants = {\r\n emptyGUID: \"00000000-0000-0000-0000-000000000000\"\r\n};","\r\nexport default {\r\n registerForm: {\r\n registerFormData: {},\r\n isFormLoadSuccessful: false,\r\n isRegisterSuccessful: false,\r\n userRegistrationMessages: [],\r\n isResendEmailVerificationSuccessful: false,\r\n resendEmailVerificationMessages: [],\r\n userName: ''\r\n },\r\n itemListForm: {\r\n isFormLoadSuccessful: false,\r\n itemListFormData: {},\r\n itemListErrorMessages: []\r\n },\r\n upgradeAccountForm: {\r\n isUpgradeSuccessful: false,\r\n accountUpgradeMessages: [],\r\n upgradeToOneClubFormData: {}\r\n },\r\n userAddress: {\r\n isUserAddressSearchSuccessful: false,\r\n suggestedAddresses: [],\r\n searchAddressMessages: '',\r\n isUserAddressRetrieveSuccessful: false,\r\n retrieveAddressMessages: '',\r\n retrievedUserAddress: {}\r\n },\r\n basket: {\r\n isPaymentAttemptSuccessful: true,\r\n purchaseAttemptMessages: []\r\n },\r\n signInForm: {\r\n signInFormData: {},\r\n isFormLoadSuccessful: false,\r\n isSignInSuccessful: false,\r\n isUserLastLogInDataUpdated: false,\r\n userLastLogInDataErrorMessages: [],\r\n signInMessages: [],\r\n isSignOutSuccessful: false,\r\n signOutMessages: [],\r\n isNewPasswordRequired: false,\r\n cognitoUser: {},\r\n isNewPasswordRequiredFormDataLoadedSuccessful: false,\r\n loadPasswordRequiredFormDataMessages: [],\r\n newPasswordRequiredFormData: {},\r\n isNewPasswordSavedSuccessful: false,\r\n newPasswordSavedMessages: [],\r\n signInSuccessFormData: {}\r\n },\r\n forgotPasswordForm: {\r\n forgotPasswordFormData: {},\r\n isFormLoadSuccessful: false,\r\n forgotPasswordMessages: [],\r\n isForgotPasswordSuccessful: false\r\n },\r\n resetPasswordForm: {\r\n resetPasswordFormData: {},\r\n isFormLoadSuccessful: false,\r\n resetPasswordMessages: [],\r\n isResetPasswordSuccessful: false\r\n },\r\n verifyEmailForm: {\r\n verifyEmailFormData: {},\r\n isFormLoadSuccessful: false,\r\n verifyEmailMessages: [],\r\n isVerifyEmailSuccessful: false\r\n },\r\n userAccount: {\r\n isTicketsDataLoadedSuccessful: false,\r\n isUserAccountDataLoadedSuccessful: false,\r\n isAccountPageRefresh: false,\r\n isUserNotSignedIn: false,\r\n isOrderHistoryLoadedSuccessful: false,\r\n areOrderDetailsLoadedSuccessful: false,\r\n areOrderHistoryPagesLoadedSuccessful: false,\r\n isUserDetailsUpdatedSuccessful: false,\r\n isUserTicketsDataLoadedSuccessful: false,\r\n isPdfFileDownloadedSuccessful: false,\r\n isUserAccountRemovedSuccessful: false,\r\n areUserAddressesUpdatedSuccessful: false,\r\n isUserPasswordChangedSuccessful: false,\r\n isUserUpdatingEmail: false,\r\n homePageTicketsData: {},\r\n userAccountData: {},\r\n orderHistoryData: [],\r\n orderDetails: {},\r\n userTicketsData: [],\r\n orderHistoryPages: 0,\r\n loadHomePageTicketsDataErrorMessages: [],\r\n downloadPdfFileErrorMessages: [],\r\n updateUserDetailsMessages: [],\r\n updateUserAddressesMessages: [],\r\n changePasswordMessages: [],\r\n userAddedToAddressBookSuccessful: false,\r\n saveUserToAddressBookErrorMessages: []\r\n },\r\n apiStatus: {\r\n apiCallsInProgress: 0,\r\n apiErrorMessages: []\r\n }\r\n};\r\n","import { combineReducers } from 'redux';\r\nimport apiStatus from './api-status-reducer';\r\nimport registerForm from './register-form-reducer';\r\nimport userAddressReducer from './user-address-reducer';\r\nimport upgradeAccountForm from './upgrade-account-reducer';\r\nimport basket from './basket-reducer';\r\nimport signInForm from './sign-in-form-reducer';\r\nimport forgotPasswordForm from './forgot-password-form-reducer';\r\nimport resetPasswordForm from './reset-password-form-reducer';\r\nimport userAccount from './user-account-reducer';\r\nimport itemListForm from './item-list-form-reducer';\r\nimport verifyEmailForm from './verify-email-form-reducer';\r\n\r\nconst rootReducer = combineReducers({\r\n registerForm,\r\n itemListForm,\r\n upgradeAccountForm,\r\n basket,\r\n userAddressSearchData: userAddressReducer,\r\n signInForm,\r\n forgotPasswordForm,\r\n resetPasswordForm,\r\n verifyEmailForm,\r\n userAccount,\r\n apiStatus,\r\n});\r\n\r\nexport default rootReducer;\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function registerFormReducer(state = initialState.registerForm, action) {\r\n switch (action.type) {\r\n case types.REGISTER_USER_SUCCESS:\r\n return {\r\n ...state,\r\n isRegisterSuccessful: true,\r\n userName: action.userName,\r\n userRegistrationMessages: action.userRegistrationMessages\r\n };\r\n case types.REGISTER_USER_ERROR:\r\n return {\r\n ...state,\r\n isRegisterSuccessful: false,\r\n userName: '',\r\n userRegistrationMessages: action.userRegistrationMessages\r\n };\r\n case types.LOAD_REGISTER_FORM_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: true,\r\n registerFormData: action.registerFormData,\r\n userRegistrationMessages: []\r\n };\r\n case types.LOAD_REGISTER_FORM_DATA_ERROR:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: false,\r\n registerFormData: {},\r\n userRegistrationMessages: []\r\n };\r\n case types.RESEND_EMAIL_VERIFICATION_SUCCESS:\r\n return {\r\n ...state,\r\n isResendEmailVerificationSuccessful: true,\r\n resendEmailVerificationMessages: action.resendEmailVerificationMessages,\r\n };\r\n case types.RESEND_EMAIL_VERIFICATION_ERROR:\r\n return {\r\n ...state,\r\n isResendEmailVerificationSuccessful: false,\r\n resendEmailVerificationMessages: action.resendEmailVerificationMessages,\r\n };\r\n case types.RESET_REGISTER_FORM_STATE:\r\n return initialState.registerForm;\r\n case types.VERIFY_IF_USER_EMAIL_EXISTS_SUCCESS:\r\n return {\r\n ...state,\r\n isUserEmailAlreadyUsed: false\r\n };\r\n case types.VERIFY_IF_USER_EMAIL_EXISTS_ERROR:\r\n return {\r\n ...state,\r\n isUserEmailAlreadyUsed: true\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { hasValue } from '../../../../general/js/general-helpers';\r\nimport * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function itemListFormReducer(state = initialState.itemListForm, action) {\r\n switch (action.type) {\r\n case types.LOAD_ITEM_LIST_FORM_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: true,\r\n itemListFormData: hasValue(action.itemListFormData) ? action.itemListFormData : {},\r\n itemListErrorMessages: []\r\n };\r\n case types.LOAD_ITEM_LIST_FORM_DATA_ERROR:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: false,\r\n itemListFormData: {},\r\n itemListErrorMessages: action.errorMessage\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function upgradeAccountReducer(state = initialState.upgradeAccountForm, action) {\r\n switch (action.type) {\r\n case types.UPGRADE_TO_TICKETING_ACCOUNT_SUCCESS:\r\n return {\r\n ...state,\r\n isUpgradeSuccessful: true,\r\n accountUpgradeMessages: action.accountUpgradeMessages,\r\n };\r\n case types.UPGRADE_TO_TICKETING_ACCOUNT_ERROR:\r\n return {\r\n ...state,\r\n isUpgradeSuccessful: false,\r\n accountUpgradeMessages: action.accountUpgradeMessages\r\n };\r\n case types.LOAD_UPGRADE_TO_ONE_CLUB_FORM_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n isUpgradeToOneClubFormDataLoadedSuccessful: true,\r\n upgradeToOneClubFormData: action.ssoUpgradeToOneClubFormData\r\n };\r\n case types.LOAD_UPGRADE_TO_ONE_CLUB_FORM_DATA_ERROR:\r\n return {\r\n ...state,\r\n isUpgradeToOneClubFormDataLoadedSuccessful: false,\r\n upgradeToOneClubFormData: {}\r\n };\r\n case types.RESET_UPGRADE_ACCOUNT_FORM:\r\n return initialState.upgradeAccountForm;\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function basketReducer(state = initialState.basket, action) {\r\n switch (action.type) {\r\n case types.PURCHASE_ATTEMPT_SUCCESS:\r\n return {\r\n ...state,\r\n isPaymentAttemptSuccessful: true,\r\n purchaseAttemptMessages: action.purchaseAttemptMessages\r\n };\r\n case types.PURCHASE_ATTEMPT_ERROR:\r\n return {\r\n ...state,\r\n isPaymentAttemptSuccessful: false,\r\n userRegistrationMessages: action.purchaseAttemptMessages\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function userAddressReducer(state = initialState.userAddress, action) {\r\n switch (action.type) {\r\n case types.SEARCH_ADDRESS_SUCCESS:\r\n return {\r\n ...state,\r\n isUserAddressSearchSuccessful: true,\r\n suggestedAddresses: action.suggestedAddresses,\r\n searchAddressMessages: ''\r\n };\r\n case types.SEARCH_ADDRESS_ERROR:\r\n return {\r\n ...state,\r\n isUserAddressSearchSuccessful: false,\r\n suggestedAddresses: [],\r\n searchAddressMessage: action.searchAddressMessage\r\n };\r\n case types.RETRIEVE_ADDRESS_SUCCESS:\r\n return {\r\n ...state,\r\n isUserAddressRetrieveSuccessful: true,\r\n retrievedUserAddress: action.addressData,\r\n retrieveAddressMessages: ''\r\n };\r\n case types.RETRIEVE_ADDRESS_ERROR:\r\n return {\r\n ...state,\r\n isUserAddressRetrieveSuccessful: false,\r\n retrievedUserAddress: {},\r\n retrieveAddressMessages: action.retrieveAddressMessages\r\n };\r\n case types.RESET_RETRIEVE_USER_ADDRESS: return {\r\n ...state,\r\n isUserAddressRetrieveSuccessful: false,\r\n retrievedUserAddress: {}\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function registerFormReducer(state = initialState.signInForm, action) {\r\n switch (action.type) {\r\n case types.SIGN_IN_USER_SUCCESS:\r\n return {\r\n ...state,\r\n isSignInSuccessful: action.signInProperties.isSignInSuccessful,\r\n signInMessages: action.signInProperties.signInMessages,\r\n isNewPasswordRequired: action.signInProperties.isNewPasswordRequired,\r\n cognitoUser: action.signInProperties.cognitoUser\r\n };\r\n case types.SIGN_IN_USER_ERROR:\r\n return {\r\n ...state,\r\n isSignInSuccessful: false,\r\n isNewPasswordRequired: false,\r\n signInMessages: action.signInMessages,\r\n cognitoUser: {}\r\n };\r\n case types.LAST_LOG_IN_UPDATE_SUCCESS:\r\n return {\r\n ...state,\r\n isUserLastLogInDataUpdated: action.lastLogInProperties.isUserLastLogInDataUpdated,\r\n userLastLogInDataErrorMessages: []\r\n };\r\n case types.LAST_LOG_IN_UPDATE_ERROR:\r\n return {\r\n ...state,\r\n isUserLastLogInDataUpdated: false,\r\n userLastLogInDataErrorMessages: action.errorMessages\r\n };\r\n case types.NEW_PASSWORD_SAVED_SUCCESS:\r\n return {\r\n ...state,\r\n isNewPasswordSavedSuccessful: true,\r\n newPasswordSavedMessages: action.newPasswordSavedMessages,\r\n };\r\n case types.NEW_PASSWORD_SAVED_ERROR:\r\n return {\r\n ...state,\r\n isNewPasswordSavedSuccessful: false,\r\n newPasswordSavedMessages: action.newPasswordSavedMessages,\r\n };\r\n case types.LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n isNewPasswordRequiredFormDataLoadedSuccessful: true,\r\n newPasswordRequiredFormData: action.newPasswordRequiredFormData,\r\n loadPasswordRequiredFormDataMessages: []\r\n };\r\n case types.LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_ERROR:\r\n return {\r\n ...state,\r\n isNewPasswordRequiredFormDataLoadedSuccessful: false,\r\n loadPasswordRequiredFormDataMessages: action.loadPasswordRequiredFormDataMessages,\r\n newPasswordRequiredFormData: {}\r\n };\r\n case types.SIGN_OUT_USER_SUCCESS:\r\n return {\r\n ...state,\r\n isSignOutSuccessful: true,\r\n signOutMessages: action.signOutMessages\r\n };\r\n case types.SIGN_OUT_USER_ERROR:\r\n return {\r\n ...state,\r\n isSignOutSuccessful: false,\r\n signOutMessages: action.signOutMessages\r\n };\r\n case types.LOAD_SIGN_IN_FORM_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: true,\r\n signInFormData: action.signInFormData\r\n };\r\n case types.LOAD_SIGN_IN_FORM_DATA_ERROR:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: false,\r\n signInFormData: {}\r\n };\r\n case types.LOAD_SIGN_IN_SUCCESS_FORM_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n signInSuccessFormData: action.signInFormDataSuccess\r\n };\r\n case types.RESET_SIGN_IN_FORM_STATE:\r\n return {\r\n ...state,\r\n signInFormData: {},\r\n isFormLoadSuccessful: false,\r\n isSignInSuccessful: false,\r\n signInMessages: [],\r\n isSignOutSuccessful: false,\r\n signOutMessages: [],\r\n isNewPasswordRequired: false,\r\n cognitoUser: {},\r\n isNewPasswordRequiredFormDataLoadedSuccessful: false,\r\n loadPasswordRequiredFormDataMessages: [],\r\n newPasswordRequiredFormData: {},\r\n isNewPasswordSavedSuccessful: false,\r\n newPasswordSavedMessages: []\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function forgotPasswordFormReducer(state = initialState.forgotPasswordForm, action) {\r\n switch (action.type) {\r\n case types.FORGOT_PASSWORD_SUCCESS:\r\n return {\r\n ...state,\r\n isForgotPasswordSuccessful: true,\r\n forgotPasswordMessages: action.forgotPasswordMessages\r\n };\r\n case types.FORGOT_PASSWORD_ERROR:\r\n return {\r\n ...state,\r\n isForgotPasswordSuccessful: false,\r\n forgotPasswordMessages: action.forgotPasswordMessages\r\n };\r\n case types.LOAD_FORGOT_PASSWORD_FORM_SUCCESS:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: true,\r\n forgotPasswordFormData: action.forgotPasswordFormData,\r\n forgotPasswordMessages: []\r\n };\r\n case types.LOAD_FORGOT_PASSWORD_FORM_ERROR:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: false,\r\n forgotPasswordFormData: {},\r\n forgotPasswordMessages: []\r\n };\r\n case types.RESET_FORGOT_PASSWORD_FORM_STATE:\r\n return initialState.forgotPasswordForm;\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function resetPasswordFormReducer(state = initialState.resetPasswordForm, action) {\r\n switch (action.type) {\r\n case types.RESET_PASSWORD_SUCCESS:\r\n return {\r\n ...state,\r\n isResetPasswordSuccessful: true,\r\n resetPasswordMessages: action.resetPasswordMessages\r\n };\r\n case types.RESET_PASSWORD_ERROR:\r\n return {\r\n ...state,\r\n isResetPasswordSuccessful: false,\r\n resetPasswordMessages: action.resetPasswordMessages\r\n };\r\n case types.LOAD_RESET_PASSWORD_FORM_SUCCESS:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: true,\r\n resetPasswordFormData: action.resetPasswordFormData,\r\n resetPasswordMessages: []\r\n };\r\n case types.LOAD_RESET_PASSWORD_FORM_ERROR:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: false,\r\n resetPasswordFormData: {},\r\n resetPasswordMessages: []\r\n };\r\n case types.RESET_RESET_PASSWORD_FORM_STATE:\r\n return initialState.resetPasswordForm;\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function verifyEmailFormReducer(state = initialState.verifyEmailForm, action) {\r\n switch (action.type) {\r\n case types.VERIFY_EMAIL_SUCCESS:\r\n return {\r\n ...state,\r\n isVerifyEmailSuccessful: true,\r\n verifyEmailMessages: action.verifyEmailMessages\r\n };\r\n case types.VERIFY_EMAIL_ERROR:\r\n return {\r\n ...state,\r\n isVerifyEmailSuccessful: false,\r\n verifyEmailMessages: action.verifyEmailMessages\r\n };\r\n case types.LOAD_VERIFY_EMAIL_FORM_SUCCESS:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: true,\r\n verifyEmailFormData: action.verifyEmailFormData,\r\n verifyEmailMessages: []\r\n };\r\n case types.LOAD_VERIFY_EMAIL_FORM_ERROR:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: false,\r\n verifyEmailFormData: {},\r\n verifyEmailMessages: []\r\n };\r\n case types.RESET_VERIFY_EMAIL_FORM_STATE:\r\n return initialState.verifyEmailForm;\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function userAccountReducer(state = initialState.userAccount, action) {\r\n switch (action.type) {\r\n case types.LOAD_HOME_PAGE_TICKETS_DATA_SUCCESS: return {\r\n ...state,\r\n isTicketsDataLoadedSuccessful: true,\r\n loadHomePageTicketsDataErrorMessages: [],\r\n homePageTicketsData: action.homePageTicketsData\r\n\r\n };\r\n case types.LOAD_HOME_PAGE_TICKETS_DATA_ERROR: return {\r\n ...state,\r\n isTicketsDataLoadedSuccessful: false,\r\n loadHomePageTicketsDataErrorMessages: action.loadHomePageTicketsDataErrorMessages,\r\n homePageTicketsData: {}\r\n\r\n };\r\n case types.RESET_HOME_PAGE_TICKETS_DATA_FORM_STATE: return {\r\n ...state,\r\n isTicketsDataLoadedSuccessful: false,\r\n loadHomePageTicketsDataErrorMessages: [],\r\n homePageTicketsData: {}\r\n };\r\n case types.LOAD_USER_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n userAccountData: action.data.userAccountData,\r\n isAccountPageRefresh: action.data.isAccountPageRefresh,\r\n isUserAccountDataLoadedSuccessful: true,\r\n isUserNotSignedIn: false,\r\n userAddedToAddressBookSuccessful: false,\r\n saveUserToAddressBookErrorMessages: []\r\n };\r\n case types.LOAD_USER_DATA_ERROR:\r\n return {\r\n ...state,\r\n userAccountData: {},\r\n isAccountPageRefresh: false,\r\n isUserNotSignedIn: action.isUserNotSignedIn,\r\n isUserAccountDataLoadedSuccessful: false\r\n };\r\n case types.LOAD_ORDER_HISTORY_SUCCESS:\r\n return {\r\n ...state,\r\n orderHistoryData: action.orderHistoryData,\r\n isOrderHistoryLoadedSuccessful: true,\r\n displayCancelledFiles: action.displayCancelledFiles\r\n };\r\n case types.LOAD_ORDER_HISTORY_ERROR:\r\n return {\r\n ...state,\r\n orderHistoryData: [],\r\n isOrderHistoryLoadedSuccessful: false\r\n };\r\n case types.LOAD_ORDER_HISTORY_PAGES_SUCCESS: return {\r\n ...state,\r\n areOrderHistoryPagesLoadedSuccessful: true,\r\n orderHistoryPages: action.orderHistoryPages,\r\n displayCancelledFiles: action.displayCancelledFiles\r\n };\r\n case types.LOAD_ORDER_HISTORY_PAGES_ERROR: return {\r\n ...state,\r\n areOrderHistoryPagesLoadedSuccessful: false,\r\n orderHistoryPages: 0\r\n };\r\n case types.LOAD_ORDER_DETAILS_SUCCESS: return {\r\n ...state,\r\n orderDetails: action.orderDetails,\r\n areOrderDetailsLoadedSuccessful: true\r\n };\r\n case types.LOAD_ORDER_DETAILS_ERROR: return {\r\n ...state,\r\n orderDetails: {},\r\n areOrderDetailsLoadedSuccessful: false\r\n };\r\n case types.LOAD_USER_TICKETS_SUCCESS: return {\r\n ...state,\r\n userTicketsData: action.userTicketsData,\r\n hideOldTickets: action.hideOldTickets,\r\n isUserTicketsDataLoadedSuccessful: true,\r\n };\r\n case types.LOAD_USER_TICKETS_ERROR: return {\r\n ...state,\r\n userTicketsData: {},\r\n isUserTicketsDataLoadedSuccessful: false,\r\n };\r\n case types.DOWNLOAD_PDF_FILE_SUCCESS: return {\r\n ...state,\r\n downloadPdfFileErrorMessages: [],\r\n isPdfFileDownloadedSuccessful: true\r\n };\r\n case types.DOWNLOAD_PDF_FILE_ERROR: return {\r\n ...state,\r\n isPdfFileDownloadedSuccessful: false,\r\n downloadPdfFileErrorMessages: action.downloadPdfFileErrorMessages\r\n };\r\n case types.UPDATE_USER_DETAILS_SUCCESS:\r\n return {\r\n ...state,\r\n isUserDetailsUpdatedSuccessful: true,\r\n updateUserDetailsMessages: action.updateUserDetailsMessages\r\n };\r\n case types.UPDATER_USER_EMAIL_SUCCESS:\r\n return {\r\n ...state,\r\n isUserDetailsUpdatedSuccessful: true,\r\n isUserUpdatingEmail: true,\r\n updateUserDetailsMessages: action.updateUserDetailsMessages\r\n };\r\n case types.UPDATE_USER_DETAILS_ERROR:\r\n return {\r\n ...state,\r\n isUserDetailsUpdatedSuccessful: false,\r\n updateUserDetailsMessages: action.updateUserDetailsMessages\r\n };\r\n case types.REMOVE_USER_ACCOUNT_SUCCESS:\r\n return {\r\n ...state,\r\n isUserAccountRemovedSuccessful: true\r\n };\r\n case types.REMOVE_USER_ACCOUNT_ERROR:\r\n return {\r\n ...state,\r\n isUserAccountRemovedSuccessful: false\r\n };\r\n case types.UPDATE_USER_ADDRESSES_SUCCESS:\r\n return {\r\n ...state,\r\n areUserAddressesUpdatedSuccessful: true,\r\n updateUserAddressesMessages: action.updateUserAddressesMessages\r\n };\r\n case types.UPDATE_USER_ADDRESSES_ERROR:\r\n return {\r\n ...state,\r\n areUserAddressesUpdatedSuccessful: false,\r\n updateUserAddressesMessages: action.updateUserAddressesMessages\r\n };\r\n case types.RESET_USER_ADDRESSES_FORM_STATE:\r\n return {\r\n ...state,\r\n areUserAddressesUpdatedSuccessful: false,\r\n updateUserAddressesMessages: []\r\n };\r\n case types.USER_ADDRESSES_ERROR_MESSAGE: return {\r\n ...state,\r\n areUserAddressesUpdatedSuccessful: false,\r\n updateUserAddressesMessages: action.errorMessages\r\n };\r\n case types.CHANGE_PASSWORD_SUCCESS:\r\n return {\r\n ...state,\r\n isUserPasswordChangedSuccessful: true,\r\n changePasswordMessages: action.changePasswordMessages\r\n };\r\n case types.CHANGE_PASSWORD_ERROR:\r\n return {\r\n ...state,\r\n isUserPasswordChangedSuccessful: false,\r\n changePasswordMessages: action.changePasswordMessages\r\n };\r\n case types.RESET_USER_DETAILS_FORM_STATE:\r\n return {\r\n ...state,\r\n isUserDetailsUpdatedSuccessful: false,\r\n updateUserDetailsMessages: []\r\n };\r\n case types.RESET_CHANGE_PASSWORD_FORM_STATE:\r\n return {\r\n ...state,\r\n isUserPasswordChangedSuccessful: false,\r\n changePasswordMessages: [],\r\n };\r\n case types.SAVE_USER_TO_ADDRESS_BOOK_SUCCESS:\r\n return {\r\n ...state,\r\n userAddedToAddressBookSuccessful: true,\r\n saveUserToAddressBookErrorMessages: []\r\n }\r\n case types.SAVE_USER_TO_ADDRESS_BOOK_ERROR_MESSAGE:\r\n return {\r\n ...state,\r\n userAddedToAddressBookSuccessful: false,\r\n saveUserToAddressBookErrorMessages: action.errorMessages\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\nimport { formMessageConstants } from '../../components/utils/constants/form-message-constants';\r\n\r\nfunction actionTypeEndsInSuccess(type) {\r\n return type.substring(type.length - 8) === '_SUCCESS';\r\n}\r\n\r\nexport default function apiStatusReducer(\r\n state = {\r\n apiCallsInProgress: initialState.apiStatus.apiCallsInProgress,\r\n apiErrorMessages: initialState.apiStatus.apiErrorMessages\r\n },\r\n action\r\n) {\r\n if (action.type === types.BEGIN_API_CALL) {\r\n return {\r\n ...state,\r\n apiCallsInProgress: state.apiCallsInProgress + 1,\r\n apiErrorMessages: []\r\n };\r\n }\r\n\r\n if (action.type === types.API_CALL_ERROR) {\r\n return {\r\n ...state,\r\n apiCallsInProgress: state.apiCallsInProgress - 1,\r\n apiErrorMessages: [formMessageConstants.somethingWentWrong]\r\n };\r\n }\r\n\r\n if (actionTypeEndsInSuccess(action.type)) {\r\n return {\r\n ...state,\r\n apiCallsInProgress: state.apiCallsInProgress - 1,\r\n apiErrorMessage: []\r\n };\r\n }\r\n\r\n if (action.type === types.API_CALL_STATE_RESET) {\r\n return state;\r\n }\r\n\r\n return state;\r\n}\r\n","import BaseComponent from 'foundation/base-component';\r\nimport React from 'react';\r\nimport { render } from 'react-dom';\r\nimport { Provider as ReduxProvider } from 'react-redux';\r\nimport SSOForm from './components/SSOForm';\r\nimport configureStore from './store/configure-store';\r\nimport { AmplifyClient } from '../../project/amplify-client';\r\n\r\nexport default class SSOFormComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.data = {};\r\n\r\n try {\r\n AmplifyClient.init();\r\n this.data = JSON.parse(this.getAttribute(this.refs.data, 'options'));\r\n } catch (error) {\r\n console.log(error.message);\r\n }\r\n\r\n if (!this.data) {\r\n console.log('No data found');\r\n return;\r\n }\r\n\r\n const store = configureStore();\r\n\r\n render(\r\n \r\n \r\n ,\r\n this.refs.section\r\n );\r\n }\r\n}\r\n","import { createStore, applyMiddleware } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport rootReducer from './reducers';\r\n\r\nexport default function configureStore(initialState) {\r\n return createStore(rootReducer, initialState, applyMiddleware(thunk));\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport SSOFormComponent from './sso-form.component';\r\n\r\nComponentsFactory.getInstance().define('sso-form', SSOFormComponent);\r\n","import get from \"lodash/get\";\r\nimport BaseComponent from \"foundation/base-component\";\r\nimport ScoringLoader, {\r\n endpointNames,\r\n} from \"general/js/loaders/scoring-loader\";\r\nimport store from \"general/js/store\";\r\n\r\nclass StickyButtonTriggerComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.windowObjectReference = null;\r\n this.unsubscribe = null;\r\n this.state = {\r\n title: this.options.title,\r\n isActive: this.options.isActive || false,\r\n openInPopup: this.options.openInPopup || false,\r\n };\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (this.state.openInPopup) {\r\n this.addListener(this.element, \"click\", this.onClickRoot);\r\n }\r\n ScoringLoader.subscribe(endpointNames.LIVE_SCANNER);\r\n this.unsubscribe = store.subscribe(this.onStoreUpdate);\r\n }\r\n\r\n onDestroy() {\r\n ScoringLoader.unsubscribe(endpointNames.LIVE_SCANNER);\r\n this.unsubscribe();\r\n }\r\n\r\n onStoreUpdate = () => {\r\n const state = store.getState();\r\n const config = get(state, \"scoring.liveScanner.streamsConfig\");\r\n\r\n if (!config || !config.radio) return;\r\n\r\n if (this.state.isActive !== config.radio.show) {\r\n this.state.isActive = config.radio.show;\r\n this.update();\r\n }\r\n };\r\n\r\n onClickRoot = (event) => {\r\n if (this.state.isActive) {\r\n // we should switch to sync logic there because of the way we handle showWindow\r\n // basically the theory behind is that the browser will treat window.open as a spam\r\n // and block it in case of any delay between the user action (trusted event) and actual window.open\r\n // we can't show window after passed challenge because it takes a lot of time and window will be blocked\r\n // and we have to do nothing first time and only on second click show window synchronously\r\n // we do so by passing second parameter equals true\r\n //emailCapturingService.challenge(() => {\r\n this.showWindow(this.element.href);\r\n //}, true);\r\n }\r\n\r\n event.preventDefault();\r\n };\r\n\r\n showWindow(url) {\r\n if (!url) return;\r\n\r\n if (this.windowObjectReference && !this.windowObjectReference.closed) {\r\n this.windowObjectReference.focus();\r\n return;\r\n }\r\n\r\n this.windowObjectReference = window.open(\r\n url,\r\n this.options.title,\r\n \"left=150,top=150,width=780,height=780,resizable,scrollbars=0,status=1\"\r\n );\r\n\r\n // make window be square in all browsers\r\n setTimeout(() => {\r\n this.windowObjectReference.document.documentElement.style.overflow =\r\n \"hidden\";\r\n this.windowObjectReference.innerWidth = 400;\r\n this.windowObjectReference.innerHeight = 400;\r\n }, 300);\r\n }\r\n\r\n update = () => {\r\n if (this.state.isActive) {\r\n this.element.classList.add(\"is-active\");\r\n this.element.classList.remove(\"inactive\");\r\n } else {\r\n this.element.classList.remove(\"is-active\");\r\n this.element.classList.add(\"inactive\");\r\n }\r\n };\r\n}\r\n\r\nexport default StickyButtonTriggerComponent;\r\n","//import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport StickyButtonTriggerComponent from './js/sticky-button-trigger.component';\r\n\r\nComponentsFactory.getInstance().define('sticky-button', StickyButtonTriggerComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport Scroller from '../../../general/js/scroller';\r\n\r\nexport default class SubNav extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.links = this.refs.links;\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (this.element.classList.contains('sub-nav-light')) {\r\n this.links.forEach((link) => {\r\n this.addListener(link, 'click', this.onClick.bind(this));\r\n });\r\n }\r\n }\r\n\r\n onClick(event) {\r\n event.preventDefault();\r\n\r\n const elementId = event.target.getAttribute('href');\r\n const blockToShow = document.querySelector(elementId);\r\n\r\n if (blockToShow) {\r\n this.scroller = new Scroller(blockToShow, { scrollOffset: 100 });\r\n this.scroller.scrollToTop();\r\n }\r\n }\r\n\r\n onDestroy() {\r\n this.scroller = null;\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport SubNavComponent from './js/sub-nav.component';\r\n\r\nComponentsFactory.getInstance().define('sub-nav', SubNavComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport anime from 'animejs';\r\nimport Stickyfill from 'stickyfilljs';\r\nimport { createBrowserHistory } from 'history';\r\nimport eventBus from '../../../general/js/event-bus';\r\n\r\nexport default class SubPageNav extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.activeNavLinkNode = null;\r\n this.currentContentNode = null;\r\n this.elementCoordinateTop = 0;\r\n\r\n this.links = this.refs.links;\r\n this.content = this.refs.content;\r\n\r\n this.history = createBrowserHistory();\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.stickyfill();\r\n\r\n eventBus.addListener('venue-hero-init', this.venueHeroInit);\r\n eventBus.addListener('large-hero-init', this.largeHeroInit);\r\n\r\n this.onPopstate();\r\n this.tabsInit();\r\n }\r\n\r\n onDestroy() {\r\n eventBus.removeListener('venue-hero-init', this.venueHeroInit);\r\n eventBus.removeListener('large-hero-init', this.largeHeroInit);\r\n\r\n Stickyfill.remove(this.refs.nav);\r\n }\r\n\r\n setStyles(node) {\r\n const indent = node.offsetHeight;\r\n let className = '';\r\n\r\n switch (node) {\r\n case this.venueHeroSticky:\r\n className = 'is-venue-hero-sticky';\r\n break;\r\n case this.heroSticky:\r\n className = 'is-hero-sticky';\r\n break;\r\n default:\r\n className = '';\r\n }\r\n\r\n if (node) {\r\n this.refs.nav.classList.add(className);\r\n this.elementCoordinateTop = this.element.offsetTop - indent;\r\n }\r\n }\r\n\r\n venueHeroInit = (props) => {\r\n this.venueHeroSticky = props.venueHeroStickyRef;\r\n\r\n this.setStyles(this.venueHeroSticky);\r\n }\r\n\r\n largeHeroInit = (props) => {\r\n this.heroSticky = props.largeHeroStickyRef;\r\n\r\n this.setStyles(this.heroSticky);\r\n }\r\n\r\n onPopstate = () => {\r\n this.history.listen(() => {\r\n const hash = window.location.hash;\r\n\r\n if (!this.element && hash) return false;\r\n\r\n this.currentId = hash;\r\n\r\n if (!this.currentId) return false;\r\n\r\n if (this.activeNavLinkNode) {\r\n this.activeNavLinkNode.classList.remove('is-active');\r\n }\r\n\r\n if (!this.links) return false;\r\n\r\n const activeNavLinkNode = this.links.filter((item) => item.getAttribute('href') === hash);\r\n\r\n this.activeNavLinkNode = activeNavLinkNode[0];\r\n const key = this.links.indexOf(this.activeNavLinkNode);\r\n this.activeNavLinkNode.classList.add('is-active');\r\n this.showContent(this.content[key]);\r\n\r\n return true;\r\n });\r\n };\r\n\r\n stickyfill() {\r\n Stickyfill.add(this.refs.nav);\r\n }\r\n\r\n tabsInit() {\r\n if (!this.links) {\r\n return;\r\n }\r\n const activeNavLink = this.links.filter((item) => item.getAttribute('href') === window.location.hash);\r\n\r\n if (activeNavLink.length === 0) {\r\n this.links[0].classList.add('is-active');\r\n } else {\r\n this.links.forEach((link) => {\r\n link.classList.remove('is-active');\r\n });\r\n activeNavLink[0].classList.add('is-active');\r\n }\r\n\r\n Object.keys(this.links).forEach((key) => {\r\n const link = this.links[key];\r\n\r\n this.addListener(link, 'click', this.onLinkClick.bind(this, key));\r\n\r\n if (link.classList.contains('is-active')) {\r\n if (!this.activeNavLinkNode) {\r\n this.activeNavLinkNode = link;\r\n\r\n if (this.content[key]) {\r\n this.content[key].classList.add('is-active');\r\n this.currentContentNode = this.content[key];\r\n }\r\n } else {\r\n // remove dublicate state if found\r\n link.classList.remove('is-active');\r\n }\r\n }\r\n });\r\n }\r\n\r\n onLinkClick(key, e) {\r\n e.preventDefault();\r\n\r\n this.elementCoordinateTop = this.element.offsetTop;\r\n\r\n // without animation\r\n // document.documentElement.scrollTop = this.elementCoordinateTop;\r\n\r\n anime({\r\n targets: document.documentElement,\r\n scrollTop: this.elementCoordinateTop,\r\n duration: 400,\r\n easing: 'easeOutQuad'\r\n });\r\n\r\n this.currentId = e.target.getAttribute('href');\r\n\r\n if (!document.getElementsByClassName('modal__container')[0]) {\r\n window.location.hash = this.currentId;\r\n }\r\n\r\n if (this.activeNavLinkNode) {\r\n this.activeNavLinkNode.classList.remove('is-active');\r\n }\r\n\r\n this.activeNavLinkNode = e.target;\r\n this.activeNavLinkNode.classList.add('is-active');\r\n this.showContent(this.content[key]);\r\n }\r\n\r\n showContent(contentNode) {\r\n if (this.currentContentNode) {\r\n if (this.currentContentNode === contentNode) {\r\n return;\r\n }\r\n\r\n this.currentContentNode.classList.remove('is-active');\r\n }\r\n\r\n contentNode.classList.add('is-active');\r\n this.currentContentNode = contentNode;\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport SubPageNav from './js/sub-page-nav.component';\r\n\r\nComponentsFactory.getInstance().define('sub-page-nav', SubPageNav);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport eventBus from 'general/js/event-bus';\r\n\r\nconst SUBLAYOUT_FULLWIDTH_ENABLE = 'SUBLAYOUT_FULLWIDTH_ENABLE';\r\nconst SUBLAYOUT_FULLWIDTH_DISABLE = 'SUBLAYOUT_FULLWIDTH_DISABLE';\r\n\r\nclass SublayoutComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n eventBus.addListener(SUBLAYOUT_FULLWIDTH_ENABLE, this.enableFullwidth);\r\n eventBus.addListener(SUBLAYOUT_FULLWIDTH_DISABLE, this.disableFullwidth);\r\n }\r\n\r\n onDestroy() {\r\n eventBus.removeListener(SUBLAYOUT_FULLWIDTH_ENABLE, this.enableFullwidth);\r\n eventBus.removeListener(SUBLAYOUT_FULLWIDTH_DISABLE, this.disableFullwidth);\r\n }\r\n\r\n enableFullwidth = () => {\r\n this.element.classList.add('is-fullwidth');\r\n }\r\n\r\n disableFullwidth = () => {\r\n this.element.classList.remove('is-fullwidth');\r\n }\r\n}\r\n\r\nexport default SublayoutComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport SublayoutComponent from './js/sublayout.component';\r\n\r\nComponentsFactory.getInstance().define('sublayout', SublayoutComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport {\r\n hasValue,\r\n isNullOrUndefined,\r\n} from '../../../general/js/general-helpers';\r\nimport { initialiseEventCentreInstance } from '../../imga-iframe/js/imga-iframe-helpers';\r\n\r\nexport default class TabsComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.activeNavLinkNode = null;\r\n this.currentContentNode = null;\r\n\r\n this.links = this.refs.links;\r\n this.content = this.refs.content;\r\n this.state = {\r\n shotViewElement: null,\r\n };\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n Object.keys(this.links).forEach((key) => {\r\n const link = this.links[key];\r\n this.addListener(link, 'click', this.onLinkClick.bind(this, link));\r\n\r\n if (link.classList.contains('is-active')) {\r\n if (!this.activeNavLinkNode) {\r\n this.activeNavLinkNode = link;\r\n\r\n const contentNode = this.content.find((tab) =>\r\n link.hash.includes(tab.id));\r\n if (contentNode) {\r\n contentNode.classList.add('is-active');\r\n this.currentContentNode = contentNode;\r\n }\r\n } else {\r\n // remove dublicate state if found\r\n link.classList.remove('is-active');\r\n }\r\n }\r\n });\r\n }\r\n\r\n onLinkClick(link, e) {\r\n e.preventDefault();\r\n\r\n if (this.activeNavLinkNode) {\r\n this.activeNavLinkNode.classList.remove('is-active');\r\n }\r\n\r\n this.activeNavLinkNode = e.target;\r\n this.activeNavLinkNode.classList.add('is-active');\r\n const contentNode = this.content.find((tab) =>\r\n link.hash.includes(tab.id));\r\n this.showContent(contentNode);\r\n\r\n if (contentNode.id === 'widget-course-map') {\r\n this.loadShotView();\r\n }\r\n }\r\n\r\n loadShotView() {\r\n const shotViewCreator = window.frontRowSeat;\r\n const { eventCentreParameters } = this.options;\r\n\r\n const shotViewHolder = hasValue(eventCentreParameters.targetElement) ?\r\n document.getElementById(eventCentreParameters.targetElement) :\r\n null;\r\n\r\n if (\r\n !isNullOrUndefined(shotViewHolder) &&\r\n !isNullOrUndefined(shotViewCreator)\r\n ) {\r\n this.state.shotViewElement = initialiseEventCentreInstance(\r\n shotViewCreator,\r\n shotViewHolder\r\n );\r\n }\r\n }\r\n\r\n showContent(contentNode) {\r\n if (this.currentContentNode) {\r\n if (this.currentContentNode === contentNode) {\r\n return;\r\n }\r\n\r\n this.currentContentNode.classList.remove('is-active');\r\n }\r\n\r\n contentNode.classList.add('is-active');\r\n this.currentContentNode = contentNode;\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport TabsComponent from './js/tabs.component';\r\n\r\nComponentsFactory.getInstance().define('tabs', TabsComponent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ModalTriggerComponent from '../../modal/js/modal-trigger.component';\r\n\r\nexport default class PopupLink extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.linkRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n this.modalTrigger = new ModalTriggerComponent(this.linkRef.current, 'modal-trigger');\r\n }\r\n\r\n componentWillUnmount() {\r\n this.modalTrigger.destroy();\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nPopupLink.propTypes = {\r\n className: PropTypes.string,\r\n href: PropTypes.string,\r\n ariaLabel: PropTypes.string,\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ])\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport PopupLink from './popup-link';\r\n\r\nexport default function PopupLinkInfo(props) {\r\n return (\r\n \r\n {props.children}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nPopupLinkInfo.propTypes = {\r\n href: PropTypes.string.isRequired,\r\n children: PropTypes.string\r\n};\r\n","export const SCENARIO_STANDARD = 'standard';\r\nexport const SCENARIO_HOSPITALITY = 'hospitality';\r\nexport const SCENARIO_HOSPITALITY_WITH_EXTRAS = 'hospitality_with_extras';\r\nexport const SCENARIO_PARKING = 'parking';\r\nexport const SCENARIO_PARKING_STANDALONE = 'parking_standalone';\r\nexport const SCENARIO_STANDARD_WITH_EXTRAS = 'standard_with_extras';\r\n\r\nexport const ROUTE_DAYS = '/select-days';\r\nexport const ROUTE_TICKETS = '/select-tickets';\r\nexport const ROUTE_EXTRAS = '/select-extras';\r\nexport const ROUTE_PARKING = '/select-parking';\r\nexport const ROUTE_PARKING_STANDALONE = '/select-parking-standalone';\r\n\r\nexport const DEFAULT_SOLD_OUT_LABEL = \"Sold Out\";\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\nimport { DEFAULT_SOLD_OUT_LABEL } from './constants';\r\n\r\nexport default class CheckboxPanel extends React.Component {\r\n renderAdditional() {\r\n return this.props.additional ? this.props.additional : null;\r\n }\r\n\r\n renderButton() {\r\n if (this.props.isDisabled) {\r\n return null;\r\n }\r\n\r\n if (this.props.button) {\r\n return this.props.button;\r\n }\r\n\r\n const selectBtnText = this.props.isSelected ? 'Remove' : 'Add';\r\n let selectBtnLabel = '';\r\n\r\n if (this.props.isSelected) {\r\n selectBtnLabel = 'Remove from basket';\r\n } else {\r\n selectBtnLabel = 'Add to basket';\r\n }\r\n\r\n const noSpacesTitle = this.props.title.replaceAll(' ', '-');\r\n\r\n return (\r\n \r\n \r\n {selectBtnText}\r\n \r\n \r\n );\r\n }\r\n\r\n render() {\r\n const soldOutLabel = hasValue(this.props.soldOutLabel) ? this.props.soldOutLabel : DEFAULT_SOLD_OUT_LABEL;\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n

    \r\n {this.props.title}\r\n {\r\n this.props.bracketsText ?\r\n {this.props.bracketsText} : ''\r\n }\r\n

    \r\n
    {this.props.text}
    \r\n
    \r\n {this.renderAdditional()}\r\n {this.renderButton()}\r\n
    \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nCheckboxPanel.defaultProps = {\r\n cssClasses: '',\r\n};\r\n\r\nCheckboxPanel.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n isSelected: PropTypes.bool.isRequired,\r\n isDisabled: PropTypes.bool,\r\n text: PropTypes.string,\r\n bracketsText: PropTypes.string,\r\n additional: PropTypes.element,\r\n button: PropTypes.element,\r\n cssClasses: PropTypes.string,\r\n onClick: PropTypes.func,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport CheckboxPanel from './checkbox-panel';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\nimport gtm, { ecommerceEventTypes } from '../../../general/js/gtm';\r\nimport { CURRENCY_RATIO, currencyIsoCodes } from '../../../general/js/basket/currency-helper';\r\n\r\nexport default class ProductGroupPanel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onClick = this.onClick.bind(this);\r\n }\r\n\r\n onClick() {\r\n this.props.onSelect(this.props.productGroup.id);\r\n\r\n if (!this.props.productGroup.isSelected) {\r\n const productGroup = this.props.productGroup;\r\n const product = productGroup.products[0];\r\n const productPrice = product.price / CURRENCY_RATIO;\r\n\r\n gtm.pushEcommerceEvent(ecommerceEventTypes.SELECT_ITEM, {\r\n currency: currencyIsoCodes.GBP,\r\n value: productPrice,\r\n items: [\r\n {\r\n item_id: product.productId,\r\n item_name: `${product.tag} - ${productGroup.title}`,\r\n price: productPrice,\r\n quantity: 1,\r\n }\r\n ]\r\n });\r\n }\r\n }\r\n\r\n getProductGroupTag() {\r\n if (!hasValue(this.props) && !hasValue(this.props.productGroup)) return null;\r\n\r\n const { productGroup: { productTag }, productGroup: { isSoldOut } } = this.props;\r\n\r\n if (!hasValue(productTag) || isSoldOut) return null;\r\n\r\n const { title, backgroundColor, textColor } = productTag;\r\n\r\n if (!hasValue(title)) return null;\r\n\r\n return {\r\n title: title,\r\n backgroundColor: backgroundColor,\r\n textColor: textColor\r\n };\r\n }\r\n\r\n renderProductGroupTag() {\r\n const productTag = this.getProductGroupTag();\r\n\r\n if (!hasValue(productTag)) return null;\r\n\r\n const { title, backgroundColor, textColor } = productTag;\r\n\r\n const inlineTagStyle = hasValue(backgroundColor) || hasValue(textColor)\r\n ? { backgroundColor: backgroundColor, color: textColor }\r\n : {};\r\n\r\n return (\r\n
    \r\n {title}\r\n
    \r\n );\r\n }\r\n\r\n renderButton() {\r\n if (this.props.productGroup.isComplete) {\r\n return (\r\n
    These tickets already added to basket
    \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n render() {\r\n const productGroup = this.props.productGroup;\r\n\r\n const stateCssClass = [];\r\n const rootCssModificator = [];\r\n const productGroupTag = this.getProductGroupTag();\r\n\r\n if (productGroup.useBlueHighlight) {\r\n rootCssModificator.push('product-panel--bundle');\r\n }\r\n\r\n if (!productGroup.isComlete && !productGroup.isSoldOut && hasValue(productGroupTag)) {\r\n rootCssModificator.push('product-panel--product-group-tag');\r\n }\r\n\r\n if (productGroup.isSoldOut) {\r\n stateCssClass.push('is-sold-out');\r\n }\r\n\r\n if (productGroup.isComlete) {\r\n stateCssClass.push('is-complete');\r\n }\r\n const isDisabled = productGroup.isComlete || productGroup.isSoldOut;\r\n\r\n const classes = `${rootCssModificator.join(' ')} ${stateCssClass.join(' ')}`;\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nProductGroupPanel.propTypes = {\r\n productGroup: PropTypes.object,\r\n onSelect: PropTypes.func,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport PopupLinkInfo from './popup-link-info';\r\nimport ProductGroupPanel from './product-group-panel';\r\nimport CurrencyHelper from '../../../general/js/basket/currency-helper';\r\nimport {\r\n PRODUCT_TYPE_TICKET,\r\n PRODUCT_TYPE_HOSPITALITY,\r\n PRODUCT_TAG_ADULT,\r\n PRODUCT_TAG_YOUTH,\r\n PRODUCT_TAG_CAR,\r\n PRODUCT_TAG_JUNIOR\r\n} from '../../../general/js/basket/constants';\r\nimport {\r\n SCENARIO_STANDARD,\r\n SCENARIO_HOSPITALITY,\r\n SCENARIO_HOSPITALITY_WITH_EXTRAS,\r\n SCENARIO_PARKING,\r\n SCENARIO_PARKING_STANDALONE,\r\n SCENARIO_STANDARD_WITH_EXTRAS\r\n} from './constants';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\n\r\nexport default class SelectDaysForm extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.formHeading = React.createRef();\r\n this.onSelectDay = this.onSelectDay.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.formHeading.current.focus();\r\n }\r\n\r\n onSelectDay(productGroupId) {\r\n let foundProductGroup = null;\r\n\r\n this.props.categoriesList.forEach((categorie) =>\r\n categorie.productGroups.forEach((productGroup) => {\r\n if (!foundProductGroup &&\r\n productGroup.id === productGroupId\r\n ) {\r\n foundProductGroup = productGroup;\r\n }\r\n }));\r\n\r\n this.props.onSelectProductGroup(foundProductGroup);\r\n }\r\n\r\n generateSummaryText(productGroup) {\r\n let summaryText;\r\n\r\n switch (this.props.currentScenario) {\r\n case SCENARIO_STANDARD:\r\n summaryText = this.generateStandardSummary(productGroup);\r\n break;\r\n case SCENARIO_HOSPITALITY:\r\n case SCENARIO_HOSPITALITY_WITH_EXTRAS:\r\n summaryText = this.generateHospitalitySummary(productGroup);\r\n break;\r\n case SCENARIO_PARKING:\r\n case SCENARIO_PARKING_STANDALONE:\r\n summaryText = this.generateParkingSummary(productGroup);\r\n break;\r\n default:\r\n summaryText = '';\r\n }\r\n\r\n return summaryText;\r\n }\r\n\r\n generateStandardSummary(productGroup) {\r\n const adultTariff = productGroup.products.find((product) =>\r\n product.type === PRODUCT_TYPE_TICKET && product.tag === PRODUCT_TAG_ADULT);\r\n const youthTariff = productGroup.products.find((product) =>\r\n product.type === PRODUCT_TYPE_TICKET && product.tag === PRODUCT_TAG_YOUTH);\r\n const juniorTariff = productGroup.products.find((product) =>\r\n product.type === PRODUCT_TYPE_TICKET && product.tag === PRODUCT_TAG_JUNIOR);\r\n\r\n const tarrifs = [];\r\n if (adultTariff) {\r\n tarrifs.push(`${CurrencyHelper.convertToPounds(adultTariff.price)} per Adult`);\r\n }\r\n if (youthTariff) {\r\n tarrifs.push(`${CurrencyHelper.convertToPounds(youthTariff.price)} per Youth`);\r\n }\r\n if (juniorTariff) {\r\n let text = 'Junior FREE';\r\n\r\n if (juniorTariff.price !== 0) {\r\n text = `${CurrencyHelper.convertToPounds(juniorTariff.price)} per Junior`;\r\n }\r\n\r\n tarrifs.push(text);\r\n }\r\n\r\n return tarrifs.join(' / ');\r\n }\r\n\r\n generateHospitalitySummary(productGroup) {\r\n const hospitalityTariff = productGroup.products.find((product) =>\r\n product.type === PRODUCT_TYPE_HOSPITALITY);\r\n let text = '';\r\n\r\n if (hospitalityTariff) {\r\n text += `${CurrencyHelper.convertToPounds(hospitalityTariff.price)} per person (inc VAT)`;\r\n }\r\n\r\n return text;\r\n }\r\n\r\n generateParkingSummary(productGroup) {\r\n const parkingTariff = productGroup.products.find((parking) =>\r\n parking.tag === PRODUCT_TAG_CAR);\r\n\r\n let text = '';\r\n\r\n if (parkingTariff) {\r\n text += `${CurrencyHelper.convertToPounds(parkingTariff.price)} ${parkingTariff.priceLabel}`;\r\n }\r\n\r\n return text;\r\n }\r\n\r\n renderCategories() {\r\n const categoriesList = this.props.categoriesList;\r\n\r\n if (!categoriesList) return null;\r\n\r\n return categoriesList.map((category) =>\r\n
    \r\n

    {category.title}

    \r\n {this.renderProductGroups(category.productGroups)}\r\n
    );\r\n }\r\n\r\n renderProductGroups(productGroupsList) {\r\n return productGroupsList.map((productGroup) => {\r\n const newProductGroup = Object.assign({}, productGroup);\r\n\r\n newProductGroup.summaryText = this.generateSummaryText(productGroup);\r\n newProductGroup.isSelected = this.props.productGroupsList.some((cProductGroup) =>\r\n cProductGroup.id === newProductGroup.id);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n {this.props.formTitle}

    \r\n
    \r\n

    {this.props.dictionary.selectDaysSubtitle}

    \r\n {\r\n this.props.currentScenario !== SCENARIO_STANDARD_WITH_EXTRAS &&\r\n hasValue(this.props.dictionary.helpMeChooseLinkUrl) &&\r\n hasValue(this.props.dictionary.helpMeChooseLinkText) &&\r\n \r\n {this.props.dictionary.helpMeChooseLinkText}\r\n \r\n }\r\n
    \r\n {this.renderCategories()}\r\n \r\n );\r\n }\r\n}\r\n\r\nSelectDaysForm.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n product: PropTypes.object,\r\n productGroupsList: PropTypes.array,\r\n categoriesList: PropTypes.array,\r\n currentScenario: PropTypes.string.isRequired,\r\n formTitle: PropTypes.string,\r\n onSelectProductGroup: PropTypes.func\r\n};\r\n","import React from 'react';\r\n\r\nexport const TicketBuilderContext = React.createContext();\r\n\r\nexport function withTicketBuilderContext(Component) {\r\n return (props) => (\r\n \r\n {(context) => }\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport CurrencyHelper, { currencyIsoCodes } from '../../../general/js/basket/currency-helper';\r\nimport gtm, { ecommerceEventTypes } from '../../../general/js/gtm';\r\nimport TrackingHelper from '../../../general/js/basket/tracking-helper';\r\nimport { withTicketBuilderContext } from './ticket-builder-context';\r\n\r\nclass TicketBuilderAside extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onContinue = this.onContinue.bind(this);\r\n }\r\n\r\n renderProduct(basketProduct) {\r\n if (!basketProduct || !basketProduct.quantity) return null;\r\n\r\n return (\r\n
    \r\n
    {basketProduct.title}
    \r\n
    x{basketProduct.quantity}
    \r\n
    \r\n {\r\n basketProduct.price > 0 ?\r\n CurrencyHelper.convertToPounds(basketProduct.sum) :\r\n 'Free'\r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n renderProductGroups() {\r\n const preparedProductGroups = this.getPreparedProductGroups();\r\n\r\n if (preparedProductGroups.length === 0) {\r\n return this.renderEmpty();\r\n }\r\n\r\n return preparedProductGroups.map((basketProductGroup) => (\r\n
    \r\n

    {basketProductGroup.title}

    \r\n {\r\n basketProductGroup.products.sort((a, b) => a.sortOrder - b.sortOrder)\r\n .map((basketProduct) => this.renderProduct(basketProduct))\r\n }\r\n
    ));\r\n }\r\n\r\n renderEmpty() {\r\n return (\r\n
    \r\n
    Your basket is empty
    \r\n
    \r\n );\r\n }\r\n\r\n getPreparedProductGroups() {\r\n const mergedWithTempGroups = { ...this.props.basket.productGroups };\r\n this.props.productGroupsList.forEach((productGroup) => {\r\n if (!(productGroup.id in mergedWithTempGroups)) {\r\n mergedWithTempGroups[productGroup.id] = productGroup;\r\n }\r\n });\r\n\r\n return Object.values(mergedWithTempGroups);\r\n }\r\n\r\n onContinue(actionCaption, fromRoute) {\r\n if (actionCaption === 'Pay') {\r\n const preparedProductGroups = this.getPreparedProductGroups();\r\n\r\n const basketValue = TrackingHelper.getBasketTotalValue(preparedProductGroups);\r\n const basketItems = TrackingHelper.getBasketProducts(preparedProductGroups);\r\n\r\n gtm.pushEcommerceEvent(ecommerceEventTypes.BEGIN_CHECKOUT, {\r\n currency: currencyIsoCodes.GBP,\r\n value: basketValue,\r\n items: basketItems\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n this.props.onToggleBasketMobile()}\r\n >\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n

    Your Basket

    \r\n Edit\r\n
    \r\n
    \r\n {this.renderProductGroups()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n Total\r\n {CurrencyHelper.convertToPounds(this.props.basket.total)}\r\n
    \r\n {'totalMc' in this.props.basket ?\r\n
    \r\n Total with\r\n \r\n {CurrencyHelper.convertToPounds(this.props.basket.totalMc)}\r\n
    :\r\n null}\r\n
    \r\n {this.props.renderControls(this.onContinue)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nTicketBuilderAside.propTypes = {\r\n productGroupsList: PropTypes.array,\r\n basket: PropTypes.object,\r\n onToggleBasketMobile: PropTypes.func,\r\n renderControls: PropTypes.func,\r\n tb: PropTypes.object.isRequired,\r\n basketUrl: PropTypes.string\r\n};\r\n\r\nexport default withTicketBuilderContext(TicketBuilderAside);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport SelectDaysForm from './select-days-form';\r\nimport TicketBuilderAside from './ticket-builder-aside';\r\nimport {\r\n ROUTE_DAYS,\r\n ROUTE_TICKETS,\r\n ROUTE_PARKING,\r\n ROUTE_PARKING_STANDALONE,\r\n SCENARIO_HOSPITALITY,\r\n SCENARIO_PARKING,\r\n SCENARIO_PARKING_STANDALONE,\r\n SCENARIO_HOSPITALITY_WITH_EXTRAS\r\n} from './constants';\r\n\r\nexport default class SelectDaysPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onClickContinue = this.onClickContinue.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.hasPreselectedProductGroup && this.isNextStepAvailable()) {\r\n this.props.history.push(this.getNextRoute());\r\n }\r\n }\r\n\r\n onClickContinue(event, onContinue) {\r\n if (!this.isNextStepAvailable()) {\r\n event.preventDefault();\r\n }\r\n\r\n onContinue('Continue', ROUTE_DAYS);\r\n }\r\n\r\n getNextRoute() {\r\n let nextRoute = ROUTE_TICKETS;\r\n\r\n if (this.props.currentScenario === SCENARIO_PARKING) {\r\n nextRoute = ROUTE_PARKING;\r\n }\r\n if (this.props.currentScenario === SCENARIO_PARKING_STANDALONE) {\r\n nextRoute = ROUTE_PARKING_STANDALONE;\r\n }\r\n \r\n return nextRoute;\r\n }\r\n\r\n generateFormTitle() {\r\n if (this.props.currentScenario === SCENARIO_HOSPITALITY ||\r\n this.props.currentScenario === SCENARIO_HOSPITALITY_WITH_EXTRAS\r\n ) {\r\n return this.props.categoriesList[0].title;\r\n }\r\n\r\n return this.props.dictionary.standardTicketsTitle;\r\n }\r\n\r\n isNextStepAvailable() {\r\n return this.props.productGroupsList.length > 0;\r\n }\r\n\r\n render() {\r\n const isNextStepAvailable = this.isNextStepAvailable();\r\n const continueBtnDisabledCC = isNextStepAvailable ? '' : 'is-disabled';\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n (\r\n
    \r\n this.onClickContinue(e, onContinue)}>\r\n Continue\r\n \r\n \r\n \r\n \r\n
    \r\n )}/>\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectDaysPage.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n basket: PropTypes.object,\r\n productGroupsList: PropTypes.array,\r\n categoriesList: PropTypes.array,\r\n currentScenario: PropTypes.string.isRequired,\r\n onSelectProductGroup: PropTypes.func,\r\n onToggleBasketMobile: PropTypes.func,\r\n history: PropTypes.object.isRequired,\r\n hasPreselectedProductGroup: PropTypes.bool.isRequired,\r\n isParkingStandaloneConfiguration: PropTypes.bool\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport { ROUTE_DAYS } from './constants';\r\n\r\nconst DaysLinks = (props) => (\r\n
    \r\n \r\n Select days\r\n \r\n \r\n \r\n \r\n
    \r\n {props.productGroupsList.map((productGroup) => (\r\n {productGroup.title}\r\n ))}\r\n
    \r\n
    \r\n);\r\n\r\nDaysLinks.propTypes = {\r\n productGroupsList: PropTypes.array\r\n};\r\n\r\nexport default DaysLinks;\r\n","import { Link } from 'react-router-dom';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default function BackLink(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n {props.children}\r\n \r\n );\r\n}\r\n\r\nBackLink.propTypes = {\r\n children: PropTypes.string,\r\n route: PropTypes.string.isRequired\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default function ButtonClear(props) {\r\n return (\r\n \r\n \r\n {props.children}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nButtonClear.propTypes = {\r\n children: PropTypes.string,\r\n onClick: PropTypes.func.isRequired\r\n};\r\n","/* eslint-disable no-nested-ternary */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { get } from 'lodash';\r\nimport CurrencyHelper, { CURRENCY_RATIO, currencyIsoCodes } from '../../../general/js/basket/currency-helper';\r\nimport gtm, { ecommerceEventTypes } from '../../../general/js/gtm';\r\nimport {\r\n PRODUCT_TAG_JUNIOR,\r\n PRODUCT_TAG_YOUTH,\r\n PRODUCT_TAG_SCORERS_PREMIUM,\r\n PRODUCT_TAG_ENGRAVERS,\r\n PRODUCT_TYPE_HOSPITALITY,\r\n MAX_SCORERS_PREMIUM_TICKETS_AVAILABLE,\r\n PRODUCT_TAG_SWING_BADGE_GUEST,\r\n PRODUCT_TAG_SWING_BADGE_ADDITIONAL_GUEST,\r\n PRODUCT_TAG_SWING_BADGE\r\n} from '../../../general/js/basket/constants';\r\nimport PopupLink from './popup-link';\r\n\r\nimport {\r\n ROUTE_PARKING_STANDALONE\r\n} from './constants';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\n\r\nexport default class SelectPanel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.isDecreaseButtonDisabled = true;\r\n this.isIncreaseButtonDisabled = false;\r\n this.quantityDelta = 1;\r\n }\r\n\r\n onSelectBtnClick(quantity, currentQuantity, maxQuantity, startQuantity) {\r\n let newQuantity = 0;\r\n const quantityModifierProp = get(this.props, 'quantityModifier', undefined);\r\n\r\n if (quantity === '') { quantity = 0; }\r\n\r\n if (this.props.product.type === PRODUCT_TYPE_HOSPITALITY) {\r\n const quantityModifier = hasValue(quantityModifierProp) && quantityModifierProp !== 0 ? quantityModifierProp : this.quantityDelta;\r\n const maxQuantityOnHospitality = Math.floor(maxQuantity / quantityModifier) * quantityModifier;\r\n\r\n if (quantity % quantityModifier > 0) {\r\n const roundedQuantity = Math.round(quantity / quantityModifier) * quantityModifier;\r\n newQuantity = roundedQuantity > maxQuantityOnHospitality ? maxQuantityOnHospitality : roundedQuantity;\r\n } else {\r\n newQuantity = quantity === currentQuantity ? 0 : (quantity < maxQuantity ? (quantity < startQuantity ? (quantity < currentQuantity ? 0 : startQuantity) : quantity) : maxQuantityOnHospitality);\r\n }\r\n } else {\r\n newQuantity = quantity === currentQuantity ? 0 : (quantity <= maxQuantity ? (quantity < startQuantity ? (quantity < currentQuantity ? 0 : startQuantity) : quantity) : maxQuantity);\r\n }\r\n\r\n const ecommerceEventState = {\r\n eventType: '',\r\n quantityDelta: 0,\r\n isValid: false,\r\n newQuantity,\r\n currentQuantity\r\n };\r\n\r\n this.handleEcommerceEvent(ecommerceEventState);\r\n\r\n if (window.location.href.includes(ROUTE_PARKING_STANDALONE)) {\r\n this.props.onApplyProductsQuantity(\r\n {\r\n id: this.props.product.id,\r\n type: this.props.product.type,\r\n tag: this.props.product.tag\r\n },\r\n newQuantity\r\n );\r\n } else {\r\n this.props.onApplyProductsQuantity(\r\n {\r\n type: this.props.product.type,\r\n tag: this.props.product.tag\r\n },\r\n newQuantity\r\n );\r\n }\r\n }\r\n\r\n handleEcommerceEvent(eventState) {\r\n if (!this.isIncreaseButtonDisabled && eventState.newQuantity > eventState.currentQuantity) {\r\n eventState.eventType = ecommerceEventTypes.ADD_TO_CART;\r\n eventState.quantityDelta = eventState.newQuantity - eventState.currentQuantity;\r\n eventState.isValid = true;\r\n } else if (!this.isDecreaseButtonDisabled && eventState.newQuantity < eventState.currentQuantity) {\r\n eventState.eventType = ecommerceEventTypes.REMOVE_FROM_CART;\r\n eventState.quantityDelta = eventState.currentQuantity - eventState.newQuantity;\r\n eventState.isValid = true;\r\n }\r\n\r\n if (eventState.isValid) {\r\n const productGroups = this.props.productGroupsList;\r\n\r\n if (productGroups.length && productGroups[0].products.length) {\r\n const productGroup = productGroups[0];\r\n const product = productGroup.products[0];\r\n const productPrice = product.price / CURRENCY_RATIO;\r\n\r\n gtm.pushEcommerceEvent(eventState.eventType, {\r\n currency: currencyIsoCodes.GBP,\r\n value: productPrice * eventState.quantityDelta,\r\n items: [\r\n {\r\n item_id: product.productId,\r\n item_name: `${product.tag} - ${productGroup.title}`,\r\n price: productPrice,\r\n quantity: eventState.quantityDelta,\r\n }\r\n ]\r\n });\r\n }\r\n }\r\n }\r\n\r\n handleChange = (e, startQuantity) => {\r\n this.onSelectBtnClick(+e.target.value, this.props.product.quantity, this.props.product.maxQuantity, startQuantity);\r\n }\r\n\r\n generateSummaryText() {\r\n const product = this.props.product;\r\n return `${CurrencyHelper.convertToPounds(product.price)}${product.priceLabel ? ` ${product.priceLabel}` : ''}`;\r\n }\r\n\r\n renderSummary() {\r\n if (this.props.product.price > 0) {\r\n return (\r\n
    {this.generateSummaryText()}
    );\r\n }\r\n\r\n return (
    FREE
    );\r\n }\r\n\r\n renderCopy() {\r\n if (this.props.product.tag === PRODUCT_TAG_JUNIOR) {\r\n return (\r\n
    \r\n {this.props.dictionary.juniorTicketsText} {this.props.dictionary.juniorTicketsLinkText}\r\n
    );\r\n }\r\n if (this.props.product.tag === PRODUCT_TAG_SWING_BADGE) {\r\n return (\r\n
    \r\n {this.props.dictionary.swingBadgeTicketsText} \r\n
    );\r\n }\r\n if (this.props.product.tag === PRODUCT_TAG_SWING_BADGE_GUEST) {\r\n return (\r\n
    \r\n {this.props.dictionary.swingBadgeGuestTicketsText} \r\n
    );\r\n }\r\n if (this.props.product.tag === PRODUCT_TAG_SWING_BADGE_ADDITIONAL_GUEST) {\r\n return (\r\n
    \r\n {this.props.dictionary.swingBadgeAdditionalGuestTicketsText} \r\n
    );\r\n }\r\n return null;\r\n }\r\n\r\n renderSelectButton(startQuantity) {\r\n let stateCCDecrease = '';\r\n let stateCC = '';\r\n const { quantityModifier } = this.props;\r\n\r\n if (this.props.product.type === PRODUCT_TYPE_HOSPITALITY) {\r\n this.quantityDelta = hasValue(quantityModifier) && quantityModifier !== 0 ? quantityModifier : this.quantityDelta;\r\n }\r\n\r\n if (this.props.product.quantity === 0) {\r\n stateCCDecrease += ' is-disabled';\r\n this.isDecreaseButtonDisabled = true;\r\n } else {\r\n this.isDecreaseButtonDisabled = false;\r\n }\r\n\r\n if (this.props.product.quantity >= this.props.product.maxQuantity || (this.props.product.quantity + this.quantityDelta) > this.props.product.maxQuantity) {\r\n stateCC += ' is-disabled';\r\n this.isIncreaseButtonDisabled = true;\r\n } else {\r\n this.isIncreaseButtonDisabled = false;\r\n }\r\n\r\n return (\r\n \r\n this.onSelectBtnClick(this.props.product.quantity - this.quantityDelta, this.props.product.quantity, this.props.product.maxQuantity, startQuantity)}\r\n disabled={this.props.product.isDisabled}\r\n aria-label={`${this.props.product.title} ticket, decrease quantity`}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n this.handleChange(e, startQuantity)}>\r\n \r\n this.onSelectBtnClick(this.props.product.quantity + this.quantityDelta, this.props.product.quantity, this.props.product.maxQuantity, startQuantity)}\r\n disabled={this.props.product.isDisabled}\r\n aria-label={`${this.props.product.title} ticket, increase quantity`}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n renderSelectButtons() {\r\n const buttonsNodes = [];\r\n let startQuantity = 1;\r\n //if there are less available tickets than the maximum tickets allow to buy once\r\n if (this.props.product.maxQuantity > this.props.product.maxAvailable) {\r\n this.props.product.maxQuantity = this.props.product.maxAvailable;\r\n }\r\n\r\n if (this.props.product.tag === PRODUCT_TAG_SWING_BADGE || this.props.product.tag === PRODUCT_TAG_SWING_BADGE_GUEST || this.props.product.tag === PRODUCT_TAG_SWING_BADGE_ADDITIONAL_GUEST) {\r\n buttonsNodes.push(this.renderSelectButton(startQuantity));\r\n return buttonsNodes;\r\n }\r\n\r\n if (this.props.product.tag === PRODUCT_TAG_SCORERS_PREMIUM) {\r\n startQuantity = MAX_SCORERS_PREMIUM_TICKETS_AVAILABLE;\r\n buttonsNodes.push(this.renderSelectButton(startQuantity));\r\n } else if (this.props.product.tag === PRODUCT_TAG_ENGRAVERS) {\r\n startQuantity = 2;\r\n\r\n buttonsNodes.push(this.renderSelectButton(startQuantity));\r\n } else {\r\n buttonsNodes.push(this.renderSelectButton(startQuantity));\r\n }\r\n\r\n return buttonsNodes;\r\n }\r\n\r\n render() {\r\n const product = this.props.product;\r\n const rootCssClass = this.props.rootCssClass || '';\r\n const rootCssModificator = this.props.product.tag === PRODUCT_TAG_YOUTH || this.props.product.tag === PRODUCT_TAG_SWING_BADGE_GUEST || this.props.product.tag === PRODUCT_TAG_SWING_BADGE_ADDITIONAL_GUEST ?\r\n 'select-panel--grey' : '';\r\n\r\n const isSelected = product.quantity && product.quantity > 0;\r\n const isSoldOut = !isSelected && product.isSoldOut;\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n

    \r\n {product.title}\r\n {\r\n product.bracketsText ?\r\n {product.bracketsText} : ''\r\n }\r\n

    \r\n {this.renderSummary()}\r\n
    \r\n {\r\n !isSoldOut ? \r\n {this.renderSelectButtons()}\r\n
    : null\r\n }\r\n \r\n {this.renderCopy()}\r\n \r\n );\r\n }\r\n}\r\n\r\nSelectPanel.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n product: PropTypes.object,\r\n productGroupsList: PropTypes.array,\r\n onApplyProductsQuantity: PropTypes.func,\r\n rootCssClass: PropTypes.string,\r\n currentScenario: PropTypes.string\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SelectPanel from '../select-panel';\r\n\r\nexport default function TicketsPanels(props) {\r\n return (\r\n
    \r\n {props.ticketsList.map((ticket) => (\r\n \r\n ))}\r\n
    \r\n );\r\n}\r\n\r\nTicketsPanels.defaultProps = {\r\n ticketsList: [],\r\n productGroupsList: []\r\n};\r\n\r\nTicketsPanels.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n ticketsList: PropTypes.array,\r\n productGroupsList: PropTypes.array,\r\n onApplyProductsQuantity: PropTypes.func.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport DaysLinks from '../days-links';\r\nimport BackLink from '../back-link';\r\nimport ButtonClear from '../button-clear';\r\nimport TicketsPanels from './tickets-panels';\r\nimport PopupLink from '../popup-link';\r\nimport { ROUTE_DAYS } from '../constants';\r\nimport PopupLinkInfo from '../popup-link-info';\r\nimport { domainConstants } from '../../../sso/components/utils/constants/domain-constants';\r\nimport { hasValue } from '../../../../general/js/general-helpers';\r\n\r\nexport default class SelectTicketsFormStandard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.formHeading = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n this.formHeading.current.focus();\r\n }\r\n\r\n render() {\r\n const isWomensOpen = (window.location.hostname).toLowerCase();\r\n return (\r\n
    \r\n

    {this.props.dictionary.standardTicketsTitle}

    \r\n \r\n
    \r\n

    {this.props.dictionary.selectTicketsSubtitle}

    \r\n {\r\n hasValue(this.props.dictionary.ticketsInformationLinkUrl) &&\r\n hasValue(this.props.dictionary.ticketsInformationLinkText) &&\r\n {this.props.dictionary.ticketsInformationLinkText}\r\n }\r\n
    \r\n {isWomensOpen.includes((domainConstants.womensOpen).toLocaleLowerCase()) &&\r\n
    {this.props.dictionary.ticketExtraInformation}
    }\r\n \r\n
    \r\n Clear Selection\r\n
    \r\n {this.props.dictionary.selectStandardTicketsText} \r\n {\r\n hasValue(this.props.dictionary.selectStandardTicketsLinkUrl) &&\r\n hasValue(this.props.dictionary.selectStandardTicketsLinkText) &&\r\n {this.props.dictionary.selectStandardTicketsLinkText}\r\n }\r\n
    \r\n
    \r\n {this.props.dictionary.editDaysTitle}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectTicketsFormStandard.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n productGroupsList: PropTypes.array,\r\n ticketsList: PropTypes.array,\r\n onApplyProductsQuantity: PropTypes.func,\r\n onClearSelection: PropTypes.func,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport DaysLinks from '../days-links';\r\nimport BackLink from '../back-link';\r\nimport TicketsPanels from './tickets-panels';\r\nimport PopupLink from '../popup-link';\r\nimport { ROUTE_DAYS } from '../constants';\r\nimport PopupLinkInfo from '../popup-link-info';\r\nimport { hasValue } from '../../../../general/js/general-helpers';\r\n\r\nexport default class SelectTicketsFormHospitality extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.formHeading = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n this.formHeading.current.focus();\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n

    {this.props.categoriesList[0].title}

    \r\n \r\n
    \r\n

    {this.props.dictionary.selectTicketsSubtitle}

    \r\n {\r\n hasValue(this.props.dictionary.ticketsInformationLinkUrl) &&\r\n hasValue(this.props.dictionary.ticketsInformationLinkText) &&\r\n {this.props.dictionary.ticketsInformationLinkText}\r\n }\r\n
    \r\n \r\n
    \r\n
    \r\n {this.props.dictionary.selectHospitalityTicketsText} \r\n {\r\n hasValue(this.props.dictionary.selectHospitalityTicketsLinkUrl) &&\r\n hasValue(this.props.dictionary.selectHospitalityTicketsLinkText) &&\r\n {this.props.dictionary.selectHospitalityTicketsLinkText}\r\n }\r\n
    \r\n
    \r\n Back\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectTicketsFormHospitality.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n categoriesList: PropTypes.array,\r\n productGroupsList: PropTypes.array,\r\n ticketsList: PropTypes.array,\r\n onApplyProductsQuantity: PropTypes.func,\r\n onClearSelection: PropTypes.func,\r\n};\r\n","import ObjectHelper from 'foundation/object-helper';\r\nimport ValidationHelper from '../../../general/js/basket/validation-helper';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\n\r\nfunction getLatestAddedTickets(basketGroups, selectedGroups) {\r\n const latestAddedTickets = [];\r\n selectedGroups.forEach((element) => {\r\n const item = element;\r\n const itemId = item.id;\r\n const basketElement = basketGroups[itemId];\r\n\r\n if (basketElement === undefined) {\r\n latestAddedTickets.push(element);\r\n }\r\n });\r\n\r\n return latestAddedTickets;\r\n}\r\n\r\nfunction getTicketItemBasedOnQueryParam(selectedGroups) {\r\n const search = window.location.search;\r\n const params = new URLSearchParams(search);\r\n const ticketId = params.get('g');\r\n\r\n if (ticketId !== null) {\r\n const foundTicket = selectedGroups.find(({ id }) => id.toLowerCase() === ticketId.toLowerCase());\r\n if (hasValue(foundTicket))\r\n {\r\n return foundTicket;\r\n }\r\n }\r\n\r\n return selectedGroups[0];\r\n}\r\n\r\nexport default class ProductsHelper {\r\n static getProductsList(selectedGroups, basketGroups, filterFunction) {\r\n if (selectedGroups.length === 0) {\r\n return [];\r\n }\r\n const latestAddedTickets = getLatestAddedTickets(basketGroups, selectedGroups);\r\n\r\n const firstSelectedProductGroup = latestAddedTickets[0] !== undefined ?\r\n latestAddedTickets[0] :\r\n getTicketItemBasedOnQueryParam(selectedGroups);\r\n\r\n if (!firstSelectedProductGroup.products) return [];\r\n\r\n const productList = ObjectHelper.clone(firstSelectedProductGroup.products.filter((product) =>\r\n filterFunction(product)));\r\n\r\n productList.forEach((product) => {\r\n // set quantity from basket product group\r\n product.quantity = 0;\r\n\r\n if (firstSelectedProductGroup.id in basketGroups) {\r\n const basketProductGroup = basketGroups[firstSelectedProductGroup.id];\r\n basketProductGroup.products.forEach((basketProduct) => {\r\n if (basketProduct.type === product.type &&\r\n basketProduct.tag === product.tag\r\n ) {\r\n product.quantity = basketProduct.quantity;\r\n }\r\n });\r\n }\r\n });\r\n\r\n return ValidationHelper.getPreparedProductsList(productList);\r\n }\r\n\r\n static getStandaloneProductsList(selectedGroups, basketGroups, filterFunction) {\r\n if (selectedGroups.length === 0) {\r\n return [];\r\n }\r\n\r\n var productList = [];\r\n var i = 0;\r\n\r\n selectedGroups.forEach((selectedGroup) => {\r\n const productListSelectedGroup = ObjectHelper.clone(selectedGroup.products.filter((product) =>\r\n filterFunction(product)));\r\n\r\n productListSelectedGroup.forEach((product) => {\r\n // set quantity from basket product group\r\n product.quantity = 0;\r\n if (selectedGroup.id in basketGroups) {\r\n const basketProductGroup = basketGroups[selectedGroup.id];\r\n basketProductGroup.products.forEach((basketProduct) => {\r\n \r\n \r\n if (basketProduct.type === product.type &&\r\n basketProduct.tag === product.tag\r\n ) {\r\n \r\n product.quantity = basketProduct.quantity;\r\n }\r\n });\r\n }\r\n \r\n productList[i] = product;\r\n i++;\r\n });\r\n });\r\n\r\n return ValidationHelper.getPreparedProductsList(productList);\r\n }\r\n\r\n // eslint-disable-next-line consistent-return\r\n\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default function CheckoutButton(props) {\r\n const stateCss = props.isDisabled ? 'is-disabled' : '';\r\n\r\n return (\r\n props.onStartCheckout(props.mc)}\r\n ref={props.checkoutBtnRef}\r\n disabled={props.isDisabled}\r\n id=\"basketPay\"\r\n >\r\n \r\n Pay{props.mc ? ' with Mastercard' : ''}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nCheckoutButton.defaultProps = {\r\n mc: false,\r\n};\r\n\r\nCheckoutButton.propTypes = {\r\n mc: PropTypes.bool,\r\n checkoutBtnRef: PropTypes.func,\r\n isDisabled: PropTypes.bool,\r\n onStartCheckout: PropTypes.func.isRequired\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport { ROUTE_TICKETS } from '../constants';\r\nimport TicketBuilderAside from '../ticket-builder-aside';\r\nimport CheckoutButton from '../checkout-button';\r\nimport { hasValue } from '../../../../general/js/general-helpers';\r\n\r\nexport default class SelectTicketsAside extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onClickContinue = this.onClickContinue.bind(this);\r\n }\r\n\r\n onClickContinue(e, onContinue) {\r\n if (!this.props.isNextStepAvailable) {\r\n e.preventDefault();\r\n }\r\n\r\n onContinue('Continue', ROUTE_TICKETS);\r\n }\r\n\r\n onCheckout(mc, onContinue) {\r\n this.props.onStartCheckout(mc);\r\n this.triggerContinue(onContinue, mc ? 'Pay with Mastercard' : 'Pay');\r\n }\r\n\r\n triggerContinue(onContinue, actionCaption) {\r\n onContinue(actionCaption, ROUTE_TICKETS);\r\n }\r\n\r\n renderNextStepPanel(onContinue) {\r\n const stateCss = this.props.isNextStepAvailable && this.props.isReadyToPay ? '' : 'is-disabled';\r\n const inlineStyle = hasValue(stateCss) ? { pointerEvents: \"none\" } : {};\r\n\r\n return (\r\n
    \r\n this.onClickContinue(e, onContinue)}\r\n style={inlineStyle}\r\n >\r\n Continue\r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n renderCheckoutPanel(onContinue) {\r\n return (\r\n
    \r\n this.onCheckout(mc, onContinue)}\r\n isDisabled={!this.props.isReadyToPay}\r\n />\r\n
    \r\n We are experiencing high volumes of traffic at the minute. Please try again.\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n renderPanel(onContinue) {\r\n if (this.props.isNextStepAvailable) {\r\n return this.renderNextStepPanel(onContinue);\r\n }\r\n\r\n return this.renderCheckoutPanel(onContinue);\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n this.renderPanel(onContinue)}\r\n basketUrl={this.props.basketUrl} />\r\n );\r\n }\r\n}\r\n\r\nSelectTicketsAside.propTypes = {\r\n productGroupsList: PropTypes.array,\r\n basket: PropTypes.object,\r\n onToggleBasketMobile: PropTypes.func,\r\n onStartCheckout: PropTypes.func.isRequired,\r\n nextRoute: PropTypes.string.isRequired,\r\n currentScenario: PropTypes.string.isRequired,\r\n isNextStepAvailable: PropTypes.bool.isRequired,\r\n isReadyToPay: PropTypes.bool.isRequired\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SelectTicketsFormStandard from './select-tickets/select-tickets-standard';\r\nimport SelectTicketsFormHospitality from './select-tickets/select-tickets-hospitality';\r\nimport {\r\n PRODUCT_TYPE_HOSPITALITY,\r\n PRODUCT_TYPE_TICKET,\r\n PRODUCT_TYPE_PARKING\r\n} from '../../../general/js/basket/constants';\r\nimport ProductsHelper from './products-helper';\r\nimport SelectTicketsAside from './select-tickets/select-tickets-aside';\r\nimport {\r\n ROUTE_EXTRAS,\r\n ROUTE_PARKING,\r\n ROUTE_PARKING_STANDALONE,\r\n SCENARIO_HOSPITALITY,\r\n SCENARIO_HOSPITALITY_WITH_EXTRAS,\r\n SCENARIO_STANDARD_WITH_EXTRAS,\r\n SCENARIO_STANDARD\r\n} from './constants';\r\n\r\nclass SelectTicketsPage extends React.Component {\r\n getNextRoute() {\r\n let nextRoute = ROUTE_PARKING;\r\n\r\n if (this.props.isParkingStandaloneConfiguration){\r\n nextRoute = ROUTE_PARKING_STANDALONE;\r\n }\r\n\r\n if (this.isHospitality() || this.isStandardWithExtras()) {\r\n nextRoute = ROUTE_EXTRAS;\r\n }\r\n\r\n return nextRoute;\r\n }\r\n\r\n isHospitality() {\r\n return this.props.currentScenario === SCENARIO_HOSPITALITY ||\r\n this.props.currentScenario === SCENARIO_HOSPITALITY_WITH_EXTRAS;\r\n }\r\n\r\n isStandardWithExtras() {\r\n return this.props.currentScenario === SCENARIO_STANDARD_WITH_EXTRAS;\r\n }\r\n\r\n onClearTicketsSelection() {\r\n const paramsList = this.props.ticketsList.map((ticket) =>\r\n Object.assign({}, {\r\n type: ticket.type,\r\n tag: ticket.tag\r\n }));\r\n\r\n this.props.onClearSelection(paramsList);\r\n }\r\n\r\n isNextStepAvailable() {\r\n if (this.props.currentScenario == SCENARIO_STANDARD_WITH_EXTRAS)\r\n {\r\n if (this.hasSelectedTickets())\r\n return true;\r\n return false;\r\n }\r\n\r\n if(this.props.currentScenario == SCENARIO_STANDARD)\r\n {\r\n return this.hasParkingTickets();\r\n } \r\n\r\n return this.props.currentScenario !== SCENARIO_HOSPITALITY;\r\n }\r\n\r\n hasSelectedTickets() {\r\n return this.props.ticketsList.some((ticket) => ticket.quantity > 0);\r\n }\r\n\r\n hasParkingTickets(){\r\n return ProductsHelper.getProductsList(\r\n this.props.productGroupsList,\r\n this.props.basket.productGroups,\r\n (product) => product.type === PRODUCT_TYPE_PARKING\r\n ).length > 0;\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
    \r\n {\r\n this.isHospitality() ?\r\n\r\n this.onClearTicketsSelection()}\r\n quantityModifier={this.props.quantityModifier}/> :\r\n\r\n this.onClearTicketsSelection()}/>\r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectTicketsPage.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n basket: PropTypes.object,\r\n productGroupsList: PropTypes.array,\r\n categoriesList: PropTypes.array,\r\n ticketsList: PropTypes.array,\r\n currentScenario: PropTypes.string.isRequired,\r\n onStartCheckout: PropTypes.func.isRequired,\r\n onApplyProductsQuantity: PropTypes.func,\r\n onClearSelection: PropTypes.func,\r\n onToggleBasketMobile: PropTypes.func,\r\n isParkingStandaloneConfiguration: PropTypes.bool\r\n};\r\n\r\nexport default function TicketListProvider(props) {\r\n const ticketsList = ProductsHelper.getProductsList(\r\n props.productGroupsList,\r\n props.basket.productGroups,\r\n (product) => product.type === PRODUCT_TYPE_TICKET || product.type === PRODUCT_TYPE_HOSPITALITY\r\n );\r\n\r\n return (\r\n \r\n );\r\n}","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport CurrencyHelper, { currencyIsoCodes } from '../../../general/js/basket/currency-helper';\r\nimport CheckboxPanel from './checkbox-panel';\r\nimport { PRODUCT_TAG_EXTRAS } from '../../../general/js/basket/constants';\r\nimport { PRODUCT_TAG_TICKET_PLUS_EXTRA } from '../../../general/js/basket/constants';\r\nimport gtm, { ecommerceEventTypes } from '../../../general/js/gtm';\r\n\r\n\r\nexport default class ExtraPanel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.rootRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n ComponentsFactory.getInstance().init(this.rootRef.current);\r\n }\r\n\r\n componentWillUnmount() {\r\n ComponentsFactory.getInstance().destroy(this.rootRef.current);\r\n }\r\n\r\n onProductGroupClick({ product, productGroup }, wasSelected) {\r\n this.props.onSelectExtraProduct(product, productGroup, !wasSelected);\r\n\r\n const eventType = !wasSelected ? ecommerceEventTypes.ADD_TO_CART : ecommerceEventTypes.REMOVE_FROM_CART;\r\n\r\n gtm.pushEcommerceEvent(eventType, {\r\n currency: currencyIsoCodes.GBP,\r\n value: product.price,\r\n items: [\r\n {\r\n item_id: product.productId,\r\n item_name: `${product.tag} - ${productGroup.title}`,\r\n price: product.price,\r\n quantity: 1\r\n }\r\n ]\r\n });\r\n }\r\n\r\n renderProductGroups() {\r\n return this.props.extraGroup.items.map((extraItem) => {\r\n const { product, productGroup } = extraItem;\r\n const basketProductGroups = this.props.basket.productGroups;\r\n let isSelected = false;\r\n if (productGroup.id in basketProductGroups) {\r\n const basketProduct = basketProductGroups[productGroup.id].products.find((basketProduct) =>\r\n basketProduct.id === product.id);\r\n if (basketProduct) {\r\n isSelected = true;\r\n }\r\n }\r\n\r\n return
    \r\n this.onProductGroupClick(extraItem, isSelected)}/>\r\n
    ;\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n

    {this.props.extraGroup.title}

    \r\n
    \r\n  \r\n {this.props.extraGroup.linkText ? {this.props.extraGroup.linkText} : ''}\r\n
    \r\n
    \r\n {this.renderProductGroups()}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n getProductSummaryText(product) {\r\n let unitText;\r\n\r\n switch (product.tag) {\r\n case PRODUCT_TAG_EXTRAS:\r\n unitText = 'seat';\r\n break;\r\n case PRODUCT_TAG_TICKET_PLUS_EXTRA:\r\n unitText = product.priceLabel;\r\n break;\r\n default:\r\n unitText = null;\r\n }\r\n\r\n if (unitText) {\r\n return `${CurrencyHelper.convertToPounds(product.price)} per ${unitText}`;\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n\r\nExtraPanel.propTypes = {\r\n basket: PropTypes.object,\r\n extraGroup: PropTypes.object,\r\n rootCssClass: PropTypes.string,\r\n onSelectExtraProduct: PropTypes.func,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ObjectHelper from 'foundation/object-helper';\r\nimport BackLink from './back-link';\r\nimport ExtraPanel from './extra-panel';\r\nimport SelectPanel from './select-panel';\r\nimport {\r\n PRODUCT_TYPE_PARKING,\r\n PRODUCT_TYPE_EXTRAS,\r\n PRODUCT_TAG_TICKET_PLUS_EXTRA,\r\n MAX_HOSPITALITY_TICKET_PLUS_EXTRA\r\n} from '../../../general/js/basket/constants';\r\nimport {\r\n hasValue\r\n} from '../../../general/js/general-helpers';\r\nimport ValidationHelper from '../../../general/js/basket/validation-helper';\r\nimport { ROUTE_TICKETS, SCENARIO_STANDARD_WITH_EXTRAS } from './constants';\r\n\r\nexport default class SelectExtrasForm extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.onSelectExtraProduct = this.onSelectExtraProduct.bind(this);\r\n }\r\n\r\n onSelectExtraProduct(product, productGroup, isChecked) {\r\n if (!isChecked) {\r\n // remove from basket\r\n this.props.onUpdateProductQuantity(product, productGroup, 0);\r\n } else {\r\n let quantity = 1;\r\n\r\n // finding main product of selected product group\r\n const mainProduct = productGroup.products.find((p) => p.type === this.props.currentProductType);\r\n\r\n // trying to find it in basket\r\n if (productGroup.id in this.props.basket.productGroups) {\r\n const mainProductInBasket = this.props.basket.productGroups[productGroup.id].products.find((basketProduct) => basketProduct.id === mainProduct.id);\r\n if (mainProductInBasket) {\r\n quantity = this.setExtraProductQuantity(product, mainProductInBasket, quantity);\r\n }\r\n }\r\n\r\n this.props.onUpdateProductQuantity(product, productGroup, quantity);\r\n }\r\n }\r\n\r\n setExtraProductQuantity = (product = null, mainProductInBasket = null, quantity = 0) => {\r\n if (!hasValue(product) || !hasValue(mainProductInBasket)) {\r\n return 0;\r\n }\r\n\r\n switch (product.tag) {\r\n case PRODUCT_TAG_TICKET_PLUS_EXTRA:\r\n quantity = mainProductInBasket.quantity > MAX_HOSPITALITY_TICKET_PLUS_EXTRA ? MAX_HOSPITALITY_TICKET_PLUS_EXTRA : mainProductInBasket.quantity;\r\n break;\r\n default:\r\n quantity = mainProductInBasket.quantity;\r\n }\r\n\r\n return quantity;\r\n }\r\n\r\n getGroupedExtrasList() {\r\n const extrasById = this.props.productGroupsList.reduce((result, productGroup) => {\r\n const extras = productGroup.products.filter((product) => product.type === PRODUCT_TYPE_EXTRAS);\r\n extras.forEach((extrasProduct) => {\r\n if (!(extrasProduct.tag in result)) {\r\n result[extrasProduct.tag] = {};\r\n }\r\n\r\n if (!(extrasProduct.id in result[extrasProduct.tag])) {\r\n result[extrasProduct.tag][extrasProduct.id] = {\r\n product: { ...extrasProduct },\r\n productGroup\r\n };\r\n }\r\n });\r\n\r\n return result;\r\n }, {});\r\n\r\n const extrasList = Object.keys(extrasById).map((key) => {\r\n const extraGroup = extrasById[key];\r\n const items = Object.keys(extraGroup).map((productKey) => extraGroup[productKey]);\r\n const title = items[0].product.tag === PRODUCT_TAG_TICKET_PLUS_EXTRA ? '' : items[0].product.title;\r\n\r\n return {\r\n id: key,\r\n title: title,\r\n items\r\n };\r\n });\r\n\r\n const { grandstandText } = this.getDictionaryFromProps();\r\n\r\n if (extrasList.length > 0) {\r\n extrasList[0].description = this.parseDictionaryItem(grandstandText);\r\n }\r\n\r\n return extrasList;\r\n }\r\n\r\n getParkingList() {\r\n const productGroupsList = this.props.productGroupsList;\r\n\r\n if (!productGroupsList.length || !productGroupsList[0].products) return [];\r\n\r\n const parkingProductsList = ObjectHelper.clone(productGroupsList[0].products.filter((product) =>\r\n product.type === PRODUCT_TYPE_PARKING));\r\n\r\n // HAS BEEN CHANGED\r\n // find product groups that are selected for current way\r\n const currentProductGroupsIds = productGroupsList.map((productGroup) => productGroup.id);\r\n const currentBasketProductGroups = Object.values(this.props.basket.productGroups).filter((basketProductGroup) => currentProductGroupsIds.indexOf(basketProductGroup.id) !== -1);\r\n\r\n parkingProductsList.forEach((parking) => {\r\n // fill the information about quantity based on currentBasketProductGroups\r\n currentBasketProductGroups.forEach((basketProductGroup) => {\r\n basketProductGroup.products.forEach((basketProduct) => {\r\n if (basketProduct.type === parking.type &&\r\n basketProduct.tag === parking.tag\r\n ) {\r\n parking.quantity = basketProduct.quantity;\r\n }\r\n });\r\n });\r\n });\r\n\r\n return ValidationHelper.getPreparedProductsList(parkingProductsList);\r\n }\r\n\r\n getTicketsList() {\r\n const productGroupsList = this.props.productGroupsList;\r\n\r\n if (!productGroupsList.length || !productGroupsList[0].products) return [];\r\n\r\n const ticketProductsList = ObjectHelper.clone(productGroupsList[0].products.filter((product) =>\r\n product.type === PRODUCT_TYPE_EXTRAS));\r\n\r\n // HAS BEEN CHANGED\r\n // find product groups that are selected for current way\r\n const currentProductGroupsIds = productGroupsList.map((productGroup) => productGroup.id);\r\n const currentBasketProductGroups = Object.values(this.props.basket.productGroups).filter((basketProductGroup) => currentProductGroupsIds.indexOf(basketProductGroup.id) !== -1);\r\n\r\n ticketProductsList.forEach((ticket) => {\r\n // fill the information about quantity based on currentBasketProductGroups\r\n currentBasketProductGroups.forEach((basketProductGroup) => {\r\n basketProductGroup.products.forEach((basketProduct) => {\r\n if (basketProduct.type === ticket.type &&\r\n basketProduct.tag === ticket.tag\r\n ) {\r\n ticket.quantity = basketProduct.quantity;\r\n }\r\n });\r\n });\r\n });\r\n\r\n return ValidationHelper.getPreparedProductsList(ticketProductsList);\r\n }\r\n\r\n renderExtrasPanels() {\r\n const extraGroupsList = this.getGroupedExtrasList();\r\n\r\n return extraGroupsList.map((extraGroup) => (\r\n \r\n ));\r\n }\r\n\r\n renderCarsPanels() {\r\n const parkingList = this.getParkingList();\r\n\r\n return parkingList.map((parking) => (\r\n \r\n ));\r\n }\r\n\r\n renderTicketsPanel() {\r\n const ticketsList = this.getTicketsList();\r\n\r\n return ticketsList.map((ticket) => (\r\n \r\n ));\r\n }\r\n\r\n parseDictionaryItem(item = '') {\r\n if (!hasValue(item)) {\r\n return item;\r\n }\r\n\r\n if (item.includes('TicketBuilder_')) {\r\n return '';\r\n }\r\n\r\n return item;\r\n }\r\n\r\n getDictionaryFromProps() {\r\n const { dictionary } = this.props;\r\n\r\n if (!hasValue(dictionary)) {\r\n return {\r\n addExtrasSubtitle: '',\r\n addExtrasTitle: '',\r\n extrasParkingText: '',\r\n grandstandText: '',\r\n privateTableTitle: '',\r\n privateTableText: '',\r\n privateTableLinkText: '',\r\n privateTableLinkUrl: '',\r\n };\r\n }\r\n\r\n return dictionary;\r\n }\r\n\r\n render() {\r\n const { addExtrasSubtitle, addExtrasTitle } = this.getDictionaryFromProps();\r\n\r\n return (\r\n
    \r\n
    \r\n

    {this.parseDictionaryItem(addExtrasSubtitle)}

    \r\n
    \r\n {this.parseDictionaryItem(addExtrasTitle)}\r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n this.props.currentScenario === SCENARIO_STANDARD_WITH_EXTRAS ?\r\n this.renderTicketsPanel() :\r\n this.renderExtrasPanels()\r\n }\r\n
    \r\n
    \r\n
    \r\n Back\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectExtrasForm.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n basket: PropTypes.object,\r\n productGroupsList: PropTypes.array,\r\n productsList: PropTypes.array,\r\n currentProductType: PropTypes.string.isRequired,\r\n onApplyProductsQuantity: PropTypes.func,\r\n onUpdateProductQuantity: PropTypes.func,\r\n currentScenario: PropTypes.string.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport { ROUTE_TICKETS } from './constants';\r\nimport TicketBuilderAside from './ticket-builder-aside';\r\nimport CheckoutButton from './checkout-button';\r\n\r\nexport default class SelectExtrasAside extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onClickContinue = this.onClickContinue.bind(this);\r\n }\r\n\r\n onClickContinue(e, onContinue) {\r\n if (!this.props.isNextStepAvailable) {\r\n e.preventDefault();\r\n }\r\n\r\n onContinue('Continue', ROUTE_TICKETS);\r\n }\r\n\r\n onCheckout(mc, onContinue) {\r\n this.props.onStartCheckout(mc);\r\n this.triggerContinue(onContinue, mc ? 'Pay with Mastercard' : 'Pay');\r\n }\r\n\r\n triggerContinue(onContinue, actionCaption) {\r\n onContinue(actionCaption, ROUTE_TICKETS);\r\n }\r\n\r\n renderNextStepPanel(onContinue) {\r\n const stateCss = this.props.isNextStepAvailable ? '' : 'is-disabled';\r\n return (\r\n
    \r\n this.onClickContinue(e, onContinue)}\r\n >\r\n Continue\r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n renderCheckoutPanel(onContinue) {\r\n return (\r\n
    \r\n this.onCheckout(mc, onContinue)}\r\n isDisabled={!this.props.isReadyToPay}\r\n />\r\n
    \r\n We are experiencing high volumes of traffic at the minute. Please try again.\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n renderPanel(onContinue) {\r\n if (this.props.isNextStepAvailable) {\r\n return this.renderNextStepPanel(onContinue);\r\n }\r\n\r\n return this.renderCheckoutPanel(onContinue);\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n this.renderPanel(onContinue)}\r\n basketUrl={this.props.basketUrl} />\r\n );\r\n }\r\n}\r\n\r\nSelectExtrasAside.propTypes = {\r\n productGroupsList: PropTypes.array,\r\n basket: PropTypes.object,\r\n onToggleBasketMobile: PropTypes.func,\r\n onStartCheckout: PropTypes.func.isRequired,\r\n nextRoute: PropTypes.string.isRequired,\r\n currentScenario: PropTypes.string.isRequired,\r\n isNextStepAvailable: PropTypes.bool.isRequired,\r\n isReadyToPay: PropTypes.bool.isRequired\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SelectExtrasForm from './select-extras-form';\r\nimport { SCENARIO_STANDARD_WITH_EXTRAS, ROUTE_TICKETS, ROUTE_PARKING, ROUTE_PARKING_STANDALONE } from './constants';\r\nimport SelectExtrasAside from './select-extras-aside';\r\n\r\nexport default class SelectExtrasPage extends React.Component {\r\n\r\n getNextRoute() {\r\n let nextRoute = ROUTE_TICKETS;\r\n\r\n if(this.props.isParkingStandaloneConfiguration){\r\n nextRoute = ROUTE_PARKING_STANDALONE;\r\n }\r\n\r\n if (this.props.currentScenario === SCENARIO_STANDARD_WITH_EXTRAS) {\r\n nextRoute = ROUTE_PARKING;\r\n }\r\n return nextRoute;\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectExtrasPage.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n basket: PropTypes.object,\r\n productGroupsList: PropTypes.array,\r\n categoriesList: PropTypes.array,\r\n currentProductType: PropTypes.string.isRequired,\r\n onApplyProductsQuantity: PropTypes.func,\r\n onUpdateProductQuantity: PropTypes.func,\r\n onClearSelection: PropTypes.func,\r\n onToggleBasketMobile: PropTypes.func,\r\n onStartCheckout: PropTypes.func,\r\n currentScenario: PropTypes.string.isRequired,\r\n isParkingStandaloneConfiguration: PropTypes.bool\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport AccordionComponent from 'Feature/ContentComponents/code/assets/componets/accordion';\r\n\r\nexport default class Accordion extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.accordion = null;\r\n this.accordionRef = React.createRef();\r\n this.state = {\r\n isOpened: false\r\n };\r\n\r\n this.onAccordionStateChange = this.onAccordionStateChange.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (this.accordionRef.current) {\r\n this.accordion = new AccordionComponent(this.accordionRef.current, 'accordion');\r\n this.accordion.onChange(this.onAccordionStateChange);\r\n }\r\n }\r\n\r\n onAccordionStateChange(isOpened) {\r\n this.setState({ isOpened });\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.accordion) {\r\n this.accordion.destroy();\r\n this.accordion = null;\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n {(this.state.isOpened && this.props.triggerOpenedText) ?\r\n this.props.triggerOpenedText :\r\n this.props.triggerText}\r\n \r\n {this.state.isOpened ?\r\n :\r\n \r\n }\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {this.props.children}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nAccordion.propTypes = {\r\n triggerText: PropTypes.string.isRequired,\r\n triggerOpenedText: PropTypes.string,\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ])\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Accordion from './accordion';\r\nimport DaysLinks from './days-links';\r\nimport SelectPanel from './select-panel';\r\nimport { PRODUCT_TAG_CAR } from '../../../general/js/basket/constants';\r\nimport BackLink from './back-link';\r\nimport PopupLinkInfo from './popup-link-info';\r\nimport ButtonClear from './button-clear';\r\nimport {\r\n ROUTE_DAYS, ROUTE_TICKETS, SCENARIO_PARKING,\r\n ROUTE_EXTRAS, SCENARIO_STANDARD_WITH_EXTRAS\r\n} from './constants';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\n\r\nexport default class SelectParkingForm extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.formHeading = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n this.formHeading.current.focus();\r\n }\r\n\r\n getPrevRoute() {\r\n let prevRoute = ROUTE_TICKETS;\r\n\r\n if (this.props.currentScenario === SCENARIO_PARKING) {\r\n prevRoute = ROUTE_DAYS;\r\n }\r\n\r\n if (this.props.currentScenario === SCENARIO_STANDARD_WITH_EXTRAS) {\r\n prevRoute = ROUTE_EXTRAS;\r\n }\r\n\r\n return prevRoute;\r\n }\r\n\r\n renderCarPanel() {\r\n const parkingList = this.props.parkingList;\r\n\r\n if (!parkingList || !parkingList.length) return null;\r\n\r\n const carParking = parkingList.filter((parkingProduct) =>\r\n parkingProduct.tag === PRODUCT_TAG_CAR)[0];\r\n\r\n if (!carParking) return null;\r\n\r\n return ;\r\n }\r\n\r\n renderCarPanels(parkingList) {\r\n if (!Array.isArray(parkingList) || !parkingList.length) return null;\r\n\r\n return parkingList.map((parking) => (\r\n \r\n ));\r\n }\r\n\r\n renderAccordion() {\r\n const parkingList = this.props.parkingList;\r\n\r\n const filteredParkingList = parkingList.filter((parkingProduct) =>\r\n parkingProduct.tag !== PRODUCT_TAG_CAR);\r\n\r\n if (!filteredParkingList.length) return null;\r\n\r\n return (\r\n \r\n {this.renderCarPanels(filteredParkingList)}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n

    {this.props.dictionary.parkingStepTitle}

    \r\n \r\n
    \r\n

    Number of vehicles

    \r\n {\r\n hasValue(this.props.dictionary.parkingInformationLinkUrl) &&\r\n hasValue(this.props.dictionary.parkingInformationLinkText) &&\r\n {this.props.dictionary.parkingInformationLinkText}\r\n }\r\n
    \r\n
    \r\n {this.renderCarPanel()}\r\n
    \r\n
    \r\n Clear Selection\r\n
    \r\n {this.props.dictionary.ParkingText}\r\n
    \r\n {this.renderAccordion()}\r\n
    \r\n Back\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectParkingForm.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n parkingList: PropTypes.array,\r\n productGroupsList: PropTypes.array,\r\n currentScenario: PropTypes.string.isRequired,\r\n onApplyProductsQuantity: PropTypes.func,\r\n onClearSelection: PropTypes.func\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SelectParkingForm from './select-parking-form';\r\nimport { PRODUCT_TYPE_PARKING } from '../../../general/js/basket/constants';\r\nimport ProductsHelper from './products-helper';\r\nimport TicketBuilderAside from './ticket-builder-aside';\r\nimport CheckoutButton from './checkout-button';\r\nimport { ROUTE_PARKING } from './constants';\r\nimport BasketDialogBoxContentBody from '../../../general/js/basket/basket-dialog-box-content-body';\r\nimport ConfirmationModal from '../../sso/components/common/utility/ConfirmationModal';\r\n\r\nexport default class SelectParkingPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isReadyToPay: this.getParkingList().some((parking) => parking.quantity > 0),\r\n focusCheckout: false,\r\n showModal: false\r\n };\r\n\r\n this.onSelectParkingQuantity = this.onSelectParkingQuantity.bind(this);\r\n this.toggleConfirmationModal = this.toggleConfirmationModal.bind(this);\r\n this.toggleCloseModal = this.toggleCloseModal.bind(this);\r\n }\r\n\r\n toggleConfirmationModal() {\r\n this.props.showDialogBox ? this.setState({ showModal: true }) : this.setState({ showModal: false });\r\n }\r\n\r\n onConfirmationModal(mc, onContinue) {\r\n this.toggleConfirmationModal();\r\n\r\n if (!this.props.showDialogBox)\r\n this.onCheckout(mc, onContinue)\r\n }\r\n\r\n toggleCloseModal() {\r\n this.setState({ showModal: false });\r\n }\r\n\r\n onCheckout(mc, onContinue) {\r\n this.props.onStartCheckout(mc);\r\n this.triggerContinue(onContinue, mc ? 'Pay with Mastercard' : 'Pay');\r\n }\r\n\r\n onClearParkingSelection() {\r\n const parkingList = this.getParkingList();\r\n const paramsList = parkingList.map((parking) =>\r\n Object.assign({}, {\r\n type: parking.type,\r\n tag: parking.tag\r\n }));\r\n\r\n this.props.onClearSelection(paramsList);\r\n }\r\n\r\n triggerContinue(onContinue, actionCaption) {\r\n onContinue(actionCaption, ROUTE_PARKING);\r\n }\r\n\r\n onRejectParkingClick(onContinue) {\r\n this.triggerContinue(onContinue, 'I don\\'t need parking');\r\n this.onClearParkingSelection();\r\n this.setState({ isReadyToPay: true, focusCheckout: true });\r\n }\r\n\r\n onSelectParkingQuantity(...args) {\r\n this.props.onApplyProductsQuantity(...args);\r\n this.setState({ isReadyToPay: true, focusCheckout: false });\r\n }\r\n\r\n getParkingList() {\r\n return ProductsHelper.getProductsList(\r\n this.props.productGroupsList,\r\n this.props.basket.productGroups,\r\n (product) => product.type === PRODUCT_TYPE_PARKING\r\n );\r\n }\r\n\r\n // set focus for a11y reason\r\n checkoutRef(checkoutBtn) {\r\n if (checkoutBtn && this.state.focusCheckout) {\r\n setTimeout(() => {\r\n checkoutBtn.focus();\r\n }, 0);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
    \r\n this.onClearParkingSelection()}\r\n />\r\n
    \r\n
    \r\n\r\n (\r\n this.state.isReadyToPay ?\r\n
    \r\n this.onConfirmationModal(mc, onContinue)}\r\n checkoutBtnRef={this.checkoutRef.bind(this)}\r\n />\r\n
    \r\n We are experiencing high volumes of traffic at the minute. Please try again.\r\n
    \r\n this.onCheckout(mc, onContinue)}\r\n isApproveDanger={false}\r\n isApproveButtonDisabled={false}\r\n onCancelClick={this.toggleCloseModal}\r\n isCancelButtonDisabled={true}\r\n masterCardDialogBoxBanner={this.props.dialogBoxBanner}\r\n >\r\n \r\n \r\n \r\n
    :\r\n
    \r\n this.onRejectParkingClick(onContinue)}>\r\n \r\n I don’t need parking\r\n \r\n \r\n
    \r\n )}\r\n />\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectParkingPage.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n basket: PropTypes.object,\r\n productGroupsList: PropTypes.array,\r\n categoriesList: PropTypes.array,\r\n currentScenario: PropTypes.string.isRequired,\r\n onApplyProductsQuantity: PropTypes.func,\r\n onClearSelection: PropTypes.func,\r\n onToggleBasketMobile: PropTypes.func,\r\n onStartCheckout: PropTypes.func,\r\n dialogBoxTitle: PropTypes.string,\r\n dialogBoxMessage: PropTypes.string,\r\n dialogBoxLogo: PropTypes.string,\r\n showDialogBox: PropTypes.bool\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport DaysLinks from './days-links';\r\nimport SelectPanel from './select-panel';\r\nimport Accordion from './accordion';\r\nimport { PRODUCT_TAG_CAR } from '../../../general/js/basket/constants';\r\nimport BackLink from './back-link';\r\nimport PopupLinkInfo from './popup-link-info';\r\nimport ButtonClear from './button-clear';\r\nimport { ROUTE_DAYS, SCENARIO_PARKING_STANDALONE } from './constants';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\nimport CurrencyHelper from '../../../general/js/basket/currency-helper';\r\n\r\nexport default class SelectParkingStandaloneForm extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.formHeading = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n this.formHeading.current.focus();\r\n }\r\n\r\n getPrevRoute() {\r\n let prevRoute = ROUTE_DAYS;\r\n\r\n if (this.props.currentScenario === SCENARIO_PARKING_STANDALONE) {\r\n prevRoute = ROUTE_DAYS;\r\n }\r\n\r\n return prevRoute;\r\n }\r\n\r\n generateParkingSummary() {\r\n const parkingTariff = this.props.productGroupsList.products.find((parking) =>\r\n parking.tag === PRODUCT_TAG_CAR);\r\n\r\n let text = '';\r\n\r\n if (parkingTariff) {\r\n text += `${CurrencyHelper.convertToPounds(parkingTariff.price)} ${parkingTariff.priceLabel}`;\r\n }\r\n\r\n return text;\r\n }\r\n\r\n getGroupParkingProducts(parkingProductsGroup) {\r\n const parkingList = this.props.parkingList;\r\n if (!parkingProductsGroup || !parkingProductsGroup.length || !parkingList || !parkingList.length) return null;\r\n\r\n var parkingListGroupProducts = new Array();\r\n parkingList.forEach((parkingProduct) => {\r\n if (parkingProductsGroup.some((product) => product.id === parkingProduct.id)) {\r\n parkingListGroupProducts.push(parkingProduct);\r\n }\r\n });\r\n\r\n return parkingListGroupProducts;\r\n }\r\n\r\n getFirstParkingProduct(parkingListGroupProducts) {\r\n if (!parkingListGroupProducts || !parkingListGroupProducts.length) return null;\r\n\r\n const parkingProduct = parkingListGroupProducts.filter((parkingProduct) =>\r\n parkingProduct.tag === PRODUCT_TAG_CAR)[0];\r\n\r\n if (parkingProduct) {\r\n return parkingProduct;\r\n }\r\n\r\n return parkingListGroupProducts[0];\r\n }\r\n\r\n renderParkingProductPanel(groupParkingProducts) {\r\n if (!groupParkingProducts || !groupParkingProducts.length) return null;\r\n\r\n const parkingListGroupProducts = this.getGroupParkingProducts(groupParkingProducts);\r\n const firstParkingProduct = this.getFirstParkingProduct(parkingListGroupProducts);\r\n\r\n return ;\r\n }\r\n\r\n renderParkingProductsPanels(parkingProductsList) {\r\n if (!parkingProductsList || !parkingProductsList.length) return null;\r\n\r\n return parkingProductsList.map((parkingProduct) => (\r\n \r\n ));\r\n }\r\n\r\n renderAccordion(groupParkingProducts) {\r\n if (!groupParkingProducts || !groupParkingProducts.length || groupParkingProducts.length < 2) return null;\r\n\r\n const parkingListGroupProducts = this.getGroupParkingProducts(groupParkingProducts);\r\n if (!parkingListGroupProducts || !parkingListGroupProducts.length) return null;\r\n\r\n const firstParkingProduct = this.getFirstParkingProduct(parkingListGroupProducts);\r\n const accordeonParkingProducts = parkingListGroupProducts.filter((parkingProduct) =>\r\n parkingProduct !== firstParkingProduct);\r\n\r\n return (\r\n \r\n {this.renderParkingProductsPanels(accordeonParkingProducts)}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n

    {this.props.dictionary.standaloneParkingStepTitle}

    \r\n \r\n
    \r\n

    {this.props.dictionary.standaloneParkingSubtitle}

    \r\n {\r\n hasValue(this.props.dictionary.standaloneParkingInformationLinkUrl) &&\r\n hasValue(this.props.dictionary.standaloneParkingInformationLinkText) &&\r\n {this.props.dictionary.standaloneParkingInformationLinkText}\r\n }\r\n
    \r\n
    \r\n {this.props.productGroupsList.map((productGroup) => (\r\n \r\n

    {productGroup.title}

    \r\n {this.renderParkingProductPanel(productGroup.products)}\r\n {this.renderAccordion(productGroup.products)}\r\n
    \r\n ))}\r\n
    \r\n
    \r\n {this.props.dictionary.standaloneParkingClearSelectionText}\r\n
    \r\n {this.props.dictionary.StandaloneParkingText}\r\n
    \r\n
    \r\n Back\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectParkingStandaloneForm.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n parkingList: PropTypes.array,\r\n productGroupsList: PropTypes.array,\r\n currentScenario: PropTypes.string.isRequired,\r\n onApplyProductsQuantity: PropTypes.func,\r\n onClearSelection: PropTypes.func\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SelectParkingStandaloneForm from './select-parking-standalone-form';\r\nimport { PRODUCT_TYPE_PARKING } from '../../../general/js/basket/constants';\r\nimport ProductsHelper from './products-helper';\r\nimport TicketBuilderAside from './ticket-builder-aside';\r\nimport CheckoutButton from './checkout-button';\r\nimport { ROUTE_PARKING_STANDALONE } from './constants';\r\nimport BasketDialogBoxContentBody from '../../../general/js/basket/basket-dialog-box-content-body';\r\nimport ConfirmationModal from '../../sso/components/common/utility/ConfirmationModal';\r\n\r\nexport default class SelectParkingStandalonePage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n showModal: false\r\n };\r\n this.toggleConfirmationModal = this.toggleConfirmationModal.bind(this);\r\n this.toggleCloseModal = this.toggleCloseModal.bind(this);\r\n }\r\n\r\n toggleConfirmationModal() {\r\n this.props.showDialogBox ? this.setState({ showModal: true }) : this.setState({ showModal: false });\r\n }\r\n\r\n onConfirmationModal(mc, onContinue) {\r\n this.toggleConfirmationModal();\r\n\r\n if (!this.props.showDialogBox)\r\n this.onCheckout(mc, onContinue)\r\n }\r\n\r\n toggleCloseModal() {\r\n this.setState({ showModal: false });\r\n }\r\n\r\n onCheckout(mc, onContinue) {\r\n this.props.onStartCheckout(mc);\r\n this.triggerContinue(onContinue, mc ? 'Pay with Mastercard' : 'Pay');\r\n }\r\n\r\n onClearParkingSelection() {\r\n const parkingList = this.getParkingList();\r\n const paramsList = parkingList.map((parking) =>\r\n Object.assign({}, {\r\n type: parking.type,\r\n tag: parking.tag\r\n }));\r\n\r\n this.props.onClearSelection(paramsList);\r\n }\r\n\r\n triggerContinue(onContinue, actionCaption) {\r\n onContinue(actionCaption, ROUTE_PARKING_STANDALONE);\r\n }\r\n\r\n getParkingList() {\r\n return ProductsHelper.getStandaloneProductsList(\r\n this.props.productGroupsList,\r\n this.props.basket.productGroups,\r\n (product) => product.type === PRODUCT_TYPE_PARKING\r\n );\r\n }\r\n\r\n onSelectParkingQuantity(...args) {\r\n this.props.onApplyProductsQuantity(...args);\r\n this.setState({ isReadyToPay: true, focusCheckout: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
    \r\n this.onClearParkingSelection()}\r\n />\r\n
    \r\n
    \r\n (\r\n \r\n
    \r\n this.onConfirmationModal(mc, onContinue)}\r\n isDisabled={!this.getParkingList().some((parking) => parking.quantity > 0)}\r\n />\r\n
    \r\n We are experiencing high volumes of traffic at the minute. Please try again.\r\n
    \r\n
    \r\n this.onCheckout(mc, onContinue)}\r\n isApproveDanger={false}\r\n isApproveButtonDisabled={false}\r\n onCancelClick={this.toggleCloseModal}\r\n isCancelButtonDisabled={true}\r\n masterCardDialogBoxBanner={this.props.dialogBoxBanner}\r\n >\r\n \r\n \r\n \r\n
    \r\n )}\r\n />\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectParkingStandalonePage.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n basket: PropTypes.object,\r\n productGroupsList: PropTypes.array,\r\n categoriesList: PropTypes.array,\r\n currentScenario: PropTypes.string.isRequired,\r\n onApplyProductsQuantity: PropTypes.func,\r\n onClearSelection: PropTypes.func,\r\n onToggleBasketMobile: PropTypes.func,\r\n onStartCheckout: PropTypes.func,\r\n dialogBoxTitle: PropTypes.string,\r\n dialogBoxMessage: PropTypes.string,\r\n dialogBoxLogo: PropTypes.string,\r\n showDialogBox: PropTypes.bool\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n HashRouter, Route, Switch, Redirect, withRouter\r\n} from 'react-router-dom';\r\nimport ObjectHelper from 'foundation/object-helper';\r\nimport ArrayHelper from 'foundation/array-helper';\r\nimport UrlHelper from 'foundation/url-helper';\r\nimport contentBlocker from '../../../general/js/content-blocker';\r\nimport overlay from '../../../general/js/overlay';\r\nimport eventBus from '../../../general/js/event-bus';\r\nimport SelectDaysPage from './select-days-page';\r\nimport SelectTicketsPage from './select-tickets-page';\r\nimport SelectExtrasPage from './select-extras-page';\r\nimport SelectParkingPage from './select-parking-page';\r\nimport SelectParkingStandalonePage from './select-parking-standalone-page';\r\nimport ValidationHelper from '../../../general/js/basket/validation-helper';\r\nimport { TicketBuilderContext } from './ticket-builder-context';\r\n\r\nimport { EVENT_DEVICE_TYPE_CHANGED } from '../../../general/js/app';\r\nimport {\r\n PRODUCT_TYPE_TICKET,\r\n PRODUCT_TYPE_HOSPITALITY,\r\n PRODUCT_TYPE_PARKING, \r\n PRODUCT_TYPE_EXTRAS,\r\n PRODUCT_TAG_TICKET_PLUS,\r\n PRODUCT_TAG_TICKET_PLUS_EXTRA\r\n} from '../../../general/js/basket/constants';\r\nimport {\r\n ROUTE_DAYS,\r\n ROUTE_EXTRAS,\r\n ROUTE_PARKING,\r\n ROUTE_TICKETS,\r\n ROUTE_PARKING_STANDALONE,\r\n SCENARIO_HOSPITALITY,\r\n SCENARIO_STANDARD,\r\n SCENARIO_PARKING,\r\n SCENARIO_HOSPITALITY_WITH_EXTRAS,\r\n SCENARIO_STANDARD_WITH_EXTRAS,\r\n SCENARIO_PARKING_STANDALONE\r\n} from './constants';\r\n\r\nimport { \r\n isNullOrUndefined \r\n} from '../../../general/js/general-helpers';\r\n\r\nconst PRODUCT_GROUP_ID_URL_PARAM_NAME = 'g';\r\n\r\nclass TicketBuilder extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.hasPreselectedProductGroup = false;\r\n this.currentProductType = this.getCurrentProductType();\r\n\r\n this.state = {\r\n productGroupsList: this.getSelectedProductGroups(),\r\n isBasketExpanded: false,\r\n isBasketToggling: false,\r\n };\r\n\r\n this.setHasPreselectedProductGroup();\r\n\r\n if (!Object.keys(this.state.productGroupsList).length) {\r\n window.location.hash = '';\r\n }\r\n\r\n this.onSelectProductGroup = this.onSelectProductGroup.bind(this);\r\n this.onApplyProductsQuantity = this.onApplyProductsQuantity.bind(this);\r\n this.onClearSelection = this.onClearSelection.bind(this);\r\n this.onToggleBasketMobile = this.onToggleBasketMobile.bind(this);\r\n\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.updateBasketDesign);\r\n\r\n this.tbContext = {\r\n currentScenarioTitle: this.getCurrentScenarioTitle()\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n // scroll to top on every new page\r\n if (this.props.location !== prevProps.location) {\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n // we have to reset this flag to prevent another page redirect\r\n this.hasPreselectedProductGroup = false;\r\n }\r\n\r\n componentWillUnmount() {\r\n eventBus.removeListener(EVENT_DEVICE_TYPE_CHANGED, this.updateBasketDesign);\r\n }\r\n\r\n updateBasketDesign = () => {\r\n if (this.state.isBasketExpanded) {\r\n this.onToggleBasketMobile();\r\n }\r\n }\r\n\r\n getCurrentScenarioTitle() {\r\n switch (this.props.currentScenario) {\r\n case SCENARIO_STANDARD:\r\n return 'Buy Tickets';\r\n case SCENARIO_HOSPITALITY:\r\n case SCENARIO_HOSPITALITY_WITH_EXTRAS:\r\n return this.props.categoriesList[0].title;\r\n case SCENARIO_STANDARD_WITH_EXTRAS:\r\n return 'Buy Tickets';\r\n case SCENARIO_PARKING:\r\n return 'Buy Parking';\r\n case SCENARIO_PARKING_STANDALONE:\r\n return 'Buy Parking Standalone'; \r\n default:\r\n return 'Buy Products';\r\n }\r\n }\r\n\r\n getCurrentProductType() {\r\n let productType = '';\r\n\r\n switch (this.props.currentScenario) {\r\n case SCENARIO_STANDARD:\r\n productType = PRODUCT_TYPE_TICKET;\r\n break;\r\n case SCENARIO_HOSPITALITY:\r\n case SCENARIO_HOSPITALITY_WITH_EXTRAS:\r\n productType = PRODUCT_TYPE_HOSPITALITY;\r\n break;\r\n case SCENARIO_PARKING:\r\n productType = PRODUCT_TYPE_PARKING;\r\n break;\r\n case SCENARIO_PARKING_STANDALONE:\r\n productType = PRODUCT_TYPE_PARKING;\r\n break; \r\n case SCENARIO_STANDARD_WITH_EXTRAS:\r\n productType = PRODUCT_TYPE_TICKET;\r\n break;\r\n default:\r\n productType = PRODUCT_TYPE_TICKET;\r\n }\r\n\r\n return productType;\r\n }\r\n\r\n getSelectedProductGroups() {\r\n const productGroupsList = [];\r\n\r\n this.props.categoriesList.forEach((category) =>\r\n category.productGroups.forEach((productGroup) => {\r\n if (this.isProductGroupHasProductsInBasket(productGroup) || this.isProductGroupPreselected(productGroup)) {\r\n productGroupsList.push(ObjectHelper.clone(productGroup));\r\n }\r\n }));\r\n\r\n return productGroupsList;\r\n }\r\n\r\n isProductGroupHasProductsInBasket(productGroup) {\r\n const currentScenarioProducts = productGroup.products.filter((product) =>\r\n product.type === this.currentProductType);\r\n\r\n // check if this product group have products of current scenario\r\n if (currentScenarioProducts.length > 0) {\r\n const basketProductGroups = this.props.basket.productGroups;\r\n if (basketProductGroups[productGroup.id]) {\r\n return currentScenarioProducts.some((product) =>\r\n basketProductGroups[productGroup.id].products.some((basketProduct) =>\r\n basketProduct.type === product.type &&\r\n basketProduct.tag === product.tag));\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n getPreselectedProductGroupId() {\r\n return UrlHelper.getParamFromLocation(PRODUCT_GROUP_ID_URL_PARAM_NAME, window.location);\r\n }\r\n\r\n clearPreselectedProductGroupId() {\r\n // todo should we remove it from query string?\r\n /*\r\n // we have to use global api to remove query parameter silently\r\n let url = UrlHelper.getFullUrlWithAppliedParams(window.location, { [PRODUCT_GROUP_ID_URL_PARAM_NAME]: null });\r\n window.history.replaceState({}, '', url);\r\n */\r\n }\r\n\r\n setHasPreselectedProductGroup() {\r\n const preselectedGroupId = this.getPreselectedProductGroupId();\r\n if (preselectedGroupId) {\r\n this.clearPreselectedProductGroupId();\r\n this.hasPreselectedProductGroup = this.props.categoriesList\r\n .some((category) =>\r\n category.productGroups.some((productGroup) => productGroup.id.toLowerCase() === preselectedGroupId.toLowerCase()));\r\n } else {\r\n this.hasPreselectedProductGroup = false;\r\n }\r\n }\r\n\r\n isProductGroupPreselected(productGroup) {\r\n if (!productGroup.isSoldOut) {\r\n const hasCurrentScenarioProducts = productGroup.products.some((product) => product.type === this.currentProductType);\r\n const preselectedGroupId = this.getPreselectedProductGroupId();\r\n if (hasCurrentScenarioProducts && !isNullOrUndefined(preselectedGroupId)) {\r\n return preselectedGroupId.toLowerCase() === productGroup.id.toLowerCase();\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n onSelectProductGroup(selProductGroup) {\r\n const basketProductGroups = ObjectHelper.clone(this.props.basket.productGroups);\r\n const productGroupsList = ObjectHelper.clone(this.state.productGroupsList);\r\n const productGroupIndex = ArrayHelper.findIndexByProp(\r\n productGroupsList,\r\n 'id',\r\n selProductGroup.id\r\n );\r\n\r\n if (productGroupIndex === -1) {\r\n // if selProductGroup isn't in productGroupsList yet so we clicked to add it\r\n // in this case we want to reset all products of the products types that are active for current scenario\r\n // from all product groups in basket\r\n productGroupsList.forEach((productGroup) => {\r\n if (productGroup.id in basketProductGroups) {\r\n this.resetProducts(basketProductGroups[productGroup.id], selProductGroup.products);\r\n }\r\n });\r\n productGroupsList.push(selProductGroup);\r\n } else {\r\n // otherwise we want to unselect some product group and remove it from basket\r\n // remove it from selected\r\n productGroupsList.splice(productGroupIndex, 1);\r\n // remove it from basket\r\n if (selProductGroup.id in basketProductGroups) {\r\n // remove all the current products from selected group in basket\r\n this.resetProducts(basketProductGroups[selProductGroup.id], selProductGroup.products);\r\n }\r\n }\r\n\r\n this.props.onProductGroupsUpdate(basketProductGroups);\r\n this.setState({ productGroupsList });\r\n }\r\n\r\n /**\r\n * Apply passed quantity to all appropriate products in selected days of the current scenario\r\n * So if you call it for example with {type: tickets, tag: adults} it will find particular products\r\n * by the passed params in all SELECTED groups and insert/update these groups and products in the basket\r\n *\r\n * @param productsParams\r\n * @param quantity\r\n */\r\n onApplyProductsQuantity(productsParams, quantity) {\r\n const basketProductGroups = ObjectHelper.clone(this.props.basket.productGroups);\r\n\r\n this.state.productGroupsList.forEach((productGroup) => {\r\n // filter products in selected product groups by passed set of keys/values\r\n const filteredProductsList = productGroup.products.filter((product) => Object.keys(productsParams).every((property) => {\r\n const value = productsParams[property];\r\n return product[property] === value;\r\n }));\r\n\r\n filteredProductsList.forEach((filteredProduct) => {\r\n // add product group to basket if it isn't there yet\r\n if (!basketProductGroups[productGroup.id]) {\r\n basketProductGroups[productGroup.id] = ObjectHelper.clone(productGroup);\r\n basketProductGroups[productGroup.id].products = [];\r\n }\r\n\r\n const basketProduct = basketProductGroups[productGroup.id].products.find((curBasketProduct) =>\r\n curBasketProduct.type === filteredProduct.type &&\r\n curBasketProduct.tag === filteredProduct.tag);\r\n\r\n if (basketProduct) {\r\n if (basketProduct.tag === PRODUCT_TAG_TICKET_PLUS && quantity === 0) {\r\n const basketProductExtra = basketProductGroups[productGroup.id].products.find((basketProduct) => basketProduct.tag === PRODUCT_TAG_TICKET_PLUS_EXTRA);\r\n \r\n if (basketProductExtra) {\r\n basketProductExtra.quantity = quantity;\r\n }\r\n }\r\n\r\n basketProduct.quantity = quantity;\r\n } else {\r\n const newProduct = ObjectHelper.clone(filteredProduct);\r\n newProduct.quantity = quantity;\r\n basketProductGroups[productGroup.id].products.push(newProduct);\r\n }\r\n });\r\n });\r\n\r\n this.props.onProductGroupsUpdate(basketProductGroups, ValidationHelper.isNeedResetJunior(productsParams.type, productsParams.tag));\r\n }\r\n\r\n onClearSelection(paramsList) {\r\n const basketProductGroups = ObjectHelper.clone(this.props.basket.productGroups);\r\n\r\n this.state.productGroupsList.forEach((productGroup) => {\r\n if (productGroup.id in basketProductGroups) {\r\n const basketProductGroup = basketProductGroups[productGroup.id];\r\n\r\n paramsList.forEach((param) => {\r\n const basketProductIndex = basketProductGroup.products.findIndex((basketProduct) =>\r\n basketProduct.type === param.type &&\r\n basketProduct.tag === param.tag);\r\n\r\n if (basketProductIndex !== -1) {\r\n basketProductGroup.products.splice(basketProductIndex, 1);\r\n }\r\n });\r\n }\r\n });\r\n\r\n this.props.onProductGroupsUpdate(basketProductGroups);\r\n }\r\n\r\n onToggleBasketMobile() {\r\n const isBasketExpanded = this.state.isBasketExpanded;\r\n\r\n if (isBasketExpanded) {\r\n contentBlocker.unblock('ticket-builder-basket');\r\n overlay.hide('ticket-builder-basket');\r\n } else {\r\n contentBlocker.block('ticket-builder-basket');\r\n overlay.show('ticket-builder-basket');\r\n }\r\n\r\n this.setState({ isBasketExpanded: !isBasketExpanded, isBasketToggling: true }, () => {\r\n setTimeout(() => {\r\n this.setState({ isBasketToggling: false });\r\n }, 300);\r\n });\r\n }\r\n\r\n resetProducts(basketProductGroup, products) {\r\n const removeTypesList = this.getRemoveTypesList();\r\n\r\n products.forEach((product) => {\r\n const shouldRemoveProduct = removeTypesList.some((type) => type === product.type);\r\n\r\n if (shouldRemoveProduct) {\r\n const basketProductIndex = basketProductGroup.products.findIndex((basketProduct) =>\r\n basketProduct.type === product.type &&\r\n basketProduct.tag === product.tag);\r\n\r\n if (basketProductIndex !== -1) {\r\n basketProductGroup.products.splice(basketProductIndex, 1);\r\n }\r\n }\r\n });\r\n }\r\n\r\n getRemoveTypesList() {\r\n const removeTypesList = [];\r\n\r\n switch (this.props.currentScenario) {\r\n case SCENARIO_STANDARD:\r\n removeTypesList.push(PRODUCT_TYPE_TICKET, PRODUCT_TYPE_PARKING);\r\n break;\r\n case SCENARIO_HOSPITALITY:\r\n case SCENARIO_HOSPITALITY_WITH_EXTRAS:\r\n removeTypesList.push(PRODUCT_TYPE_HOSPITALITY, PRODUCT_TYPE_PARKING, PRODUCT_TYPE_EXTRAS);\r\n break;\r\n case SCENARIO_PARKING:\r\n case SCENARIO_PARKING_STANDALONE:\r\n removeTypesList.push(PRODUCT_TYPE_PARKING);\r\n break;\r\n case SCENARIO_STANDARD_WITH_EXTRAS:\r\n removeTypesList.push(PRODUCT_TYPE_TICKET, PRODUCT_TYPE_PARKING, PRODUCT_TYPE_EXTRAS);\r\n break;\r\n }\r\n\r\n return removeTypesList;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n }\r\n />\r\n (\r\n \r\n )} />\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nTicketBuilder.propTypes = {\r\n categoriesList: PropTypes.array,\r\n currentScenario: PropTypes.string.isRequired,\r\n location: PropTypes.object.isRequired,\r\n history: PropTypes.object.isRequired,\r\n dictionary: PropTypes.object,\r\n basket: PropTypes.object,\r\n onProductGroupsUpdate: PropTypes.func,\r\n onUpdateProductQuantity: PropTypes.func,\r\n onCheckout: PropTypes.func,\r\n isParkingStandaloneConfiguration: PropTypes.bool,\r\n isConfiguredForBallot: PropTypes.bool,\r\n dialogBoxTitle: PropTypes.string,\r\n dialogBoxMessage: PropTypes.string,\r\n dialogBoxLogo: PropTypes.string,\r\n showDialogBox: PropTypes.bool\r\n};\r\n\r\n\r\nconst TicketBuilderWithRouter = withRouter(TicketBuilder);\r\nconst TicketBuilderWithHashRouter = (props) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default TicketBuilderWithHashRouter;\r\n","import BaseComponent from 'foundation/base-component';\r\nimport React from 'react';\r\nimport { render } from 'react-dom';\r\nimport ObjectHelper from 'foundation/object-helper';\r\nimport BasketController from '../../../general/js/basket/basket-controller';\r\nimport TicketBuilder from './ticket-builder';\r\nimport basketProductsHelper from '../../../general/js/basket/basket-products-helper';\r\nimport {\r\n SCENARIO_HOSPITALITY,\r\n SCENARIO_HOSPITALITY_WITH_EXTRAS,\r\n SCENARIO_PARKING,\r\n SCENARIO_PARKING_STANDALONE,\r\n SCENARIO_STANDARD,\r\n SCENARIO_STANDARD_WITH_EXTRAS\r\n} from './constants';\r\nimport gtm, { ecommerceEventTypes } from '../../../general/js/gtm';\r\nimport { CURRENCY_RATIO } from '../../../general/js/basket/currency-helper';\r\n\r\nexport default class TicketBuilderComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.data = {};\r\n\r\n try {\r\n this.data = JSON.parse(this.getAttribute(this.refs.data, 'options'));\r\n } catch (error) {\r\n console.log(error.message);\r\n }\r\n\r\n if (!this.data) {\r\n console.log('No data found');\r\n return;\r\n }\r\n\r\n const category = this.data.categories[0];\r\n\r\n gtm.pushEcommerceEvent(ecommerceEventTypes.VIEW_ITEM_LIST, {\r\n item_list_id: category.id,\r\n item_list_name: category.title,\r\n items: category.productGroups.map((productGroup) => ({\r\n item_id: productGroup.products[0].productId,\r\n item_name: `${productGroup.tag} - ${productGroup.title}`,\r\n price: productGroup.products[0].price / CURRENCY_RATIO,\r\n quantity: 1\r\n }))\r\n });\r\n\r\n const secutixProductsList = this.getBallotProductsList(this.data.secutixProductsGroups);\r\n const dialogBoxMessage = this.data.dialogBoxMessage.split('newline').join('\\n');\r\n basketProductsHelper.setSecutixReservedProducts(secutixProductsList);\r\n render(\r\n (\r\n \r\n \r\n }>\r\n \r\n ),\r\n this.refs.section\r\n );\r\n }\r\n\r\n getCategoriesList(categoriesList) {\r\n if (!categoriesList || !categoriesList.length) return [];\r\n\r\n const newCategoriesList = ObjectHelper.clone(categoriesList);\r\n\r\n newCategoriesList.forEach((categorie) => {\r\n categorie.productGroups = categorie.productGroups.sort((a, b) =>\r\n a.sortOrder - b.sortOrder);\r\n });\r\n\r\n return newCategoriesList;\r\n }\r\n\r\n getBallotProductsList(ballotProductsList) {\r\n if (!ballotProductsList || !ballotProductsList.length) return [];\r\n\r\n const newCategoriesList = ObjectHelper.clone(ballotProductsList);\r\n\r\n newCategoriesList.forEach((categorie) => {\r\n categorie.products = categorie.products.sort((a, b) =>\r\n a.sortOrder - b.sortOrder);\r\n });\r\n\r\n return newCategoriesList;\r\n }\r\n\r\n getCurrentScenario() {\r\n const stepsData = this.getStepsData();\r\n let scenario = SCENARIO_STANDARD;\r\n\r\n if (stepsData.hasTickets) {\r\n scenario = SCENARIO_STANDARD;\r\n }\r\n\r\n if (stepsData.hasHospitality) {\r\n scenario = SCENARIO_HOSPITALITY;\r\n }\r\n\r\n if (stepsData.hasHospitality && (\r\n stepsData.hasExtras ||\r\n stepsData.hasParking\r\n )) {\r\n scenario = SCENARIO_HOSPITALITY_WITH_EXTRAS;\r\n }\r\n\r\n if (stepsData.hasTickets && !stepsData.hasHospitality && stepsData.hasExtras) {\r\n scenario = SCENARIO_STANDARD_WITH_EXTRAS;\r\n }\r\n\r\n if (!stepsData.hasTickets &&\r\n !stepsData.hasHospitality &&\r\n stepsData.hasParking &&\r\n !stepsData.isParkingStandaloneConfiguration\r\n ) {\r\n scenario = SCENARIO_PARKING;\r\n }\r\n\r\n if (!stepsData.hasTickets &&\r\n !stepsData.hasHospitality &&\r\n stepsData.hasParking &&\r\n stepsData.isParkingStandaloneConfiguration\r\n ) {\r\n scenario = SCENARIO_PARKING_STANDALONE;\r\n }\r\n\r\n return scenario;\r\n }\r\n\r\n getStepsData() {\r\n return {\r\n hasTickets: this.data.hasTickets || false,\r\n hasHospitality: this.data.hasHospitality || false,\r\n hasExtras: this.data.hasExtras || false,\r\n hasParking: this.data.hasParking || false,\r\n isParkingStandaloneConfiguration: this.data.isParkingStandaloneConfiguration || false,\r\n isConfiguredForBallot: this.data.isConfiguredForBallot || false\r\n };\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport TicketBuilderComponent from './js/ticket-builder.component';\r\n\r\nComponentsFactory.getInstance().define('ticket-builder', TicketBuilderComponent);\r\n","export default class Deferred {\r\n constructor() {\r\n this.resolve = null;\r\n this.reject = null;\r\n\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = resolve;\r\n this.reject = reject;\r\n });\r\n }\r\n}\r\n","import Modal from './modal';\r\nimport Deferred from './deferred';\r\n\r\nexport default class ModalWithResult extends Modal {\r\n constructor(...args) {\r\n super(...args);\r\n this.deferred = null;\r\n }\r\n\r\n open() {\r\n super.open();\r\n this.deferred = new Deferred();\r\n return this.deferred.promise.then((result) => {\r\n this.cleanupPromise();\r\n return result;\r\n }, (error) => {\r\n this.cleanupPromise();\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n cleanupPromise() {\r\n this.deferred = null;\r\n }\r\n\r\n close() {\r\n super.close();\r\n if (this.deferred) {\r\n this.deferred.reject();\r\n }\r\n }\r\n\r\n resolve(result, close = true) {\r\n if (this.deferred) {\r\n this.deferred.resolve(result);\r\n }\r\n if (close) {\r\n this.close();\r\n }\r\n }\r\n\r\n reject(reason, close = true) {\r\n if (this.deferred) {\r\n this.deferred.reject(reason);\r\n }\r\n if (close) {\r\n this.close();\r\n }\r\n }\r\n}\r\n","import BaseComponent from 'foundation/base-component';\r\nimport eventBus from 'general/js/event-bus';\r\nimport ModalWithResult from 'general/js/modal-with-result';\r\nimport { EVENT_MODAL_CLOSE, bemClasses } from 'general/js/modal';\r\n\r\nconst CONTROL_BUTTON_HTML_PLAY = '';\r\nconst CONTROL_BUTTON_HTML_PAUSE = '';\r\n\r\nconst CONTROL_BUTTON_HTML_MUTE = '';\r\nconst CONTROL_BUTTON_HTML_UNMUTE = '';\r\n\r\nexport default class VideoComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.placeholder = this.refs.placeholder;\r\n this.playBtn = this.refs.playBtn;\r\n this.modalContent = this.refs.modalContent;\r\n this.control = this.refs.control;\r\n this.playControl = this.refs.playControl;\r\n this.muteControl = this.refs.muteControl;\r\n\r\n this.modal = null;\r\n this.onPlayClick = this.onPlayClick.bind(this);\r\n this.onClickPlayControl = this.onClickPlayControl.bind(this);\r\n this.onClickMuteControl = this.onClickMuteControl.bind(this);\r\n this.onModalClose = this.onModalClose.bind(this);\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['playBtn', 'modalContent', 'control', 'playControl', 'muteControl'];\r\n }\r\n\r\n init() {\r\n if (this.control.canPlayType) {\r\n this.playBtn.addEventListener('click', this.onPlayClick);\r\n\r\n if (this.placeholder) {\r\n this.placeholder.addEventListener('click', this.onPlayClick);\r\n }\r\n }\r\n\r\n eventBus.addListener(EVENT_MODAL_CLOSE, this.onModalClose);\r\n }\r\n\r\n onDestroy() {\r\n eventBus.removeListener(EVENT_MODAL_CLOSE, this.onModalClose);\r\n }\r\n\r\n onPlayClick() {\r\n this.getModal().open().catch(() => {\r\n // we assume the only case of modal rejection is when it closes\r\n this._pause();\r\n });\r\n this._play();\r\n }\r\n\r\n getModal() {\r\n if (this.modal === null) {\r\n this.modal = new ModalWithResult(this.modalContent, {\r\n bemList: [bemClasses.WIDE],\r\n });\r\n this.renderControls();\r\n this.playControl.addEventListener('click', this.onClickPlayControl);\r\n this.muteControl.addEventListener('click', this.onClickMuteControl);\r\n }\r\n\r\n return this.modal;\r\n }\r\n\r\n onClickPlayControl() {\r\n if (this.control.paused || this.control.ended) {\r\n this._play();\r\n } else {\r\n this._pause();\r\n }\r\n }\r\n\r\n onClickMuteControl() {\r\n if (this.control.muted === true) {\r\n this._unmute();\r\n } else {\r\n this._mute();\r\n }\r\n }\r\n\r\n _play() {\r\n this.control.play();\r\n this.playControl.innerHTML = CONTROL_BUTTON_HTML_PAUSE;\r\n this.playControl.setAttribute('aria-label', 'pause');\r\n }\r\n\r\n _pause() {\r\n this.control.pause();\r\n this.playControl.innerHTML = CONTROL_BUTTON_HTML_PLAY;\r\n this.playControl.setAttribute('aria-label', 'play');\r\n }\r\n\r\n _mute() {\r\n this.control.muted = true;\r\n this.muteControl.innerHTML = CONTROL_BUTTON_HTML_UNMUTE;\r\n this.muteControl.setAttribute('aria-label', 'unmute');\r\n }\r\n\r\n _unmute() {\r\n this.control.muted = false;\r\n this.muteControl.innerHTML = CONTROL_BUTTON_HTML_MUTE;\r\n this.muteControl.setAttribute('aria-label', 'mute');\r\n }\r\n\r\n renderControls() {\r\n this.playControl.innerHTML = CONTROL_BUTTON_HTML_PLAY;\r\n this.playControl.setAttribute('aria-label', 'play');\r\n this.muteControl.innerHTML = CONTROL_BUTTON_HTML_MUTE;\r\n this.muteControl.setAttribute('aria-label', 'mute');\r\n }\r\n\r\n onModalClose(modalContainer) {\r\n if (modalContainer && modalContainer.contains(this.element)) {\r\n this._pause();\r\n }\r\n }\r\n}\r\n","import './scss/index.scss';\r\n\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport VideoComponent from './js/video.component';\r\n\r\nComponentsFactory.getInstance().define('video', VideoComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport Cookies from 'js-cookie';\r\n\r\nexport default class ViewOrderUrlComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n const secutixCookie = Cookies.get('secutixConfig');\r\n if (secutixCookie !== undefined) {\r\n const secutixConfiguration = JSON.parse(secutixCookie);\r\n const params = new URLSearchParams(window.location.search);\r\n const fileName = params.get('FileNumber');\r\n\t\t\tthis.element.setAttribute('href', secutixConfiguration.viewOrderUrl.replace('{0}', fileName));\r\n }\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport ViewOrderUrlComponent from './js/view-order-url.component';\r\n\r\nComponentsFactory.getInstance().define('view-order-url', ViewOrderUrlComponent);\r\n","export const vodeNavEvents = Object.freeze({\r\n TOGGLE_TO_SEE_ALL: 'toggle-to-see-all'\r\n});\r\n\r\nexport const vodNavModeTypes = Object.freeze({\r\n VOD: 'vod'\r\n});\r\n","import BaseComponent from 'foundation/base-component';\r\nimport { vodeNavEvents, vodNavModeTypes } from './enums';\r\nimport eventBus from 'general/js/event-bus';\r\nimport anime from 'animejs';\r\n\r\nexport default class VodNav extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.activeNavLinkNode = null;\r\n this.currentContentNode = null;\r\n\r\n this.links = this.refs.links;\r\n this.content = this.refs.content;\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n eventBus.addListener(vodeNavEvents.TOGGLE_TO_SEE_ALL, this.toggleView);\r\n this.tabsInit();\r\n }\r\n\r\n onDestroy() {\r\n eventBus.removeListener(vodeNavEvents.TOGGLE_TO_SEE_ALL, this.toggleView);\r\n }\r\n\r\n tabsInit() {\r\n Object.keys(this.links).forEach((key) => {\r\n const link = this.links[key];\r\n this.addListener(link, 'click', this.onLinkClick.bind(this, key));\r\n\r\n if (link.classList.contains('is-active')) {\r\n if (!this.activeNavLinkNode) {\r\n this.activeNavLinkNode = link;\r\n\r\n if (this.content[key]) {\r\n this.content[key].classList.add('is-active');\r\n this.currentContentNode = this.content[key];\r\n }\r\n } else {\r\n // remove dublicate state if found\r\n link.classList.remove('is-active');\r\n }\r\n }\r\n });\r\n }\r\n\r\n toggleView = (props) => {\r\n if (props.mode === vodNavModeTypes.VOD) {\r\n anime({\r\n targets: document.documentElement,\r\n scrollTop: 0,\r\n duration: 400,\r\n easing: 'easeOutQuad'\r\n });\r\n\r\n this.showContent(this.content[props.key]);\r\n }\r\n }\r\n\r\n onLinkClick(key, e) {\r\n e.preventDefault();\r\n\r\n if (this.activeNavLinkNode) {\r\n this.activeNavLinkNode.classList.remove('is-active');\r\n }\r\n\r\n this.activeNavLinkNode = e.target;\r\n this.activeNavLinkNode.classList.add('is-active');\r\n this.showContent(this.content[key]);\r\n }\r\n\r\n showContent(contentNode) {\r\n if (this.currentContentNode) {\r\n if (this.currentContentNode === contentNode) {\r\n return;\r\n }\r\n\r\n this.currentContentNode.classList.remove('is-active');\r\n }\r\n\r\n contentNode.classList.add('is-active');\r\n this.currentContentNode = contentNode;\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport VodNav from './js/vod-nav.component';\r\nimport { vodeNavEvents, vodNavModeTypes } from './js/enums';\r\n\r\nComponentsFactory.getInstance().define('vod-nav', VodNav);\r\n\r\nexport { vodeNavEvents, vodNavModeTypes };\r\n","import React, { Fragment, useEffect } from 'react';\r\nimport { isScriptEmbedded } from '../../../general/js/general-helpers';\r\n\r\nconst WeglotScript = ({\r\n options\r\n}) => {\r\n useEffect(() => {\r\n const weglotCdn = 'https://cdn.weglot.com/weglot.min.js';\r\n\r\n if (!isScriptEmbedded(weglotCdn)) {\r\n const weglotSrcScript = document.createElement('script');\r\n weglotSrcScript.type = 'text/javascript';\r\n weglotSrcScript.src = weglotCdn;\r\n\r\n weglotSrcScript.onload = () => {\r\n const weglotInitScript = document.createElement('script');\r\n weglotInitScript.type = 'text/javascript';\r\n weglotInitScript.innerHTML = `Weglot.initialize({ api_key: \"${options.apiKey}\" });`;\r\n\r\n document.body.appendChild(weglotInitScript);\r\n };\r\n\r\n document.body.appendChild(weglotSrcScript);\r\n }\r\n });\r\n\r\n return ;\r\n};\r\n\r\nexport default WeglotScript;\r\n","import BaseComponent from 'foundation/base-component';\r\nimport React, { Fragment } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport WeglotScript from './weglot-script';\r\n\r\nclass WeglotComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default WeglotComponent;\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport WeglotComponent from './js/weglot.component';\r\n\r\nComponentsFactory.getInstance().define('weglot', WeglotComponent);\r\n","/* styles */\r\nimport './general/scss/index.scss';\r\n\r\nimport 'foundation/global-error-handler';\r\nimport 'general/js/loaders/scoring-loader';\r\n//import 'general/js/loaders/sw-loader';\r\n\r\n/* polyfills */\r\nimport 'general/js/polyfills';\r\nimport 'general/js/lazysizes';\r\nimport 'intersection-observer';\r\nimport 'formdata-polyfill';\r\nimport 'whatwg-fetch';\r\n\r\n/* plugins */\r\nimport 'what-input';\r\nimport './components/form-custom-select/js/choices.js/public/assets/scripts/choices';\r\n\r\n/* shared components */\r\nimport 'project/live-helpers';\r\nimport 'project/country-flag';\r\n\r\n/* components */\r\nimport './components/accordion';\r\nimport './components/accordion-flexible';\r\nimport './components/account';\r\nimport './components/account-page';\r\nimport './components/account-profile';\r\nimport './components/alert-bars';\r\nimport './components/anti-forgery-token';\r\nimport './components/article-hero';\r\nimport './components/article-page';\r\nimport './components/article-player-title';\r\nimport './components/article-tags';\r\nimport './components/banner';\r\nimport './components/basket';\r\nimport './components/basket-buy-links';\r\nimport './components/basket-cleaner';\r\nimport './components/basket-icon';\r\nimport './components/call-out-panel';\r\nimport './components/cards';\r\nimport './components/carousel-controls';\r\nimport './components/checkout-page';\r\nimport './components/content-type';\r\nimport './components/contextual-info-panel';\r\nimport './components/contextual-latest-news';\r\nimport './components/contextual-link-panel';\r\nimport './components/contextual-manager';\r\nimport './components/contextual-rolex';\r\nimport './components/contextual-stats';\r\nimport './components/cookie-warning';\r\nimport './components/countdown-alertbar';\r\nimport './components/countries';\r\nimport './components/course';\r\nimport './components/data-capture';\r\nimport './components/days-promo';\r\nimport './components/dfp-banner';\r\nimport './components/email-capture';\r\nimport './components/endeavor-player';\r\nimport './components/endeavor-player-modal';\r\nimport './components/error-hero';\r\nimport './components/feature-content';\r\nimport './components/featured-list';\r\nimport './components/footer';\r\nimport './components/force-sign-in';\r\nimport './components/form';\r\nimport './components/form-buttons-radio';\r\nimport './components/form-checkbox';\r\nimport './components/form-checkbox-panel';\r\nimport './components/form-custom-select';\r\nimport './components/form-date';\r\nimport './components/form-field';\r\nimport './components/form-file';\r\nimport './components/form-page';\r\nimport './components/form-phone-input';\r\nimport './components/form-popup';\r\nimport './components/form-progress';\r\nimport './components/form-radio';\r\nimport './components/form-round-select';\r\nimport './components/form-select';\r\nimport './components/general-page-hero';\r\nimport './components/gtm-trigger';\r\nimport './components/header';\r\nimport './components/hero';\r\nimport './components/hero-banner-homepage';\r\nimport './components/highlights-panel';\r\nimport './components/hole-flag';\r\nimport './components/image';\r\nimport './components/image-gallery';\r\nimport './components/imga-iframe';\r\nimport './components/imga-matchups-game';\r\nimport './components/info-panel';\r\nimport './components/large-hero';\r\nimport './components/leaderboard';\r\nimport './components/leaderboard-scoring';\r\nimport './components/leaderboard-widget';\r\nimport './components/listing';\r\nimport './components/live-event-select';\r\nimport './components/live-header';\r\nimport './components/live-hero';\r\nimport './components/live-navigation';\r\nimport './components/live-stats';\r\nimport './components/live-submenu';\r\nimport './components/live-tabs';\r\nimport './components/live-text';\r\nimport './components/live-title';\r\nimport './components/live-video-widget';\r\nimport './components/live-widget';\r\nimport './components/live-widgets';\r\nimport './components/main-nav';\r\nimport './components/make-stories';\r\nimport './components/modal';\r\nimport './components/modal-spa-trigger';\r\nimport './components/modal-trigger-promo-panel';\r\nimport './components/multimedia-carousel';\r\nimport './components/my-account-url';\r\nimport './components/news-feed';\r\nimport './components/news-feed-live';\r\nimport './components/news-feed-live-selector';\r\nimport './components/news-feed-preview';\r\nimport './components/notifications';\r\nimport './components/overlay';\r\nimport './components/page-spinner';\r\nimport './components/pagination';\r\nimport './components/player-bio';\r\nimport './components/player-carousel';\r\nimport './components/player-feature';\r\nimport './components/player-hero';\r\nimport './components/posts';\r\nimport './components/previous-opens-card';\r\nimport './components/promo-panel';\r\nimport './components/qual-draw';\r\nimport './components/qual-events';\r\nimport './components/qual-events-hero';\r\nimport './components/qual-leaderboard';\r\nimport './components/qualification-notification';\r\nimport './components/qualified-golfers';\r\nimport './components/qualified-player-card';\r\nimport './components/qualified-players-listing';\r\nimport './components/quote';\r\nimport './components/quote-image';\r\nimport './components/quote-two-images';\r\nimport './components/recaptcha';\r\nimport './components/related-news';\r\nimport './components/related-page';\r\nimport './components/reset-password-url';\r\nimport './components/richtext-editor';\r\nimport './components/right-header-link-item';\r\nimport './components/right-header-links';\r\nimport './components/rolex-watch';\r\nimport './components/row';\r\nimport './components/scores';\r\nimport './components/section';\r\nimport './components/sign-posting';\r\nimport './components/social-provider';\r\nimport './components/social-sharing';\r\nimport './components/spa-load';\r\nimport './components/spinner';\r\nimport './components/sso';\r\nimport './components/sticky-button-trigger';\r\nimport './components/sub-nav';\r\nimport './components/sub-page-nav';\r\nimport './components/sublayout';\r\nimport './components/tabs';\r\nimport './components/tee-times';\r\nimport './components/thank-you';\r\nimport './components/ticket-builder';\r\nimport './components/ticket-option';\r\nimport './components/tickets-hospitality-splitter';\r\nimport './components/tickets-listing';\r\nimport './components/upsell';\r\nimport './components/video';\r\nimport './components/video-header';\r\nimport './components/view-order-url';\r\nimport './components/vod-nav';\r\nimport './components/weglot';\r\nimport './components/comparison-tool';\r\n\r\n/* init app */\r\nimport app from './general/js/app';\r\n\r\napp.init();\r\n\r\n/* build svg sprite */\r\nconst files = require.context('./general/svg', true, /^\\.\\/.*\\.svg/);\r\nfiles.keys().forEach(files);\r\n\r\n// do not focus sprite in IE\r\nconst spriteNode = document.getElementById('__SVG_SPRITE_NODE__');\r\n\r\nif (spriteNode) {\r\n spriteNode.setAttribute('focusable', 'false');\r\n spriteNode.setAttribute('aria-hidden', 'true');\r\n}\r\n","var Handlebars = require(\"D:\\\\a\\\\1\\\\s\\\\src\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.classNames : depth0)) != null ? stack1.highlightedState : stack1), depth0));\n},\"3\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.classNames : depth0)) != null ? stack1.itemSelectable : stack1), depth0));\n},\"5\":function(container,depth0,helpers,partials,data) {\n return \"aria-selected=\\\"true\\\"\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n return \"aria-disabled=\\\"true\\\"\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression;\n\n return \" \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=container.lambda, alias2=container.escapeExpression, alias3=depth0 != null ? depth0 : (container.nullContext || {}), alias4=helpers.blockHelperMissing;\n\n return \"\\r\\n \"\n + ((stack1 = ((helper = (helper = helpers.content || (depth0 != null ? depth0.content : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(alias3,{\"name\":\"content\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n + \"\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(alias3,(depth0 != null ? depth0.removeItemButton : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n\";\n},\"useData\":true});","var Handlebars = require(\"D:\\\\a\\\\1\\\\s\\\\src\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.classNames : depth0)) != null ? stack1.itemDisabled : stack1), depth0));\n},\"3\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.classNames : depth0)) != null ? stack1.itemSelectable : stack1), depth0));\n},\"5\":function(container,depth0,helpers,partials,data) {\n return \"data-choice-disabled aria-disabled=\\\"true\\\"\\r\\n \";\n},\"7\":function(container,depth0,helpers,partials,data) {\n return \"data-choice-selectable\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=container.lambda, alias2=container.escapeExpression, alias3=depth0 != null ? depth0 : (container.nullContext || {}), alias4=helpers.helperMissing, alias5=\"function\";\n\n return \"\\r\\n \"\n + ((stack1 = ((helper = (helper = helpers.content || (depth0 != null ? depth0.content : depth0)) != null ? helper : alias4),(typeof helper === alias5 ? helper.call(alias3,{\"name\":\"content\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n + \"\\r\\n\\r\\n\";\n},\"useData\":true});","/* eslint-disable no-console */\r\nimport { Auth } from 'aws-amplify';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport Oauth from '../../sso/components/oauth';\r\n\r\nimport {\r\n OauthQueryConstants,\r\n removeParameterByName,\r\n getParameterByName,\r\n setOauthSignOutReturnUrl,\r\n} from '../../../general/js/utils';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\n\r\nexport default class SSOSignInComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init = () => {\r\n this.addListener(this.refs.ssoSignIn, 'click', this.handleOnSignInClick);\r\n this.addListener(this.refs.ssoRegister, 'click', this.handleOnRegisterClick);\r\n this.handleForceSignIn();\r\n this.handleForceSignUp();\r\n }\r\n\r\n onDestroy() {\r\n this.refs.ssoSignIn.removeEventListener('click', this.handleOnSignInClick);\r\n this.refs.ssoRegister.removeEventListener('click', this.handleOnRegisterClick);\r\n }\r\n\r\n handleOnSignInClick = () => {\r\n try {\r\n Oauth.federatedSignIn();\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n handleOnRegisterClick = () => {\r\n try {\r\n Oauth.signUp();\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n handleForceSignIn = () => {\r\n const forceSignInQueryParams = getParameterByName(OauthQueryConstants.FORCE_SIGN_IN);\r\n if (!hasValue(forceSignInQueryParams)) {\r\n return;\r\n }\r\n\r\n removeParameterByName(OauthQueryConstants.FORCE_SIGN_IN);\r\n\r\n Oauth.getCurrentAuthenticatedUser()\r\n .then((user) => {\r\n if (!hasValue(user)) {\r\n try {\r\n Oauth.federatedSignIn();\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n })\r\n .catch(() => {\r\n try {\r\n Oauth.federatedSignIn();\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n }\r\n\r\n handleForceSignUp = () => {\r\n const forceSignUpQueryParams = getParameterByName(OauthQueryConstants.FORCE_SIGN_UP);\r\n if (!hasValue(forceSignUpQueryParams)) {\r\n return;\r\n }\r\n\r\n Oauth.getCurrentAuthenticatedUser()\r\n .then((user) => {\r\n if (hasValue(user)) {\r\n try {\r\n setOauthSignOutReturnUrl();\r\n Auth.signOut({ global });\r\n } catch (error) {\r\n console.error('Error signing out:', error);\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n })\r\n .finally(() => {\r\n removeParameterByName(OauthQueryConstants.FORCE_SIGN_UP);\r\n try {\r\n Oauth.signUp();\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n }\r\n}\r\n"],"sourceRoot":""}