{"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/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","handleOauthSignedIn","setDataInLocalStorage","sub","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","AccountHomePage","AccountHomePage_classCallCheck","AccountHomePage_getPrototypeOf","loadHomePageTicketsData","AccountHomePage_assertThisInitialized","getHomePageTicketsDataCallbackUrl","isTicketsDataLoadedSuccessful","actionsToPerformValue","formSubTitle","actionOrderType","formSubtitleSplit","shouldDisplayHomePageTicketsData","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","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","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","handleChangeAccountDetailsContent","menuItem","theOneClubChildItem","resaleTicketsChildItem","childItem","accountDetailsLink","shouldDisplayTag","newUrl","onMouseDown","displayMenuChildren","shouldDisplayMenu","AccountMenu","toggleDisplayMenu","fullName","handleHashChange","user_account_AccountMenuLinks","UserAccountPage","UserAccountPage_classCallCheck","UserAccountPage_getPrototypeOf","modalTriggerPromoPanelRef","modalTrigger","UserAccountPage_assertThisInitialized","updateComponentToRenderDisplay","updateComponentToRender","displayMyAccountPage","displayAccountDetailsContent","isRefMounted","removeParameterByName","titleLabel","getTitleLabel","getInitials","customEvent","UserAccountPage_objectSpread","nexComponentToRender","callbackFunction","shouldRefreshComponent","getUserDataCallbackUrl","modalTriggerPromoPanel","dataLoadedSuccessful","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.ce08a703cc1dbe7b6f91.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 // Instead Call Identity Broker to get user details, pass the token.\r\n Auth.currentAuthenticatedUser({ bypassCache: true })\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\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 FormSpinner from '../../common/utility/FormSpinner';\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 { loading, formData } = this.props;\r\n const { formTitle } = formData;\r\n return (\r\n \r\n

    {formTitle}

    \r\n
    \r\n {loading ? / : null}\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 { isSaving, isConfirmationPopUpOpen } = this.state;\r\n const { loading, 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 {isSaving || loading ? / : null}\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, { 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\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 }\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 render() {\r\n const {\r\n loading,\r\n formData,\r\n isTicketsDataLoadedSuccessful,\r\n loadHomePageTicketsDataErrorMessages,\r\n homePageTicketsData,\r\n onViewFileSummaryClick,\r\n onViewTicketsClick\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 const formSubtitleSplit = getMultilineText(formSubTitle);\r\n const shouldDisplayHomePageTicketsData = !loading && isTicketsDataLoadedSuccessful && !isEmpty(homePageTicketsData);\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 {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)(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 loading,\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 || loading ? / : 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\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}) {\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 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 return (\r\n \r\n {!isEmpty(orders) &&\r\n
    \r\n

    {formMessageConstants.display}:

    \r\n \r\n
    }\r\n
    \r\n {displayNoOrderAvailableText()}\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)(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\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 } = 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.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\n\r\n\r\nclass UserTickets extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = initialState.userTicketsFormState;\r\n\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 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 } = 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 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
    ;\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 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 { actions, formData, userTicketsData, hideOldTickets } = 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)(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 } = 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 { 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 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 } = 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 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 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 { isEmpty } from '../utils/obj-utils';\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 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 shouldDisplayTag = !isEmpty(childItem.tag) && isOneClubMember;\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 } 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} {shouldDisplayTag ? childItem.tag : null}\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 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 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\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 this.modalTrigger = isRefMounted(this.modalTriggerPromoPanelRef) ?\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.toggleDisplayMenu();\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.toggleDisplayMenu();\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 { accountFormData, isUserAccountDataLoadedSuccessful, isUserNotSignedIn } = this.props;\r\n const { ssoDomain } = accountFormData;\r\n const { ssoAccountHomePageFields } = accountFormData;\r\n const { modalTriggerPromoPanel } = ssoAccountHomePageFields;\r\n const { displayResaleTicketsMenuItem } = accountFormData;\r\n const dataLoadedSuccessful = !isUserNotSignedIn && isUserAccountDataLoadedSuccessful && !isEmpty(userAccountData);\r\n\r\n if (isUserNotSignedIn) {\r\n return (\r\n \r\n \r\n );\r\n }\r\n\r\n if (isEmpty(userAccountData)) {\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\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 };\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)(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":""}