{"version":3,"sources":["webpack:///./project/randa/code/assets/components/account/js/sso-sign-in.component.js","webpack:///./project/randa/code/assets/components/form-phone-input/html/item.hbs","webpack:///./project/randa/code/assets/components/form-phone-input/html/choise.hbs","webpack:///./project/randa/code/assets/components/qualified-players-listing/html/flag-suggestion.hbs","webpack:///./project/randa/code/assets/components/qualified-players-listing/html/player-suggestion.hbs","webpack:///./project/randa/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/randa/code/assets/components/section/img/wave.png","webpack:///./project/randa/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/randa/code/assets/components/accordion/index.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-helpers/sign-in-form-helpers.js","webpack:///./project/randa/code/assets/components/sso/store/api/sign-in-form-api.js","webpack:///./project/randa/code/assets/components/sso/components/utils/constants/form-message-constants.js","webpack:///./project/randa/code/assets/components/sso/components/utils/constants/form-date-constants.js","webpack:///./project/randa/code/assets/components/sso/components/utils/file-state.js","webpack:///./project/randa/code/assets/components/sso/components/utils/order-type.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-helpers/upgrade-form-helper.js","webpack:///./project/randa/code/assets/general/js/basket/currency-helper.js","webpack:///./project/randa/code/assets/components/sso/store/actions/helpers/data-format-helper.js","webpack:///./project/randa/code/assets/components/sso/components/utils/user-data-cookie/user-data-cookie-constants.js","webpack:///./project/randa/code/assets/components/sso/components/utils/user-data-cookie/user-data-cookie-helpers.js","webpack:///./project/randa/code/assets/components/account/js/account.component.js","webpack:///./project/randa/code/assets/components/account/js/modal-trigger-login.component.js","webpack:///./project/randa/code/assets/components/account/js/oauth-handler.component.js","webpack:///./project/randa/code/assets/components/account/index.js","webpack:///./project/randa/code/assets/components/account-profile/js/account-profile.component.js","webpack:///./project/randa/code/assets/components/account-profile/index.js","webpack:///./project/randa/code/assets/components/alert-bars/js/alert-bar.js","webpack:///./project/randa/code/assets/components/alert-bars/js/alert-bars-layout.js","webpack:///./project/randa/code/assets/components/alert-bars/js/alert-bars.component.js","webpack:///./project/randa/code/assets/components/alert-bars/index.js","webpack:///./project/randa/code/assets/components/anti-forgery-token/js/anti-forgery-token.component.js","webpack:///./project/randa/code/assets/components/anti-forgery-token/index.js","webpack:///./project/randa/code/assets/components/ballot-cta/js/ballot-cta.component.js","webpack:///./project/randa/code/assets/components/ballot-cta/index.js","webpack:///./project/randa/code/assets/general/js/basket/constants.js","webpack:///./project/randa/code/assets/general/js/basket/validation-helper.js","webpack:///./project/randa/code/assets/general/js/throttle-message.js","webpack:///./project/randa/code/assets/general/js/basket/basket-service.js","webpack:///./project/randa/code/assets/general/js/basket/basket-controller.js","webpack:///./project/randa/code/assets/components/basket/js/basket-product.js","webpack:///./project/randa/code/assets/components/basket/js/basket-product-group.js","webpack:///./project/randa/code/assets/components/basket/js/basket-groups.js","webpack:///./project/randa/code/assets/components/basket/js/basket-total.js","webpack:///./project/randa/code/assets/components/sso/components/common/utility/BulletPointList.js","webpack:///./project/randa/code/assets/general/js/basket/basket-dialog-box-content-body.js","webpack:///./project/randa/code/assets/components/sso/components/forms/one-club-register/RegisterFormBanner.js","webpack:///./project/randa/code/assets/components/sso/components/common/utility/ConfirmationModal.js","webpack:///./project/randa/code/assets/components/basket/js/basket-pay-buttons.js","webpack:///./project/randa/code/assets/components/basket/js/basket-errors.js","webpack:///./project/randa/code/assets/general/js/basket/tracking-helper.js","webpack:///./project/randa/code/assets/components/basket/js/basket.js","webpack:///./project/randa/code/assets/general/js/basket/basket-products-helper.js","webpack:///./project/randa/code/assets/components/basket/js/basket.component.js","webpack:///./project/randa/code/assets/components/basket/index.js","webpack:///./project/randa/code/assets/components/basket-buy-links/js/basket-buy-links.component.js","webpack:///./project/randa/code/assets/components/basket-buy-links/index.js","webpack:///./project/randa/code/assets/components/basket-cleaner/js/basket-cleaner.component.js","webpack:///./project/randa/code/assets/components/basket-cleaner/index.js","webpack:///./project/randa/code/assets/components/basket-icon/js/basket-icon.componenet.js","webpack:///./project/randa/code/assets/components/basket-icon/index.js","webpack:///./project/randa/code/assets/components/carousel-controls/js/enums.js","webpack:///./project/randa/code/assets/components/contextual-manager/js/contextual-manager.component.js","webpack:///./project/randa/code/assets/components/contextual-manager/index.js","webpack:///./project/randa/code/assets/components/contextual-stats/js/contextual-stats-layout.js","webpack:///./project/randa/code/assets/components/contextual-stats/js/contextual-stats.component.js","webpack:///./project/randa/code/assets/components/contextual-stats/index.js","webpack:///./project/randa/code/assets/components/cookie-warning/js/cookie-warning.component.js","webpack:///./project/randa/code/assets/components/cookie-warning/index.js","webpack:///./project/randa/code/assets/components/countries/js/countries.component.js","webpack:///./project/randa/code/assets/components/countries/index.js","webpack:///./project/randa/code/assets/components/custom-analytics/store/actions/action-types.js","webpack:///./project/randa/code/assets/components/custom-analytics/store/reducers/initial-state.js","webpack:///./project/randa/code/assets/components/custom-analytics/store/reducers/index.js","webpack:///./project/randa/code/assets/components/custom-analytics/store/reducers/analytics-app-reducer.js","webpack:///./project/randa/code/assets/components/custom-analytics/store/reducers/api-status-reducer.js","webpack:///./project/randa/code/assets/components/custom-analytics/store/reducers/reducer-text-values.js","webpack:///./project/randa/code/assets/components/custom-analytics/store/actions/api-status-actions.js","webpack:///./project/randa/code/assets/components/custom-analytics/utils/object-utils.js","webpack:///./project/randa/code/assets/components/custom-analytics/utils/number-utils.js","webpack:///./project/randa/code/assets/components/custom-analytics/utils/date-utils.js","webpack:///./project/randa/code/assets/components/custom-analytics/store/actions/utils/response-data-utils.js","webpack:///./project/randa/code/assets/components/custom-analytics/store/actions/utils/url-utils.js","webpack:///./project/randa/code/assets/components/custom-analytics/store/actions/utils/data-format-utils.js","webpack:///./project/randa/code/assets/components/custom-analytics/store/api/api-utils.js","webpack:///./project/randa/code/assets/components/custom-analytics/store/actions/analytics-app-actions.js","webpack:///./project/randa/code/assets/components/custom-analytics/store/api/analytics-api.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/icons/RefreshIcon.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/icons/CloseIcon.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/inputs/CheckboxInput.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/analytics-filter-menu/AnalyticsFilterMenu.js","webpack:///./project/randa/code/assets/components/custom-analytics/context/analytics-app-context.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/analytics-grid-header/AnalyticsGridHeader.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/analytics-card/AnalyticsCard.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/analytics-cards/accepted-cookies-card/AcceptedCookiesCard.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/analytics-cards/active-visitors-card/ActiveVisitorsCard.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/analytics-cards/refused-cookies-card/RefusedCookiesCard.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/analytics-cards/average-time-card/AverageTimeCard.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/analytics-traffic-data/AnalyticsTrafficData.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/linear-progress-bar/LinearProgressbar.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/analytics-table/AnalyticsTable.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/analytics-pages-data/AnalyticsPagesData.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/analytics-average-time-spent-data/AnalyticsAverageTimeSpentData.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/analytics-radar/radar.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/analytics-radar/radar-default-options.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/analytics-radar/RadarChart.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/icons/DecrementIcon.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/icons/IncrementIcon.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/analytics-radar/AnalyticsPagesRadar.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/analytics-times-bar-chart/SingleBar.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/analytics-times-bar-chart/AnalyticsTimeBarChart.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/analytics-cards/analytics-over-time-table/AnalyticsOverTimeTable.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/analytics-grid/AnalyticsGrid.js","webpack:///./project/randa/code/assets/components/sso/components/common/utility/FormSpinner.js","webpack:///./project/randa/code/assets/components/custom-analytics/components/analytics-view-message/AnalyticsViewMessage.js","webpack:///./project/randa/code/assets/components/custom-analytics/views/CustomAnalyticsAppComponent.js","webpack:///./project/randa/code/assets/components/custom-analytics/custom-analytics.component.js","webpack:///./project/randa/code/assets/components/custom-analytics/store/configure-store.js","webpack:///./project/randa/code/assets/components/custom-analytics/index.js","webpack:///./project/randa/code/assets/components/custom-event-leaderboard/js/custom-event-leaderboard-name-column.js","webpack:///./project/randa/code/assets/components/custom-event-leaderboard/js/custom-event-leaderboard-players-column.js","webpack:///./project/randa/code/assets/components/custom-event-leaderboard/js/custom-event-leaderboard-score-to-par-column.js","webpack:///./project/randa/code/assets/components/custom-event-leaderboard/js/custom-event-leaderboard-score-player-cell.js","webpack:///./project/randa/code/assets/components/custom-event-leaderboard/js/custom-event-leaderboard-hole-by-hole-widget.js","webpack:///./project/randa/code/assets/components/custom-event-leaderboard/js/custom-event-leaderboard-position-column.js","webpack:///./project/randa/code/assets/components/custom-event-leaderboard/js/custom-event-leaderboard-tee-time-group.js","webpack:///./project/randa/code/assets/components/custom-event-leaderboard/js/custom-event-leaderboard-hole-column.js","webpack:///./project/randa/code/assets/components/sitecore-fields/js/sitecore-image-field.js","webpack:///./project/randa/code/assets/components/sitecore-fields/js/sitecore-link-field.js","webpack:///./project/randa/code/assets/components/custom-event-leaderboard/js/custom-event-leaderboard-rows.js","webpack:///./project/randa/code/assets/components/custom-event-leaderboard/js/custom-event-leaderboard-table.js","webpack:///./project/randa/code/assets/components/custom-event-leaderboard/js/custom-event-leaderboard-header.js","webpack:///./project/randa/code/assets/components/custom-event-leaderboard/js/custom-event-leaderboard-container.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/sortingStrategies.js","webpack:///./project/randa/code/assets/components/custom-event-leaderboard/js/custom-event-leaderboard-alphalist.js","webpack:///./project/randa/code/assets/components/custom-event-leaderboard/js/custom-event-leaderboard-layout.js","webpack:///./project/randa/code/assets/components/custom-event-leaderboard/js/custom-event-leaderboard.component.js","webpack:///./project/randa/code/assets/components/custom-event-leaderboard/index.js","webpack:///./project/randa/code/assets/components/data-capture/js/data-capture-wizard/step-free-form.js","webpack:///./project/randa/code/assets/components/data-capture/js/data-capture-wizard/step-dropdown.js","webpack:///./project/randa/code/assets/components/sso/components/utils/constants/form-validation-constants.js","webpack:///./project/randa/code/assets/components/sso/validators/text-validators.js","webpack:///./project/randa/code/assets/components/data-capture/js/data-capture-wizard/step-details.js","webpack:///./project/randa/code/assets/components/data-capture/js/data-capture-wizard/step-finish-status.js","webpack:///./project/randa/code/assets/components/data-capture/js/data-capture-wizard/step-quiz.js","webpack:///./project/randa/code/assets/components/data-capture/js/data-capture-wizard/with-data-capture.js","webpack:///./project/randa/code/assets/components/data-capture/js/data-capture-wizard/wizard-dashboard.js","webpack:///./project/randa/code/assets/components/data-capture/js/data-capture.component.js","webpack:///./project/randa/code/assets/components/data-capture/index.js","webpack:///./project/randa/code/assets/components/dfp-banner/js/dfp-banner.component.js","webpack:///./project/randa/code/assets/components/dfp-banner/index.js","webpack:///./project/randa/code/assets/components/dot-mailer-tracker/js/store/actions/action-types.js","webpack:///./project/randa/code/assets/components/dot-mailer-tracker/js/store/reducers/initial-state.js","webpack:///./project/randa/code/assets/components/dot-mailer-tracker/js/store/reducers/index.js","webpack:///./project/randa/code/assets/components/dot-mailer-tracker/js/store/reducers/dot-mailer-tracker-reducer.js","webpack:///./project/randa/code/assets/components/dot-mailer-tracker/js/store/reducers/api-status-reducer.js","webpack:///./project/randa/code/assets/components/dot-mailer-tracker/js/store/actions/api-status-actions.js","webpack:///./project/randa/code/assets/components/dot-mailer-tracker/js/store/api/api-utils.js","webpack:///./project/randa/code/assets/components/dot-mailer-tracker/js/store/api/dot-mailer-tracker-api.js","webpack:///./project/randa/code/assets/components/dot-mailer-tracker/js/store/actions/dot-mailer-tracker-actions.js","webpack:///./project/randa/code/assets/components/dot-mailer-tracker/js/utils/number-utils.js","webpack:///./project/randa/code/assets/components/dot-mailer-tracker/js/dot-mailer-tracker-form.component.js","webpack:///./project/randa/code/assets/components/dot-mailer-tracker/js/dot-mailer-tracker-base.component.js","webpack:///./project/randa/code/assets/components/dot-mailer-tracker/js/store/configure-store.js","webpack:///./project/randa/code/assets/components/dot-mailer-tracker/index.js","webpack:///./project/randa/code/assets/components/enhanced-stats/js/enhanced-stats.js","webpack:///./project/randa/code/assets/components/enhanced-stats/js/enhanced-stats.component.js","webpack:///./project/randa/code/assets/components/enhanced-stats/index.js","webpack:///./project/randa/code/assets/components/cards/js/news-card.js","webpack:///./project/randa/code/assets/components/cards/js/fact-card.js","webpack:///./project/randa/code/assets/components/cards/js/player-card.js","webpack:///./project/randa/code/assets/components/cards/js/social-card.js","webpack:///./project/randa/code/assets/components/news-feed/js/enums.js","webpack:///./project/randa/code/assets/components/cards/js/standalone-fact-card.js","webpack:///./project/randa/code/assets/components/news-feed/js/news-feed-listing.js","webpack:///./project/randa/code/assets/components/news-feed/js/row-patterns.js","webpack:///./project/randa/code/assets/components/feature-content/js/feature-content.component.js","webpack:///./project/randa/code/assets/components/feature-content/index.js","webpack:///./project/randa/code/assets/components/final-leaderboard/js/final-leaderboard.component.js","webpack:///./project/randa/code/assets/components/final-leaderboard/index.js","webpack:///./project/randa/code/assets/components/force-sign-in/js/force-sign-in.component.js","webpack:///./project/randa/code/assets/components/force-sign-in/js/constants.js","webpack:///./project/randa/code/assets/components/force-sign-in/index.js","webpack:///./project/randa/code/assets/components/social-provider/js/facebook.js","webpack:///./project/randa/code/assets/components/social-provider/js/google.js","webpack:///./project/randa/code/assets/components/social-provider/js/amazon.js","webpack:///./project/randa/code/assets/components/form/js/form-sso.component.js","webpack:///./project/randa/code/assets/components/form/index.js","webpack:///./project/randa/code/assets/components/form-custom-select/js/choices-wrapper.js","webpack:///./project/randa/code/assets/components/form-custom-select/js/form-custom-select.component.js","webpack:///./project/randa/code/assets/components/form-custom-select/index.js","webpack:///./project/randa/code/assets/components/form-field/js/form-field.component.js","webpack:///./project/randa/code/assets/components/form-field/index.js","webpack:///./project/randa/code/assets/components/form-file/js/form-file.component.js","webpack:///./project/randa/code/assets/components/form-file/index.js","webpack:///./project/randa/code/assets/components/form-phone-input/js/form-phone-input.component.js","webpack:///./project/randa/code/assets/components/form-phone-input/index.js","webpack:///./project/randa/code/assets/components/full-size-hero-banner/js/full-size-hero-banner.js","webpack:///./project/randa/code/assets/components/full-size-hero-banner/js/full-size-hero-banner.component.js","webpack:///./project/randa/code/assets/components/full-size-hero-banner/index.js","webpack:///./project/randa/code/assets/components/gtm-trigger/js/gtm-trigger.component.js","webpack:///./project/randa/code/assets/components/gtm-trigger/index.js","webpack:///./project/randa/code/assets/components/header/js/header.component.js","webpack:///./project/randa/code/assets/components/header/index.js","webpack:///./project/randa/code/assets/components/hero/js/hero.component.js","webpack:///./project/randa/code/assets/components/hero/index.js","webpack:///./project/randa/code/assets/components/image-gallery/js/image-gallery.component.js","webpack:///./project/randa/code/assets/components/image-gallery/index.js","webpack:///./project/randa/code/assets/components/imga-iframe/js/imga-iframe-helpers.js","webpack:///./project/randa/code/assets/components/imga-iframe/js/imga-iframe-holder.js","webpack:///./project/randa/code/assets/general/js/utils/screen-size-utils.js","webpack:///./project/randa/code/assets/components/imga-iframe/js/imga-iframe.component.js","webpack:///./project/randa/code/assets/components/imga-iframe/index.js","webpack:///./project/randa/code/assets/general/js/utils/decode-utils.js","webpack:///./project/randa/code/assets/general/js/utils/jwt-utils.js","webpack:///./project/randa/code/assets/components/imga-matchups-game/js/imga-matchups-game-layout.js","webpack:///./project/randa/code/assets/components/imga-matchups-game/js/imga-matchups-game.component.js","webpack:///./project/randa/code/assets/components/imga-matchups-game/index.js","webpack:///./project/randa/code/assets/components/large-hero/js/large-hero.component.js","webpack:///./project/randa/code/assets/components/large-hero/index.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-alpha-list.js","webpack:///./project/randa/code/assets/components/favorite-button/js/favorite-button.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-hbh-button.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-cell-hole-title.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-r-score.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-cell-player-title.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-cell-movers-title.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-cell-scores-title.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-cell-title-basic.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-row-title.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-cell-pos.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-movers-basic-icon.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-movers-extended-icon.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-cell-sort.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-featured-group-live.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-cell-player-extra.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-cell-player-basic.js","webpack:///./project/randa/code/assets/components/leaderboard/js/actions/renderData.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-player-result.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-cell-player-leaders.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-cell-player.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-cell-to-par.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-cell-today.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-cell-total.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-cell-hole.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-cell-scores.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-cell-round.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-cell-round-total.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-rows.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-table.js","webpack:///./project/randa/code/assets/components/leaderboard/js/containers/leaderboard-table-wrapper.js","webpack:///./project/randa/code/assets/components/leaderboard/js/components/leaderboard-info-button.js","webpack:///./project/randa/code/assets/components/leaderboard/js/actions/get-players-data.js","webpack:///./project/randa/code/assets/components/leaderboard/js/leaderboard-container.js","webpack:///./project/randa/code/assets/components/leaderboard/js/leaderboard-layout.js","webpack:///./project/randa/code/assets/components/leaderboard/js/leaderboard.component.js","webpack:///./project/randa/code/assets/components/leaderboard/index.js","webpack:///./project/randa/code/assets/components/leaderboard-widget/js/leaderboard-widget-alpha-list.js","webpack:///./project/randa/code/assets/components/leaderboard-widget/js/leaderboard-widget-layout.js","webpack:///./project/randa/code/assets/components/leaderboard-widget/js/leaderboard-widget.component.js","webpack:///./project/randa/code/assets/components/leaderboard-widget/index.js","webpack:///./project/randa/code/assets/components/listing/js/ListingLoadMore.js","webpack:///./project/randa/code/assets/components/listing/js/constants.js","webpack:///./project/randa/code/assets/components/live-header/js/live-header-title.js","webpack:///./project/randa/code/assets/components/live-header/js/live-header.component.js","webpack:///./project/randa/code/assets/components/live-header/index.js","webpack:///./project/randa/code/assets/components/live-navigation/js/live-navigation.component.js","webpack:///./project/randa/code/assets/components/live-navigation/index.js","webpack:///./project/randa/code/assets/components/live-submenu/js/live-submenu.component.js","webpack:///./project/randa/code/assets/components/live-submenu/index.js","webpack:///./project/randa/code/assets/components/live-video-widget/js/live-video-widget.component.js","webpack:///./project/randa/code/assets/components/live-video-widget/index.js","webpack:///./project/randa/code/assets/components/live-widget/js/live-widget-posts.js","webpack:///./project/randa/code/assets/components/live-widget/js/live-widget-embedded-content.js","webpack:///./project/randa/code/assets/components/live-widget/js/live-widget.component.js","webpack:///./project/randa/code/assets/components/live-widget/index.js","webpack:///./project/randa/code/assets/components/main-nav/js/main-nav.component.js","webpack:///./project/randa/code/assets/components/main-nav/index.js","webpack:///./project/randa/code/assets/components/make-stories/js/make-stories-layout.js","webpack:///./project/randa/code/assets/components/make-stories/js/make-stories.component.js","webpack:///./project/randa/code/assets/components/make-stories/index.js","webpack:///./project/randa/code/assets/general/js/modal-spa.js","webpack:///./project/randa/code/assets/components/modal-spa-trigger/js/modal-spa-trigger.component.js","webpack:///./project/randa/code/assets/components/modal-spa-trigger/index.js","webpack:///./project/randa/code/assets/components/modal-trigger-promo-panel/js/modal-trigger-promo-panel-wrapper.js","webpack:///./project/randa/code/assets/components/modal-trigger-promo-panel/js/modal-trigger-promo-panel.component.js","webpack:///./project/randa/code/assets/components/modal-trigger-promo-panel/index.js","webpack:///./project/randa/code/assets/components/multimedia-carousel/js/multimedia-carousel.component.js","webpack:///./project/randa/code/assets/components/multimedia-carousel/index.js","webpack:///./project/randa/code/assets/components/my-account-url/js/my-account-url.component.js","webpack:///./project/randa/code/assets/components/my-account-url/index.js","webpack:///./project/randa/code/assets/components/nbc-alert-bars/js/nbc-alert-bar.js","webpack:///./project/randa/code/assets/components/nbc-alert-bars/js/nbc-alert-bars-layout.js","webpack:///./project/randa/code/assets/components/nbc-alert-bars/js/nbc-alert-bars.component.js","webpack:///./project/randa/code/assets/components/nbc-alert-bars/index.js","webpack:///./project/randa/code/assets/components/news-feed/js/patterns.js","webpack:///./project/randa/code/assets/components/listing/js/listing-helper.js","webpack:///./project/randa/code/assets/components/listing/js/Listing.js","webpack:///./project/randa/code/assets/components/news-feed/js/news-feed-type-filter.js","webpack:///./project/randa/code/assets/components/news-feed/js/news-feed-tag-filter.js","webpack:///./project/randa/code/assets/components/news-feed/js/news-feed-header.js","webpack:///./project/randa/code/assets/components/cards/js/banner-card.js","webpack:///./project/randa/code/assets/components/news-feed/js/news-feed-layout.js","webpack:///./project/randa/code/assets/components/news-feed/js/news-feed.component.js","webpack:///./project/randa/code/assets/components/news-feed/index.js","webpack:///./project/randa/code/assets/components/news-feed-live/js/news-feed-live-layout.js","webpack:///./project/randa/code/assets/components/news-feed-live/js/news-feed-live.component.js","webpack:///./project/randa/code/assets/components/news-feed-live/index.js","webpack:///./project/randa/code/assets/components/news-feed-live-selector/js/news-feed-live-selector.component.js","webpack:///./project/randa/code/assets/components/news-feed-live-selector/index.js","webpack:///./project/randa/code/assets/components/news-feed-preview/js/news-feed-preview.component.js","webpack:///./project/randa/code/assets/components/news-feed-preview/js/patterns.js","webpack:///./project/randa/code/assets/components/news-feed-preview/index.js","webpack:///./project/randa/code/assets/components/one-club-button/js/one-club-button.component.js","webpack:///./project/randa/code/assets/components/one-club-button/index.js","webpack:///./project/randa/code/assets/components/player-carousel/js/player-carousel.component.js","webpack:///./project/randa/code/assets/components/player-carousel/index.js","webpack:///./project/randa/code/assets/components/player-hero/js/player-hero.component.js","webpack:///./project/randa/code/assets/components/player-hero/index.js","webpack:///./project/randa/code/assets/components/player-profiles-stats/js/player-profiles-stats.component.js","webpack:///./project/randa/code/assets/components/player-profiles-stats/index.js","webpack:///./project/randa/code/assets/components/player-registration-form/js/reducer.js","webpack:///./project/randa/code/assets/components/player-registration-form/js/types.js","webpack:///./project/randa/code/assets/components/player-registration-form/js/constants.js","webpack:///./project/randa/code/assets/components/player-registration-form/js/actions.js","webpack:///./project/randa/code/assets/components/player-registration-form/js/step.js","webpack:///./project/randa/code/assets/components/player-registration-form/js/step1.js","webpack:///./project/randa/code/assets/components/player-registration-form/js/step2.js","webpack:///./project/randa/code/assets/components/player-registration-form/js/step3.js","webpack:///./project/randa/code/assets/components/player-registration-form/js/step4.js","webpack:///./project/randa/code/assets/components/player-registration-form/js/navigation.js","webpack:///./project/randa/code/assets/components/player-registration-form/js/player-registration.component.js","webpack:///./project/randa/code/assets/components/player-registration-form/index.js","webpack:///./project/randa/code/assets/components/previous-opens/js/previous-opens.component.js","webpack:///./project/randa/code/assets/components/previous-opens/index.js","webpack:///./project/randa/code/assets/components/qual-draw/js/qual-draw-table-player.js","webpack:///./project/randa/code/assets/components/qual-draw/js/enums.js","webpack:///./project/randa/code/assets/components/qual-draw/js/qual-draw-search-input.js","webpack:///./project/randa/code/assets/components/qual-draw/js/qual-draw-select.js","webpack:///./project/randa/code/assets/components/qual-draw/js/action-helper.js","webpack:///./project/randa/code/assets/components/qual-draw/js/filtering-strategies.js","webpack:///./project/randa/code/assets/components/qual-draw/js/qual-draw-container.js","webpack:///./project/randa/code/assets/components/qual-draw/js/qual-draw-layout.js","webpack:///./project/randa/code/assets/components/qual-draw/js/qual-draw.component.js","webpack:///./project/randa/code/assets/components/qual-draw/index.js","webpack:///./project/randa/code/assets/components/qual-events/js/qual-events-item.js","webpack:///./project/randa/code/assets/components/qual-events/js/qual-events.container.js","webpack:///./project/randa/code/assets/components/qual-events/js/qual-events.component.js","webpack:///./project/randa/code/assets/components/qual-events/index.js","webpack:///./project/randa/code/assets/components/qual-leaderboard/js/qual-leaderboard-scoring-info.js","webpack:///./project/randa/code/assets/components/qual-leaderboard/js/qual-leaderboard-const.js","webpack:///./project/randa/code/assets/components/qual-leaderboard/js/helpers/roundHelper.js","webpack:///./project/randa/code/assets/components/qual-leaderboard/js/qual-leaderboard-player-row.js","webpack:///./project/randa/code/assets/components/qual-leaderboard/js/actions/render-color-state.js","webpack:///./project/randa/code/assets/components/qual-leaderboard/js/enums.js","webpack:///./project/randa/code/assets/components/qual-leaderboard/js/qual-leaderboard-row-title.js","webpack:///./project/randa/code/assets/components/qual-leaderboard/js/helpers/utils.js","webpack:///./project/randa/code/assets/components/qual-leaderboard/js/qual-leaderboard-table.js","webpack:///./project/randa/code/assets/components/qual-leaderboard/js/helpers/viewHelper.js","webpack:///./project/randa/code/assets/components/qual-leaderboard/js/qual-leaderboard-article.js","webpack:///./project/randa/code/assets/components/qual-leaderboard/js/qualSortingStrategies.js","webpack:///./project/randa/code/assets/components/qual-leaderboard/js/qual-leaderboard-container.js","webpack:///./project/randa/code/assets/components/qual-leaderboard/js/qual-leaderboard-layout.js","webpack:///./project/randa/code/assets/components/qual-leaderboard/js/qual-leaderboard.component.js","webpack:///./project/randa/code/assets/components/qual-leaderboard/index.js","webpack:///./project/randa/code/assets/components/qualified-player-card/js/QualifiedPlayerCard.js","webpack:///./project/randa/code/assets/components/qualified-player-card/js/QualifiedPlayerCardItem.js","webpack:///./project/randa/code/assets/components/qualified-golfers/js/QualifiedGolfersPlayersList.js","webpack:///./project/randa/code/assets/general/js/string-helpers.js","webpack:///./project/randa/code/assets/components/qualified-golfers/js/PreviousQualificationEvent.js","webpack:///./project/randa/code/assets/components/qualified-golfers/js/PreviousQualificationEvents.js","webpack:///./project/randa/code/assets/components/qualified-golfers/js/actions.js","webpack:///./project/randa/code/assets/components/qualified-golfers/js/types.js","webpack:///./project/randa/code/assets/components/qualified-golfers/js/QualifiedGolfersPreview.js","webpack:///./project/randa/code/assets/components/qualified-golfers/js/QualifiedGolfers.js","webpack:///./project/randa/code/assets/components/qualified-golfers/js/reducer.js","webpack:///./project/randa/code/assets/components/qualified-golfers/js/qualified-golfers.component.js","webpack:///./project/randa/code/assets/components/qualified-golfers/index.js","webpack:///./project/randa/code/assets/components/qualified-player-card/js/qualified-player-card.component.js","webpack:///./project/randa/code/assets/components/qualified-player-card/index.js","webpack:///./project/randa/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingItem.js","webpack:///./project/randa/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingContent.js","webpack:///./project/randa/code/assets/components/predictive-search/js/PredictiveSearch.js","webpack:///./project/randa/code/assets/components/qualified-players-listing/js/QualifiedPlayersPredictiveSearch.js","webpack:///./project/randa/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingLoadMore.js","webpack:///./project/randa/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingFiltersTriggerButton.js","webpack:///./project/randa/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingControls.js","webpack:///./project/randa/code/assets/components/listing/js/ListingSelect.js","webpack:///./project/randa/code/assets/components/listing/js/ListingCheckList.js","webpack:///./project/randa/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingFilters.js","webpack:///./project/randa/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingHeader.js","webpack:///./project/randa/code/assets/components/qualified-players-listing/js/QualifiedPlayersListing.js","webpack:///./project/randa/code/assets/components/qualified-players-listing/js/qualified-players-listing.component.js","webpack:///./project/randa/code/assets/components/qualified-players-listing/index.js","webpack:///./project/randa/code/assets/components/recaptcha/index.js","webpack:///./project/randa/code/assets/components/reset-password-url/js/reset-password-url.component.js","webpack:///./project/randa/code/assets/components/reset-password-url/index.js","webpack:///./project/randa/code/assets/components/right-header-link-item/js/right-header-link-item-helpers.js","webpack:///./project/randa/code/assets/components/right-header-link-item/js/right-header-link-item-constants.js","webpack:///./project/randa/code/assets/components/right-header-link-item/js/right-header-link-item.component.js","webpack:///./project/randa/code/assets/components/right-header-link-item/index.js","webpack:///./project/randa/code/assets/components/right-header-links/js/right-header-links.component.js","webpack:///./project/randa/code/assets/components/right-header-links/index.js","webpack:///./project/randa/code/assets/components/rolex-watch/js/rolex-watch.component.js","webpack:///./project/randa/code/assets/components/rolex-watch/index.js","webpack:///./project/randa/code/assets/components/sso/helpers/user-activity-helper.js","webpack:///./project/randa/code/assets/components/sso/components/sso-form-context.js","webpack:///./project/randa/code/assets/components/sso/components/utils/constants/form-field-constants.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/address-form-state.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-helpers/initial-state.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/order-history-form-state.js","webpack:///./project/randa/code/assets/components/sso/components/common/utility/FormMessage.js","webpack:///./project/randa/code/assets/components/sso/components/utils/field-types.js","webpack:///./project/randa/code/assets/components/sso/components/utils/constants/form-style-constants.js","webpack:///./project/randa/code/assets/components/sso/components/common/utility/FieldHeader.js","webpack:///./project/randa/code/assets/components/sso/components/common/utility/FormTextInput.js","webpack:///./project/randa/code/assets/components/sso/components/common/utility/FormCaptchaField.js","webpack:///./project/randa/code/assets/components/sso/components/common/FormOffers.js","webpack:///./project/randa/code/assets/components/sso/components/common/FormPolicy.js","webpack:///./project/randa/code/assets/components/sso/components/common/FormConsentDetails.js","webpack:///./project/randa/code/assets/components/sso/components/common/utility/FormSelectField.js","webpack:///./project/randa/code/assets/components/sso/components/common/utility/FormDateField.js","webpack:///./project/randa/code/assets/components/sso/components/common/FormMultipleInterests.js","webpack:///./project/randa/code/assets/components/sso/components/common/FormContactInfo.js","webpack:///./project/randa/code/assets/components/sso/components/common/utility/FormChecboxInput.js","webpack:///./project/randa/code/assets/components/sso/components/common/utility/FormLookupField.js","webpack:///./project/randa/code/assets/components/sso/components/common/utility/FormHTML.js","webpack:///./project/randa/code/assets/components/sso/components/common/utility/FormMobilePhoneInput.js","webpack:///./project/randa/code/assets/components/sso/components/common/utility/FormMastercardField.js","webpack:///./project/randa/code/assets/components/sso/components/common/utility/FormTextAndImageField.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-fields-config.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-helpers/form-field-helpers.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-builder.js","webpack:///./project/randa/code/assets/components/sso/store/actions/action-types.js","webpack:///./project/randa/code/assets/components/sso/store/actions/api-response-messages.js","webpack:///./project/randa/code/assets/components/sso/store/actions/api-status-actions.js","webpack:///./project/randa/code/assets/components/sso/store/actions/register-form-actions.js","webpack:///./project/randa/code/assets/components/sso/store/api/register-form-api.js","webpack:///./project/randa/code/assets/components/sso/validators/date-validators.js","webpack:///./project/randa/code/assets/components/sso/validators/policy-validators.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-field-validators.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-helpers/form-state-helper.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-validator.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-scroll-helper.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-helpers/form-field-display-helpers.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/header-link-display.js","webpack:///./project/randa/code/assets/components/sso/components/common/utility/SSOFormHeader.js","webpack:///./project/randa/code/assets/components/sso/components/common/utility/SSOFormFooter.js","webpack:///./project/randa/code/assets/components/sso/components/common/utility/GTMUserActions.js","webpack:///./project/randa/code/assets/components/modal/js/modal-constants.js","webpack:///./project/randa/code/assets/components/modal/js/modal-helpers.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-helpers/form-modal-helpers.js","webpack:///./project/randa/code/assets/components/sso/components/forms/one-club-register/OneClubRegisterForm.js","webpack:///./project/randa/code/assets/components/sso/components/forms/user-register-success-form/UserRegisterSuccessForm.js","webpack:///./project/randa/code/assets/components/sso/components/forms/ballot/BallotRegisterForm.js","webpack:///./project/randa/code/assets/components/sso/store/actions/helpers/message-helper.js","webpack:///./project/randa/code/assets/components/sso/store/actions/upgrade-account-actions.js","webpack:///./project/randa/code/assets/components/sso/store/actions/user-address-actions.js","webpack:///./project/randa/code/assets/components/sso/store/actions/user-account-actions.js","webpack:///./project/randa/code/assets/components/sso/store/actions/helpers/data-format-helper-dotdigital.js","webpack:///./project/randa/code/assets/components/sso/components/forms/ballot/helpers/ballot-summary-form-data.js","webpack:///./project/randa/code/assets/components/sso/components/forms/ballot/BallotSummaryForm.js","webpack:///./project/randa/code/assets/components/sso/store/actions/item-list-form-actions.js","webpack:///./project/randa/code/assets/components/sso/store/api/item-list-form-api.js","webpack:///./project/randa/code/assets/components/sso/components/forms/item-list/SSOItemListForm.js","webpack:///./project/randa/code/assets/components/sso/components/forms/ballot/BallotSignInForm.js","webpack:///./project/randa/code/assets/components/sso/components/forms/ballot/BallotSignInSuccessForm.js","webpack:///./project/randa/code/assets/components/sso/store/actions/forgot-password-actions.js","webpack:///./project/randa/code/assets/components/sso/store/api/forgot-password-form-api.js","webpack:///./project/randa/code/assets/components/sso/components/forms/forgot-password/ForgotPasswordForm.js","webpack:///./project/randa/code/assets/components/sso/store/actions/reset-password-actions.js","webpack:///./project/randa/code/assets/components/sso/store/api/reset-password-form-api.js","webpack:///./project/randa/code/assets/components/sso/store/actions/cognito-challenge-names.js","webpack:///./project/randa/code/assets/components/sso/store/actions/sign-in-form-actions.js","webpack:///./project/randa/code/assets/components/sso/components/forms/reset-password/ResetPasswordForm.js","webpack:///./project/randa/code/assets/components/sso/components/forms/change-password/ChangePasswordFooter.js","webpack:///./project/randa/code/assets/components/sso/components/forms/change-password/ChangePasswordForm.js","webpack:///./project/randa/code/assets/components/sso/store/actions/verify-email-actions.js","webpack:///./project/randa/code/assets/components/sso/store/api/verify-email-form-api.js","webpack:///./project/randa/code/assets/components/sso/components/forms/verify-email/VerifyEmailForm.js","webpack:///./project/randa/code/assets/components/sso/components/forms/user-details/UserDetailsForm.js","webpack:///./project/randa/code/assets/components/sso/components/forms/account-home-page/LastOrder.js","webpack:///./project/randa/code/assets/components/sso/components/forms/account-home-page/Upcoming.js","webpack:///./project/randa/code/assets/components/sso/components/forms/account-home-page/FileActionsTable.js","webpack:///./project/randa/code/assets/components/sso/components/forms/account-home-page/AccountHomePage.js","webpack:///./project/randa/code/assets/components/sso/components/common/utility/SSOCloseButton.js","webpack:///./project/randa/code/assets/components/sso/components/forms/user-addresses/AddAddressForm.js","webpack:///./project/randa/code/assets/components/sso/components/forms/user-addresses/FormAddressDisplayField.js","webpack:///./project/randa/code/assets/components/sso/components/forms/user-addresses/UpdateAddressForm.js","webpack:///./project/randa/code/assets/components/sso/components/utils/addresses-form-constants.js","webpack:///./project/randa/code/assets/components/sso/components/forms/user-addresses/UserAddressesForm.js","webpack:///./project/randa/code/assets/components/sso/components/forms/email-notification-settings/EmailNotificationSettingsForm.js","webpack:///./project/randa/code/assets/components/sso/components/forms/push-notifications/PushNotificationsForm.js","webpack:///./project/randa/code/assets/components/sso/components/forms/resale-tickets/ResaleTicketsButton.js","webpack:///./project/randa/code/assets/components/sso/components/forms/resale-tickets/ResaleTicketsFAQ.js","webpack:///./project/randa/code/assets/components/sso/components/forms/resale-tickets/resale-tickets-helpers.js","webpack:///./project/randa/code/assets/components/sso/components/forms/resale-tickets/ResaleTickets.js","webpack:///./project/randa/code/assets/components/sso/components/forms/user-order-history/order-history-display/Order.js","webpack:///./project/randa/code/assets/components/sso/components/forms/user-order-history/order-history-display/OrdersPagination.js","webpack:///./project/randa/code/assets/components/sso/components/forms/user-order-history/order-history-display/OrdersList.js","webpack:///./project/randa/code/assets/components/sso/components/forms/user-order-history/file-summary-display/FileSummary.js","webpack:///./project/randa/code/assets/components/sso/components/forms/user-order-history/file-summary-display/FileContentSummary.js","webpack:///./project/randa/code/assets/components/sso/components/forms/user-order-history/file-summary-display/InstallmentTable.js","webpack:///./project/randa/code/assets/components/sso/components/forms/user-order-history/file-summary-display/PaymentSummary.js","webpack:///./project/randa/code/assets/components/sso/components/forms/user-order-history/file-summary-display/ChangeHistorySection.js","webpack:///./project/randa/code/assets/components/sso/components/utils/order-history-form-constants.js","webpack:///./project/randa/code/assets/components/sso/components/forms/user-order-history/UserOrderHistory.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/user-details-form-data.js","webpack:///./project/randa/code/assets/components/sso/components/utils/payment-status.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/account-form-data-utils.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/account-home-page-form-data.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/user-addresses-display-form-data.js","webpack:///./project/randa/code/assets/components/sso/components/forms/user-tickets/TicketOwnerDialog.js","webpack:///./project/randa/code/assets/components/sso/components/forms/user-tickets/TicketsDisplay.js","webpack:///./project/randa/code/assets/components/sso/components/forms/user-tickets/TicketGroups.js","webpack:///./project/randa/code/assets/components/sso/components/forms/user-tickets/TicketModalBody.js","webpack:///./project/randa/code/assets/components/sso/components/forms/user-tickets/UserTickets.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/change-password-form-data.js","webpack:///./project/randa/code/assets/components/sso/components/forms/the-one-club/TheOneClubIntro.js","webpack:///./project/randa/code/assets/components/sso/components/forms/the-one-club/TheOneClubMotivation.js","webpack:///./project/randa/code/assets/components/sso/components/forms/the-one-club/TheOneClubFAQ.js","webpack:///./project/randa/code/assets/components/sso/components/forms/the-one-club/LeaveOneClubModalBody.js","webpack:///./project/randa/code/assets/components/sso/components/forms/the-one-club/TheOneClub.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/order-history-display-form-data.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/user-tickets-display-form-data.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/the-one-club-form-data.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/tickets-resale-form-data.js","webpack:///./project/randa/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/email-notification-settings-form-data.js","webpack:///./project/randa/code/assets/components/sso/components/utils/user-account-constants.js","webpack:///./project/randa/code/assets/components/sso/components/user-account/AccountMenuLinks.js","webpack:///./project/randa/code/assets/components/sso/components/user-account/AccountMenu.js","webpack:///./project/randa/code/assets/components/sso/components/user-account/UserAccountPage.js","webpack:///./project/randa/code/assets/components/sso/components/forms/default-register/DefaultRegisterForm.js","webpack:///./project/randa/code/assets/components/sso/components/forms/ticketing-register/TicketingRegisterForm.js","webpack:///./project/randa/code/assets/components/sso/components/forms/sign-in/SignInForm.js","webpack:///./project/randa/code/assets/components/sso/store/actions/basket-actions.js","webpack:///./project/randa/code/assets/components/sso/components/forms/upgrade-to-ticketing/UpgradeToTicketingAccountForm.js","webpack:///./project/randa/code/assets/components/sso/components/forms/upgrade-to-one-club/UpgradeToOneClubAccountForm.js","webpack:///./project/randa/code/assets/components/sso/components/forms/new-password-required/NewPasswordRequiredForm.js","webpack:///./project/randa/code/assets/components/sso/components/forms/ra-members/RaMembersRegisterForm.js","webpack:///./project/randa/code/assets/components/sso/components/forms/ra-members/RaMembersSignInForm.js","webpack:///./project/randa/code/assets/components/sso/components/forms/ra-members/helpers/ra-members-summary-form-data.js","webpack:///./project/randa/code/assets/components/sso/components/forms/ra-members/RaMembersSummaryForm.js","webpack:///./project/randa/code/assets/components/sso/components/forms/sign-in/SignInSuccessForm.js","webpack:///./project/randa/code/assets/components/sso/components/sso-form-constants.js","webpack:///./project/randa/code/assets/components/sso/components/SSOForm.js","webpack:///./project/randa/code/assets/components/sitecore-fields/js/sitecore-field-constants.js","webpack:///./project/randa/code/assets/components/sso/store/reducers/initial-state.js","webpack:///./project/randa/code/assets/components/sso/store/reducers/index.js","webpack:///./project/randa/code/assets/components/sso/store/reducers/register-form-reducer.js","webpack:///./project/randa/code/assets/components/sso/store/reducers/item-list-form-reducer.js","webpack:///./project/randa/code/assets/components/sso/store/reducers/upgrade-account-reducer.js","webpack:///./project/randa/code/assets/components/sso/store/reducers/basket-reducer.js","webpack:///./project/randa/code/assets/components/sso/store/reducers/user-address-reducer.js","webpack:///./project/randa/code/assets/components/sso/store/reducers/sign-in-form-reducer.js","webpack:///./project/randa/code/assets/components/sso/store/reducers/forgot-password-form-reducer.js","webpack:///./project/randa/code/assets/components/sso/store/reducers/reset-password-form-reducer.js","webpack:///./project/randa/code/assets/components/sso/store/reducers/verify-email-form-reducer.js","webpack:///./project/randa/code/assets/components/sso/store/reducers/user-account-reducer.js","webpack:///./project/randa/code/assets/components/sso/store/reducers/api-status-reducer.js","webpack:///./project/randa/code/assets/components/sso/store/configure-store.js","webpack:///./project/randa/code/assets/components/sso/sso-form.component.js","webpack:///./project/randa/code/assets/components/sso/index.js","webpack:///./project/randa/code/assets/components/sticky-button-trigger/js/sticky-button-trigger.component.js","webpack:///./project/randa/code/assets/components/sticky-button-trigger/index.js","webpack:///./project/randa/code/assets/components/sub-nav/js/sub-nav.component.js","webpack:///./project/randa/code/assets/components/sub-nav/index.js","webpack:///./project/randa/code/assets/components/sub-page-nav/js/sub-page-nav.component.js","webpack:///./project/randa/code/assets/components/sub-page-nav/index.js","webpack:///./project/randa/code/assets/components/sublayout/js/sublayout.component.js","webpack:///./project/randa/code/assets/components/sublayout/index.js","webpack:///./project/randa/code/assets/components/tabs/js/tabs.component.js","webpack:///./project/randa/code/assets/components/tabs/index.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/helpers/toch-helpers.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/mastercard-registration/MasterCardRegistrationForm.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/mastercard-registration/MasterCardRegistrationSuccess.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/helpers/AudioComponent.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/mastercard-registration/MasterCardRegistration.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/helpers/TOCHModal.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/toch-force-sign-in/TOCHForceSignIn.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/toch-force-sign-in/toch-force-sign-in.component.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/header-hero/HeaderHero.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/header-hero/header-hero.component.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/competition-question/competition-answers.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/competition-question/competition-question-layout.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/competition-question/competition-question.component.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/competition-list/competition-list-carousel.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/competition-list/CompetitionList.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/competition-list/competition-list.component.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/influence/influence-answers.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/influence/influence-free-text.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/influence/influence-questions.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/influence/influence-survey-layout.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/influence/influence-survey.component.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/generic-banner/GenericBanner.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/generic-banner/generic-banner.component.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/influence-block/InfluenceBlock.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/influence-block/influence-block.component.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/mastercard-registration/mastercard-registration.component.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/countdown/Countdown.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/countdown/countdown.component.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/mastercard-promo-panel/MastercardPromoPanelTiles.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/mastercard-promo-panel/MastercardPromoPanel.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/mastercard-promo-panel/mastercard-promo-panel.component.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/countdown-alertbar/CountdownAlertBar.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/countdown-alertbar/countdown-alertbar.component.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/offer-list/offer-list-carousel.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/offer-list/OfferList.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/offer-list/offer-list.component.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/toch-image-gallery/TOCHImageGalleryTiles.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/toch-image-gallery/TOCHImageGallery.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/js/toch-image-gallery/toch-image-gallery.component.js","webpack:///./project/randa/code/assets/components/the-one-club-hub/index.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/popup-link.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/popup-link-info.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/constants.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/checkbox-panel.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/product-group-panel.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/select-days-form.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/ticket-builder-context.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/ticket-builder-aside.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/select-days-page.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/days-links.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/back-link.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/button-clear.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/select-panel.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/select-tickets/tickets-panels.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/select-tickets/select-tickets-standard.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/select-tickets/select-tickets-hospitality.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/products-helper.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/checkout-button.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/select-tickets/select-tickets-aside.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/select-tickets-page.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/extra-panel.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/select-extras-form.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/select-extras-aside.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/select-extras-page.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/accordion.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/select-parking-form.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/select-parking-page.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/select-parking-standalone-form.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/select-parking-standalone-page.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/ticket-builder.js","webpack:///./project/randa/code/assets/components/ticket-builder/js/ticket-builder.component.js","webpack:///./project/randa/code/assets/components/ticket-builder/index.js","webpack:///./project/randa/code/assets/components/ticket-resale/js/ticket-resale-section.js","webpack:///./project/randa/code/assets/components/ticket-resale/js/ticket-resale.component.js","webpack:///./project/randa/code/assets/components/sso/components/forms/resale-tickets-banner/ResaleTicketsBannerButton.js","webpack:///./project/randa/code/assets/components/ticket-resale/index.js","webpack:///./project/randa/code/assets/components/sso/components/forms/resale-tickets-banner/resale-tickets-banner-helpers.js","webpack:///./project/randa/code/assets/components/sso/components/forms/resale-tickets-banner/ResaleTicketsBanner.js","webpack:///./project/randa/code/assets/components/ticket-resale-banner/js/ticket-resale-banner-section.js","webpack:///./project/randa/code/assets/components/ticket-resale-banner/js/ticket-resale-banner.component.js","webpack:///./project/randa/code/assets/components/ticket-resale-banner/index.js","webpack:///./project/randa/code/assets/components/ticket-resale-force-sign-in/js/ticket-resale-force-sign-in.component.js","webpack:///./project/randa/code/assets/components/ticket-resale-force-sign-in/index.js","webpack:///./project/randa/code/assets/components/upcoming-events/js/upcoming-events.component.js","webpack:///./project/randa/code/assets/components/upcoming-events/index.js","webpack:///./project/randa/code/assets/components/update-app-modal/js/update-app.component.js","webpack:///./project/randa/code/assets/components/update-app-modal/index.js","webpack:///./project/randa/code/assets/components/venue-hero/js/venue-hero.component.js","webpack:///./project/randa/code/assets/components/venue-hero/index.js","webpack:///./project/randa/code/assets/general/js/deferred.js","webpack:///./project/randa/code/assets/general/js/modal-with-result.js","webpack:///./project/randa/code/assets/components/video/js/video.component.js","webpack:///./project/randa/code/assets/components/video/index.js","webpack:///./project/randa/code/assets/components/view-order-url/js/view-order-url.component.js","webpack:///./project/randa/code/assets/components/view-order-url/index.js","webpack:///./project/randa/code/assets/components/vod-nav/js/enums.js","webpack:///./project/randa/code/assets/components/vod-nav/js/vod-nav.component.js","webpack:///./project/randa/code/assets/components/vod-nav/index.js","webpack:///./project/randa/code/assets/components/weglot/js/weglot-script.js","webpack:///./project/randa/code/assets/components/weglot/js/weglot.component.js","webpack:///./project/randa/code/assets/components/weglot/index.js","webpack:///./project/randa/code/assets/index.js","webpack:///./project/randa/code/assets/components/form-custom-select/html/item.hbs","webpack:///./project/randa/code/assets/components/form-custom-select/html/choise.hbs"],"names":["SSOSignInComponent","_getPrototypeOf2","_this","_classCallCheck","this","_len","arguments","length","args","Array","_key","_getPrototypeOf","call","apply","concat","_defineProperty","_assertThisInitialized","addListener","refs","ssoSignIn","handleOnSignInClick","ssoRegister","handleOnRegisterClick","handleForceSignIn","handleForceSignUp","Oauth","federatedSignIn","error","console","signUp","forceSignInQueryParams","getParameterByName","OauthQueryConstants","FORCE_SIGN_IN","hasValue","removeParameterByName","getCurrentAuthenticatedUser","then","user","catch","forceSignUpQueryParams","FORCE_SIGN_UP","setOauthSignOutReturnUrl","Auth","signOut","global","finally","init","BaseComponent","removeEventListener","Handlebars","__webpack_require__","module","exports","template","1","container","depth0","helpers","partials","data","stack1","escapeExpression","lambda","customProperties","image","compiler","main","nullContext","name","hash","fn","program","inverse","noop","useData","alias1","alias2","label","value","helper","alias3","helperMissing","info","flag","src","text","highlightedText","window","onerror","msg","log","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","chars","toString","getType","generateId","element","prefix","id","replace","obj","slice","isType","type","clas","stripHTML","isElement","Element","extend","extended","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","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","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","defined","toInteger","ceil","isNaN","shared","exec","is","has","SRC","$toString","TPL","split","inspectSource","val","safe","isFunction","join","String","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","previousStateForKey","nextStateForKey","errorMessage","bindActionCreator","actionCreator","bindActionCreators","actionCreators","boundActionCreators","compose","funcs","_extends","assign","applyMiddleware","middlewares","createStore","chain","_dispatch","middlewareAPI","map","middleware","__webpack_exports__","g","eval","WrappedElement","_extends2","isDisabled","add","tabIndex","origStyle","getAttribute","setAttribute","remove","removeAttribute","disabled","eventType","TEMPLATES","globalClasses","isSelectElement","isSelectOneElement","passedElementType","role","ariaAutoComplete","itemList","_classNames","localClasses","_classnames2","default","_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","_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","_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","_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","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","_isOpened","_isAnimating","isExperienceEditor","onChangeSubscribers","onClickTrigger","onKeydownTrigger","onAnimationComplete","trigger","addListeners","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","handleResponse","handleError","signOutUser","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","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","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","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","handleOauthSignedOut","allowReload","purgeValue","useDefaultRedirectUri","checkOauthFlow","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","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","BallotCtaComponent","ballot_cta_component_classCallCheck","ballot_cta_component_getPrototypeOf","ballot_cta_component_assertThisInitialized","userAccountApi","actionResource","Promise","resolve","reject","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","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","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","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","CountriesComponent","countries_component_classCallCheck","countries_component_getPrototypeOf","countries","filterCounties","counties","countries_component_assertThisInitialized","onCountriesChange","getCountriesList","countriesSelect","$","empty","BEGIN_API_CALL","API_CALL_ERROR","LOAD_ANALYTICS_APP_DATA_SUCCESS","LOAD_ANALYTICS_APP_DATA_ERROR","initial_state","analytics","analyticsData","isAnalyticsDataLoadedSuccessfully","apiStatus","apiCallsInProgress","apiErrorMessages","rootReducer","initialState","types","analytics_app_reducer_objectSpread","api_status_reducer_objectSpread","apiErrorMessage","apiCallError","object_utils_typeof","getFormattedFloatValues","numberValue","parseFloat","getFormattedIntegerValues","calculatePercentage","numberToCalculate","totalNumber","numberToCalculateFormatted","dateFormatOptions","dateSmallFormatOptions","timeFormatOptions","hour","minute","second","getNowDate","getFormattedNowDate","getSmallFormattedDate","getFormattedTime","getFormattedSeconds","valueInSeconds","minutes","seconds","compareDates","firstDate","secondDate","getTime","getAnalyticsOverPageData","analyticsForPagesData","totalActiveVisitors","getTotalAmountOfActiveVisitors","siteDataKeys","pageData","shortUrlFormat","averageTimeForVisitors","isLatest","averageTimeForActiveVisitors","averageTimeForExpiredVisitors","analyticsForPageItem","siteDataKey","formattedCreatedDate","formattedCreatedTime","accessedURL","numberOfAcceptedAllCookies","activeVisitors","visitorsThatAcceptedCookies","numberOfActiveVisitors","response_data_utils_objectSpread","formattedAverageTimeForActiveVisitors","visitorsThatRejectedCookies","analyticsForPagesDataItem","visitedPercentage","getArrayFromDictionary","getAnalyticsPagesRadarData","radarCaptions","radarData","visitorsData","totalNumberOfActiveVisitors","splitAccessedUrl","visitedPage","allKeys","createdOnUTC","getAllAvailableDistinctDates","cloneOfAnalyticsData","Set","setHours","getAllAvailableTimes","availableTimes","formattedDate","timeText","dateText","dictionaryToConvert","SHOW_LATEST_DATA","DATE_TO_FILTER_BY","FROM_DATE","TO_DATE","getShowLatestData","dateToFilterBy","getDateToFilterByParameter","dateRange","getDateRangeParameters","removeShowLatestData","delete","history","replaceState","dateAsTime","removeDateToFilterBy","fromUrlParameters","toUrlParameter","formAsDate","toAsDate","removeDateRangeFilters","analyticsDataInitialState","analyticsCardTitle","categoryName","analyticsAverageTimeSpentData","totalAverageTimeForVisitors","formatAnalyticsData","responseData","showLatestData","sanitizedAnalytics","copyOfResponseData","responseAnalytic","accessedUrl","formattedUrl","analyticDate","formattedAverageTimeForExpiredVisitors","numberOfRejectedCookies","numberOfAcceptedCookies","sanitizeResponseData","analyticsOverTimeData","filteredAnalytics","isDateRangeEmpty","copyOfAnalyticsData","analytic","copyOfAnalytic","comparisonWithFromDateResult","comparisonWithToDateResult","getFilterAnalyticsData","totalAmountOfActiveUsers","analyticData","filterAnalyticsData","averageTimeSpentData","getTotalAverageTimeForVisitors","averageOfAverageTimeForVisitors","getAverageOfAverageTimeForVisitors","analyticsForAverageTimeData","analyticsTimeItem","averageTimePercentage","formattedAverageTimeForVisitors","formattedAnalyticsData","getAverageTimeSpentData","getAnalyticsCardTitle","category","categoryData","categories","analyticsOverPageData","analyticsPagesRadarData","allAvailableTimes","allAvailableDistinctDates","rxOne","rxTwo","rxThree","rxFour","isJSON","ok","loadAnalyticsAppDataError","loadAnalyticsAppData","callBackUrl","datesToFilter","dateToFilter","RefreshIcon","viewBox","aria-hidden","fill","CloseIcon","CheckboxInput","checkedValue","inputItem","any","AnalyticsFilterMenu","AnalyticsFilterMenu_classCallCheck","AnalyticsFilterMenu_getPrototypeOf","dateToFilterByParameter","dateRangeParameters","filters","toggleMenu","handleToggleMenuClick","AnalyticsFilterMenu_assertThisInitialized","handleToggleDisplayLatestData","handleMenuItemClick","handleFiltersChanged","handleClearFiltersClick","getDisplayLatestDataValue","displayMenuToggleButton","displayMenu","displayFilteredItems","prevState","displayDataValue","onDisplayLatestDataClick","AnalyticsFilterMenu_objectSpread","menuItem","AnalyticsFilterMenu_defineProperty","onFilterByDateClick","onFilterByRangeClick","menuData","keysToFilterBy","filterKey","filteredItems","onClearFiltersClick","_this$props2","buttonText","aria-haspopup","aria-owns","_this$state","icons_CloseIcon","aria-disabled","inputs_CheckboxInput","onMenuButtonClick","AnalyticsAppContext","createContext","withAnalyticsAppContext","Consumer","context","appContext","formattedTodayDate","filterAnalyticsDataByDate","filterAnalyticsDataByDateRange","displayLatestData","clearAnalyticsFilters","icons_RefreshIcon","analytics_filter_menu_AnalyticsFilterMenu","AnalyticsCard","footerPositiveValue","footerNegativeValue","footerValue","chipValue","analytics_card_AnalyticsCard","AnalyticsTrafficData","active_visitors_card_ActiveVisitorsCard","accepted_cookies_card_AcceptedCookiesCard","refused_cookies_card_RefusedCookiesCard","average_time_card_AverageTimeCard","LinearProgressBar","completedPercentage","progressBarTranslateValue","aria-valuenow","AnalyticsTable","tableProperties","tableData","tableHeaders","tableProperty","scope","headerText","getTableHeader","tableRow","rowData","isProgressBar","LinearProgressbar","tableElement","foundElement","x","arrayKey","arrayValue","arrayProperty","getTableRowElement","analyticsPageProperties","polarToX","angle","cos","PI","polarToY","sin","columns","chartData","meta","extraProps","shapeProps","radar_extends","smoothing","col","chartSize","stroke","class","scale","cx","cy","scaleProps","defaultOptions","size","axes","scales","captions","dots","zoomDistance","points","captionMargin","setViewBox","axisProps","dotProps","mouseEnter","dot","toolTip","formattedValue","innerText","visibility","mouseLeave","captionProps","textAnchor","RadarChart","_this$props$size","chartOptions","RadarChart_objectSpread","chart","radar_typeof","caption","y","dy","onMouseEnter","idx","onMouseLeave","unshift","axis","delta","radar","xmlns","DecrementIcon","IncrementIcon","DEFAULT_SCALE","DEFAULT_ZOOM_DISTANCE","SingleBar","percentage","onMouseEnterSingleBar","onMouseExitSingleBar","AnalyticsPagesRadar","AnalyticsPagesRadar_classCallCheck","AnalyticsPagesRadar_getPrototypeOf","onIncrementClick","AnalyticsPagesRadar_assertThisInitialized","onDecrementClick","AnalyticsPagesRadar_objectSpread","icons_IncrementIcon","icons_DecrementIcon","analytics_radar_RadarChart","AnalyticsTimeBarChart","AnalyticsTimeBarChart_classCallCheck","AnalyticsTimeBarChart_getPrototypeOf","showBarMessage","barMessage","barChartBodyRoot","createRef","setShowBarMessage","AnalyticsTimeBarChart_assertThisInitialized","displayChartBars","displayBarBannerMessage","analyticsTime","analytics_times_bar_chart_SingleBar","scrollLeft","barMessageText","AnalyticsTimeBarChart_objectSpread","firstElement","analyticsOverTimeProperties","AnalyticsGrid","analytics_grid_header_AnalyticsGridHeader","analytics_traffic_data_AnalyticsTrafficData","analytics_over_time_table_AnalyticsOverTimeTable","analytics_pages_data_AnalyticsPagesData","FormSpinner","spinnerRef","AnalyticsViewMessage","CustomAnalyticsAppComponent","CustomAnalyticsAppComponent_classCallCheck","CustomAnalyticsAppComponent_getPrototypeOf","CustomAnalyticsAppComponent_assertThisInitialized","updateLoadingState","updateAppContextState","updateSomethingWentWrongState","domain","allAvailableDates","CustomAnalyticsAppComponent_objectSpread","nextProps","hasLoadedSuccessfully","hasAnalyticsDataChanged","datefilter","dateQuery","finalDateFrom","finalDateTo","dateFromParam","dateToParam","dateParam","setShowLatestData","setDateToFilterBy","setDateRangeFilters","Provider","utility_FormSpinner","analytics_view_message_AnalyticsViewMessage","analytics_grid_AnalyticsGrid","analyticsAppActions","CustomAnalyticsComponent","custom_analytics_component_classCallCheck","custom_analytics_component_getPrototypeOf","thunk","views_CustomAnalyticsAppComponent","section","CustomEventLeaderboardNameColumn","player","isTeamEvent","teamLabel","CustomEventLeaderboardPlayersColumn","playersList","CustomEventLeaderboardScoreToParColumn","playerScoreToPar","toParClass","getTotalBemClass","scoreToPar","CustomEventLeaderboardScoreCell","childCss","r2hAttributes","holePar","playerPar","bemCss","generateBemCss","getHoleParBemClassForCustomEvent","playerParText","custom_event_leaderboard_score_player_cell_extends","defaultProps","CustomEventLeaderboardHoleByHoleWidget","custom_event_leaderboard_hole_by_hole_widget_classCallCheck","custom_event_leaderboard_hole_by_hole_widget_getPrototypeOf","rootRef","innerRef","scrollable","isScrollable","Scrollable","destroy","typeCss","is-wide","isWide","getHoleScore","custom_event_leaderboard_score_player_cell","holesToBePlayed","hole","renderCell","holeNumber","scoringPlayerRound","playerSitecoreData","playerHasInfo","playerStatuses","holeInfo","holeId","holeStatus","playerStatus","renderPlayerPar","stateCss","is-empty","is-scrollable","renderHeadLine","renderHoleParLine","renderPlayerParLine","scoringCourse","CustomEventLeaderboardPositionColumn","playerPosition","displayValue","CustomEventLeaderboardTeeTimeGroup","teeTime","getCustomEventGroupTeeTimes","formatedTeeTime","sprite_svg","iconName","CustomEventLeaderboardHoleColumn","playerHole","SitecoreImageField","img","alt","SitecoreLinkField","link","CustomEventLeaderboardRows","currentRound","isChampion","sitecore_image_field","customEventLeaderboardDatasource","championConfiguration","championBackgroundImage","custom_event_leaderboard_position_column","custom_event_leaderboard_name_column","custom_event_leaderboard_players_column","custom_event_leaderboard_tee_time_group","customEventLeaderboardHolesToBePlayed","custom_event_leaderboard_hole_by_hole_widget","custom_event_leaderboard_score_to_par_column","toPar","custom_event_leaderboard_hole_column","championLabel","CustomEventLeaderboardTable","scoringCourseRound","courseRounds","holePars","custom_event_leaderboard_rows","CustomEventLeaderboardHeader","logo","patronLogo","CustomEventLeaderboardContainer","custom_event_leaderboard_container_classCallCheck","custom_event_leaderboard_container_getPrototypeOf","isSortingAscending","scoringLeaderboard","custom_event_leaderboard_header","custom_event_leaderboard_table","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","CustomEventLeaderboardAlphaList","scoringEnginePlayerId","sortedPlayers","renderRow","CustomEventLeaderboardLayout","leaderboardEndpoint","endpointName","customEventLeaderboardPlayers","custom_event_leaderboard_alphalist","custom_event_leaderboard_container","CustomEventLeaderboardLayoutWrapper","ownProps","getCustomEventPlayerSitecoreData","CustomEventLeaderboardComponent","custom_event_leaderboard_component_classCallCheck","custom_event_leaderboard_component_getPrototypeOf","custom_event_leaderboard_layout","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","data-icon","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","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","randomSeedNumber","agreedToC1","agreedToC2","handleFirstnameChange","handleLastnameChange","handleEmailChange","handleCheckbox1Change","handleCheckbox2Change","nameFieldsAreOptional","hideNameFields","checkbox1IsOptional","hideCheckbox1","checkbox2IsOptional","hideCheckbox2","firstnameLabel","firstnameError","lastnameLabel","lastnameError","emailLabel","emailError","checkbox1Label","checkbox1Error","checkbox2Label","checkbox2Error","_this$state2","isFilledFirstname","isFilledLastname","isFilledEmail","isValidEmail","checkbox1withRandomSeed","checkbox2withRandomSeed","inputFirstnameElement","focusOnElement","inputLastnameElement","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","WrappedComponent","withDataCapture","WizardDashboard","wizard_dashboard_classCallCheck","wizard_dashboard_getPrototypeOf","parameterName","parameterValue","newEmailAddress","partialResult","wizardIndex","wizard_dashboard_assertThisInitialized","steps","templateName","handleNextButtonClick","handlePreviousButtonClick","displayCurrentStep","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","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","with_data_capture_extends","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","setInterval","refresh","refreshRate","loadScipt","apiReady","script","async","LOAD_DOT_MAILER_TRACKER_ENTRIES_SUCCESS","LOAD_DOT_MAILER_TRACKER_ENTRIES_ERROR","reducers_initial_state","dotMailerTracker","areDotMailerEntriesLoadedSuccessfully","dotMailerTrackerApiMessage","dot_mailer_tracker_reducer_objectSpread","successMessage","reducers_api_status_reducer_objectSpread","saveData","dotMailerUserEntries","dotMailerTrackData","loadDotMailerTrackerEntriesSuccess","loadDotMailerTrackerEntriesError","submitDotMailerTrackData","copyOfDotMailerUserEntries","splitEntries","promises","splitEntry","dotMailerTrackerApi","isResultAnArray","failedRequestsIndexes","requestIndex","DotMailerTrackerForm","dot_mailer_tracker_form_component_classCallCheck","dot_mailer_tracker_form_component_getPrototypeOf","dropZoneRef","fileUploadInputRef","handleCSVFileDrop","dot_mailer_tracker_form_component_assertThisInitialized","processCSVFile","handleCSVFileRead","finalizeCSVFileProcess","finalizeCSVFileProcessWithErrors","handleDotMailerUserEntriesSubmit","toggleOnDragClass","handleOnDragOver","handleDropZoneClick","isDragOverDropZone","isCSVFileDataLoaded","csvFileLoadError","csvFileLoadErrorMessage","dotMailerUserEntriesLength","fileName","files","dataTransfer","getFileExtension","reader","FileReader","onload","readAsText","csvFileLine","dotMailerEntry","filename","dotMailerTrackerProperties","click","onDragEnter","onDragLeave","onDragOver","onDrop","dotMailerTrackActions","DotMailerTrackerBaseComponent","dot_mailer_tracker_base_component_classCallCheck","dot_mailer_tracker_base_component_getPrototypeOf","dot_mailer_tracker_form_component","EnhancedStats","desktopImage","mobileImage","stat1Value","stat1Label","stat2Value","stat2Label","stat3Value","stat3Label","stat4Value","stat4Label","stat5Value","stat5Label","stat6Value","stat6Label","link1","onClickLink","link2","link3","link4","EnhancedStatsComponent","enhanced_stats_component_classCallCheck","enhanced_stats_component_getPrototypeOf","enhanced_stats","NewsCard","news_card_classCallCheck","news_card_getPrototypeOf","onCardLinkClick","news_card_assertThisInitialized","_this$props$model","contentType","mediaTypes","VIDEO_PLAYER","GALLERY","content_type","bemModifiers","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","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","getRowData","deviceTypeByViewport","removeDataAttr","news_feed_listing","FeatureContentComponent","FinalLeaderboard","final_leaderboard_component_classCallCheck","final_leaderboard_component_getPrototypeOf","arrowRightCoordinateLeft","arrowRight","endPositionNodeCoordinateLeft","endPositionNode","arrowLeftCoordinateLeft","arrowLeft","startPositionNodeCoordinateLeft","startPositionNode","final_leaderboard_component_assertThisInitialized","finalLeaderboardWrapper","onScroll","FinalLeaderboardComponent","ForceSignInComponent","force_sign_in_component_classCallCheck","force_sign_in_component_getPrototypeOf","accountType","redirectUrl","checkIsUserLoggedIn","raMemberUpdatedInfoCookie","RA_MEMBER_UPDATED_INFO","isUserLoggedIn","isRandaMemberLoggedIn","memberLoginFailedLink","appId","FB","xfbml","fb","getLoginStatus","authResponse","login","loginResponse","expiresIn","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","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","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","onFileChange","updateCaption","FormPhoneInputComponent","form_phone_input_component_classCallCheck","form_phone_input_component_getPrototypeOf","getChoices","itemContentTemplate","choiseContentTemplate","_ref$selected","FullSizeHeroBanner","desktopVideo","mobileVideo","cta1","cta2","venueBannerRandomID","CircularProgress_default","preload","muted","autoPlay","loop","playsInline","data-object-fit","sitecore_link_field","venueHeroBannerSize","scrollBy","bottom","behavior","FullSizeHeroBannerComponent","full_size_hero_banner_component_classCallCheck","full_size_hero_banner_component_getPrototypeOf","full_size_hero_banner","GtmTriggerComponent","gtm_trigger_component_classCallCheck","gtm_trigger_component_getPrototypeOf","getCategory","getAction","getLabel","gtm_trigger_component_assertThisInitialized","Header","header_component_classCallCheck","header_component_getPrototypeOf","header_component_defineProperty","header_component_assertThisInitialized","clickedItem","itemText","locationLatest","locationPanelHeight","visibleLocation","marginTop","visibleLocationLatest","keyboardEvent","toggleLocationsPanel","dynamicButton","setFocus","locationLink","dynamicButtonLatest","locationLinkLatest","headerCanBeAnimated","menuCanBeAnimated","onClickDynamicButton","onKeypressDynamicButton","onClickDynamicButtonLatest","onKeypressDynamicButtonLatest","gtmLeftMenuClick","saveActionToGtm","removeListener","arrayItems","boolean","header_component_toConsumableArray","closingMenuAnimation","closeOtherMenuAnimation","openingMenuAnimation","ariaExpandedTrigger","setAnimation","dynamicIconsLatest","locationItemLatest","dynamicIcons","locationItem","interval","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","cta1sticky","disableCta2","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","LeaderboardAlphaList","playerId","livePlayer","country_flag","countryFlagSrc","isAmateur","FavoriteButton","stateFavoriteButtonClassName","stateFavoriteButton","LeaderboardHbhButton","toggleHoleByHoleView","is-active","viewTypes","HOLE_BY_HOLE","lazy_image","FLAG_IMAGE_PATH","LeaderboardCellHoleTitle","sortingHandlerProps","processingState","sortingType","is-top","LeaderboardRScore","toggleRScore","is-close","R_SCORE","LeaderboardCellPlayerTitle","leaderboard_r_score","LeaderboardCellMoversTitle","sorted","LeaderboardCellScoresTitle","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","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","suddenDeathStatus","playOffStatuses","NOT_PLAYING","playOffStatus","isPlayOff","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","playOffRound","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","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","playOffToPar","LeaderboardCellToday","today","LeaderboardCellTotal","bemList","LeaderboardCellHole","LeaderboardCellScores","LeaderboardCellRound","scoreText","LeaderboardCellRoundTotal","playerTotal","roundTotal","totalPar","difference","LeaderboardRows","cutStatus","playersCut","isPlayOffMode","renderRows","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","favoritePlayers","favoriteState","leaderboard_table_objectWithoutProperties","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","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","controlPanelCss","is-predictive","live_event_select","setRound","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","updateInSeconds","isLoadMore","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","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","tabletImage","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","controls","touch","responsive","579","slideBy","1023","prevBtn","onClickPrevBtn","nextBtn","onClickNextBtn","slideCount","slideItems","_this$getTranslateVal","getTranslateValues","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","NbcAlertBar","NbcAlertBarsLayout","nbcAlertBars","nbc_alert_bar","NbcAlertBarsLayoutContainer","NbcAlertBarsComponent","nbc_alert_bars_component_classCallCheck","nbc_alert_bars_component_getPrototypeOf","nbc_alert_bars_layout","getPattern","getDefaultFilters","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","OneClubButton","one_club_button_component_classCallCheck","one_club_button_component_getPrototypeOf","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","randaid","randaID","calculate_previousOpens","age","dob","birthDate","getUTCFullYear","playerID","getJSON","PlayerProfilesStats","player_profiles_stats_component_classCallCheck","player_profiles_stats_component_getPrototypeOf","observables","counterFloat","moveHandler","counterPercent","float","moveAnimation","CountUp","INITIAL_STATE","exemption","hydrated","reducer_objectSpread","player_registration_form_js_constants","PARSLEY_INCLUDE_SELECTOR","Parsley","inputs","EXEMPTION_YES","EXEMPTION_FINAL","EXEMPTION_NO","js_actions","newStep","PlayerRegistrationStep","step_classCallCheck","step_getPrototypeOf","onChangeStoreBase","step_assertThisInitialized","onContinueClick","isStepValid","isVisible","onContinue","constants","inputNode","initConcrete","applyStateBase","applyStateConcrete","continue","PlayerRegistrationStep1","step1_classCallCheck","step1_getPrototypeOf","isExemptionChosen","onExemptionChange","step1_assertThisInitialized","onProfessionalAmateurChange","initExemption","initProfessionalAmateur","addListenersConcrete","radio","professionalAmateurControl","selectedExemption","creators","selectedProfessionalAmateur","applyProfessionalAmateur","applyCaddieVisibility","caddieSection","caddie","applyExemptionChoice","exemptionValue","hideAmateurZone","showAmateurZone","amateurRequiredZone","PlayerRegistrationStep2","step2_classCallCheck","step2_getPrototypeOf","onPgaTourSelectChange","step2_assertThisInitialized","onFinalVenuesChange","onRqCourseChange","pgaTourOther","pgaTourSection","pgaOtherValue","pgaTourSelect","finalVenues","rqCourseSelect","select","applyExemption","isExemptSection","isNotExemptSection","showPgaTourSection","applyRegionalFinalVisibility","needRegional","needFinal","withExemption","pgaTourWithExemption","pgaTourWithoutExemption","pgaTourWithExemptionPlaceholder","insertAdjacentElement","pgaTourWithoutExemptionPlaceholder","changedRadio","sameValueRadios","selectedIndex","PlayerRegistrationStep3","step3_classCallCheck","step3_getPrototypeOf","isScrolledDown","onTermsScroll","step3_assertThisInitialized","handleDisableButton","checkIsScrolledDown","termsElement","applyIsScrolledDown","PlayerRegistrationStep4","PlayerRegistrationNavigation","navigation_classCallCheck","navigation_getPrototypeOf","currentStep","onChangeStore","navigation_assertThisInitialized","onStepClick","onNavigate","applyState","stepNode","stepNumber","setCurrentStep","PlayerRegistrationComponent","player_registration_component_classCallCheck","player_registration_component_getPrototypeOf","player_registration_component_assertThisInitialized","onServerValidationError","formComponent","parsleyFormInstance","stepParams","step1","stepInstance","getStepNumber","step2","step3","step4","stopImmediatePropagation","failedElements","firstFailedElement","applyNewStep","notification","canGoToStep","highlight","validFormStep","currentStepInstance","getIsStepValidPromise","previousSteps","stepPromise","whenValidate","whenValid","PreviousOpensComponent","previous_opens_component_classCallCheck","previous_opens_component_getPrototypeOf","dataUrl","onChangeFilter","previous_opens_component_assertThisInitialized","onClickLoadmore","footer","getParent","getScopedAttribute","decadeYear","shouldCleanList","renderList","dataList","renderButton","QualLeaderboardDefaultView","countryFlag","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","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","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","onScrollLeftElement","renderItem","QualDrawLayout","scoringDraw","DARK","localeCompare","qual_draw_container","qual_draw_layout_extends","QualDrawLayoutWrapper","QualDrawComponent","qual_draw_component_classCallCheck","qual_draw_component_getPrototypeOf","qual_draw_layout","QualEventItem","qual_events_item_classCallCheck","qual_events_item_getPrototypeOf","isFirstLinkDefined","isSecondLinkDefined","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","clicked","scoringInfoClassName","DEFAULT_VIEW","HOLES_VIEW","getPlayerRoundById","roundNo","getRoundParsById","roundPars","getPlayerFormattedTeeTimeByRound","teeTimes","getPlayerTeeTimeByRoundId","holesPlayed","roundToPar","holesNoPlayed","parsedInt","renderQualifiedStatus","q","qualifiedStatus","reservedStatusNumber","QualLeaderboardPlayerRow","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","qualified_golfers_js_actions","showPreviousEvents","changeDeviceType","QualifiedGolfersPreview","morePlayersCount","totalPlayersCount","onShowEventsClick","QualifiedGolfers","isEventsShown","js_PreviousQualificationEvents","js_QualifiedGolfersPreview","js_reducer","js_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","clearInterval","iframes","activityHelper","timeoutHandle","isOnPage","_onChange","maxIdleTimeInSeconds","parsedMaxIdleTimeInSeconds","NaN","_timeOutFunction","signInFormApi","setAccessTokenCookie","reloadToBasePage","handleUserIdleTime","onpageshow","onpagehide","refreshMyAccountStyle","currentAddress","randaPage","SSOFormContext","addressesFormCallbackFunctions","HandleShowDisplayAddressForm","HandleShowAddAddressForm","HandleAddNewAddress","HandleShowUpdateAddressForm","HandleUpdateAddress","HandleRemoveAddress","form_helpers_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","textClassName","fieldClassName","FormTextInput","FormTextInput_classCallCheck","FormTextInput_getPrototypeOf","validState","handleBlur","FormTextInput_assertThisInitialized","handleChangeCallback","handleFieldIsFilled","getFieldType","FormTextInput_objectSpread","isPassword","autocompleteValue","isHidden","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","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","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","loadSSORegisterFormDataSuccess","loadSSORegisterFormDataError","registerUserError","userRegistrationMessages","resendEmailVerificationError","resendEmailVerificationMessages","resetRegisterFormState","verifyIfUserEmailExistsError","verifyIfUserEmailExistsErrorMessages","loadSSODefaultRegisterFormData","loadDefaultRegisterFormDataUrl","loadSSOOneClubRegisterFormData","formDataUrl","registerFormApi","loadSSOTicketingRegisterFormData","loadTicketingRegisterFormDataUrl","loadSSORaMembersRegisterFormData","loadRaMembersRegisterFormDataUrl","resendEmailVerification","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","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","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","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","ssoUpgradeToOneClubFormData","serverErrorMessages","messageHelper","uniqueMemberships","userDetailsFormType","getUpgradeToOneClubFormType","upgradeBallotSummaryAccount","copyOfAccountData","preferenceCentre","getDateAsISOString","upgradeRaMembersSummaryAccount","reload","joinOneClub","agreePrivacyPolicyAndTermsAndCoditions","agreePrivaciPolicy","agreeTermsAndConditions","addMasterCardMembershipToUser","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","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","nextFormTypeToDisplay","BallotSignInSuccessForm","ballotSignInSuccessFormDataUrl","ballotSummaryFormDataUrl","headingText","getHeadingText","getButton","signInButtonText","getFooterLink","forgottenPasswordLinkText","registerHeadingText","registerButtonText","submitAction","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","_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","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","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","store_reducers_initial_state","userAddress","isUserAddressSearchSuccessful","suggestedAddresses","searchAddressMessages","isSignOutSuccessful","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","store_reducers_api_status_reducer_objectSpread","configureStore","SSOFormComponent","sso_form_component_classCallCheck","sso_form_component_getPrototypeOf","components_SSOForm","StickyButtonTriggerComponent","sticky_button_trigger_component_classCallCheck","sticky_button_trigger_component_getPrototypeOf","sticky_button_trigger_component_defineProperty","sticky_button_trigger_component_assertThisInitialized","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","getComponentVisibility","componentVisibility","isMastercardUser","handleCheckIsMasterCardMember","getTOCHMembershipArray","handleCheckMembershipExists","membershipArray","localStorageKey","jsonUserMemberships","userMembershipsArray","getMasterCardRegisterObject","masterCardData","masterCardLogo","masterCardBranding","masterCardText","mastercardText","masterCardNumberLabel","nameLabel","bottomInfo","postcodeLabel","ctaSignUpForMastercardLink","ctaSignUpForMasterCard","notMasterCardNumberErrorMessage","masterCardRegistrationSuccessTitle","masterCardRegistrationSuccess","masterCardRegistrationSuccessLabel","masterCardRegistrationSuccessDescription","masterCardRegistrationSuccessCTALink","ctaLink","masterCardRegistrationSettings","regexToVerifyMastercard","cardVerificationRegex","soundToBePlayedAfterSuccessRegister","handleMastercardRegistrationEnforce","enableEnforce","enableMastercardRegistrationEnforce","calculateRemainingDate","countdownTimer","countdownTimerDate","utc","getTimezoneOffset","ukTimeNowAsDate","isBSTinEffect","hours","days","checkIfExpired","lSoM","lSoO","tmp","getDay","getVerificationEndpoint","verificationEndpoint","getUserAddressBooks","userAddressBooks","TOCH_USER_ADDRESS_BOOK_LOCALSTORAGE_NAME","verifyUserInAddressBook","addressBookList","addressBooksList","addressBookIdAsInt","AddressBookId","handlePersonalizedCompetitionList","competitions","dotmailerDetails","addCompletedFormToAddressBookLocalStorage","dotmailerId","dotmailerName","userAddressBooksObject","dotmailerObject","AddressBookName","getUserDetailsFromCookie","TOCH_USER_DATA","getUserMainAddressPostcode","userMainAddress","MastercardRegistrationForm","MasterCardRegistrationForm_classCallCheck","MasterCardRegistrationForm_getPrototypeOf","MasterCardRegistrationForm_assertThisInitialized","handleFieldChangeFocus","extractUserDetailsFromCookie","userObject","mastercardUpgrade","handleOnChangeFocus","MastercardRegistrationSuccess","MasterCardRegistrationSuccess_classCallCheck","MasterCardRegistrationSuccess_getPrototypeOf","getButtonLink","MasterCardRegistrationSuccess_assertThisInitialized","REDIRECT_URL","buttonLink","AudioComponent","MastercardRegistration","MasterCardRegistration_classCallCheck","MasterCardRegistration_getPrototypeOf","MasterCardRegistration_defineProperty","MasterCardRegistration_assertThisInitialized","isMasterCardNumber","playSound","isDataSent","updateDataInLocalStorage","masterCardNumber","getUserFirstName","displayMasterCardRegister","play","localStorageData","newLocalStorageData","cookieValue","userFirstName","helpers_AudioComponent","MasterCardRegistrationSuccess","MasterCardRegistrationForm","TOCHModal","handleOnClose","data-modal","data-modal-wrapper","data-modal-close","data-modal-content","TOCHForceSignIn","TOCHForceSignIn_classCallCheck","TOCHForceSignIn_getPrototypeOf","MCRedirectUrl","TOCHForceSignIn_assertThisInitialized","isDataReceived","handleUserLoginStatus","getUserData","callMasterCardUpgradeFormApi","displayMasterCardUpgradeForm","handleOnCloseModal","notOneClubPage","notSignInPage","overviewPage","isInEditMode","redirectUrlFromCookie","redirectUrlFromCookieExistance","windowUrl","decodeURI","toLocaleLowerCase","oneClubBody","becameMasterCard","userBecameMastercardAttribute","getBecameMastercardDate","isMasterCardExclusive","createdDate","getTochUserDataCookieValue","setTOCHUserDataCookie","setTochUserDataCookie","removeProperty","masterCardRegistrationEndpoint","openPopup","helpers_TOCHModal","MasterCardRegistration","getUserAccountDataCallBackURL","TOCHForceSignInComponent","toch_force_sign_in_component_classCallCheck","toch_force_sign_in_component_getPrototypeOf","toch_force_sign_in_TOCHForceSignIn","HeaderHero","HeaderHero_classCallCheck","HeaderHero_getPrototypeOf","HeaderHero_assertThisInitialized","getUserInitials","checkStringForEmpty","getUserDetails","loadMasterCardUpgradeFormData","BusEvents","USER_MEMBERSHIP_UPDATE","tochUserDataCookie","userInitials","createdYear","mastercardUpgradeEndpoint","_this$props$data","helloMessage","welcomeMessage","headerLogoImage","membershipStatusMessage","membershipUpgradedStatusMessage","upgradeText","topButtonText","isMasterCardMember","displayMessage","displayYear","HeaderHeroComponent","header_hero_component_classCallCheck","header_hero_component_getPrototypeOf","header_hero_HeaderHero","CompetitionAnswers","CompetitionQuestionLayout","competition_question_layout_classCallCheck","competition_question_layout_getPrototypeOf","competition_question_layout_defineProperty","competition_question_layout_assertThisInitialized","updatedUserAddressBooks","dotmailerAddressBook","adressBookName","isSubmitAttempted","addressBookName","dotmailerColumn","addressBooks","fieldsErrors","schema","nullable","checkCompetitionStatus","handleComponentVisibilityApiCall","competitionsList","abortEarly","fieldError","isMastercardComponent","background","competitionCompletedMessage","competitionHasErrorsMessage","isMastercard","isInAddressBooks","competition_answers","onAnswerChange","termsAndConditions","CompetitionQuestionComponent","competition_question_component_classCallCheck","competition_question_component_getPrototypeOf","competition_question_layout","competition_question_component_assertThisInitialized","CompetitionListCarousel","competition_list_carousel_classCallCheck","competition_list_carousel_getPrototypeOf","hasCarousel","gutter","getNode","competition","competitionTag","showLink","competitionUrl","statusMessage","CompetitionList","CompetitionList_classCallCheck","CompetitionList_getPrototypeOf","CompetitionList_defineProperty","CompetitionList_assertThisInitialized","mastercardRegistrationPage","handleComponentPersonalization","hideCompletedCompetitions","hideCompetitions","handleComponentVisibility","newCompetitionList","_this$props$data2","componentTitle","componentSubtitle","hasMastercardBranding","competitionListId","personalizedCompetitionList","compList","shouldRenderCarousel","live_arrow_control","modeTypes","carousel","controlTypes","competition_list_carousel","CompetitionListContainer","CompetitionListComponent","competition_list_component_classCallCheck","competition_list_component_getPrototypeOf","competition_list_CompetitionList","InfluenceAnswers","questionNumber","InfluenceFreeText","freeTextMessage","addFreeTextMessageLabel","InfluenceQuestions","influence_questions_classCallCheck","influence_questions_getPrototypeOf","freeText","influence_questions_assertThisInitialized","questionValue","answersArray","intQuestionNumber","influence_questions_objectSpread","questionText","addRadioButtonAnswers","influence_answers","addTellUsMoreInput","influence_free_text","addTellUsMoreLabel","InfluenceSurveyLayout","influence_survey_layout_classCallCheck","influence_survey_layout_getPrototypeOf","influence_survey_layout_defineProperty","influence_survey_layout_assertThisInitialized","dotmailerBookId","dotmailerBookName","_this$props$options3","isMasterCardComponent","surveyCompletedMessage","surveyHasErrorsMessage","influence_questions","InfluenceSurveyComponent","influence_survey_component_classCallCheck","influence_survey_component_getPrototypeOf","influence_survey_layout","influence_survey_component_assertThisInitialized","GenericBanner","GenericBanner_classCallCheck","GenericBanner_getPrototypeOf","subtitle1","subtitle2","mobileBackgroundImage","lnkClass","ctaClass","hasLink","hasBackgroundImage","hasMobileBackgroundImage","hasLogo","GenericBannerContainer","GenericBannerComponent","generic_banner_component_classCallCheck","generic_banner_component_getPrototypeOf","generic_banner_GenericBanner","InfluenceBlock","InfluenceBlock_classCallCheck","InfluenceBlock_getPrototypeOf","InfluenceBlock_assertThisInitialized","hideComponent","hideInfluenceBlockWithCompletedSurvey","hideInfluenceBlockComponent","userInAddressBook","influenceSubtitle","influenceTitle","influenceUrl","influenceImage","textLink","hasMasterCardBranding","influenceBlockId","InfluenceBlockComponent","influence_block_component_classCallCheck","influence_block_component_getPrototypeOf","influence_block_InfluenceBlock","MasterCardRegistrationComponent","mastercard_registration_component_classCallCheck","mastercard_registration_component_getPrototypeOf","Countdown","Countdown_classCallCheck","Countdown_getPrototypeOf","getRemainingDate","Countdown_assertThisInitialized","isValidDate","newDate","refreshTime","mainSubtitle","mainTitle","countdownDaysText","countdownHoursText","countdownMinutesText","secondarySubtitle","secondaryTitle","isExpired","showData","CountdownComponent","countdown_component_classCallCheck","countdown_component_getPrototypeOf","countdown_Countdown","MastercardPromoPanelTiles","tiles","tile","MastercardPromoPanel","MastercardPromoPanel_classCallCheck","MastercardPromoPanel_getPrototypeOf","redirectsToRestrictedContent","MastercardPromoPanel_assertThisInitialized","theOneClubLabel","mastercardBranding","mastercardPromoPanelId","mobileBackground","mastercard_promo_panel_MastercardPromoPanelTiles","MastercardPromoPanelComponent","mastercard_promo_panel_component_classCallCheck","mastercard_promo_panel_component_getPrototypeOf","mastercard_promo_panel_MastercardPromoPanel","CountdownAlertBar","CountdownAlertBar_classCallCheck","CountdownAlertBar_getPrototypeOf","CountdownAlertBar_assertThisInitialized","daysValue","hoursValue","minutesValue","CountdownAlertBarComponent","countdown_alertbar_component_classCallCheck","countdown_alertbar_component_getPrototypeOf","countdown_alertbar_CountdownAlertBar","OfferListCarousel","offer_list_carousel_classCallCheck","offer_list_carousel_getPrototypeOf","offers","defaultImage","offer","OfferList","OfferList_classCallCheck","OfferList_getPrototypeOf","OfferList_defineProperty","OfferList_assertThisInitialized","offer_list_carousel","OfferListContainer","OfferListComponent","offer_list_component_classCallCheck","offer_list_component_getPrototypeOf","offer_list_OfferList","TOCHImageGalleryTiles","TOCHImageGalleryTiles_classCallCheck","TOCHImageGalleryTiles_getPrototypeOf","TOCHImageGallery_classCallCheck","TOCHImageGallery_getPrototypeOf","TOCHImageGallery_defineProperty","TOCHImageGallery_assertThisInitialized","isMastercardAdvantageContent","mobileBackgroung","toch_image_gallery_TOCHImageGalleryTiles","TOCHImageGalleryComponent","toch_image_gallery_component_classCallCheck","toch_image_gallery_component_getPrototypeOf","TOCHImageGallery","TOCHIMageGallery","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","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","ticket_builder_aside_assertThisInitialized","preparedProductGroups","getPreparedProductGroups","renderProduct","mergedWithTempGroups","ticket_builder_aside_objectSpread","actionCaption","fromRoute","basketValue","getBasketTotalValue","onToggleBasketMobile","tb","withTicketBuilderContext","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","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","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","TicketResaleSection","ticket_resale_section_classCallCheck","ticket_resale_section_getPrototypeOf","refreshResaleComponent","ticket_resale_section_assertThisInitialized","TicketResaleComponent","ticket_resale_component_classCallCheck","ticket_resale_component_getPrototypeOf","ticket_resale_section","ResaleTicketsBannerButton","ResaleTicketsBanner","ResaleTicketsBanner_classCallCheck","ResaleTicketsBanner_getPrototypeOf","ResaleTicketsBanner_assertThisInitialized","resaleTicketSettings","ctaLoginLabel","ctaLoginStyle","ctaFirstLabel","ctaFirstStyle","ctaSecondLabel","ctaSecondStyle","showLoginLink","shouldDisplayLoginButton","resale_tickets_banner_ResaleTicketsBannerButton","handleTicketsLogin","TicketResaleBannerSection","ticket_resale_banner_section_classCallCheck","ticket_resale_banner_section_getPrototypeOf","ticket_resale_banner_section_assertThisInitialized","resale_tickets_banner_ResaleTicketsBanner","TicketResaleBannerComponent","ticket_resale_banner_component_classCallCheck","ticket_resale_banner_component_getPrototypeOf","ticket_resale_banner_section","TicketResaleForceSignInComponent","ticket_resale_force_sign_in_component_classCallCheck","jsonOptions","ticket_resale_force_sign_in_component_getPrototypeOf","ticketResaleOptions","processRequest","handleCognitoUserValidation","handleSecutixUserValidation","authenticatedUserData","dataSource","checkOneClubMembership","processRedirectToWaitingList","notOneClubMemberErrorPage","getCognitoSignInPageUrl","getCookieData","shouldRedirectToSignInPage","getSecutixSignInPageUrl","shouldRedirectToOneClubMemberErrorPage","linksConfigurationCookieName","shouldCheckForOneClubMembership","signInPage","JOIN_ONE_CLUB","dotmailerAddressBookId","verifyAddressBookCallBackUrl","isUserOnWaitingList","notOnWaitingListErrorPage","upcomingEvents","upcoming_events_component_classCallCheck","upcoming_events_component_getPrototypeOf","onShowClick","upcoming_events_component_assertThisInitialized","hiddenItems","mainList","UpdateAppComponent","update_app_component_classCallCheck","update_app_component_getPrototypeOf","update_app_component_assertThisInitialized","onRefreshClick","VenueHero","venue_hero_component_classCallCheck","venue_hero_component_getPrototypeOf","visibleHandler","venue_hero_component_assertThisInitialized","hiddenHandler","VenueHeroComponent","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","_unmute","_mute","modalContainer","ViewOrderUrlComponent","view_order_url_component_classCallCheck","view_order_url_component_getPrototypeOf","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"],"mappings":"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,GAAcC,SAC5B,MAAO,CACHh1D,YACA24D,kBAAmB,iBACnB8I,gBACAC,aACAp2J,aACAuvJ,mBACAE,kBACAnC,WACA7sH,eACA61H,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAc33D,SAC5B,MAAO,CACH4C,YACA24D,kBAAmB,gCACnB8I,gBACAC,aACA7G,mBACAE,kBACAnC,WACA7sH,eACA61H,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAch2D,YAC5B,MAAO,CACHiB,YACA24D,kBAAmB,mBACnB8I,gBACAC,aACA7G,mBACAE,kBACAnC,WACA7sH,eACA61H,oBAAqByC,EACrBxC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAcG,gBAC5B,MAAO,CACHl1D,YACA24D,kBAAmB,eACnB8I,gBACAC,aACA7G,mBACAE,kBACAnC,WACA7sH,eACA61H,oBAAqB0C,EACrBzC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAcp4D,UAC5B,MAAO,CACHqD,YACA24D,kBAAmB,aACnB8I,gBACAC,aACAp2J,aACAuvJ,mBACAE,kBACAnC,WACA7sH,eACA61H,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAciC,WAC5B,MAAO,CACHh3D,YACA24D,kBAAmB,aACnB8I,gBACAn2J,aACAo2J,aACA7G,mBACAE,kBACAnC,WACA7sH,eACA61H,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAct1D,SAC5B,MAAO,CACHO,YACA24D,kBAAmB,cACnB8I,gBACAn2J,aACAo2J,aACA7G,mBACAE,kBACAnC,WACA7sH,eACA61H,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAcj4D,aAC5B,MAAO,CACHkD,YACA24D,kBAAmB,iBACnB8I,gBACAC,aACAp2J,aACAuvJ,mBACAE,kBACAnC,WACA7sH,eACA61H,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAch4D,aAC5B,MAAO,CACHiD,YACA24D,kBAA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","file":"app.2631d8ace872f31a6e7c.js","sourcesContent":["/* 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","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","import BaseComponent from 'foundation/base-component';\r\nimport pageSpinner from '../../../general/js/page-spinner';\r\nimport * as userAccountApi from '../../sso/store/api/user-account-api';\r\n\r\nclass BallotCtaComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.onClick = this.onClick.bind(this);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.element.addEventListener('click', this.onClick);\r\n }\r\n\r\n onClick(e) {\r\n e.preventDefault();\r\n pageSpinner.show();\r\n userAccountApi.authUserInBallotSecutix(this.options.actionResource)\r\n .then(() => {\r\n pageSpinner.hide();\r\n return Promise.resolve();\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n pageSpinner.hide();\r\n Promise.reject();\r\n });\r\n }\r\n}\r\n\r\nexport default BallotCtaComponent;\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport BallotCtaComponent from './js/ballot-cta.component';\r\n\r\nComponentsFactory.getInstance().define('ballot-cta', BallotCtaComponent);\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\nexport const PRODUCT_TYPE_PARKING_STANDALONE = 'Parking Standalone';\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 = 4;\r\nexport const MAX_STANDART_TICKETS_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 = 1;\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 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, 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 PRODUCT_TAG_TICKET_PLUS,\r\n MAX_HOSPITALITY_TICKET_PLUS,\r\n PRODUCT_TAG_TICKET_PLUS_EXTRA,\r\n MAX_HOSPITALITY_TICKET_PLUS_EXTRA\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 const totalSelectedSwingBadges = products\r\n .filter((ticket) => ticket.tag === PRODUCT_TAG_SWING_BADGE)\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 case PRODUCT_TAG_TICKET_PLUS:\r\n product.maxQuantity = MAX_HOSPITALITY_TICKET_PLUS;\r\n product.maxAvailable = MAX_HOSPITALITY_TICKET_PLUS;\r\n break;\r\n case PRODUCT_TAG_TICKET_PLUS_EXTRA:\r\n product.maxQuantity = MAX_HOSPITALITY_TICKET_PLUS_EXTRA;\r\n product.maxAvailable = MAX_HOSPITALITY_TICKET_PLUS_EXTRA;\r\n break;\r\n default:\r\n product.maxQuantity = MAX_HOSPITALITY_TICKETS;\r\n\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;\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.maxAvailable = 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} 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 for (let i = startQuantity; i <= product.maxQuantity; i++) {\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 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","export 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_ANALYTICS_APP_DATA_SUCCESS = 'LOAD_ANALYTICS_APP_DATA_SUCCESS';\r\nexport const LOAD_ANALYTICS_APP_DATA_ERROR = 'LOAD_ANALYTICS_APP_DATA_ERROR';\r\n","\r\nexport default {\r\n analytics: {\r\n analyticsData: {},\r\n isAnalyticsDataLoadedSuccessfully: false,\r\n },\r\n apiStatus: {\r\n apiCallsInProgress: 0,\r\n apiErrorMessages: []\r\n }\r\n};\r\n","import { combineReducers } from 'redux';\r\nimport analyticsAppReducer from './analytics-app-reducer';\r\nimport apiStatus from './api-status-reducer';\r\n\r\n\r\nconst rootReducer = combineReducers({\r\n analytics: analyticsAppReducer,\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 analyticsAppReducer(\r\n state = initialState.analytics,\r\n action\r\n) {\r\n if (action.type === types.LOAD_ANALYTICS_APP_DATA_SUCCESS) {\r\n return {\r\n ...state,\r\n analyticsData: action.analytics,\r\n isAnalyticsDataLoadedSuccessfully: true\r\n };\r\n }\r\n\r\n if (action.type === types.LOAD_ANALYTICS_APP_DATA_ERROR) {\r\n return {\r\n ...state,\r\n analyticsData: {},\r\n isAnalyticsDataLoadedSuccessfully: false\r\n };\r\n }\r\n\r\n return state;\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\nimport { reducerTextValues } from './reducer-text-values';\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: [reducerTextValues.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","\r\nexport const reducerTextValues = {\r\n somethingWentWrong: 'Something went wrong.',\r\n};\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","export function isEmpty(obj) {\r\n if (obj === null || obj === undefined) return true;\r\n\r\n if (obj.length > 0) return false;\r\n if (obj.length === 0) return true;\r\n\r\n if (typeof obj === 'number' && !Number.isNaN(obj)) return false;\r\n\r\n if (typeof obj !== 'object') return true;\r\n\r\n return Object.keys(obj).length === 0 && obj.constructor === Object;\r\n}","export function getFormattedFloatValues(numberValue) {\r\n return parseFloat((numberValue).toFixed(2));\r\n}\r\n\r\nexport function getFormattedIntegerValues(numberValue) {\r\n return parseInt(numberValue, 0);\r\n}\r\n\r\nexport function calculatePercentage(numberToCalculate, totalNumber) {\r\n if (totalNumber === 0) {\r\n return getFormattedFloatValues(0);\r\n }\r\n const numberToCalculateFormatted = getFormattedFloatValues(numberToCalculate);\r\n const formattedValue = getFormattedFloatValues(numberToCalculateFormatted * 100 / totalNumber);\r\n\r\n return formattedValue;\r\n}\r\n","import { isEmpty } from './object-utils';\r\nimport { getFormattedIntegerValues } from './number-utils';\r\n\r\nconst dateFormatOptions = {\r\n weekday: 'long',\r\n year: 'numeric',\r\n month: 'long',\r\n day: 'numeric'\r\n};\r\n\r\nconst dateSmallFormatOptions = {\r\n weekday: 'short',\r\n year: 'numeric',\r\n month: 'short',\r\n day: 'numeric'\r\n};\r\n\r\nconst timeFormatOptions = {\r\n hour: 'numeric', minute: 'numeric', second: 'numeric'\r\n};\r\n\r\nexport function getNowDate() {\r\n return new Date();\r\n}\r\n\r\nexport function getFormattedNowDate() {\r\n const dateTimeFormat = new Intl.DateTimeFormat('en-GB', dateFormatOptions);\r\n return dateTimeFormat.format(getNowDate());\r\n}\r\n\r\nexport function getFormattedDate(dateToFormat) {\r\n const dateTimeFormat = new Intl.DateTimeFormat('en-GB', dateFormatOptions);\r\n return dateTimeFormat.format(dateToFormat);\r\n}\r\n\r\nexport function getSmallFormattedDate(dateToFormat) {\r\n const dateTimeFormat = new Intl.DateTimeFormat('en-GB', dateSmallFormatOptions);\r\n return dateTimeFormat.format(dateToFormat);\r\n}\r\n\r\nexport function getFormattedTime(dateToFormat) {\r\n const dateTimeFormat = new Intl.DateTimeFormat('en-GB', timeFormatOptions);\r\n return dateTimeFormat.format(dateToFormat);\r\n}\r\n\r\nexport function getFormattedSeconds(valueInSeconds) {\r\n\r\n if (isNaN(valueInSeconds)) {\r\n valueInSeconds = 0;\r\n }\r\n\r\n const day = getFormattedIntegerValues(valueInSeconds / (24 * 3600));\r\n valueInSeconds %= (24 * 3600);\r\n const hour = getFormattedIntegerValues(valueInSeconds / 3600);\r\n\r\n valueInSeconds %= 3600;\r\n const minutes = getFormattedIntegerValues(valueInSeconds / 60);\r\n\r\n valueInSeconds %= 60;\r\n const seconds = getFormattedIntegerValues(valueInSeconds);\r\n\r\n return `${day} day(s) ${hour}:${minutes}:${seconds}`;\r\n}\r\n\r\nexport function getDateAsISOString(dateToChange) {\r\n if (isEmpty(dateToChange)) {\r\n return dateToChange;\r\n }\r\n\r\n const simpleDate = new Date(dateToChange);\r\n const utcDate = new Date(Date.UTC(simpleDate.getFullYear(), simpleDate.getMonth(), simpleDate.getDate()));\r\n return utcDate.toISOString();\r\n}\r\n\r\n\r\nexport function areDatesEqual(firstDate, secondDate) {\r\n return firstDate.getTime() === secondDate.getTime();\r\n}\r\n\r\nexport function compareDates(firstDate, secondDate) {\r\n if (firstDate.getTime() === secondDate.getTime()) {\r\n return 0;\r\n }\r\n\r\n if (firstDate.getTime() > secondDate.getTime()) {\r\n return 1;\r\n }\r\n\r\n return -1;\r\n}\r\n","import _ from 'lodash';\r\nimport { getFormattedFloatValues, calculatePercentage } from '../../../utils/number-utils';\r\nimport { getFormattedTime, getFormattedDate, getFormattedSeconds } from '../../../utils/date-utils';\r\n\r\nexport function getAverageTimeSpentData(analyticsData) {\r\n const totalAverageTimeForVisitors = getTotalAverageTimeForVisitors(analyticsData);\r\n const averageOfAverageTimeForVisitors = getAverageOfAverageTimeForVisitors(analyticsData);\r\n const analyticsForAverageTimeData = {};\r\n\r\n analyticsData.forEach((pageData) => {\r\n const key = pageData.shortUrlFormat.toLowerCase();\r\n const analyticsTimeItem = analyticsForAverageTimeData[key];\r\n\r\n const averageTimeForVisitors = pageData.isLatest ? pageData.averageTimeForActiveVisitors : pageData.averageTimeForExpiredVisitors;\r\n\r\n if (!analyticsTimeItem) {\r\n const averageTimePercentage = calculatePercentage(averageTimeForVisitors, totalAverageTimeForVisitors);\r\n const formattedAverageTimeForVisitors = getFormattedSeconds(averageTimeForVisitors);\r\n analyticsForAverageTimeData[key] = {\r\n accessedUrl: pageData.accessedURL,\r\n shortUrlFormat: pageData.shortUrlFormat,\r\n averageTimeForVisitors,\r\n averageTimePercentage,\r\n formattedAverageTimeForVisitors\r\n };\r\n } else {\r\n analyticsForAverageTimeData[key].averageTimeForVisitors += averageTimeForVisitors;\r\n analyticsForAverageTimeData[key].averageTimePercentage = calculatePercentage(analyticsForAverageTimeData[key].averageTimeForVisitors, totalAverageTimeForVisitors);\r\n analyticsForAverageTimeData[key].formattedAverageTimeForVisitors = getFormattedSeconds(analyticsForAverageTimeData[key].averageTimeForVisitors);\r\n }\r\n });\r\n\r\n const formattedAnalyticsData = getArrayFromDictionary(analyticsForAverageTimeData).sort((a, b) => {\r\n return b.averageTimeForVisitors - a.averageTimeForVisitors;\r\n });\r\n\r\n return {\r\n totalAverageTimeForVisitors,\r\n averageOfAverageTimeForVisitors,\r\n analyticsData: formattedAnalyticsData,\r\n };\r\n}\r\n\r\nexport function getAnalyticsOverTimeData(analyticsData) {\r\n const analyticsOverTimeData = {};\r\n const siteDataKeys = [];\r\n\r\n analyticsData.forEach((item) => {\r\n const key = `${item.formattedCreatedDate}_${item.formattedCreatedTime}`;\r\n const analyticsTimeItem = analyticsOverTimeData[key];\r\n\r\n const siteDataKey = `${item.formattedCreatedDate}_${item.formattedCreatedTime}_${item.accessedURL}`;\r\n const category = { categoryName: item.categoryName, numberOfAcceptedCookies: item.numberOfAcceptedCookies };\r\n\r\n if (!analyticsTimeItem) {\r\n analyticsOverTimeData[key] = {\r\n activeVisitors: item.numberOfActiveVisitors,\r\n categories: [category],\r\n dateText: item.formattedCreatedDate,\r\n timeText: item.formattedCreatedTime,\r\n };\r\n siteDataKeys.push(siteDataKey);\r\n } else {\r\n let activeVisitors = analyticsTimeItem.activeVisitors\r\n\r\n if (!siteDataKeys.includes(siteDataKey)) {\r\n activeVisitors = analyticsTimeItem.activeVisitors + item.numberOfActiveVisitors;\r\n siteDataKeys.push(siteDataKey);\r\n }\r\n let categoryData = analyticsTimeItem.categories ? analyticsTimeItem.categories : [];\r\n\r\n if (!categoryData.some(e => e.categoryName === category.categoryName)) {\r\n categoryData.push(category);\r\n }\r\n\r\n analyticsOverTimeData[key] = {\r\n ...analyticsTimeItem,\r\n activeVisitors,\r\n categories: categoryData\r\n };\r\n }\r\n });\r\n return analyticsOverTimeData;\r\n}\r\n\r\nexport function getAnalyticsOverPageData(analyticsData) {\r\n const analyticsForPagesData = {};\r\n const totalActiveVisitors = getTotalAmountOfActiveVisitors(analyticsData);\r\n const siteDataKeys = [];\r\n analyticsData.forEach((pageData) => {\r\n const key = `${pageData.shortUrlFormat.toLowerCase()}`;\r\n const averageTimeForVisitors = pageData.isLatest ? pageData.averageTimeForActiveVisitors : pageData.averageTimeForExpiredVisitors;\r\n const analyticsForPageItem = analyticsForPagesData[key];\r\n\r\n const siteDataKey = `${pageData.formattedCreatedDate}_${pageData.formattedCreatedTime}_${pageData.accessedURL}`;\r\n\r\n var numberOfAcceptedAllCookies = pageData.numberOfAcceptedAllCookies;\r\n if (!analyticsForPageItem) {\r\n analyticsForPagesData[key] = {\r\n shortUrlFormat: pageData.shortUrlFormat,\r\n averageTimeForActiveVisitors: averageTimeForVisitors,\r\n formattedAverageTimeForActiveVisitors: getFormattedSeconds(averageTimeForVisitors),\r\n activeVisitors: pageData.numberOfActiveVisitors,\r\n visitorsThatAcceptedCookies: numberOfAcceptedAllCookies,\r\n visitorsThatRejectedCookies: pageData.numberOfActiveVisitors - numberOfAcceptedAllCookies,\r\n };\r\n\r\n siteDataKeys.push(siteDataKey);\r\n } else {\r\n const averageTimeForActiveVisitors = analyticsForPageItem.averageTimeForActiveVisitors + averageTimeForVisitors;\r\n\r\n let activeVisitors = analyticsForPageItem.activeVisitors;\r\n let visitorsThatAcceptedCookies = analyticsForPageItem.visitorsThatAcceptedCookies;\r\n\r\n if (!siteDataKeys.includes(siteDataKey)) {\r\n activeVisitors = analyticsForPageItem.activeVisitors + pageData.numberOfActiveVisitors;\r\n visitorsThatAcceptedCookies = analyticsForPageItem.visitorsThatAcceptedCookies + pageData.numberOfAcceptedAllCookies;\r\n siteDataKeys.push(siteDataKey);\r\n }\r\n\r\n analyticsForPagesData[key] = {\r\n ...analyticsForPageItem,\r\n averageTimeForActiveVisitors,\r\n formattedAverageTimeForActiveVisitors: getFormattedSeconds(averageTimeForActiveVisitors),\r\n activeVisitors,\r\n visitorsThatAcceptedCookies,\r\n visitorsThatRejectedCookies: activeVisitors - visitorsThatAcceptedCookies\r\n };\r\n }\r\n });\r\n\r\n Object.keys(analyticsForPagesData).forEach((key) => {\r\n const analyticsForPagesDataItem = analyticsForPagesData[key];\r\n analyticsForPagesData[key].visitedPercentage = calculatePercentage(analyticsForPagesDataItem.activeVisitors, totalActiveVisitors);\r\n });\r\n\r\n return getArrayFromDictionary(analyticsForPagesData).sort((a, b) => {\r\n return b.visitedPercentage - a.visitedPercentage;\r\n });\r\n}\r\n\r\nexport function getAnalyticsPagesRadarData(analyticsData) {\r\n const radarCaptions = {};\r\n const radarData = {};\r\n const visitorsData = {};\r\n let totalNumberOfActiveVisitors = 0;\r\n const siteDataKeys = [];\r\n analyticsData.forEach((pageData) => {\r\n const key = getKeyByAccessedUrl(pageData.accessedURL);\r\n\r\n const siteDataKey = `${pageData.formattedCreatedDate}_${pageData.formattedCreatedTime}_${pageData.accessedURL}`;\r\n if (!siteDataKeys.includes(siteDataKey)) {\r\n totalNumberOfActiveVisitors += pageData.numberOfActiveVisitors;\r\n siteDataKeys.push(siteDataKey);\r\n\r\n if (!visitorsData[key]) {\r\n radarCaptions[key] = key;\r\n visitorsData[key] = pageData.numberOfActiveVisitors;\r\n } else {\r\n visitorsData[key] += pageData.numberOfActiveVisitors;\r\n }\r\n }\r\n });\r\n\r\n Object.keys(visitorsData).forEach((key) => {\r\n radarData[key] = calculatePercentage(visitorsData[key], totalNumberOfActiveVisitors) / 100;\r\n });\r\n\r\n return { radarCaptions, radarData };\r\n}\r\n\r\nfunction getKeyByAccessedUrl(accessedUrl) {\r\n const splitAccessedUrl = accessedUrl.split('/');\r\n const visitedPage = splitAccessedUrl[3] === undefined ||\r\n splitAccessedUrl[3] === '' ?\r\n '/' :\r\n splitAccessedUrl[3];\r\n return !visitedPage ? '/' : visitedPage.toLowerCase();\r\n}\r\n\r\nexport function getTotalAmountOFVisitorsThatAcceptedCookies(analyticsData) {\r\n let allKeys = [];\r\n\r\n const visitorsAcceptedAllCookies = (accumulator, currentValue) => {\r\n\r\n var key = `${currentValue.createdOnUTC}_${currentValue.accessedURL}`;\r\n if (!allKeys.includes(key)) {\r\n allKeys.push(key);\r\n return accumulator + currentValue.numberOfAcceptedAllCookies;\r\n }\r\n return accumulator;\r\n }\r\n\r\n return analyticsData.reduce(visitorsAcceptedAllCookies, 0);\r\n}\r\n\r\nfunction getTotalAverageTimeForVisitors(analyticsData) {\r\n const averageTimeForVisitorsReducer = (accumulator, currentValue) => {\r\n if (currentValue.isLatest) {\r\n return accumulator + currentValue.averageTimeForActiveVisitors;\r\n }\r\n return accumulator + currentValue.averageTimeForExpiredVisitors;\r\n };\r\n const totalAverageTimeForVisitors = analyticsData.reduce(averageTimeForVisitorsReducer, 0);\r\n return getFormattedFloatValues(totalAverageTimeForVisitors);\r\n}\r\n\r\nfunction getAverageOfAverageTimeForVisitors(analyticsData) {\r\n const averageTimeForVisitorsReducer = (accumulator, currentValue) => {\r\n if (currentValue.isLatest) {\r\n return accumulator + currentValue.averageTimeForActiveVisitors;\r\n }\r\n return accumulator + currentValue.averageTimeForExpiredVisitors;\r\n };\r\n const totalAverageTimeForVisitors = analyticsData.reduce(averageTimeForVisitorsReducer, 0);\r\n return getFormattedFloatValues(totalAverageTimeForVisitors / analyticsData.length);\r\n}\r\n\r\nexport function getTotalAmountOfActiveVisitors(analyticsData) {\r\n let allKeys = [];\r\n\r\n const activeVisitorsReducer = (accumulator, currentValue) => {\r\n\r\n var key = `${currentValue.createdOnUTC}_${currentValue.accessedURL}`;\r\n if (!allKeys.includes(key)) {\r\n allKeys.push(key);\r\n return accumulator + currentValue.numberOfActiveVisitors;\r\n }\r\n return accumulator;\r\n }\r\n\r\n return analyticsData.reduce(activeVisitorsReducer, 0);\r\n}\r\n\r\nexport function getAllAvailableDistinctDates(analyticsData) {\r\n const cloneOfAnalyticsData = _.cloneDeep(analyticsData);\r\n const differentDates = [...new Set(cloneOfAnalyticsData.map((data) => data.created.setHours(0, 0, 0, 0)))];\r\n return differentDates.map((date) => {\r\n return {\r\n id: _.uniqueId('date_'),\r\n value: new Date(date),\r\n text: getFormattedDate(new Date(date))\r\n };\r\n });\r\n}\r\n\r\nexport function getAllAvailableTimes(analyticsData) {\r\n const availableTimes = {};\r\n analyticsData.forEach((data) => {\r\n const currentDate = new Date(data.created);\r\n const formattedDate = getFormattedDate(currentDate);\r\n\r\n if (!availableTimes[formattedDate]) {\r\n availableTimes[formattedDate] = [];\r\n }\r\n\r\n availableTimes[formattedDate].push({\r\n id: _.uniqueId('time_'),\r\n value: currentDate,\r\n timeText: getFormattedTime(currentDate),\r\n dateText: getFormattedDate(currentDate),\r\n activeVisitors: data.numberOfActiveVisitors,\r\n accessedURL: data.accessedURL\r\n });\r\n });\r\n\r\n return availableTimes;\r\n}\r\n\r\nfunction getArrayFromDictionary(dictionaryToConvert) {\r\n return Object.keys(dictionaryToConvert).map((key) => {\r\n return dictionaryToConvert[key];\r\n });\r\n}\r\n","/* eslint-disable no-useless-escape */\r\nimport { compareDates } from '../../../utils/date-utils';\r\nimport { getFormattedIntegerValues } from '../../../utils/number-utils';\r\nimport { isEmpty } from '../../../utils/object-utils';\r\n\r\nconst SHOW_LATEST_DATA = 'showLatestData';\r\nconst DATE_TO_FILTER_BY = 'dateToFilterBy';\r\nconst FROM_DATE = 'from';\r\nconst TO_DATE = 'to';\r\n\r\nexport function setShowLatestData(showLatestData) {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n if (urlParams.has(SHOW_LATEST_DATA)) {\r\n urlParams.delete(SHOW_LATEST_DATA);\r\n }\r\n\r\n urlParams.append(SHOW_LATEST_DATA, showLatestData);\r\n\r\n window.history.replaceState(\r\n null,\r\n 'Show Latest Data',\r\n `?${urlParams.toString()}`\r\n );\r\n}\r\n\r\nexport function getShowLatestData() {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const dateToFilterBy = getDateToFilterByParameter();\r\n const dateRange = getDateRangeParameters();\r\n\r\n if (!urlParams.has(SHOW_LATEST_DATA)) {\r\n return dateToFilterBy === '' && isEmpty(dateRange);\r\n }\r\n\r\n const showLatestData = urlParams.get(SHOW_LATEST_DATA);\r\n return showLatestData === 'true';\r\n}\r\n\r\nexport function removeShowLatestData() {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n if (!urlParams.has(SHOW_LATEST_DATA)) {\r\n return;\r\n }\r\n\r\n urlParams.delete(SHOW_LATEST_DATA);\r\n\r\n window.history.replaceState(\r\n null,\r\n 'Show Latest Data',\r\n `?${urlParams.toString()}`\r\n );\r\n}\r\n\r\nexport function setDateToFilterBy(dateToFilterBy) {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n if (urlParams.has(DATE_TO_FILTER_BY)) {\r\n urlParams.delete(DATE_TO_FILTER_BY);\r\n }\r\n\r\n urlParams.append(DATE_TO_FILTER_BY, dateToFilterBy);\r\n\r\n window.history.replaceState(\r\n null,\r\n 'Sorted Analytics Data',\r\n `?${urlParams.toString()}`\r\n );\r\n}\r\n\r\nexport function getDateToFilterByParameter() {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n if (!urlParams.has(DATE_TO_FILTER_BY)) {\r\n return '';\r\n }\r\n\r\n const dateAsTime = urlParams.get(DATE_TO_FILTER_BY);\r\n return new Date(getFormattedIntegerValues(dateAsTime));\r\n}\r\n\r\nexport function removeDateToFilterBy() {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n if (!urlParams.has(DATE_TO_FILTER_BY)) {\r\n return;\r\n }\r\n\r\n urlParams.delete(DATE_TO_FILTER_BY);\r\n\r\n window.history.replaceState(\r\n null,\r\n 'Sorted Analytics Data',\r\n `?${urlParams.toString()}`\r\n );\r\n}\r\n\r\nexport function setDateRangeFilters(dateRange) {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n if (urlParams.has(FROM_DATE)) {\r\n urlParams.delete(FROM_DATE);\r\n }\r\n\r\n if (urlParams.has(TO_DATE)) {\r\n urlParams.delete(TO_DATE);\r\n }\r\n\r\n urlParams.append(FROM_DATE, dateRange.from);\r\n urlParams.append(TO_DATE, dateRange.to);\r\n\r\n window.history.replaceState(\r\n null,\r\n 'Sorted Analytics Data',\r\n `?${urlParams.toString()}`\r\n );\r\n}\r\n\r\nexport function getDateRangeParameters() {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n if (!urlParams.has(FROM_DATE) || !urlParams.has(TO_DATE)) {\r\n return [];\r\n }\r\n\r\n const fromUrlParameters = urlParams.get(FROM_DATE);\r\n const toUrlParameter = urlParams.get(TO_DATE);\r\n\r\n if (isEmpty(fromUrlParameters) || isEmpty(toUrlParameter)) {\r\n return [];\r\n }\r\n\r\n const formAsDate = new Date(getFormattedIntegerValues(fromUrlParameters));\r\n const toAsDate = new Date(getFormattedIntegerValues(toUrlParameter));\r\n\r\n const dateComparisonResult = compareDates(formAsDate, toAsDate);\r\n\r\n if (dateComparisonResult === 1) {\r\n return [];\r\n }\r\n\r\n return {\r\n from: formAsDate,\r\n to: toAsDate\r\n };\r\n}\r\n\r\nexport function removeDateRangeFilters() {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n if (!urlParams.has(FROM_DATE) || !urlParams.has(TO_DATE)) {\r\n return;\r\n }\r\n\r\n urlParams.delete(TO_DATE);\r\n urlParams.delete(FROM_DATE);\r\n\r\n window.history.replaceState(\r\n null,\r\n 'Sorted Analytics Data',\r\n `?${urlParams.toString()}`\r\n );\r\n}\r\n\r\nexport function shortUrlFormat(accessedUrl) {\r\n const formattedUrl = accessedUrl.replace(/^.*\\/\\/[^\\/]+/, '');\r\n return formattedUrl === '/' ? accessedUrl : formattedUrl;\r\n}\r\n","import _ from 'lodash';\r\nimport { isEmpty } from '../../../utils/object-utils';\r\nimport {\r\n getAnalyticsPagesRadarData,\r\n getAverageTimeSpentData,\r\n getAllAvailableTimes,\r\n getAllAvailableDistinctDates,\r\n getAnalyticsOverTimeData,\r\n getTotalAmountOfActiveVisitors,\r\n getTotalAmountOFVisitorsThatAcceptedCookies,\r\n getAnalyticsOverPageData\r\n} from './response-data-utils';\r\nimport {\r\n getFormattedDate,\r\n getSmallFormattedDate,\r\n getFormattedNowDate,\r\n getFormattedSeconds,\r\n areDatesEqual,\r\n compareDates,\r\n getNowDate,\r\n getFormattedTime\r\n} from '../../../utils/date-utils';\r\nimport {\r\n getDateRangeParameters,\r\n getDateToFilterByParameter,\r\n shortUrlFormat,\r\n getShowLatestData\r\n} from './url-utils';\r\nimport { calculatePercentage } from '../../../utils/number-utils';\r\n\r\nconst analyticsDataInitialState = {\r\n analyticsCardTitle: getFormattedNowDate(),\r\n analyticsForPagesData: [],\r\n activeVisitors: 0,\r\n visitorsThatAcceptedCookies: 0,\r\n categoryName: '',\r\n visitorsThatRejectedCookies: 0,\r\n analyticsAverageTimeSpentData: [],\r\n totalAverageTimeForVisitors: getFormattedSeconds(0),\r\n averageTimeForVisitors: getFormattedSeconds(0)\r\n};\r\n\r\nexport function formatAnalyticsData(responseData) {\r\n if (isEmpty(responseData)) {\r\n return analyticsDataInitialState;\r\n }\r\n\r\n const showLatestData = getShowLatestData();\r\n const dateToFilterBy = isEmpty(getDateToFilterByParameter()) ? getNowDate() : getDateToFilterByParameter();\r\n const dateRange = getDateRangeParameters();\r\n\r\n const sanitizedAnalytics = sanitizeResponseData(responseData);\r\n\r\n if (isEmpty(sanitizedAnalytics)) {\r\n return analyticsDataInitialState;\r\n }\r\n\r\n const filteredAnalytics = filterAnalyticsData(sanitizedAnalytics, { showLatestData, dateToFilterBy, dateRange });\r\n const averageTimeSpentData = getAverageTimeSpentData(filteredAnalytics.analyticsData);\r\n\r\n return {\r\n // Data for the analytic cards\r\n analyticsCardTitle: getAnalyticsCardTitle({ dateToFilterBy, dateRange }),\r\n activeVisitors: filteredAnalytics.activeVisitors,\r\n visitorsThatAcceptedCookies: filteredAnalytics.visitorsThatAcceptedCookies,\r\n visitorsThatRejectedCookies: filteredAnalytics.visitorsThatRejectedCookies,\r\n // Data for Average time spent\r\n analyticsAverageTimeSpentData: averageTimeSpentData.analyticsData,\r\n // Data for analytics over time\r\n analyticsOverTimeData: getAnalyticsOverTimeData(filteredAnalytics.analyticsData),\r\n // Data for each page visited\r\n analyticsForPagesData: filteredAnalytics.analyticsData,\r\n analyticsOverPageData: getAnalyticsOverPageData(filteredAnalytics.analyticsData),\r\n // Data for the radar,\r\n analyticsPagesRadarData: getAnalyticsPagesRadarData(filteredAnalytics.analyticsData),\r\n totalAverageTimeForVisitors: getFormattedSeconds(averageTimeSpentData.totalAverageTimeForVisitors),\r\n averageTimeForVisitors: getFormattedSeconds(averageTimeSpentData.averageOfAverageTimeForVisitors),\r\n allAvailableTimes: getAllAvailableTimes(filteredAnalytics.analyticsData),\r\n allAvailableDistinctDates: getAllAvailableDistinctDates(sanitizedAnalytics)\r\n };\r\n}\r\n\r\nfunction getAnalyticsCardTitle({ dateToFilterBy, dateRange }) {\r\n return isEmpty(dateRange) ?\r\n getFormattedDate(dateToFilterBy) :\r\n `${getSmallFormattedDate(dateRange.from)} - ${getSmallFormattedDate(dateRange.to)}`;\r\n}\r\n\r\nfunction sanitizeResponseData(responseData) {\r\n const copyOfResponseData = _.cloneDeep(responseData);\r\n\r\n const activeVisitors = getTotalAmountOfActiveVisitors(copyOfResponseData);\r\n\r\n return copyOfResponseData.map((responseAnalytic) => {\r\n const analyticDate = new Date(responseAnalytic.createdOnUTC);\r\n responseAnalytic.created = analyticDate;\r\n responseAnalytic.id = _.uniqueId();\r\n responseAnalytic.shortUrlFormat = shortUrlFormat(responseAnalytic.accessedURL);\r\n responseAnalytic.formattedCreatedDate = getFormattedDate(analyticDate);\r\n responseAnalytic.formattedCreatedTime = getFormattedTime(analyticDate);\r\n responseAnalytic.formattedAverageTimeForActiveVisitors = getFormattedSeconds(responseAnalytic.averageTimeForActiveVisitors);\r\n responseAnalytic.formattedAverageTimeForExpiredVisitors = getFormattedSeconds(responseAnalytic.averageTimeForExpiredVisitors);\r\n responseAnalytic.visitedPercentage = calculatePercentage(responseAnalytic.numberOfActiveVisitors, activeVisitors);\r\n responseAnalytic.numberOfRejectedCookies = responseAnalytic.numberOfActiveVisitors - responseAnalytic.numberOfAcceptedCookies;\r\n\r\n return responseAnalytic;\r\n }).sort((a, b) => {\r\n return compareDates(b.created, a.created);\r\n });\r\n}\r\n\r\nfunction filterAnalyticsData(analyticsData, { showLatestData, dateToFilterBy, dateRange }) {\r\n const isDateRangeEmpty = isEmpty(dateRange);\r\n const copyOfAnalyticsData = _.cloneDeep(analyticsData);\r\n\r\n if (!isEmpty(dateToFilterBy)) {\r\n dateToFilterBy.setHours(0, 0, 0, 0);\r\n }\r\n\r\n if (!isDateRangeEmpty) {\r\n dateRange.from.setHours(0, 0, 0, 0);\r\n dateRange.to.setHours(0, 0, 0, 0);\r\n }\r\n\r\n const filteredAnalytics = getFilterAnalyticsData(copyOfAnalyticsData, { showLatestData, dateToFilterBy, dateRange }).sort((a, b) => {\r\n return b.visitedPercentage - a.visitedPercentage;\r\n });\r\n\r\n const totalAmountOfActiveUsers = getTotalAmountOfActiveVisitors(filteredAnalytics);\r\n\r\n filteredAnalytics.forEach((analyticData) => {\r\n analyticData.visitedPercentage = calculatePercentage(analyticData.numberOfActiveVisitors, totalAmountOfActiveUsers);\r\n });\r\n\r\n const activeVisitors = getTotalAmountOfActiveVisitors(filteredAnalytics);\r\n const visitorsThatAcceptedCookies = getTotalAmountOFVisitorsThatAcceptedCookies(filteredAnalytics);\r\n\r\n return {\r\n analyticsData: filteredAnalytics,\r\n activeVisitors,\r\n visitorsThatAcceptedCookies,\r\n visitorsThatRejectedCookies: activeVisitors - visitorsThatAcceptedCookies\r\n };\r\n}\r\n\r\nfunction getFilterAnalyticsData(analyticsData, { showLatestData, dateToFilterBy, dateRange }) {\r\n\r\n if (showLatestData) {\r\n return analyticsData.filter((analytic) => analytic.isLatest === showLatestData);\r\n }\r\n\r\n const isDateRangeEmpty = isEmpty(dateRange);\r\n\r\n return analyticsData.filter((analytic) => {\r\n const copyOfAnalytic = _.cloneDeep(analytic);\r\n copyOfAnalytic.created.setHours(0, 0, 0, 0);\r\n if (isDateRangeEmpty) {\r\n return analytic.isLatest === false && areDatesEqual(copyOfAnalytic.created, dateToFilterBy);\r\n }\r\n const comparisonWithFromDateResult = compareDates(copyOfAnalytic.created, dateRange.from);\r\n const comparisonWithToDateResult = compareDates(copyOfAnalytic.created, dateRange.to);\r\n\r\n return analytic.isLatest === false &&\r\n (comparisonWithFromDateResult === 1 || comparisonWithFromDateResult === 0) &&\r\n (comparisonWithToDateResult === -1 || comparisonWithToDateResult === 0);\r\n });\r\n}\r\n\r\nexport function formatDatesToFilter(datesToFilter) {\r\n if (!datesToFilter || datesToFilter.length <= 0) {\r\n return [];\r\n }\r\n return datesToFilter.map((dateToFilter, index) => {\r\n return {\r\n id: index,\r\n text: dateToFilter,\r\n value: new Date(dateToFilter)\r\n }\r\n })\r\n\r\n}","const rxOne = /^[\\],:{}\\s]*$/;\r\nconst rxTwo = /\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g;\r\nconst rxThree = /\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g;\r\nconst rxFour = /(?:^|:|,)(?:\\s*\\[)+/g;\r\nconst isJSON = (input) => (\r\n input.length && rxOne.test(\r\n input.replace(rxTwo, '@')\r\n .replace(rxThree, ']')\r\n .replace(rxFour, '')\r\n )\r\n);\r\n\r\nexport function handleResponse(response) {\r\n if (response.ok) {\r\n return response.text().then((text) => {\r\n const responseBody = isJSON(text) ? JSON.parse(text) : {};\r\n return { hasErrors: false, data: responseBody };\r\n });\r\n }\r\n\r\n if (response.status >= 400 && response.status < 500) {\r\n return response.text().then((errorMessage) => {\r\n return { hasErrors: true, errorMessage };\r\n });\r\n }\r\n\r\n return { hasErrors: true, errorMessage: 'Network error.' };\r\n}\r\n\r\nexport function handleError(error) {\r\n // eslint-disable-next-line no-console\r\n return { hasErrors: true, errorMessage: 'Network error.' };\r\n}\r\n","import * as types from './action-types';\r\nimport { beginApiCall, apiCallError } from './api-status-actions';\r\nimport { formatAnalyticsData, formatDatesToFilter } from './utils/data-format-utils';\r\nimport * as analyticsApi from '../api/analytics-api';\r\n\r\nexport function loadAnalyticsAppDataSuccess(analytics) {\r\n return { type: types.LOAD_ANALYTICS_APP_DATA_SUCCESS, analytics };\r\n}\r\n\r\nexport function loadAnalyticsAppDataError() {\r\n return { type: types.LOAD_ANALYTICS_APP_DATA_ERROR };\r\n}\r\n\r\nexport function loadAnalyticsAppData(callBackUrl) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return analyticsApi.loadAnalyticsAppData(callBackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadAnalyticsAppDataError());\r\n return;\r\n }\r\n\r\n dispatch(loadAnalyticsAppDataSuccess({\r\n formattedAnalyticsData: formatAnalyticsData(response.data.data),\r\n datesToFilter: formatDatesToFilter(response.data.dateToFilter)\r\n }));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadAnalyticsAppDataError());\r\n\r\n throw error;\r\n });\r\n };\r\n}\r\n","import { handleResponse, handleError } from './api-utils';\r\n\r\nexport function loadAnalyticsAppData(callbackUrl) {\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}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport './analytics-icon.scss';\r\n\r\nfunction RefreshIcon({ onClick }) {\r\n return (\r\n \r\n \r\n );\r\n}\r\n\r\n\r\nRefreshIcon.propTypes = {\r\n onClick: PropTypes.func\r\n};\r\n\r\nexport default RefreshIcon;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport './analytics-icon.scss';\r\n\r\nfunction CloseIcon({ onClick }) {\r\n return (\r\n \r\n \r\n );\r\n}\r\n\r\n\r\nCloseIcon.propTypes = {\r\n onClick: PropTypes.func\r\n};\r\n\r\nexport default CloseIcon;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction CheckboxInput(\r\n {\r\n onChange,\r\n checkedValue,\r\n inputText,\r\n inputItem,\r\n }\r\n\r\n) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nCheckboxInput.propTypes = {\r\n onChange: PropTypes.func,\r\n checkedValue: PropTypes.bool,\r\n inputText: PropTypes.string,\r\n inputItem: PropTypes.any\r\n};\r\n\r\nexport default CheckboxInput;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { isEmpty } from '../../utils/object-utils';\r\nimport './analytics-filter-menu.scss';\r\nimport { getDateToFilterByParameter, getDateRangeParameters, getShowLatestData } from '../../store/actions/utils/url-utils';\r\nimport { getFormattedDate } from '../../utils/date-utils';\r\nimport CloseIcon from '../icons/CloseIcon';\r\nimport CheckboxInput from '../inputs/CheckboxInput';\r\n\r\nclass AnalyticsFilterMenu extends Component {\r\n constructor(props) {\r\n super(props);\r\n const dateToFilterByParameter = getDateToFilterByParameter();\r\n const dateRangeParameters = getDateRangeParameters();\r\n const filters = {};\r\n\r\n if (!isEmpty(dateToFilterByParameter)) {\r\n filters[getFormattedDate(dateToFilterByParameter)] = true;\r\n }\r\n\r\n if (!isEmpty(dateRangeParameters)) {\r\n filters[getFormattedDate(dateRangeParameters.from)] = true;\r\n filters[getFormattedDate(dateRangeParameters.to)] = true;\r\n }\r\n\r\n this.state = { toggleMenu: false, filters };\r\n this.handleToggleMenuClick = this.handleToggleMenuClick.bind(this);\r\n this.handleToggleDisplayLatestData = this.handleToggleDisplayLatestData.bind(this);\r\n this.handleMenuItemClick = this.handleMenuItemClick.bind(this);\r\n this.handleFiltersChanged = this.handleFiltersChanged.bind(this);\r\n this.handleClearFiltersClick = this.handleClearFiltersClick.bind(this);\r\n this.getDisplayLatestDataValue = this.getDisplayLatestDataValue.bind(this);\r\n this.displayMenuToggleButton = this.displayMenuToggleButton.bind(this);\r\n this.displayMenu = this.displayMenu.bind(this);\r\n this.displayFilteredItems = this.displayFilteredItems.bind(this);\r\n }\r\n\r\n handleToggleMenuClick() {\r\n this.setState((prevState) => {\r\n return {\r\n toggleMenu: !prevState.toggleMenu\r\n };\r\n });\r\n }\r\n\r\n handleToggleDisplayLatestData(displayDataValue) {\r\n const { onDisplayLatestDataClick } = this.props;\r\n this.setState((prevState) => {\r\n return {\r\n ...prevState,\r\n filters: {}\r\n };\r\n }, () => {\r\n onDisplayLatestDataClick(!displayDataValue);\r\n });\r\n }\r\n\r\n handleMenuItemClick(menuItem) {\r\n this.setState((prevState) => {\r\n return {\r\n ...prevState,\r\n filters: {\r\n ...prevState.filters,\r\n [menuItem.text]: !prevState.filters[menuItem.text]\r\n }\r\n };\r\n }, this.handleFiltersChanged);\r\n }\r\n\r\n handleFiltersChanged() {\r\n const { onFilterByDateClick, onFilterByRangeClick, menuData } = this.props;\r\n const { filters } = this.state;\r\n\r\n if (isEmpty(filters)) {\r\n return;\r\n }\r\n const filterKeys = Object.keys(filters);\r\n const keysToFilterBy = filterKeys.filter((filterKey) => filters[filterKey]);\r\n\r\n if (isEmpty(keysToFilterBy)) {\r\n this.handleClearFiltersClick();\r\n return;\r\n }\r\n\r\n const filteredItems = menuData.filter((item) => { return keysToFilterBy.includes(item.text); });\r\n\r\n if (filteredItems.length === 1) {\r\n onFilterByDateClick(filteredItems[0].value.getTime());\r\n return;\r\n }\r\n\r\n if (filteredItems.length >= 2) {\r\n const fromDate = filteredItems[filteredItems.length - 1].value.getTime();\r\n const toDate = filteredItems[0].value.getTime();\r\n onFilterByRangeClick({ from: fromDate, to: toDate });\r\n }\r\n }\r\n\r\n handleClearFiltersClick() {\r\n const { onClearFiltersClick } = this.props;\r\n this.setState((prevState) => {\r\n return {\r\n ...prevState,\r\n filters: {}\r\n };\r\n }, onClearFiltersClick);\r\n }\r\n\r\n displayMenuToggleButton() {\r\n const {\r\n buttonText,\r\n menuData\r\n } = this.props;\r\n\r\n if (isEmpty(menuData)) {\r\n return null;\r\n }\r\n\r\n return ;\r\n }\r\n\r\n\r\n getDisplayLatestDataValue() {\r\n return getShowLatestData();\r\n }\r\n\r\n displayMenu() {\r\n const { toggleMenu, filters } = this.state;\r\n const { menuData } = this.props;\r\n\r\n if (!toggleMenu || isEmpty(menuData)) {\r\n return null;\r\n }\r\n\r\n return
\r\n
    \r\n
    \r\n {'Clear Filters'}\r\n
    \r\n
    \r\n \r\n
    \r\n
  • \r\n \r\n
  • \r\n {this.displayFilteredItems(menuData, filters)}\r\n
\r\n
;\r\n }\r\n\r\n displayFilteredItems(menuData, filters) {\r\n return menuData.map((menuItem, index) => {\r\n return (\r\n
  • \r\n \r\n
  • );\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.displayMenuToggleButton()}\r\n {this.displayMenu()}\r\n \r\n );\r\n }\r\n}\r\n\r\nAnalyticsFilterMenu.propTypes = {\r\n buttonText: PropTypes.string,\r\n menuData: PropTypes.array,\r\n onMenuButtonClick: PropTypes.func,\r\n onFilterByDateClick: PropTypes.func,\r\n onFilterByRangeClick: PropTypes.func,\r\n onDisplayLatestDataClick: PropTypes.func,\r\n onClearFiltersClick: PropTypes.func,\r\n};\r\n\r\nexport default AnalyticsFilterMenu;\r\n","import React, { createContext } from 'react';\r\n\r\nexport const AnalyticsAppContext = createContext();\r\n\r\n/* eslint-disable */\r\nexport function withAnalyticsAppContext(Component) {\r\n return (props) => (\r\n \r\n {(context) => }\r\n \r\n );\r\n}\r\n/* eslint-enable */\r\n","import React, { Fragment } from 'react';\r\nimport RefreshIcon from '../icons/RefreshIcon';\r\nimport './analytics-grid-header.scss';\r\nimport AnalyticsFilterMenu from '../analytics-filter-menu/AnalyticsFilterMenu';\r\nimport { withAnalyticsAppContext } from '../../context/analytics-app-context';\r\n\r\nfunction AnalyticsGridHeader({ appContext }) {\r\n const {\r\n loading,\r\n formattedTodayDate,\r\n loadAnalyticsAppData,\r\n filterAnalyticsDataByDate,\r\n filterAnalyticsDataByDateRange,\r\n displayLatestData,\r\n clearAnalyticsFilters,\r\n analyticsData,\r\n datesToFilter\r\n } = appContext;\r\n const {\r\n analyticsCardTitle,\r\n allAvailableDistinctDates\r\n } = analyticsData || {};\r\n\r\n function getAnalyticsFilterMenuText() {\r\n return loading ? 'Loading...' : analyticsCardTitle;\r\n }\r\n\r\n return (\r\n
    \r\n

    {'Welcome back'}

    \r\n

    {formattedTodayDate}

    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default withAnalyticsAppContext(AnalyticsGridHeader);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport './analytics-card.scss';\r\n\r\nfunction AnalyticsCard({\r\n isLoading,\r\n title,\r\n content,\r\n footerPositiveValue,\r\n footerNegativeValue,\r\n footerValue,\r\n chipValue\r\n}) {\r\n return (\r\n
    \r\n
    \r\n {!isLoading &&
    {title}
    }\r\n

    \r\n {isLoading ?\r\n
    {'Loading...'}
    :\r\n
    {content}
    }\r\n

    \r\n {!isLoading &&
    \r\n {footerPositiveValue}\r\n {footerNegativeValue}\r\n {footerValue}\r\n
    }\r\n {!isLoading && chipValue &&
    \r\n {chipValue}\r\n
    }\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nAnalyticsCard.propTypes = {\r\n isLoading: PropTypes.bool,\r\n title: PropTypes.string,\r\n content: PropTypes.string,\r\n footerPositiveValue: PropTypes.string,\r\n footerNegativeValue: PropTypes.string,\r\n footerValue: PropTypes.string,\r\n chipValue: PropTypes.string,\r\n};\r\n\r\nexport default AnalyticsCard;\r\n","import React from 'react';\r\nimport AnalyticsCard from '../../analytics-card/AnalyticsCard';\r\nimport './accepted-cookies-card.scss';\r\nimport { withAnalyticsAppContext } from '../../../context/analytics-app-context';\r\n\r\nfunction AcceptedCookiesCard({ appContext }) {\r\n const { loading } = appContext;\r\n const {\r\n analyticsCardTitle,\r\n visitorsThatAcceptedCookies\r\n } = appContext.analyticsData || {};\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default withAnalyticsAppContext(AcceptedCookiesCard);\r\n","import React from 'react';\r\nimport AnalyticsCard from '../../analytics-card/AnalyticsCard';\r\nimport { withAnalyticsAppContext } from '../../../context/analytics-app-context';\r\nimport './active-visitors-card.scss';\r\n\r\nfunction ActiveVisitorsCard({ appContext }) {\r\n const { loading } = appContext;\r\n const {\r\n analyticsCardTitle,\r\n activeVisitors\r\n } = appContext.analyticsData || {};\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default withAnalyticsAppContext(ActiveVisitorsCard);\r\n","import React from 'react';\r\nimport AnalyticsCard from '../../analytics-card/AnalyticsCard';\r\nimport './refused-cookies-card.scss';\r\nimport { withAnalyticsAppContext } from '../../../context/analytics-app-context';\r\n\r\nfunction RefusedCookiesCard({ appContext }) {\r\n const { loading } = appContext;\r\n const {\r\n analyticsCardTitle,\r\n visitorsThatRejectedCookies\r\n } = appContext.analyticsData || {};\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default withAnalyticsAppContext(RefusedCookiesCard);\r\n","import React from 'react';\r\nimport AnalyticsCard from '../../analytics-card/AnalyticsCard';\r\nimport { withAnalyticsAppContext } from '../../../context/analytics-app-context';\r\nimport './average-time-card.scss';\r\n\r\nfunction AverageTimeCard({ appContext }) {\r\n const { loading } = appContext;\r\n const {\r\n analyticsCardTitle,\r\n averageTimeForVisitors\r\n } = appContext.analyticsData || {};\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default withAnalyticsAppContext(AverageTimeCard);\r\n","import React, { Fragment } from 'react';\r\nimport AcceptedCookiesCard from '../analytics-cards/accepted-cookies-card/AcceptedCookiesCard';\r\nimport ActiveVisitorsCard from '../analytics-cards/active-visitors-card/ActiveVisitorsCard';\r\nimport RefusedCookiesCard from '../analytics-cards/refused-cookies-card/RefusedCookiesCard';\r\nimport AverageTimeCard from '../analytics-cards/average-time-card/AverageTimeCard';\r\n\r\nfunction AnalyticsTrafficData() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default AnalyticsTrafficData;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport './linear-progress-bar.scss';\r\n\r\nfunction LinearProgressBar({ completedPercentage }) {\r\n const progressBarTranslateValue = -(100 - completedPercentage);\r\n return (\r\n
    \r\n

    {`${completedPercentage}%`}

    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nLinearProgressBar.propTypes = {\r\n completedPercentage: PropTypes.number.isRequired\r\n};\r\n\r\nexport default LinearProgressBar;\r\n","import React from 'react';\r\nimport _ from 'lodash';\r\nimport LinearProgressBar from '../linear-progress-bar/LinearProgressbar';\r\nimport { isEmpty } from '../../utils/object-utils';\r\nimport './analytics-table.scss';\r\n\r\nexport default function AnalyticsTable({ tableProperties, tableData }) {\r\n function getTableHeader() {\r\n if (isEmpty(tableProperties) || isEmpty(tableData)) {\r\n return null;\r\n }\r\n\r\n const tableHeaders = tableProperties.map((tableProperty) => {\r\n return {tableProperty.headerText};\r\n });\r\n\r\n return \r\n \r\n {tableHeaders}\r\n \r\n ;\r\n }\r\n\r\n function getTableRows() {\r\n if (isEmpty(tableProperties) || isEmpty(tableData)) {\r\n return null;\r\n }\r\n\r\n return tableData.map((tableRow) =>\r\n \r\n {getTableRowData(tableRow)}\r\n );\r\n }\r\n\r\n function getTableRowData(rowData) {\r\n return tableProperties.map((tableProperty) => {\r\n return (\r\n \r\n {getTableRowElement(rowData, tableProperty)}\r\n );\r\n });\r\n }\r\n\r\n function getTableRowElement(rowData, tableProperty) {\r\n if (tableProperty.isProgressBar) {\r\n return ;\r\n }\r\n const tableElement = rowData[tableProperty.property];\r\n if (!_.isArray(tableElement)) {\r\n return rowData[tableProperty.property];\r\n }\r\n\r\n const foundElement = tableElement.find(x => x[tableProperty.arrayKey] === tableProperty.arrayValue);\r\n\r\n if (_.isEmpty(foundElement)) {\r\n return null;\r\n }\r\n\r\n return foundElement[tableProperty.arrayProperty];\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {getTableHeader()}\r\n \r\n {getTableRows()}\r\n \r\n
    \r\n
    \r\n );\r\n}\r\n","import React from 'react';\r\nimport { withAnalyticsAppContext } from '../../context/analytics-app-context';\r\nimport { isEmpty } from '../../utils/object-utils';\r\nimport AnalyticsTable from '../analytics-table/AnalyticsTable';\r\nimport './analytics-pages-data.scss';\r\n\r\nfunction AnalyticsPagesData({ appContext }) {\r\n const { loading } = appContext;\r\n const { analyticsOverPageData, activeVisitors } = appContext.analyticsData || {};\r\n const analyticsPageProperties = [\r\n { property: 'shortUrlFormat', headerText: 'Page URL', isProgressBar: false },\r\n { property: 'formattedAverageTimeForActiveVisitors', headerText: 'Avg. Visitor Time', isProgressBar: false },\r\n { property: 'activeVisitors', headerText: 'Active Visitors', isProgressBar: false },\r\n { property: 'visitorsThatAcceptedCookies', headerText: 'Accepted All Cookies', isProgressBar: false },\r\n { property: 'visitorsThatRejectedCookies', headerText: 'Refused Some Cookies', isProgressBar: false },\r\n { property: 'visitedPercentage', headerText: `Most Visited out of ${activeVisitors}`, isProgressBar: true }\r\n ];\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    {'Analytics over page'}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {loading && 'Loading...'}\r\n {loading || isEmpty(analyticsOverPageData) ?\r\n null :\r\n }\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default withAnalyticsAppContext(AnalyticsPagesData);\r\n","import React from 'react';\r\nimport { withAnalyticsAppContext } from '../../context/analytics-app-context';\r\nimport AnalyticsTable from '../analytics-table/AnalyticsTable';\r\nimport { isEmpty } from '../../utils/object-utils';\r\nimport './analytics-average-time-spent-data.scss';\r\n\r\nfunction AnalyticsAverageTimeSpentData({ appContext }) {\r\n const { loading } = appContext;\r\n const { analyticsAverageTimeSpentData, totalAverageTimeForVisitors } = appContext.analyticsData || {};\r\n const analyticsPageProperties = [\r\n { property: 'shortUrlFormat', headerText: 'Page URL', isProgressBar: false },\r\n { property: 'formattedAverageTimeForVisitors', headerText: 'Average Time Spent', isProgressBar: false },\r\n { property: 'averageTimePercentage', headerText: `Time Spent out of ${totalAverageTimeForVisitors}`, isProgressBar: true }\r\n ];\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    {'Average Time Spent'}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {loading && 'Loading...'}\r\n {loading || isEmpty(analyticsAverageTimeSpentData) ?\r\n null :\r\n }\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default withAnalyticsAppContext(AnalyticsAverageTimeSpentData);\r\n","import React from 'react';\r\n\r\nconst polarToX = (angle, distance) => Math.cos(angle - Math.PI / 2) * distance;\r\n\r\nconst polarToY = (angle, distance) => Math.sin(angle - Math.PI / 2) * distance;\r\n\r\nconst points = (points) => {\r\n return points.map((point) => point[0].toFixed(4) + ',' + point[1].toFixed(4))\r\n .join(' ');\r\n};\r\n\r\nconst axis = (options) => (col, i) => (\r\n \r\n);\r\n\r\nconst dot = (columns, options) => (chartData, i) => {\r\n const data = chartData.data;\r\n const meta = chartData.meta || {};\r\n const extraProps = options.dotProps(meta);\r\n let mouseEnter = () => { };\r\n let mouseLeave = () => { };\r\n if (extraProps.mouseEnter) {\r\n mouseEnter = extraProps.mouseEnter;\r\n }\r\n if (extraProps.mouseLeave) {\r\n mouseLeave = extraProps.mouseLeave;\r\n }\r\n return columns.map((col) => {\r\n const val = data[col.key];\r\n if (typeof val !== 'number') {\r\n throw new Error(`Data set ${i} is invalid.`);\r\n }\r\n\r\n return (\r\n mouseEnter({ key: col.key, value: val, idx: i })}\r\n onMouseLeave={() => mouseLeave({})}\r\n />\r\n );\r\n });\r\n};\r\n\r\nconst shape = (columns, options) => (chartData, i) => {\r\n const data = chartData.data;\r\n const meta = chartData.meta || {};\r\n const extraProps = options.shapeProps(meta);\r\n return (\r\n {\r\n const val = data[col.key];\r\n if (typeof val !== 'number') {\r\n throw new Error(`Data set ${i} is invalid.`);\r\n }\r\n\r\n return [\r\n polarToX(col.angle, (val * options.chartSize) / 2),\r\n polarToY(col.angle, (val * options.chartSize) / 2)\r\n ];\r\n })\r\n )}\r\n {...extraProps}\r\n stroke={meta.color}\r\n fill={meta.color}\r\n className={[extraProps.className, meta.class].join(' ')}\r\n />\r\n );\r\n};\r\n\r\nconst scale = (options, value) => (\r\n \r\n);\r\n\r\nconst caption = (options) => (col) => (\r\n \r\n {col.caption}\r\n \r\n);\r\n\r\nconst render = (captions, chartData, options = {}) => {\r\n if (typeof captions !== 'object' || Array.isArray(captions)) {\r\n throw new Error('caption must be an object');\r\n }\r\n if (!Array.isArray(chartData)) {\r\n throw new Error('data must be an array');\r\n }\r\n options.chartSize = options.size / options.zoomDistance;\r\n\r\n const columns = Object.keys(captions).map((key, i, all) => {\r\n return {\r\n key,\r\n caption: captions[key],\r\n angle: (Math.PI * 2 * i) / all.length\r\n };\r\n });\r\n const groups = [\r\n {chartData.map(shape(columns, options))}\r\n ];\r\n if (options.captions) {\r\n groups.push({columns.map(caption(options))});\r\n }\r\n if (options.dots) {\r\n groups.push({chartData.map(dot(columns, options))});\r\n }\r\n if (options.axes) {\r\n groups.unshift({columns.map(axis(options))});\r\n }\r\n if (options.scales > 0) {\r\n const scales = [];\r\n for (let i = options.scales; i > 0; i--) {\r\n scales.push(scale(options, i / options.scales));\r\n }\r\n groups.unshift({scales});\r\n }\r\n const delta = (options.size / 2).toFixed(4);\r\n return {groups};\r\n};\r\n\r\nexport default render;\r\n","import { getFormattedFloatValues } from '../../utils/number-utils';\r\n\r\nexport const noSmoothing = (points) => {\r\n if (!points || points.length <= 0) {\r\n points = [[0, 0]];\r\n }\r\n\r\n let d = 'M' + points[0][0].toFixed(4) + ',' + points[0][1].toFixed(4);\r\n for (let i = 1; i < points.length; i++) {\r\n d += 'L' + points[i][0].toFixed(4) + ',' + points[i][1].toFixed(4);\r\n }\r\n return d + 'z';\r\n};\r\n\r\nexport const setViewBox = (options) =>\r\n `-${options.captionMargin} 0 ${options.size + options.captionMargin * 2} ${options.size}`;\r\n\r\nexport const defaultOptions = {\r\n size: 750,\r\n axes: true, // show axes?\r\n scales: 10, // show scale circles?\r\n captions: true, // show captions?\r\n dots: true, // show dots?\r\n zoomDistance: 1.2, // where on the axes are the captions?\r\n smoothing: noSmoothing, // shape smoothing function\r\n captionMargin: 15,\r\n setViewBox,\r\n axisProps: () => ({ className: 'axis' }),\r\n scaleProps: () => ({ className: 'scale', fill: 'none' }),\r\n shapeProps: () => ({ className: 'shape' }),\r\n dotProps: () => ({\r\n className: 'dot',\r\n mouseEnter: (dot) => {\r\n const toolTip = document.getElementById('radar-tool-tip');\r\n\r\n if (!toolTip) {\r\n return;\r\n }\r\n const formattedValue = getFormattedFloatValues(dot.value * 100);\r\n toolTip.innerText = `${formattedValue}%`;\r\n toolTip.style.visibility = 'visible';\r\n },\r\n mouseLeave: (dot) => {\r\n const toolTip = document.getElementById('radar-tool-tip');\r\n if (!toolTip) {\r\n return;\r\n }\r\n toolTip.innerText = '';\r\n toolTip.style.visibility = 'hidden';\r\n }\r\n }),\r\n captionProps: () => ({\r\n className: 'caption caption analytics-radar-caption',\r\n textAnchor: 'middle',\r\n fontSize: 12,\r\n fontFamily: `Nunito,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Cardinal,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"`\r\n })\r\n};\r\n","import React, { Fragment, Component } from 'react';\r\nimport './radar-chart.scss';\r\nimport radar from './radar';\r\nimport { defaultOptions } from './radar-default-options';\r\n\r\nclass RadarChart extends Component {\r\n render() {\r\n const {\r\n data,\r\n captions,\r\n options,\r\n size = defaultOptions.size,\r\n id\r\n } = this.props;\r\n\r\n const chartOptions = {\r\n ...defaultOptions,\r\n ...options,\r\n size\r\n };\r\n\r\n const { setViewBox } = chartOptions;\r\n const chart = radar(captions, data, chartOptions);\r\n\r\n return (\r\n \r\n \r\n
    \r\n \r\n {chart}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default RadarChart;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport './analytics-icon.scss';\r\n\r\nfunction DecrementIcon({ onClick }) {\r\n return (\r\n \r\n \r\n );\r\n}\r\n\r\n\r\nDecrementIcon.propTypes = {\r\n onClick: PropTypes.func\r\n};\r\n\r\nexport default DecrementIcon;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport './analytics-icon.scss';\r\n\r\nfunction IncrementIcon({ onClick }) {\r\n return (\r\n \r\n \r\n );\r\n}\r\n\r\n\r\nIncrementIcon.propTypes = {\r\n onClick: PropTypes.func\r\n};\r\n\r\nexport default IncrementIcon;\r\n","import React, { Component } from 'react';\r\nimport RadarChart from './RadarChart';\r\nimport { withAnalyticsAppContext } from '../../context/analytics-app-context';\r\nimport { isEmpty } from '../../utils/object-utils';\r\nimport './analytics-pages-radar.scss';\r\nimport DecrementIcon from '../icons/DecrementIcon';\r\nimport IncrementIcon from '../icons/IncrementIcon';\r\n\r\nconst DEFAULT_SCALE = 10;\r\nconst MINIMUM_SCALE = 1;\r\nconst DEFAULT_ZOOM_DISTANCE = 1.2;\r\n\r\nclass AnalyticsPagesRadar extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onIncrementClick = this.onIncrementClick.bind(this);\r\n this.onDecrementClick = this.onDecrementClick.bind(this);\r\n this.state = { scales: DEFAULT_SCALE, zoomDistance: DEFAULT_ZOOM_DISTANCE };\r\n }\r\n\r\n onIncrementClick() {\r\n const { scales } = this.state;\r\n if (scales === DEFAULT_SCALE) {\r\n return;\r\n }\r\n\r\n this.setState((prevState) => {\r\n return {\r\n ...prevState,\r\n scales: prevState.scales + 1,\r\n zoomDistance: prevState.zoomDistance + 0.1\r\n };\r\n });\r\n }\r\n\r\n onDecrementClick() {\r\n const { scales } = this.state;\r\n if (scales === MINIMUM_SCALE) {\r\n return;\r\n }\r\n\r\n this.setState((prevState) => {\r\n return {\r\n ...prevState,\r\n scales: prevState.scales - 1,\r\n zoomDistance: prevState.zoomDistance - 0.1\r\n };\r\n });\r\n }\r\n\r\n\r\n render() {\r\n const { appContext } = this.props;\r\n const { scales, zoomDistance } = this.state;\r\n const { loading } = appContext;\r\n const { analyticsPagesRadarData } = appContext.analyticsData || {};\r\n const radarData = isEmpty(analyticsPagesRadarData) ? [] : [\r\n {\r\n size: 750,\r\n captions: analyticsPagesRadarData.radarCaptions,\r\n chart: [\r\n // data\r\n {\r\n data: analyticsPagesRadarData.radarData,\r\n meta: { color: '#1e88e5' }\r\n }\r\n ]\r\n },\r\n ];\r\n const isLoading = loading || isEmpty(analyticsPagesRadarData);\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    {'Pages data radar'}
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n {loading && 'Loading...'}\r\n {isLoading ?\r\n null :\r\n radarData.map((data, index) => {\r\n data.options = { scales, zoomDistance };\r\n return (\r\n
    \r\n

    {data.name}

    \r\n \r\n

    Scale: {scales}\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 withAnalyticsAppContext(AnalyticsPagesRadar);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction SingleBar({\r\n item,\r\n width,\r\n height,\r\n data,\r\n color,\r\n percentage,\r\n onMouseEnterSingleBar,\r\n onMouseExitSingleBar\r\n}) {\r\n return (\r\n
    onMouseEnterSingleBar(item, true)}\r\n onMouseLeave={() => onMouseExitSingleBar(item, false)}>\r\n \r\n \r\n \r\n

    {percentage}

    \r\n
    \r\n\r\n );\r\n}\r\n\r\nSingleBar.propTypes = {\r\n onMouseEnterSingleBar: PropTypes.func.isRequired,\r\n onMouseExitSingleBar: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default SingleBar;\r\n","import React, { Component } from 'react';\r\nimport SingleBar from './SingleBar';\r\nimport { withAnalyticsAppContext } from '../../context/analytics-app-context';\r\nimport { isEmpty } from '../../utils/object-utils';\r\nimport './analytics-time-bar-chart.scss';\r\n\r\nclass AnalyticsTimeBarChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n showBarMessage: false,\r\n barMessage: ''\r\n };\r\n\r\n this.barChartBodyRoot = React.createRef();\r\n this.setShowBarMessage = this.setShowBarMessage.bind(this);\r\n this.displayChartBars = this.displayChartBars.bind(this);\r\n this.displayBarBannerMessage = this.displayBarBannerMessage.bind(this);\r\n }\r\n\r\n displayChartBars() {\r\n const { appContext } = this.props;\r\n const { loading } = appContext;\r\n const { analyticsForPagesData } = appContext.analyticsData || {};\r\n if (loading || isEmpty(analyticsForPagesData)) {\r\n return null;\r\n }\r\n\r\n const siteDataKeys = [];\r\n return analyticsForPagesData.map((analyticsTime, index) => {\r\n const siteDataKey = `${analyticsTime.formattedCreatedDate}_${analyticsTime.formattedCreatedTime}_${analyticsTime.accessedURL}`;\r\n if (!siteDataKeys.includes(siteDataKey)) {\r\n siteDataKeys.push(siteDataKey);\r\n const max = 300;\r\n const y = max - (max * analyticsTime.visitedPercentage) / 100;\r\n return (\r\n \r\n );\r\n }\r\n });\r\n }\r\n\r\n displayBarBannerMessage() {\r\n const { barMessage, showBarMessage } = this.state;\r\n const { appContext } = this.props;\r\n const { loading } = appContext;\r\n const { analyticsForPagesData } = appContext.analyticsData || {};\r\n\r\n if (loading || isEmpty(analyticsForPagesData) || !showBarMessage) {\r\n return null;\r\n }\r\n\r\n return (
    \r\n
    \r\n {barMessage}\r\n
    \r\n
    );\r\n }\r\n\r\n setShowBarMessage(analyticsTime, showBarMessage) {\r\n const { appContext } = this.props;\r\n const { activeVisitors } = appContext.analyticsData;\r\n\r\n const barMessageText = isEmpty(analyticsTime) ?\r\n '' :\r\n `On ${analyticsTime.formattedCreatedDate} \r\n at ${analyticsTime.formattedCreatedTime} \r\n on ${analyticsTime.shortUrlFormat}\r\n there were ${analyticsTime.numberOfActiveVisitors}\r\n visitors or ${analyticsTime.visitedPercentage}% \r\n out of ${activeVisitors}`;\r\n\r\n this.setState((prevState) => {\r\n return {\r\n ...prevState,\r\n showBarMessage,\r\n barMessage: barMessageText\r\n };\r\n });\r\n }\r\n\r\n render() {\r\n const { appContext } = this.props;\r\n const { loading } = appContext;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    {'Pages times bar chart'}
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {this.displayBarBannerMessage()}\r\n
    \r\n {loading && 'Loading...'}\r\n {this.displayChartBars()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withAnalyticsAppContext(AnalyticsTimeBarChart);\r\n","import React from 'react';\r\nimport { withAnalyticsAppContext } from '../../../context/analytics-app-context';\r\nimport { isEmpty } from '../../../utils/object-utils';\r\nimport './analytics-over-time-table.scss';\r\nimport AnalyticsTable from '../../analytics-table/AnalyticsTable';\r\n\r\nfunction AnalyticsOverTimeTable({ appContext }) {\r\n const { loading } = appContext;\r\n const { analyticsOverTimeData } = appContext.analyticsData || {};\r\n let firstElement = analyticsOverTimeData ?\r\n analyticsOverTimeData[Object.keys(analyticsOverTimeData)[0]]\r\n ? analyticsOverTimeData[Object.keys(analyticsOverTimeData)[0]].categories : [] : [];\r\n\r\n const analyticsOverTimeProperties = [\r\n { property: 'dateText', headerText: 'Day', isProgressBar: false },\r\n { property: 'timeText', headerText: 'Time', isProgressBar: false },\r\n { property: 'activeVisitors', headerText: 'Active Visitors', isProgressBar: false },\r\n ];\r\n firstElement.forEach(category => {\r\n analyticsOverTimeProperties.push(\r\n {\r\n property: 'categories',\r\n arrayKey: 'categoryName',\r\n arrayValue: category.categoryName,\r\n arrayProperty: \"numberOfAcceptedCookies\",\r\n headerText: category.categoryName,\r\n isProgressBar: false\r\n },\r\n );\r\n });\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    {'Analytics over time'}
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {loading && 'Loading...'}\r\n {loading || isEmpty(analyticsOverTimeData) ?\r\n null :\r\n }\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default withAnalyticsAppContext(AnalyticsOverTimeTable);\r\n","import React from 'react';\r\nimport AnalyticsGridHeader from '../analytics-grid-header/AnalyticsGridHeader';\r\nimport AnalyticsTrafficData from '../analytics-traffic-data/AnalyticsTrafficData';\r\nimport AnalyticsPagesData from '../analytics-pages-data/AnalyticsPagesData';\r\nimport AnalyticsAverageTimeSpentData from '../analytics-average-time-spent-data/AnalyticsAverageTimeSpentData';\r\nimport './analytics-grid.scss';\r\nimport AnalyticsPagesRadar from '../analytics-radar/AnalyticsPagesRadar';\r\nimport AnalyticsTimeBarChart from '../analytics-times-bar-chart/AnalyticsTimeBarChart';\r\nimport AnalyticsOverTimeTable from '../analytics-cards/analytics-over-time-table/AnalyticsOverTimeTable';\r\n\r\nfunction AnalyticsGrid() {\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\nexport default AnalyticsGrid;\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\nimport PropTypes from 'prop-types';\r\nimport './analytics-view-message.scss';\r\n\r\nfunction AnalyticsViewMessage({ message }) {\r\n return (\r\n
    \r\n {message}\r\n
    \r\n );\r\n}\r\n\r\nAnalyticsViewMessage.propTypes = {\r\n message: PropTypes.string.isRequired\r\n};\r\n\r\nexport default AnalyticsViewMessage;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport * as analyticsAppActions from '../store/actions/analytics-app-actions';\r\nimport AnalyticsGrid from '../components/analytics-grid/AnalyticsGrid';\r\nimport FormSpinner from '../../sso/components/common/utility/FormSpinner';\r\nimport { AnalyticsAppContext } from '../context/analytics-app-context';\r\nimport AnalyticsViewMessage from '../components/analytics-view-message/AnalyticsViewMessage';\r\nimport { getFormattedNowDate } from '../utils/date-utils';\r\nimport { isEmpty } from '../utils/object-utils';\r\nimport {\r\n setDateToFilterBy,\r\n setDateRangeFilters,\r\n removeDateRangeFilters,\r\n removeDateToFilterBy,\r\n removeShowLatestData,\r\n setShowLatestData\r\n} from '../store/actions/utils/url-utils';\r\n\r\nclass CustomAnalyticsAppComponent extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.loadAnalyticsAppData = this.loadAnalyticsAppData.bind(this);\r\n this.filterAnalyticsDataByDate = this.filterAnalyticsDataByDate.bind(this);\r\n this.filterAnalyticsDataByDateRange = this.filterAnalyticsDataByDateRange.bind(this);\r\n this.displayLatestData = this.displayLatestData.bind(this);\r\n this.clearAnalyticsFilters = this.clearAnalyticsFilters.bind(this);\r\n this.updateLoadingState = this.updateLoadingState.bind(this);\r\n this.updateAppContextState = this.updateAppContextState.bind(this);\r\n this.updateSomethingWentWrongState = this.updateSomethingWentWrongState.bind(this);\r\n const { analyticsPageProperties } = props;\r\n this.state = {\r\n appContext: {\r\n loading: false,\r\n domain: analyticsPageProperties.domain,\r\n formattedTodayDate: getFormattedNowDate(),\r\n loadAnalyticsAppData: this.loadAnalyticsAppData,\r\n filterAnalyticsDataByDate: this.filterAnalyticsDataByDate,\r\n filterAnalyticsDataByDateRange: this.filterAnalyticsDataByDateRange,\r\n displayLatestData: this.displayLatestData,\r\n clearAnalyticsFilters: this.clearAnalyticsFilters,\r\n analyticsData: {},\r\n datesToFilter: [],\r\n allAvailableDates: []\r\n },\r\n somethingWentWrong: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.loadAnalyticsAppData();\r\n }\r\n\r\n componentDidCatch() {\r\n this.setState((prevState) => {\r\n return { ...prevState, somethingWentWrong: true };\r\n });\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { loading, isAnalyticsDataLoadedSuccessfully, analyticsData } = nextProps;\r\n const { formattedAnalyticsData, datesToFilter } = analyticsData;\r\n const hasLoadedSuccessfully = isAnalyticsDataLoadedSuccessfully && !isEmpty(analyticsData);\r\n const hasAnalyticsDataChanged = JSON.stringify(this.state.analyticsData) !== JSON.stringify(formattedAnalyticsData);\r\n\r\n if (loading !== this.state.appContext.loading) {\r\n this.updateLoadingState(loading);\r\n }\r\n\r\n if (!loading && hasLoadedSuccessfully && hasAnalyticsDataChanged) {\r\n this.updateAppContextState({ formattedAnalyticsData, datesToFilter });\r\n }\r\n\r\n if (!loading && !hasLoadedSuccessfully) {\r\n this.updateSomethingWentWrongState(true);\r\n }\r\n }\r\n\r\n updateLoadingState(loading) {\r\n this.setState((prevState) => {\r\n return {\r\n ...prevState,\r\n appContext: {\r\n ...prevState.appContext,\r\n loading\r\n }\r\n };\r\n });\r\n }\r\n\r\n updateAppContextState({ formattedAnalyticsData, datesToFilter }) {\r\n this.setState((prevState) => {\r\n return {\r\n ...prevState,\r\n somethingWentWrong: false,\r\n appContext: {\r\n ...prevState.appContext,\r\n analyticsData: formattedAnalyticsData,\r\n datesToFilter\r\n }\r\n };\r\n });\r\n }\r\n\r\n updateSomethingWentWrongState(somethingWentWrong) {\r\n this.setState((prevState) => {\r\n return {\r\n ...prevState,\r\n somethingWentWrong\r\n };\r\n });\r\n }\r\n\r\n loadAnalyticsAppData(datefilter) {\r\n const { analyticsPageProperties } = this.props;\r\n let dateQuery = '&date';\r\n let finalDateFrom = new Date();\r\n let finalDateTo = new Date();\r\n if (datefilter) {\r\n const keys = Object.keys(datefilter);\r\n if (keys.length > 1) {\r\n const dateFromParam = new Date(+datefilter.from + 1000 * 3600);\r\n const dateToParam = new Date(+datefilter.to + 1000 * 3600);\r\n\r\n if (dateFromParam > dateToParam) {\r\n finalDateFrom = dateToParam;\r\n finalDateTo = dateFromParam;\r\n } else {\r\n finalDateFrom = dateFromParam;\r\n finalDateTo = dateToParam;\r\n }\r\n\r\n dateQuery = dateQuery + 'From=' + finalDateFrom.getDate() + ' ' + (finalDateFrom.getMonth() + 1) + ' ' + finalDateFrom.getFullYear() +\r\n '&dateTo=' + finalDateTo.getDate() + ' ' + (finalDateTo.getMonth() + 1) + ' ' + finalDateTo.getFullYear();\r\n\r\n }\r\n else {\r\n const dateParam = new Date(+datefilter + 1000 * 3600)\r\n dateQuery = dateQuery + 'Filter=' + dateParam.getDate() + ' ' + (dateParam.getMonth() + 1) + ' ' + dateParam.getFullYear();\r\n }\r\n this.props.actions.loadAnalyticsAppData(analyticsPageProperties.callBackUrl + dateQuery);\r\n } else { this.props.actions.loadAnalyticsAppData(analyticsPageProperties.callBackUrl + dateQuery); }\r\n }\r\n\r\n displayLatestData(showLatestData) {\r\n removeDateRangeFilters();\r\n removeDateToFilterBy();\r\n setShowLatestData(showLatestData);\r\n this.loadAnalyticsAppData();\r\n }\r\n\r\n filterAnalyticsDataByDate(dateToFilterBy) {\r\n removeDateRangeFilters();\r\n removeShowLatestData();\r\n setDateToFilterBy(dateToFilterBy);\r\n this.loadAnalyticsAppData(dateToFilterBy);\r\n }\r\n\r\n filterAnalyticsDataByDateRange(dateRange) {\r\n removeDateToFilterBy();\r\n removeShowLatestData();\r\n setDateRangeFilters(dateRange);\r\n this.loadAnalyticsAppData(dateRange);\r\n }\r\n\r\n clearAnalyticsFilters() {\r\n removeDateRangeFilters();\r\n removeDateToFilterBy();\r\n removeShowLatestData();\r\n this.loadAnalyticsAppData();\r\n }\r\n\r\n render() {\r\n const { loading } = this.props;\r\n const { appContext, somethingWentWrong } = this.state;\r\n\r\n return (\r\n \r\n {loading && /}\r\n
    \r\n {somethingWentWrong && }\r\n {!somethingWentWrong && }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nCustomAnalyticsAppComponent.propTypes = {\r\n analyticsPageProperties: PropTypes.object.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isAnalyticsDataLoadedSuccessfully: state.analytics.isAnalyticsDataLoadedSuccessfully,\r\n analyticsData: state.analytics.analyticsData\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n loadAnalyticsAppData: bindActionCreators(analyticsAppActions.loadAnalyticsAppData, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(CustomAnalyticsAppComponent);\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 configureStore from './store/configure-store';\r\nimport CustomAnalyticsAppComponent from './views/CustomAnalyticsAppComponent';\r\n\r\nexport default class CustomAnalyticsComponent 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 store = configureStore();\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 CustomAnalyticsComponent from './custom-analytics.component';\r\n\r\nComponentsFactory.getInstance().define('custom-analytics', CustomAnalyticsComponent);\r\n","import React from 'react';\r\n\r\nconst CustomEventLeaderboardNameColumn = ({ options, player }) => {\r\n return (\r\n
    \r\n {\r\n player !== undefined && player !== null &&\r\n
    \r\n {\r\n options.isTeamEvent &&\r\n {options.teamLabel}\r\n }\r\n {player.name}\r\n
    \r\n }\r\n
    \r\n );\r\n};\r\n\r\nexport default CustomEventLeaderboardNameColumn;\r\n","import React from 'react';\r\n\r\nconst CustomEventLeaderboardPlayersColumn = ({ playersList }) => {\r\n if (playersList === null || playersList === undefined) return null;\r\n\r\n return playersList.players.map((player) => {\r\n return (\r\n
    \r\n {\r\n player !== undefined && player !== null &&\r\n
    \r\n
    {player.lastName}
    \r\n ,\r\n
    {player.firstName}
    \r\n
    \r\n }\r\n
    \r\n );\r\n });\r\n};\r\n\r\nexport default CustomEventLeaderboardPlayersColumn;\r\n","import React from 'react';\r\nimport { getTotalBemClass } from 'components/scores';\r\n\r\nconst CustomEventLeaderboardScoreToParColumn = ({ playerScoreToPar }) => {\r\n const toParClass = getTotalBemClass(playerScoreToPar);\r\n const scoreToPar = (playerScoreToPar === null || playerScoreToPar === undefined || playerScoreToPar === '') ? '-' : playerScoreToPar;\r\n\r\n return (\r\n
    \r\n
    \r\n PAR\r\n
    \r\n
    \r\n {scoreToPar}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default CustomEventLeaderboardScoreToParColumn;\r\n","import React from 'react';\r\nimport { generateBemCss } from 'general/js/helpers';\r\nimport { getHoleParBemClassForCustomEvent } from '../../scores/js/score-themes';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\n\r\nconst CustomEventLeaderboardScoreCell = ({ childCss, r2hAttributes, holePar, playerPar, status }) => {\r\n r2hAttributes = hasValue(r2hAttributes) ? r2hAttributes : {};\r\n\r\n const bemCss = generateBemCss('score-cell', [getHoleParBemClassForCustomEvent(holePar, playerPar), 'has-border']);\r\n let playerParText = playerPar;\r\n\r\n if (!playerPar || playerPar === 0) {\r\n playerParText = '-';\r\n }\r\n\r\n return (\r\n
    {playerParText}
    \r\n );\r\n};\r\n\r\nCustomEventLeaderboardScoreCell.defaultProps = {\r\n childCss: ''\r\n};\r\n\r\nexport default CustomEventLeaderboardScoreCell;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport ArrayHelper from 'foundation/array-helper';\r\nimport Scrollable from 'general/js/scrollable';\r\nimport CustomEventLeaderboardScoreCell from './custom-event-leaderboard-score-player-cell';\r\n\r\nclass CustomEventLeaderboardHoleByHoleWidget extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.rootRef = React.createRef();\r\n this.innerRef = React.createRef();\r\n\r\n this.scrollable = null;\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.isScrollable) {\r\n this.scrollable = new Scrollable(\r\n this.rootRef.current,\r\n this.innerRef.current,\r\n );\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 renderCell(key, value = '', type = {}) {\r\n const typeCss = classNames({\r\n 'is-wide': type.isWide\r\n });\r\n\r\n return
    {value}
    ;\r\n }\r\n\r\n getHoleScore(holePar, value){\r\n if(value === 0)\r\n return value;\r\n\r\n if(value > holePar)\r\n return `+${value-holePar}`;\r\n \r\n if(value === holePar)\r\n return 'E';\r\n\r\n if(value < holePar)\r\n return `-${holePar - value}`\r\n }\r\n\r\n renderPlayerPar(key, holePar, value, status) {\r\n const score = this.getHoleScore(holePar, value);\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n renderHeadLine() {\r\n const { holesToBePlayed } = this.props;\r\n\r\n return (\r\n
    \r\n {\r\n holesToBePlayed.map((hole, i) =>\r\n this.renderCell(`h-${i}`, hole.holeNumber))\r\n }\r\n
    \r\n );\r\n }\r\n\r\n renderHoleParLine() {\r\n const { holesToBePlayed } = this.props;\r\n\r\n return (\r\n
    \r\n {\r\n holesToBePlayed.map((hole, i) =>\r\n this.renderCell(`h-${i}`, hole.holePar))\r\n }\r\n
    \r\n );\r\n }\r\n\r\n renderPlayerParLine() {\r\n const { holesToBePlayed, scoringPlayerRound, playerSitecoreData } = this.props;\r\n\r\n if (!scoringPlayerRound ||\r\n ArrayHelper.isEmpty(scoringPlayerRound.info)\r\n ) {\r\n return (\r\n
    \r\n {\r\n holesToBePlayed.map((hole) => {\r\n return (\r\n
    -
    \r\n )\r\n })\r\n }\r\n
    \r\n );\r\n }\r\n\r\n const playerHasInfo = playerSitecoreData !== null && playerSitecoreData !== undefined && playerSitecoreData.playerStatuses !== undefined && playerSitecoreData.playerStatuses !== null && !ArrayHelper.isEmpty(playerSitecoreData.playerStatuses);\r\n\r\n return (\r\n
    \r\n {\r\n holesToBePlayed.map((hole) => {\r\n const holeInfo = scoringPlayerRound.info.find((r) => r.holeId === hole.holeNumber) || null;\r\n const status = playerHasInfo ? playerSitecoreData.playerStatuses.find((holeStatus) => holeStatus.hole.number === hole.holeNumber) : null;\r\n\r\n const playerStatus = (status !== null && status !== undefined) ? status.status : null;\r\n return this.renderPlayerPar(`p-${hole.holeNumber - 1}`, hole.holePar, holeInfo.playerPar, playerStatus);\r\n })\r\n }\r\n
    \r\n );\r\n }\r\n\r\n render() {\r\n const { scoringPlayerRound, isScrollable } = this.props;\r\n const stateCss = classNames({\r\n 'is-empty': !scoringPlayerRound || ArrayHelper.isEmpty(scoringPlayerRound.info),\r\n 'is-scrollable': isScrollable,\r\n });\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {this.renderHeadLine()}\r\n {this.renderHoleParLine()}\r\n {this.renderPlayerParLine()}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nCustomEventLeaderboardHoleByHoleWidget.propTypes = {\r\n scoringPlayerRound: PropTypes.object,\r\n scoringCourse: PropTypes.object,\r\n isScrollable: PropTypes.bool,\r\n};\r\n\r\nexport default CustomEventLeaderboardHoleByHoleWidget;\r\n","import React from 'react';\r\n\r\nconst CustomEventLeaderboardPositionColumn = ({ playerPosition }) => {\r\n const position = (playerPosition && playerPosition.displayValue) || '-';\r\n\r\n return (\r\n
    \r\n {\r\n
    \r\n {position}\r\n
    \r\n }\r\n
    \r\n );\r\n};\r\n\r\nexport default CustomEventLeaderboardPositionColumn;\r\n","import React from 'react';\r\nimport { format } from 'date-fns';\r\nimport { getCustomEventGroupTeeTimes } from 'general/js/helpers';\r\nimport { SpriteSvg } from 'project/sprite-svg';\r\n\r\nconst CustomEventLeaderboardTeeTimeGroup = ({ scoringPlayerRound }) => {\r\n const teeTime = getCustomEventGroupTeeTimes(\r\n scoringPlayerRound,\r\n );\r\n const formatedTeeTime = teeTime && format(teeTime.replace('Z', ''), 'h:mm a');\r\n\r\n if (!formatedTeeTime) return null;\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {formatedTeeTime}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default CustomEventLeaderboardTeeTimeGroup;\r\n","import React from 'react';\r\n\r\nconst CustomEventLeaderboardHoleColumn = ({ playerHole }) => {\r\n const hole = (playerHole === null || playerHole === undefined || playerHole === '') ? '-' : playerHole;\r\n return (\r\n
    \r\n
    \r\n HOLE\r\n
    \r\n
    \r\n {hole}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default CustomEventLeaderboardHoleColumn;\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","import React from 'react';\r\nimport { getRoundById } from 'general/js/helpers';\r\nimport ArrayHelper from 'foundation/array-helper';\r\nimport CustomEventLeaderboardNameColumn from './custom-event-leaderboard-name-column';\r\nimport CustomEventLeaderboardPlayersColumn from './custom-event-leaderboard-players-column';\r\nimport CustomEventLeaderboardScoreToParColumn from './custom-event-leaderboard-score-to-par-column';\r\nimport CustomEventLeaderboardHoleByHoleWidget from './custom-event-leaderboard-hole-by-hole-widget';\r\nimport CustomEventLeaderboardPositionColumn from './custom-event-leaderboard-position-column';\r\nimport CustomEventLeaderboardTeeTimeGroup from './custom-event-leaderboard-tee-time-group';\r\nimport CustomEventLeaderboardHoleColumn from './custom-event-leaderboard-hole-column';\r\nimport { SitecoreImageField } from 'components/sitecore-fields';\r\n\r\nconst CustomEventLeaderboardRows = (\r\n {\r\n options,\r\n currentRound,\r\n players,\r\n }\r\n) => {\r\n const renderRows = (playersList) => {\r\n return playersList.map((player) => {\r\n const scoringPlayerRound = getRoundById(player.rounds, currentRound);\r\n const playerSitecoreData = player.sitecoreData;\r\n const isChampion = (playerSitecoreData !== null && playerSitecoreData !== undefined) ? playerSitecoreData.isChampion : false;\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n isChampion &&\r\n
    \r\n \r\n
    \r\n }\r\n \r\n \r\n {\r\n options.customEventLeaderboardDatasource.isTeamEvent &&\r\n
    \r\n \r\n
    \r\n }\r\n \r\n
    \r\n
    \r\n {\r\n (options.customEventLeaderboardHolesToBePlayed !== null && !ArrayHelper.isEmpty(options.customEventLeaderboardHolesToBePlayed)) &&\r\n \r\n }\r\n \r\n \r\n {\r\n isChampion &&\r\n
    {options.customEventLeaderboardDatasource.championConfiguration.championLabel}
    \r\n }\r\n
    \r\n
    \r\n );\r\n });\r\n };\r\n\r\n return (\r\n \r\n {renderRows(players)}\r\n \r\n );\r\n};\r\n\r\nexport default CustomEventLeaderboardRows;\r\n","import React from 'react';\r\nimport ArrayHelper from 'foundation/array-helper';\r\nimport { getRoundById } from 'general/js/helpers';\r\nimport CustomEventLeaderboardRows from './custom-event-leaderboard-rows';\r\n\r\nconst CustomEventLeaderboardTable = ({\r\n scoringCourse,\r\n currentRound,\r\n players,\r\n options\r\n}) => {\r\n const scoringCourseRound = getRoundById(scoringCourse.courseRounds, 1);\r\n\r\n if (!scoringCourseRound || ArrayHelper.isEmpty(scoringCourseRound.holePars)) return null;\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default CustomEventLeaderboardTable;\r\n","import React from 'react';\r\nimport { SitecoreImageField } from 'components/sitecore-fields';\r\n\r\nconst CustomEventLeaderboardHeader = ({ logo, patronLogo }) => {\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 CustomEventLeaderboardHeader;\r\n","import React from 'react';\r\nimport app from 'general/js/app';\r\n\r\nimport CustomEventLeaderboardTable from './custom-event-leaderboard-table';\r\nimport CustomEventLeaderboardHeader from './custom-event-leaderboard-header';\r\n\r\nclass CustomEventLeaderboardContainer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isSortingAscending: true\r\n };\r\n }\r\n\r\n render() {\r\n const {\r\n scoringLeaderboard,\r\n scoringCourse,\r\n options\r\n } = this.props;\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default CustomEventLeaderboardContainer;\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 { sortAscAZ } from '../../leaderboard/js/components/sortingStrategies';\r\nimport CustomEventLeaderboardNameColumn from './custom-event-leaderboard-name-column';\r\nimport CustomEventLeaderboardPlayersColumn from './custom-event-leaderboard-players-column';\r\nimport CustomEventLeaderboardHeader from './custom-event-leaderboard-header';\r\n\r\nclass CustomEventLeaderboardAlphaList extends React.Component {\r\n renderRow(player, options) {\r\n return (\r\n
    \r\n \r\n {\r\n options.customEventLeaderboardDatasource.isTeamEvent &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n\r\n render() {\r\n const { players, options } = this.props;\r\n\r\n if (!Array.isArray(players)) return null;\r\n\r\n const sortedPlayers = sortAscAZ(players, 'name');\r\n\r\n return (\r\n
    \r\n \r\n {sortedPlayers.map((player) => this.renderRow(player, options))}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default CustomEventLeaderboardAlphaList;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\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 { getCustomEventPlayerSitecoreData } from 'general/js/helpers';\r\nimport { BlockPlaceholder } from 'components/block-placeholder';\r\nimport { BlockSpinner } from 'components/block-spinner';\r\nimport CustomEventLeaderboardContainer from './custom-event-leaderboard-container';\r\nimport CustomEventLeaderboardAlphaList from './custom-event-leaderboard-alphalist';\r\n\r\nclass CustomEventLeaderboardLayout extends React.Component {\r\n componentDidMount() {\r\n const { customEventLeaderboardDatasource } = this.props.options;\r\n ScoringLoader.subscribe(customEventLeaderboardDatasource.leaderboardEndpoint.endpointName);\r\n ScoringLoader.subscribe(endpointNames.COURSE);\r\n }\r\n\r\n componentWillUnmount() {\r\n const { customEventLeaderboardDatasource } = this.props.options;\r\n ScoringLoader.unsubscribe(customEventLeaderboardDatasource.leaderboardEndpoint.endpointName);\r\n ScoringLoader.unsubscribe(endpointNames.COURSE);\r\n }\r\n\r\n render() {\r\n const {\r\n scoringLeaderboard,\r\n scoringCourse,\r\n options\r\n } = this.props;\r\n\r\n const { customEventLeaderboardPlayers } = this.props.options;\r\n\r\n if (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 if (ArrayHelper.isEmpty(scoringLeaderboard.players)) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nCustomEventLeaderboardLayout.propTypes = {\r\n options: PropTypes.object.isRequired\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n const scoringLeaderboard = state.scoring[ownProps.options.customEventLeaderboardDatasource.leaderboardEndpoint.endpointName];\r\n\r\n if (scoringLeaderboard &&\r\n !ArrayHelper.isEmpty(scoringLeaderboard.players)\r\n ) {\r\n scoringLeaderboard.players.forEach((player) => {\r\n player.sitecoreData =\r\n getCustomEventPlayerSitecoreData(ownProps.options.customEventLeaderboardPlayers, player.id);\r\n });\r\n }\r\n\r\n return ({\r\n scoringCourse: state.scoring[endpointNames.COURSE],\r\n scoringLeaderboard,\r\n });\r\n};\r\n\r\nconst CustomEventLeaderboardLayoutWrapper = connect(\r\n mapStateToProps,\r\n null\r\n)(CustomEventLeaderboardLayout);\r\n\r\nexport default CustomEventLeaderboardLayoutWrapper;\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 CustomEventLeaderboardLayout from './custom-event-leaderboard-layout';\r\n\r\nclass CustomEventLeaderboardComponent 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 CustomEventLeaderboardComponent;\r\n","import './scss/index.scss';\r\n\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport CustomEventLeaderboardComponent from './js/custom-event-leaderboard.component';\r\n\r\nComponentsFactory.getInstance().define('custom-event-leaderboard', CustomEventLeaderboardComponent);\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 { firstnameField, lastnameField, checkbox1Field, checkbox2Field } = 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 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\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 } = this.props.options;\r\n\r\n const { firstName, lastName, emailAddress, agreedToC1, agreedToC2 } = this.state;\r\n\r\n return (nameFieldsAreOptional || hideNameFields || (firstName !== '' && lastName !== '')) &&\r\n validateEmail(emailAddress).isValid &&\r\n (checkbox1IsOptional || hideCheckbox1 || agreedToC1 === true) &&\r\n (checkbox2IsOptional || hideCheckbox2 || agreedToC2 === true);\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 });\r\n\r\n const { firstnameField } = this.props.options;\r\n\r\n this.updateResult(\r\n this.isValid(),\r\n firstnameField,\r\n event.target.value\r\n );\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 });\r\n\r\n const { lastnameField } = this.props.options;\r\n\r\n this.updateResult(\r\n this.isValid(),\r\n lastnameField,\r\n event.target.value\r\n );\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 });\r\n\r\n this.updateResult(\r\n this.isValid(),\r\n 'emailAddress',\r\n event.target.value\r\n );\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 });\r\n\r\n const { checkbox1Field } = this.props.options;\r\n\r\n this.updateResult(\r\n this.isValid(),\r\n checkbox1Field,\r\n event.target.checked\r\n );\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 });\r\n\r\n const { checkbox2Field } = this.props.options;\r\n\r\n this.updateResult(\r\n this.isValid(),\r\n checkbox2Field,\r\n event.target.checked\r\n );\r\n }\r\n\r\n createMarkup = (param) => { return { __html: param }; };\r\n\r\n componentDidUpdate() {\r\n const {\r\n canGoToNextStep\r\n } = this.props;\r\n\r\n if (!canGoToNextStep && this.isValid()) {\r\n this.updateResult(\r\n this.isValid()\r\n );\r\n }\r\n }\r\n\r\n focusOnElement = (element) => {\r\n element.focus();\r\n }\r\n\r\n render() {\r\n\r\n const {\r\n options\r\n } = this.props;\r\n\r\n const {\r\n firstnameLabel, firstnameError,\r\n lastnameLabel, lastnameError,\r\n nameFieldsAreOptional, hideNameFields,\r\n emailLabel, emailError,\r\n checkbox1IsOptional, hideCheckbox1,\r\n checkbox1Label, checkbox1Error,\r\n checkbox2Label, checkbox2Error,\r\n checkbox2IsOptional, hideCheckbox2\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 } = this.state;\r\n\r\n const {\r\n textMaximumLength,\r\n viewErrors,\r\n } = 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\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 {\r\n hideNameFields !== true &&\r\n
    \r\n
    \r\n this.inputFirstnameElement = input}\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 this.focusOnElement(this.inputFirstnameElement)}\r\n >\r\n {firstnameLabel}\r\n \r\n {viewErrors && !nameFieldsAreOptional && !isFilledFirstname ?
      \r\n
    • {firstnameError}
    • \r\n
    : null}\r\n
    \r\n
    \r\n this.inputLastnameElement = input}\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 this.focusOnElement(this.inputLastnameElement)}\r\n >\r\n {lastnameLabel}\r\n \r\n {viewErrors && !nameFieldsAreOptional && !isFilledLastname ?
      \r\n
    • {lastnameError}
    • \r\n
    : null}\r\n
    \r\n
    \r\n }\r\n
    \r\n this.inputEmailElement = input}\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 this.focusOnElement(this.inputEmailElement)}\r\n >\r\n {emailLabel}\r\n \r\n {viewErrors && !isValidEmail ?
      \r\n
    • {emailError}
    • \r\n
    : null}\r\n
    \r\n
    \r\n
    \r\n {\r\n hideCheckbox1 !== true &&\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\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","export 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_DOT_MAILER_TRACKER_ENTRIES_SUCCESS = 'LOAD_DOT_MAILER_TRACKER_ENTRIES_SUCCESS';\r\nexport const LOAD_DOT_MAILER_TRACKER_ENTRIES_ERROR = 'LOAD_DOT_MAILER_TRACKER_ENTRIES_ERROR';\r\n","\r\nexport default {\r\n dotMailerTracker: {\r\n areDotMailerEntriesLoadedSuccessfully: false,\r\n dotMailerTrackerApiMessage: '',\r\n },\r\n apiStatus: {\r\n apiCallsInProgress: 0,\r\n apiErrorMessages: []\r\n }\r\n};\r\n","import { combineReducers } from 'redux';\r\nimport dotMailerTrackerReducer from './dot-mailer-tracker-reducer';\r\nimport apiStatus from './api-status-reducer';\r\n\r\nconst rootReducer = combineReducers({\r\n dotMailerTracker: dotMailerTrackerReducer,\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 dotMailerTrackerReducer(\r\n state = initialState.dotMailerTracker,\r\n action\r\n) {\r\n if (action.type === types.LOAD_DOT_MAILER_TRACKER_ENTRIES_SUCCESS) {\r\n return {\r\n ...state,\r\n areDotMailerEntriesLoadedSuccessfully: true,\r\n dotMailerTrackerApiMessage: action.successMessage\r\n };\r\n }\r\n\r\n if (action.type === types.LOAD_DOT_MAILER_TRACKER_ENTRIES_ERROR) {\r\n return {\r\n ...state,\r\n areDotMailerEntriesLoadedSuccessfully: false,\r\n dotMailerTrackerApiMessage: action.errorMessage\r\n };\r\n }\r\n\r\n return state;\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\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: ['Something went wrong!']\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 * 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","const rxOne = /^[\\],:{}\\s]*$/;\r\nconst rxTwo = /\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g;\r\nconst rxThree = /\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g;\r\nconst rxFour = /(?:^|:|,)(?:\\s*\\[)+/g;\r\nconst isJSON = (input) => (\r\n input.length && rxOne.test(\r\n input.replace(rxTwo, '@')\r\n .replace(rxThree, ']')\r\n .replace(rxFour, '')\r\n )\r\n);\r\n\r\nexport function handleResponse(response) {\r\n if (response.ok) {\r\n return response.text().then((text) => {\r\n const responseBody = isJSON(text) ? JSON.parse(text) : {};\r\n return { hasErrors: false, data: responseBody };\r\n });\r\n }\r\n\r\n if (response.status >= 400 && response.status < 500) {\r\n return response.text().then((errorMessage) => {\r\n return { hasErrors: true, errorMessage };\r\n });\r\n }\r\n\r\n return { hasErrors: true, errorMessage: 'Network error.' };\r\n}\r\n\r\n// TODO: add different kind of logging\r\nexport function handleError(error) {\r\n // eslint-disable-next-line no-console\r\n console.error('API call failed. ' + error);\r\n return { hasErrors: true, errorMessage: 'Network error.' };\r\n}\r\n","import _ from 'lodash';\r\nimport { handleResponse, handleError } from './api-utils';\r\n\r\nexport function submitDotMailerTrackData(dotMailerUserEntries, callBackUrl) {\r\n const copyOfDotMailerUserEntries = _.cloneDeep(dotMailerUserEntries);\r\n\r\n if (copyOfDotMailerUserEntries.length > 500) {\r\n const splitEntries = [];\r\n while (copyOfDotMailerUserEntries.length) {\r\n splitEntries.push(copyOfDotMailerUserEntries.splice(0, 500));\r\n }\r\n\r\n const promises = [];\r\n splitEntries.forEach((splitEntry) => {\r\n promises.push(saveData(splitEntry, callBackUrl));\r\n });\r\n return Promise.all(promises);\r\n }\r\n\r\n return saveData(copyOfDotMailerUserEntries, callBackUrl);\r\n}\r\n\r\nfunction saveData(dotMailerUserEntries, callBackUrl) {\r\n return fetch(callBackUrl, {\r\n method: 'POST',\r\n headers: { 'content-type': 'application/json' },\r\n body: JSON.stringify({ dotMailerTrackData: dotMailerUserEntries })\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n","import _ from 'lodash';\r\nimport * as types from './action-types';\r\nimport { beginApiCall, apiCallError } from './api-status-actions';\r\nimport * as dotMailerTrackerApi from '../api/dot-mailer-tracker-api';\r\n\r\nexport function loadDotMailerTrackerEntriesSuccess(successMessage) {\r\n return { type: types.LOAD_DOT_MAILER_TRACKER_ENTRIES_SUCCESS, successMessage };\r\n}\r\n\r\nexport function loadDotMailerTrackerEntriesError(errorMessage) {\r\n return { type: types.LOAD_DOT_MAILER_TRACKER_ENTRIES_ERROR, errorMessage };\r\n}\r\n\r\nexport function submitDotMailerTrackData(dotMailerUserEntries, callBackUrl) {\r\n //eslint-disable-next-line no-unused-vars\r\n return function (dispatch, getState) {\r\n dispatch(beginApiCall());\r\n return dotMailerTrackerApi\r\n .submitDotMailerTrackData(dotMailerUserEntries, callBackUrl)\r\n .then((res) => {\r\n const isResultAnArray = Array.isArray(res);\r\n\r\n if (!isResultAnArray && !res.data) {\r\n dispatch(loadDotMailerTrackerEntriesError('User entries could not be saved. Check the logs for more details.'));\r\n dispatch(apiCallError());\r\n return;\r\n }\r\n\r\n if (isResultAnArray) {\r\n const failedRequestsIndexes = getFailedRequestsIndexes(res);\r\n\r\n if (!_.isEmpty(failedRequestsIndexes)) {\r\n dispatch(loadDotMailerTrackerEntriesError(`Data has been split into ${res.length} batches and batch number: ${failedRequestsIndexes.toString()} finished with errors. Please check the logs for more data.`));\r\n dispatch(apiCallError());\r\n return;\r\n }\r\n\r\n dispatch(loadDotMailerTrackerEntriesSuccess(`Data has been split into ${res.length} batches and all finished successfully.`));\r\n return;\r\n }\r\n\r\n dispatch(loadDotMailerTrackerEntriesSuccess('User entries saved successfully.'));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadDotMailerTrackerEntriesError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nfunction getFailedRequestsIndexes(result) {\r\n return result.map((r, index) => {\r\n if (!r.data) {\r\n return index;\r\n }\r\n\r\n return -1;\r\n }).filter((requestIndex) => requestIndex !== -1);\r\n}\r\n","export function getFormattedIntegerValues(number) {\r\n return new Intl.NumberFormat('en-US').format(number);\r\n}\r\n","import React, { Component, Fragment } from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport _ from 'lodash';\r\nimport * as dotMailerTrackActions from './store/actions/dot-mailer-tracker-actions';\r\nimport FormSpinner from '../../sso/components/common/utility/FormSpinner';\r\nimport { getFormattedIntegerValues } from './utils/number-utils';\r\n\r\nclass DotMailerTrackerForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.dropZoneRef = React.createRef();\r\n this.fileUploadInputRef = React.createRef();\r\n\r\n this.handleCSVFileDrop = this.handleCSVFileDrop.bind(this);\r\n this.processCSVFile = this.processCSVFile.bind(this);\r\n this.handleCSVFileRead = this.handleCSVFileRead.bind(this);\r\n this.finalizeCSVFileProcess = this.finalizeCSVFileProcess.bind(this);\r\n this.finalizeCSVFileProcessWithErrors = this.finalizeCSVFileProcessWithErrors.bind(this);\r\n this.handleDotMailerUserEntriesSubmit = this.handleDotMailerUserEntriesSubmit.bind(this);\r\n this.toggleOnDragClass = this.toggleOnDragClass.bind(this);\r\n this.handleOnDragOver = this.handleOnDragOver.bind(this);\r\n this.handleDropZoneClick = this.handleDropZoneClick.bind(this);\r\n\r\n this.initialState = {\r\n isDragOverDropZone: false,\r\n isCSVFileDataLoaded: false,\r\n csvFileLoadError: false,\r\n csvFileLoadErrorMessage: '',\r\n dotMailerUserEntries: [],\r\n dotMailerUserEntriesLength: 0,\r\n fileName: ''\r\n };\r\n\r\n this.state = this.initialState;\r\n }\r\n\r\n handleCSVFileDrop(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n const files = event.dataTransfer === undefined ||\r\n _.isEmpty(event.dataTransfer.files) ?\r\n event.target.files :\r\n event.dataTransfer.files;\r\n\r\n this.processCSVFile(files);\r\n }\r\n\r\n processCSVFile(files) {\r\n const shouldProcessFiles = !_.isEmpty(files) && files.length === 1;\r\n\r\n if (!shouldProcessFiles) {\r\n this.finalizeCSVFileProcessWithErrors('Please load just one CSV file.');\r\n return;\r\n }\r\n\r\n const file = files[0];\r\n const fileName = file.name;\r\n const fileExtension = this.getFileExtension(fileName);\r\n if (fileExtension !== 'csv') {\r\n this.finalizeCSVFileProcessWithErrors('The fie loaded has an invalid extension.');\r\n return;\r\n }\r\n\r\n const reader = new FileReader();\r\n reader.onload = (event) => this.handleCSVFileRead(event, fileName, reader);\r\n\r\n reader.readAsText(file);\r\n }\r\n\r\n handleCSVFileRead(event, fileName, reader) {\r\n const csvFileLines = reader.result.split('\\n').filter((csvFileLine) => !_.isEmpty(csvFileLine));\r\n\r\n const dotMailerUserEntries = csvFileLines.map((csvFileLine) => {\r\n const dotMailerEntry = csvFileLine.split(',');\r\n\r\n if (_.isEmpty(dotMailerEntry) || dotMailerEntry.length !== 2) {\r\n return { email: '', addressBookId: '' };\r\n }\r\n\r\n return { email: dotMailerEntry[0], addressBookId: dotMailerEntry[1] };\r\n });\r\n\r\n this.finalizeCSVFileProcess(dotMailerUserEntries, fileName);\r\n }\r\n\r\n getFileExtension(filename) {\r\n return filename.split('.').pop();\r\n }\r\n\r\n finalizeCSVFileProcess(dotMailerUserEntries, fileName) {\r\n this.setState(() => ({\r\n isDragOverDropZone: false,\r\n isCSVFileDataLoaded: true,\r\n csvFileLoadError: false,\r\n csvFileLoadErrorMessage: '',\r\n dotMailerUserEntries,\r\n dotMailerUserEntriesLength: dotMailerUserEntries.length,\r\n fileName\r\n }));\r\n }\r\n\r\n finalizeCSVFileProcessWithErrors(csvFileLoadErrorMessage) {\r\n this.setState(() => ({\r\n isDragOverDropZone: false,\r\n isCSVFileDataLoaded: false,\r\n csvFileLoadError: true,\r\n csvFileLoadErrorMessage,\r\n dotMailerUserEntries: [],\r\n dotMailerUserEntriesLength: 0,\r\n fileName: ''\r\n }));\r\n }\r\n\r\n handleDotMailerUserEntriesSubmit(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n const { dotMailerUserEntries } = this.state;\r\n const { actions, dotMailerTrackerProperties } = this.props;\r\n const { callBackUrl } = dotMailerTrackerProperties;\r\n actions.submitDotMailerTrackData(dotMailerUserEntries, callBackUrl);\r\n }\r\n\r\n toggleOnDragClass(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.setState((prevState) => ({\r\n isDragOverDropZone: !prevState.isDragOverDropZone\r\n }));\r\n }\r\n\r\n handleOnDragOver(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n handleDropZoneClick(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.fileUploadInputRef.current.click();\r\n }\r\n\r\n render() {\r\n const {\r\n isDragOverDropZone,\r\n fileName,\r\n isCSVFileDataLoaded,\r\n dotMailerUserEntriesLength,\r\n csvFileLoadError,\r\n csvFileLoadErrorMessage\r\n } = this.state;\r\n\r\n const { loading, areDotMailerEntriesLoadedSuccessfully, dotMailerTrackerApiMessage } = this.props;\r\n\r\n return (\r\n \r\n {loading && }\r\n

    \r\n {dotMailerTrackerApiMessage}\r\n

    \r\n {csvFileLoadError &&\r\n

    {csvFileLoadErrorMessage}

    }\r\n\r\n \r\n
    \r\n

    {'Drag DotMailer CSV file here.'}

    \r\n
    \r\n {isCSVFileDataLoaded &&\r\n
    \r\n

    {getFormattedIntegerValues(dotMailerUserEntriesLength)} entries from {fileName} have been processed

    \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 areDotMailerEntriesLoadedSuccessfully: state.dotMailerTracker.areDotMailerEntriesLoadedSuccessfully,\r\n dotMailerTrackerApiMessage: state.dotMailerTracker.dotMailerTrackerApiMessage,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n submitDotMailerTrackData: bindActionCreators(dotMailerTrackActions.submitDotMailerTrackData, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(DotMailerTrackerForm);\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 configureStore from './store/configure-store';\r\nimport DotMailerTrackerForm from './dot-mailer-tracker-form.component';\r\n\r\nexport default class DotMailerTrackerBaseComponent 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 store = configureStore();\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 DotMailerTrackerBaseComponent from './js/dot-mailer-tracker-base.component';\r\n\r\nComponentsFactory.getInstance().define('dot-mailer-tracker', DotMailerTrackerBaseComponent);\r\n","import React from 'react';\r\nimport { SitecoreImageField } from 'components/sitecore-fields';\r\nimport gtm from 'general/js/gtm';\r\n\r\nclass EnhancedStats extends React.Component {\r\n onClickLink = (link) => {\r\n gtm.push('Stats Module', 'Click', `${document.title} > ${link.text}`);\r\n }\r\n\r\n render() {\r\n const {\r\n model,\r\n } = this.props.options;\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n (model.desktopImage !== null && model.desktopImage.src !== null) &&\r\n <>\r\n \r\n \r\n \r\n }\r\n {\r\n (model.mobileImage !== null && model.mobileImage.src !== null) &&\r\n <>\r\n \r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n {\r\n model.stat1Value !== '' &&\r\n
    \r\n
    \r\n {model.stat1Label}\r\n
    \r\n
    \r\n {model.stat1Value}\r\n
    \r\n
    \r\n }\r\n {\r\n model.stat2Value !== '' &&\r\n
    \r\n
    \r\n {model.stat2Label}\r\n
    \r\n
    \r\n {model.stat2Value}\r\n
    \r\n
    \r\n }\r\n {\r\n model.stat3Value !== '' &&\r\n
    \r\n
    \r\n {model.stat3Label}\r\n
    \r\n
    \r\n {model.stat3Value}\r\n
    \r\n
    \r\n }\r\n {\r\n model.stat4Value !== '' &&\r\n
    \r\n
    \r\n {model.stat4Label}\r\n
    \r\n
    \r\n {model.stat4Value}\r\n
    \r\n
    \r\n }\r\n {\r\n model.stat5Value !== '' &&\r\n
    \r\n
    \r\n {model.stat5Label}\r\n
    \r\n
    \r\n {model.stat5Value}\r\n
    \r\n
    \r\n }\r\n {\r\n model.stat6Value !== '' &&\r\n
    \r\n
    \r\n {model.stat6Label}\r\n
    \r\n
    \r\n {model.stat6Value}\r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n {\r\n model.link1 !== null &&\r\n \r\n }\r\n {\r\n model.link2 !== null &&\r\n \r\n }\r\n {\r\n model.link3 !== null &&\r\n \r\n }\r\n {\r\n model.link4 !== null &&\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default EnhancedStats;\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 EnhancedStats from './enhanced-stats';\r\n\r\nclass EnhancedStatsComponent 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 EnhancedStatsComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport EnhancedStatsComponent from './js/enhanced-stats.component';\r\n\r\nComponentsFactory.getInstance().define('enhanced-stats-component', EnhancedStatsComponent);\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 throttle from 'lodash/throttle';\r\nimport BaseComponent from 'foundation/base-component';\r\n\r\nexport default class FinalLeaderboard extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.finalLeaderboardWrapper = this.refs.finalLeaderboardWrapper;\r\n this.arrowRight = this.refs.arrowRight;\r\n this.arrowLeft = this.refs.arrowLeft;\r\n\r\n this.endPositionNode = this.refs.endPositionNode;\r\n this.startPositionNode = this.refs.startPositionNode;\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return [\r\n 'finalLeaderboardWrapper',\r\n 'arrowRight',\r\n 'arrowLeft',\r\n 'startPositionNode',\r\n 'endPositionNode',\r\n ];\r\n }\r\n init() {\r\n this.addListener(this.finalLeaderboardWrapper, 'scroll', throttle(this.onScroll, 50));\r\n }\r\n\r\n onScroll = () => {\r\n const arrowRightCoordinateLeft = this.arrowRight.getBoundingClientRect().left;\r\n const endPositionNodeCoordinateLeft = this.endPositionNode.getBoundingClientRect().left;\r\n const arrowLeftCoordinateLeft = this.arrowLeft.getBoundingClientRect().left;\r\n const startPositionNodeCoordinateLeft = this.startPositionNode.getBoundingClientRect().left;\r\n\r\n if (arrowRightCoordinateLeft >= endPositionNodeCoordinateLeft) {\r\n this.arrowRight.classList.add('animation');\r\n } else {\r\n this.arrowRight.classList.remove('animation');\r\n }\r\n\r\n if (arrowLeftCoordinateLeft >= startPositionNodeCoordinateLeft) {\r\n this.arrowLeft.classList.add('animation');\r\n } else {\r\n this.arrowLeft.classList.remove('animation');\r\n }\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport FinalLeaderboardComponent from './js/final-leaderboard.component';\r\n\r\nComponentsFactory.getInstance().define('final-leaderboard', FinalLeaderboardComponent);\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 React from 'react';\r\nimport { SitecoreImageField, SitecoreLinkField } from 'components/sitecore-fields';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\n\r\nclass FullSizeHeroBanner extends React.Component {\r\n render() {\r\n const {\r\n title,\r\n subtitle,\r\n desktopImage,\r\n desktopVideo,\r\n mobileImage,\r\n mobileVideo,\r\n cta1,\r\n cta2\r\n } = this.props.options;\r\n\r\n const venueBannerRandomID = 'venue-banner-' + (Math.random().toString(36).substr(2, 9));\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {\r\n (desktopVideo !== null && desktopVideo.src !== undefined) ?\r\n (\r\n \r\n ) :\r\n (desktopImage !== null && desktopImage.src !== null) &&\r\n \r\n }\r\n
    \r\n
    \r\n {\r\n (mobileVideo !== null && mobileVideo.src !== undefined) ?\r\n (\r\n \r\n ) :\r\n (mobileImage !== null && mobileImage.src !== null) &&\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {title !== null &&

    {title}

    }\r\n {subtitle !== null &&

    {subtitle}

    }\r\n
    \r\n
    \r\n
    \r\n {\r\n (cta1 !== null && cta1.url !== undefined) &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n {\r\n (cta2 !== null && cta2.url !== undefined) &&\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 FullSizeHeroBanner;\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 FullSizeHeroBanner from './full-size-hero-banner';\r\n\r\nclass FullSizeHeroBannerComponent 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 FullSizeHeroBannerComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport FullSizeHeroBannerComponent from './js/full-size-hero-banner.component';\r\n\r\nComponentsFactory.getInstance().define('full-size-hero-banner-component', FullSizeHeroBannerComponent);\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 }\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 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 React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst NbcAlertBar = ({ model }) => {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nNbcAlertBar.propTypes = {\r\n model: PropTypes.shape({\r\n text: PropTypes.string,\r\n })\r\n};\r\n\r\nexport default NbcAlertBar;\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 './nbc-alert-bar';\r\n\r\nclass NbcAlertBarsLayout 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.nbcAlertBars)) return null;\r\n\r\n return liveScanner.nbcAlertBars.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 NbcAlertBarsLayoutContainer = connect(\r\n mapStateToProps,\r\n null\r\n)(NbcAlertBarsLayout);\r\n\r\nexport default NbcAlertBarsLayoutContainer;\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 NbcAlertBarsLayout from './nbc-alert-bars-layout';\r\n\r\nclass NbcAlertBarsComponent 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 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 NbcAlertBarsComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport NbcAlertBarsComponent from './js/nbc-alert-bars.component';\r\n\r\nComponentsFactory.getInstance().define('nbc-alert-bars', NbcAlertBarsComponent);\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 BaseComponent from 'foundation/base-component';\r\nimport app from '../../../general/js/app';\r\nimport Cookies from 'js-cookie';\r\n\r\nexport default class OneClubButton 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 userDataCookie = Cookies.get(app.state.userDataCookieName);\r\n if (userDataCookie !== undefined) {\r\n const userData = JSON.parse(userDataCookie);\r\n if (userData !== undefined && userData.isSignedIn && userData.isOneClubMember) {\r\n this.element.classList.add('hidden');\r\n }\r\n }\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport OneClubButton from './js/one-club-button.component';\r\n\r\nComponentsFactory.getInstance().define('one-club-button', OneClubButton);\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 if(this.refs.randaid){\r\n this.randaID = this.getAttribute(this.refs.randaid, 'options');\r\n this.calculate_previousOpens(this.randaID, this.refs.randaid);\r\n }\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 \r\n calculate_previousOpens(playerID, ref){\r\n var url= \"/api/PlayerHeroApi/GetPlayerStats\"\r\n var data = {\r\n randaID: playerID\r\n };\r\n\r\n \r\n $.getJSON(url, data, function (result) {\r\n ReactDOM.render(\r\n
    { result }
    , \r\n ref\r\n );\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 BaseComponent from 'foundation/base-component';\r\nimport CountUp from 'countup.js';\r\n\r\nconst QUANTITY_FLOAT = 2;\r\nconst QUANTITY_INT = 0;\r\n\r\nexport default class PlayerProfilesStats extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.instance = null;\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.createObserver();\r\n }\r\n\r\n createObserver() {\r\n const observer = new IntersectionObserver((observables) => {\r\n const observable = observables[0];\r\n\r\n if (observable.intersectionRatio > 0) {\r\n if (this.refs.counterFloat) {\r\n this.moveHandler(this.refs.counterFloat, true);\r\n }\r\n\r\n if (this.refs.counterPercent) {\r\n this.moveHandler(this.refs.counterPercent, false);\r\n }\r\n }\r\n });\r\n\r\n observer.observe(this.element);\r\n }\r\n\r\n moveHandler(arrayItems, float) {\r\n const options = {\r\n instance: this.instance,\r\n node: null,\r\n value: null\r\n };\r\n\r\n if (arrayItems) {\r\n for (let i = 0; i < arrayItems.length; i++) {\r\n options.node = arrayItems[i];\r\n\r\n options.value = parseFloat(this.getAttribute(options.node, 'value'));\r\n\r\n if (float) {\r\n this.moveAnimation(options, QUANTITY_FLOAT);\r\n } else {\r\n this.moveAnimation(options, QUANTITY_INT);\r\n }\r\n }\r\n }\r\n }\r\n\r\n moveAnimation(options, quantity) {\r\n options.instance = new CountUp(options.node, 0, options.value, quantity);\r\n options.instance.start();\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport PlayerProfilesStats from './js/player-profiles-stats.component';\r\n\r\nComponentsFactory.getInstance().define('player-profiles-stats', PlayerProfilesStats);\r\n","import types from './types';\r\n\r\nconst INITIAL_STATE = {\r\n step: 1,\r\n steps: [],\r\n exemption: null,\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.REGISTER_STEP: {\r\n return {\r\n ...state,\r\n steps: [...state.steps, action.number],\r\n };\r\n }\r\n case types.CHANGE_STEP: {\r\n return { ...state, step: action.step };\r\n }\r\n case types.CHANGE_EXEMPTION: {\r\n return { ...state, exemption: action.exemption };\r\n }\r\n default:\r\n return state;\r\n }\r\n};\r\n","const REGISTER_STEP = 'REGISTER_STEP';\r\nconst CHANGE_STEP = 'CHANGE_STEP';\r\nconst CHANGE_EXEMPTION = 'CHANGE_EXEMPTION';\r\n\r\nexport default {\r\n REGISTER_STEP,\r\n CHANGE_STEP,\r\n CHANGE_EXEMPTION,\r\n};\r\n","import Parsley from 'parsleyjs';\r\n\r\nconst PARSLEY_INCLUDE_SELECTOR = Parsley.options.inputs + ',[data-parsley-splitdate],[data-parsley-checkboxes-group],[data-parsley-splitdate-req]';\r\n\r\nconst EXEMPTION_YES = 'ExemptFromAllQualifying';\r\nconst EXEMPTION_FINAL = 'ExemptFinal';\r\nconst EXEMPTION_NO = 'NoExemption';\r\n\r\nexport default {\r\n PARSLEY_INCLUDE_SELECTOR,\r\n EXEMPTION_YES,\r\n EXEMPTION_FINAL,\r\n EXEMPTION_NO\r\n};\r\n","import types from './types.js';\r\n\r\nconst registerStep = (number) => ({\r\n type: types.REGISTER_STEP,\r\n number,\r\n});\r\n\r\nconst changeStep = (newStep) => ({\r\n type: types.CHANGE_STEP,\r\n step: newStep,\r\n});\r\n\r\nconst changeExemption = (exemption) => ({\r\n type: types.CHANGE_EXEMPTION,\r\n exemption\r\n});\r\n\r\nexport default {\r\n registerStep,\r\n changeStep,\r\n changeExemption,\r\n};\r\n","import BaseComponent from 'foundation/base-component';\r\nimport constants from './constants';\r\nimport creators from './actions';\r\nimport Scroller from '../../../general/js/scroller';\r\n\r\nexport default class PlayerRegistrationStep extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.onChangeStoreBase = this.onChangeStoreBase.bind(this);\r\n this.onContinueClick = this.onContinueClick.bind(this);\r\n this.isStepValid = this.isStepValid.bind(this);\r\n\r\n this.number = parseInt(this.element.dataset.number, 10);\r\n this.isVisible = null;\r\n }\r\n\r\n getStepNumber() {\r\n return this.number;\r\n }\r\n\r\n init({ store, onContinue }) {\r\n this.store = store;\r\n this.onContinue = onContinue;\r\n this.store.dispatch(creators.registerStep(this.number));\r\n // split form to groups based on steps numbers\r\n const inputs = [...this.element.querySelectorAll(constants.PARSLEY_INCLUDE_SELECTOR)];\r\n inputs.forEach((inputNode) => {\r\n inputNode.setAttribute('data-parsley-group', this.number);\r\n });\r\n this.addListeners(inputs);\r\n this.initConcrete();\r\n this.applyStateBase(this.store.getState());\r\n this.applyStateConcrete(this.store.getState());\r\n }\r\n\r\n addListeners() {\r\n this.store.subscribe(this.onChangeStoreBase);\r\n if (this.refs.continue) {\r\n this.refs.continue.addEventListener('click', this.onContinueClick);\r\n }\r\n }\r\n\r\n getIsStepValidPromise() {\r\n return new Promise((resolve, reject) => {\r\n if (this.isStepValid() === false) {\r\n reject();\r\n } else {\r\n resolve();\r\n }\r\n });\r\n }\r\n\r\n onContinueClick() {\r\n this.onContinue();\r\n }\r\n\r\n onChangeStoreBase() {\r\n this.applyStateBase(this.store.getState());\r\n this.applyStateConcrete(this.store.getState());\r\n }\r\n\r\n applyStateBase({ step }) {\r\n if (this.isVisible === true && this.number !== step) {\r\n this.hide();\r\n } else if (this.isVisible === false && this.number === step) {\r\n this.show();\r\n } else if (this.isVisible === null) {\r\n this.hide();\r\n }\r\n }\r\n\r\n show() {\r\n this.isVisible = true;\r\n this.element.classList.remove('visually-hidden');\r\n (new Scroller(this.element, { duration: 300 })).scrollToTop(true);\r\n }\r\n\r\n hide() {\r\n this.isVisible = false;\r\n this.element.classList.add('visually-hidden');\r\n }\r\n\r\n initConcrete() {\r\n }\r\n\r\n applyStateConcrete() {\r\n }\r\n\r\n isStepValid() {\r\n return true;\r\n }\r\n}\r\n","import PlayerRegistrationStep from './step';\r\nimport creators from './actions';\r\nimport constants from './constants';\r\n\r\nconst PROFESSIONAL_AMATEUR_VALUE_PROFESSIONAL = 'Professional';\r\n\r\nexport default class PlayerRegistrationStep1 extends PlayerRegistrationStep {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.isExemptionChosen = undefined;\r\n this.onExemptionChange = this.onExemptionChange.bind(this);\r\n this.onProfessionalAmateurChange = this.onProfessionalAmateurChange.bind(this);\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['exemption', 'professionalAmateurControl', 'amateurRequiredZone', 'caddieSection', 'caddie'];\r\n }\r\n\r\n initConcrete() {\r\n this.initExemption();\r\n this.initProfessionalAmateur();\r\n this.addListenersConcrete();\r\n }\r\n\r\n addListenersConcrete() {\r\n this.refs.exemption.forEach((radio) => radio.addEventListener('change', this.onExemptionChange));\r\n this.refs.professionalAmateurControl.forEach((radio) => radio.addEventListener('change', this.onProfessionalAmateurChange));\r\n }\r\n\r\n initExemption() {\r\n const selectedExemption = this.refs.exemption.find((radio) => radio.checked);\r\n if (selectedExemption) {\r\n this.store.dispatch(creators.changeExemption(selectedExemption.value));\r\n }\r\n }\r\n\r\n initProfessionalAmateur() {\r\n const selectedProfessionalAmateur = this.refs.professionalAmateurControl.find((radio) => radio.checked);\r\n if (selectedProfessionalAmateur) {\r\n this.applyProfessionalAmateur(selectedProfessionalAmateur.value);\r\n }\r\n }\r\n\r\n onExemptionChange(e) {\r\n this.applyCaddieVisibility(e.target.value);\r\n this.store.dispatch(creators.changeExemption(e.target.value));\r\n }\r\n\r\n onProfessionalAmateurChange(e) {\r\n this.applyProfessionalAmateur(e.target.value);\r\n }\r\n\r\n applyCaddieVisibility(exemption) {\r\n const isDisabled = exemption !== constants.EXEMPTION_YES;\r\n const display = exemption === constants.EXEMPTION_YES ? 'block' : 'none';\r\n\r\n this.refs.caddieSection.style.display = display;\r\n\tthis.refs.caddie.forEach((input) => {\r\n if (isDisabled) {\r\n input.setAttribute('disabled', 'disabled');\r\n } else {\r\n input.removeAttribute('disabled');\r\n }\r\n })\r\n }\r\n\r\n applyStateConcrete({ exemption }) {\r\n const isExemptionChosen = exemption !== null;\r\n if (isExemptionChosen !== this.isExemptionChosen) {\r\n this.applyExemptionChoice(exemption);\r\n }\r\n }\r\n\r\n applyExemptionChoice(exemption) {\r\n this.exemptionValue = exemption;\r\n this.isExemptionChosen = this.exemptionValue !== null;\r\n const inputs = [...this.element.querySelectorAll(constants.PARSLEY_INCLUDE_SELECTOR)];\r\n\r\n inputs.forEach((input) => {\r\n // logic affects every inputs except the exemption radio-group itself\r\n if (this.refs.exemption.indexOf(input) === -1) {\r\n if (this.isExemptionChosen) {\r\n input.removeAttribute('disabled');\r\n } else {\r\n input.setAttribute('disabled', 'disabled');\r\n }\r\n }\r\n });\r\n }\r\n\r\n applyProfessionalAmateur(value) {\r\n if (value === PROFESSIONAL_AMATEUR_VALUE_PROFESSIONAL) {\r\n this.hideAmateurZone();\r\n } else {\r\n this.showAmateurZone();\r\n }\r\n }\r\n\r\n hideAmateurZone() {\r\n this.refs.amateurRequiredZone.style.display = 'none';\r\n }\r\n\r\n showAmateurZone() {\r\n this.refs.amateurRequiredZone.style.display = 'block';\r\n }\r\n}\r\n","import PlayerRegistrationStep from './step';\r\nimport constants from './constants';\r\n\r\nexport default class PlayerRegistrationStep2 extends PlayerRegistrationStep {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.onPgaTourSelectChange = this.onPgaTourSelectChange.bind(this);\r\n this.onFinalVenuesChange = this.onFinalVenuesChange.bind(this);\r\n this.onRqCourseChange = this.onRqCourseChange.bind(this);\r\n }\r\n\r\n static getRequiredRefs() {\r\n return [\r\n 'isExemptSection',\r\n 'isNotExemptSection',\r\n 'needFinal',\r\n 'needRegional',\r\n 'pgaTourSection',\r\n 'pgaTourWithExemption',\r\n 'pgaTourWithoutExemption',\r\n 'pgaTourWithExemptionPlaceholder',\r\n 'pgaTourWithoutExemptionPlaceholder',\r\n 'pgaTourSelect',\r\n 'pgaTourOther',\r\n 'finalVenues'\r\n ];\r\n }\r\n\r\n initConcrete() {\r\n this.refs.pgaTourOther.style.display = 'none';\r\n this.refs.pgaTourSection.style.display = 'none';\r\n this.pgaOtherValue = this.getAttribute(this.refs.pgaTourSelect, 'other-value');\r\n if (!this.pgaOtherValue) {\r\n throw new Error('Other value for PGA or Tout is not specified');\r\n }\r\n this.addListenersConcrete();\r\n }\r\n\r\n addListenersConcrete() {\r\n this.refs.pgaTourSelect.addEventListener('change', this.onPgaTourSelectChange);\r\n this.refs.finalVenues.forEach((radio) => radio.addEventListener('change', this.onFinalVenuesChange));\r\n if (this.refs.rqCourseSelect && this.refs.rqCourseSelect.length) {\r\n this.refs.rqCourseSelect.forEach((select) => select.addEventListener('change', this.onRqCourseChange));\r\n }\r\n }\r\n\r\n applyStateConcrete({ exemption }) {\r\n if (this.exemption !== exemption) {\r\n this.applyExemption(exemption);\r\n }\r\n }\r\n\r\n applyExemption(exemption) {\r\n this.exemption = exemption;\r\n switch (this.exemption) {\r\n case constants.EXEMPTION_YES:\r\n this.refs.isExemptSection.style.display = 'block';\r\n this.refs.isNotExemptSection.style.display = 'none';\r\n this.showPgaTourSection(true);\r\n break;\r\n case constants.EXEMPTION_FINAL:\r\n case constants.EXEMPTION_NO:\r\n this.refs.isExemptSection.style.display = 'none';\r\n this.refs.isNotExemptSection.style.display = 'block';\r\n this.applyRegionalFinalVisibility(this.exemption);\r\n this.showPgaTourSection(false);\r\n break;\r\n default:\r\n }\r\n }\r\n\r\n applyRegionalFinalVisibility(exemption) {\r\n switch (exemption) {\r\n case constants.EXEMPTION_FINAL:\r\n if (this.refs.needRegional.length > 0) {\r\n this.refs.needRegional.forEach((node) => {\r\n node.style.display = 'none';\r\n });\r\n }\r\n if (this.refs.needFinal.length > 0) {\r\n this.refs.needFinal.forEach((node) => {\r\n node.style.display = 'block';\r\n });\r\n }\r\n break;\r\n case constants.EXEMPTION_NO:\r\n if (this.refs.needRegional.length > 0) {\r\n this.refs.needRegional.forEach((node) => {\r\n node.style.display = 'block';\r\n });\r\n }\r\n if (this.refs.needFinal.length > 0) {\r\n this.refs.needFinal.forEach((node) => {\r\n node.style.display = 'none';\r\n });\r\n }\r\n break;\r\n default:\r\n }\r\n }\r\n\r\n showPgaTourSection(withExemption) {\r\n this.refs.pgaTourSection.style.display = 'block';\r\n if (withExemption) {\r\n this.refs.pgaTourWithExemption.forEach((node) => {\r\n node.style.display = 'block';\r\n });\r\n this.refs.pgaTourWithoutExemption.forEach((node) => {\r\n node.style.display = 'none';\r\n });\r\n this.refs.pgaTourWithExemptionPlaceholder.insertAdjacentElement('beforeEnd', this.refs.pgaTourSection);\r\n this.refs.pgaTourSelect.removeAttribute('required');\r\n } else {\r\n this.refs.pgaTourWithExemption.forEach((node) => {\r\n node.style.display = 'none';\r\n });\r\n this.refs.pgaTourWithoutExemption.forEach((node) => {\r\n node.style.display = 'block';\r\n });\r\n this.refs.pgaTourWithoutExemptionPlaceholder.insertAdjacentElement('beforeEnd', this.refs.pgaTourSection);\r\n this.refs.pgaTourSelect.setAttribute('required', '');\r\n }\r\n }\r\n\r\n onPgaTourSelectChange() {\r\n const currentValue = [...this.refs.pgaTourSelect.options].filter((option) => option.selected).map((option) => option.value);\r\n if (currentValue.indexOf(this.pgaOtherValue) !== -1) {\r\n this.refs.pgaTourOther.style.display = 'block';\r\n } else {\r\n this.refs.pgaTourOther.style.display = 'none';\r\n }\r\n }\r\n\r\n onFinalVenuesChange(e) {\r\n const changedRadio = e.target;\r\n const sameValueRadios = this.refs.finalVenues.filter((radio) => radio !== changedRadio && (radio.value === changedRadio.value) && radio.checked);\r\n if (sameValueRadios.length > 0) {\r\n sameValueRadios.forEach((radio) => {\r\n radio.checked = false;\r\n });\r\n }\r\n }\r\n\r\n onRqCourseChange(e) {\r\n this.refs.rqCourseSelect.forEach((select) => {\r\n if (select === e.target) {\r\n return;\r\n }\r\n const target = e.target;\r\n const selectedValue = target.options[target.selectedIndex].value;\r\n\r\n for (let i = 0; i < select.options.length; i++) {\r\n if (select.options[i].value === selectedValue) {\r\n select.options[i].setAttribute('disabled', 'disabled');\r\n } else if (select.options[i].value.toString !== '-1') {\r\n select.options[i].removeAttribute('disabled');\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import PlayerRegistrationStep from './step';\r\n\r\nexport default class PlayerRegistrationStep3 extends PlayerRegistrationStep {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.isScrolledDown = false;\r\n this.onTermsScroll = this.onTermsScroll.bind(this);\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['terms', 'continue'];\r\n }\r\n\r\n initConcrete() {\r\n this.handleDisableButton(false);\r\n this.addListenersConcrete();\r\n }\r\n\r\n addListenersConcrete() {\r\n this.refs.terms.addEventListener('scroll', this.onTermsScroll);\r\n }\r\n\r\n applyStateConcrete() {\r\n }\r\n\r\n isStepValid() {\r\n return this.isScrolledDown;\r\n }\r\n\r\n onTermsScroll() {\r\n this.checkIsScrolledDown();\r\n }\r\n\r\n checkIsScrolledDown() {\r\n if (this.isScrolledDown !== true) {\r\n const termsElement = this.refs.terms;\r\n const scrollHeight = (termsElement.scrollHeight-1000);\r\n const isScrolledDown = (termsElement.scrollTop + termsElement.clientHeight) >= scrollHeight;\r\n if (isScrolledDown !== this.isScrolledDown) {\r\n this.applyIsScrolledDown(isScrolledDown);\r\n }\r\n }\r\n }\r\n\r\n applyIsScrolledDown(isScrolledDown) {\r\n this.isScrolledDown = isScrolledDown;\r\n if (this.isScrolledDown) {\r\n this.refs.terms.removeEventListener('scroll', this.onTermsScroll);\r\n this.handleDisableButton(true);\r\n }\r\n }\r\n\r\n handleDisableButton(isValid) {\r\n if (this.refs.continue) {\r\n if (isValid) {\r\n this.refs.continue.removeAttribute('disabled');\r\n } else {\r\n this.refs.continue.setAttribute('disabled', 'disabled');\r\n }\r\n }\r\n if (isValid) {\r\n this.refs.terms.classList.add('is-scrolled');\r\n }\r\n }\r\n}\r\n","import PlayerRegistrationStep from './step';\r\n\r\nexport default class PlayerRegistrationStep4 extends PlayerRegistrationStep {\r\n static getRequiredRefs() {\r\n return [];\r\n }\r\n\r\n initConcrete() {\r\n this.addListenersConcrete();\r\n }\r\n\r\n addListenersConcrete() {\r\n }\r\n\r\n applyStateConcrete() {\r\n\r\n }\r\n}\r\n","import BaseComponent from 'foundation/base-component';\r\n\r\nexport default class PlayerRegistrationNavigation extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.currentStep = null;\r\n this.onChangeStore = this.onChangeStore.bind(this);\r\n this.onStepClick = this.onStepClick.bind(this);\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['steps'];\r\n }\r\n\r\n init({ store, onNavigate }) {\r\n this.store = store;\r\n this.onNavigate = onNavigate;\r\n this.applyState(this.store.getState());\r\n this.addListeners();\r\n }\r\n\r\n addListeners() {\r\n this.store.subscribe(this.onChangeStore);\r\n this.refs.steps.forEach((stepNode) => {\r\n stepNode.addEventListener('click', this.onStepClick.bind(this, parseInt(stepNode.dataset.stepNumber, 10)));\r\n });\r\n }\r\n\r\n onStepClick(step) {\r\n this.onNavigate(step);\r\n }\r\n\r\n onChangeStore() {\r\n this.applyState(this.store.getState());\r\n }\r\n\r\n applyState({ step }) {\r\n if (this.currentStep !== step) {\r\n this.setCurrentStep(step);\r\n }\r\n }\r\n\r\n setCurrentStep(currentStep) {\r\n this.refs.steps.forEach((stepNode, index) => {\r\n stepNode.classList.remove('form-progress__step--complete');\r\n stepNode.classList.remove('form-progress__step--current');\r\n const stepNumber = index + 1;\r\n if (stepNumber < currentStep) {\r\n stepNode.classList.add('form-progress__step--complete');\r\n } else if (stepNumber === currentStep) {\r\n stepNode.classList.add('form-progress__step--current');\r\n }\r\n });\r\n }\r\n}\r\n","import { createStore, applyMiddleware } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport reducer from './reducer';\r\nimport PlayerRegistrationStep1 from './step1';\r\nimport PlayerRegistrationStep2 from './step2';\r\nimport PlayerRegistrationStep3 from './step3';\r\nimport PlayerRegistrationStep4 from './step4';\r\nimport PlayerRegistrationNavigation from './navigation';\r\nimport FormComponent from '../../form/js/form.component';\r\nimport creators from './actions';\r\nimport app from '../../../general/js/app';\r\n\r\nexport default class PlayerRegistrationComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.currentStep = null;\r\n this.steps = {};\r\n this.onNavigate = this.onNavigate.bind(this);\r\n this.onContinue = this.onContinue.bind(this);\r\n this.onChangeStore = this.onChangeStore.bind(this);\r\n this.onSubmit = this.onSubmit.bind(this);\r\n this.onServerValidationError = this.onServerValidationError.bind(this);\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['nav', 'form', 'description', 'notification'];\r\n }\r\n\r\n init() {\r\n // add listener to form first in order to be able to prevent event propagation in some cases\r\n this.refs.form.addEventListener('submit', this.onSubmit);\r\n\r\n // init inner components\r\n this.formComponent = new FormComponent(this.refs.form, 'form', { onServerValidationError: this.onServerValidationError });\r\n this.parsleyFormInstance = this.formComponent.getParsleyForm();\r\n this.store = createStore(reducer, applyMiddleware(thunk));\r\n (new PlayerRegistrationNavigation(this.refs.nav, 'navigation')).init({\r\n store: this.store,\r\n onNavigate: this.onNavigate\r\n });\r\n\r\n const stepParams = {\r\n store: this.store,\r\n onContinue: this.onContinue\r\n };\r\n\r\n if (this.refs.step1) {\r\n const stepInstance = new PlayerRegistrationStep1(this.refs.step1, 'step1');\r\n this.steps[stepInstance.getStepNumber()] = stepInstance;\r\n stepInstance.init(stepParams);\r\n }\r\n if (this.refs.step2) {\r\n const stepInstance = new PlayerRegistrationStep2(this.refs.step2, 'step2');\r\n this.steps[stepInstance.getStepNumber()] = stepInstance;\r\n stepInstance.init(stepParams);\r\n }\r\n if (this.refs.step3) {\r\n const stepInstance = new PlayerRegistrationStep3(this.refs.step3, 'step3');\r\n this.steps[stepInstance.getStepNumber()] = stepInstance;\r\n stepInstance.init(stepParams);\r\n }\r\n if (this.refs.step4) {\r\n const stepInstance = new PlayerRegistrationStep4(this.refs.step4, 'step4');\r\n this.steps[stepInstance.getStepNumber()] = stepInstance;\r\n stepInstance.init(stepParams);\r\n }\r\n\r\n this.addListeners();\r\n }\r\n\r\n onSubmit(e) {\r\n // submit is allowed only from the last step\r\n // in other cases, e.g user clicks on Enter must not trigger submit\r\n if (!this.currentStep || this.currentStep !== Object.keys(this.steps).length) {\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n this.continue();\r\n }\r\n }\r\n\r\n onServerValidationError(failedElements) {\r\n if (failedElements.length > 0) {\r\n const firstFailedElement = failedElements[0];\r\n Object.keys(this.steps).forEach((stepNumber) => {\r\n const stepInstance = this.steps[stepNumber];\r\n if (stepInstance.element.contains(firstFailedElement)) {\r\n this.store.dispatch(creators.changeStep(stepInstance.getStepNumber()));\r\n }\r\n });\r\n }\r\n }\r\n\r\n addListeners() {\r\n this.store.subscribe(this.onChangeStore);\r\n }\r\n\r\n onChangeStore() {\r\n this.applyState(this.store.getState());\r\n }\r\n\r\n applyState({ step }) {\r\n if (this.currentStep !== step) {\r\n this.applyNewStep(step);\r\n }\r\n }\r\n\r\n applyNewStep(step) {\r\n this.currentStep = step;\r\n // less then tablet\r\n if (!app.isTablet) {\r\n if (this.currentStep === 1) {\r\n this.refs.description.style.display = 'block';\r\n this.refs.notification.style.display = 'block';\r\n } else {\r\n this.refs.description.style.display = 'none';\r\n this.refs.notification.style.display = 'none';\r\n }\r\n }\r\n }\r\n\r\n onContinue() {\r\n this.continue();\r\n }\r\n\r\n continue() {\r\n const currentStep = this.store.getState().step;\r\n const nextStep = currentStep + 1;\r\n this.canGoToStep(nextStep, true).then(() => {\r\n this.store.dispatch(creators.changeStep(nextStep));\r\n });\r\n }\r\n\r\n onNavigate(newStep) {\r\n this.canGoToStep(newStep).then(() => {\r\n this.store.dispatch(creators.changeStep(newStep));\r\n });\r\n }\r\n\r\n canGoToStep(nextStep, highlight = false) {\r\n const currentStep = this.store.getState().step;\r\n const promises = [this.validFormStep(nextStep, highlight)];\r\n\r\n const currentStepInstance = this.steps[currentStep];\r\n if (currentStepInstance) {\r\n promises.push(currentStepInstance.getIsStepValidPromise());\r\n }\r\n return Promise.all(promises);\r\n }\r\n\r\n validFormStep(newStep, highlight = false) {\r\n const state = this.store.getState();\r\n const previousSteps = state.steps.filter((step) => step < newStep);\r\n if (previousSteps.length > 0) {\r\n const promises = [];\r\n previousSteps.forEach((step) => {\r\n let stepPromise;\r\n if (highlight) {\r\n stepPromise = this.parsleyFormInstance.whenValidate({ group: step });\r\n } else {\r\n stepPromise = this.parsleyFormInstance.whenValid({ group: step });\r\n }\r\n promises.push(stepPromise);\r\n });\r\n return Promise.all(promises);\r\n }\r\n\r\n return Promise.resolve();\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport PlayerRegistrationComponent from './js/player-registration.component';\r\n\r\nComponentsFactory.getInstance().define('player-registration', PlayerRegistrationComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport HtmlHelper from 'foundation/html-helper';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport api from '../../../general/js/api';\r\nimport pageSpinner from '../../../general/js/page-spinner';\r\nimport gtm from '../../../general/js/gtm';\r\n\r\nclass PreviousOpensComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.dataUrl = this.getAttribute(this.element, 'url');\r\n\r\n this.isFetching = false;\r\n\r\n this.choicesWrapperInstance = null;\r\n\r\n this.onChangeFilter = this.onChangeFilter.bind(this);\r\n this.onClickLoadmore = this.onClickLoadmore.bind(this);\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (this.refs.select) {\r\n this.choicesInstance();\r\n }\r\n\r\n if (this.refs.select) {\r\n this.addListener(this.refs.select, 'change', this.onChangeFilter);\r\n }\r\n\r\n if (this.refs.footer) {\r\n this.addListener(this.refs.footer, 'click', this.onClickLoadmore);\r\n }\r\n }\r\n\r\n onDestroy() {\r\n this.choicesWrapperInstance.destroy();\r\n }\r\n\r\n choicesInstance() {\r\n const randaSelect = 'randa-select';\r\n\r\n this.choicesWrapperInstance = new window.Choices(this.refs.select, {\r\n searchEnabled: false,\r\n itemSelectText: '',\r\n placeholder: false,\r\n shouldSort: false,\r\n classNames: {\r\n containerOuter: `\r\n choices\r\n ${randaSelect}\r\n `,\r\n containerInner: `\r\n choices__inner\r\n ${randaSelect}__inner\r\n `,\r\n list: `\r\n choices__list\r\n ${randaSelect}__list\r\n `,\r\n listDropdown: `\r\n choices__list--dropdown\r\n ${randaSelect}__list--dropdown\r\n `,\r\n listSingle: `\r\n choices__list--single\r\n ${randaSelect}__list--single\r\n `,\r\n item: `\r\n choices__item\r\n ${randaSelect}__item\r\n `,\r\n itemSelectable: `\r\n choices__item--selectable\r\n ${randaSelect}__item--selectable\r\n `,\r\n itemDisabled: `\r\n choices__item--disabled\r\n ${randaSelect}__item--disabled\r\n `,\r\n itemChoice: `\r\n choices__item--choice\r\n ${randaSelect}__item--choice\r\n `\r\n }\r\n });\r\n }\r\n\r\n onChangeFilter() {\r\n gtm.push('Select decade', 'Dropdown', this.refs.select.value);\r\n this.updateContent(this.refs.select.value, true);\r\n }\r\n\r\n onClickLoadmore(event) {\r\n if (event.target === this.refs.footer) return;\r\n\r\n const button = HtmlHelper.getParent(\r\n event.target,\r\n `[${this.getScopedAttribute('loadmore')}]`,\r\n true,\r\n this.refs.footer\r\n );\r\n\r\n if (!this.isFetching &&\r\n button\r\n ) {\r\n const decadeYear = this.getAttribute(button, 'prev-year');\r\n\r\n event.preventDefault();\r\n this.updateContent(decadeYear, false);\r\n }\r\n }\r\n\r\n updateContent(decadeYear, shouldCleanList) {\r\n this.isFetching = true;\r\n pageSpinner.show();\r\n\r\n this.getData(decadeYear).then((res) => {\r\n this.renderList(res.data.dataList, shouldCleanList);\r\n this.renderButton(res.data.button);\r\n\r\n this.isFetching = false;\r\n pageSpinner.hide();\r\n }).catch((err) => {\r\n console.log(err);\r\n this.isFetching = false;\r\n pageSpinner.hide();\r\n });\r\n }\r\n\r\n renderList(content, shouldClean) {\r\n if (shouldClean) {\r\n ComponentsFactory.getInstance().destroy(this.refs.listing);\r\n this.refs.listing.innerHTML = '';\r\n }\r\n\r\n if (content) {\r\n this.refs.listing.insertAdjacentHTML('beforeEnd', content);\r\n ComponentsFactory.getInstance().init(this.refs.listing);\r\n }\r\n }\r\n\r\n renderButton(content) {\r\n ComponentsFactory.getInstance().destroy(this.refs.footer);\r\n this.refs.footer.innerHTML = '';\r\n\r\n if (content) {\r\n this.refs.footer.insertAdjacentHTML('beforeEnd', content);\r\n ComponentsFactory.getInstance().init(this.refs.footer);\r\n }\r\n }\r\n\r\n getData(decadeYear) {\r\n if (!this.dataUrl) return Promise.reject(new Error('incorrect data URL'));\r\n\r\n this.isFetching = true;\r\n\r\n return api.get(this.dataUrl, { params: { decadeYear } });\r\n }\r\n}\r\n\r\nexport default PreviousOpensComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport PreviousOpensComponent from './js/previous-opens.component';\r\n\r\nComponentsFactory.getInstance().define('previous-opens', PreviousOpensComponent);\r\n","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 { 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 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 './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","/* 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, SitecoreLinkField } from 'components/sitecore-fields';\r\nimport Cookies from 'js-cookie';\r\nimport { CookieNames } from '../../../../general/js/utils/cookies';\r\nimport Oauth from '../../../sso/components/oauth';\r\n\r\nclass MastercardRegistrationForm extends React.Component {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.handleFieldChange = this.handleFieldChange.bind(this);\r\n this.handleFieldChangeFocus = this.handleFieldChangeFocus.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.extractUserDetailsFromCookie = this.extractUserDetailsFromCookie.bind(this);\r\n }\r\n\r\n extractUserDetailsFromCookie() {\r\n const userDataCookie = Cookies.get(CookieNames.TOCH_USER_DATA);\r\n const userObject = {\r\n userName: '',\r\n postcode: ''\r\n };\r\n\r\n\r\n if (userDataCookie === undefined || userDataCookie === null) return userObject;\r\n\r\n const userData = JSON.parse(userDataCookie);\r\n\r\n userObject.userName = `${userData.firstName} ${userData.lastName}`;\r\n userObject.postcode = userData.postcode;\r\n\r\n return userObject;\r\n }\r\n\r\n handleSubmit() {\r\n Oauth.mastercardUpgrade();\r\n }\r\n\r\n handleFieldChange(e, fieldName) {\r\n const { handleChange } = this.props;\r\n\r\n handleChange(e, fieldName);\r\n }\r\n\r\n handleFieldChangeFocus(e) {\r\n const { handleOnChangeFocus } = this.props;\r\n\r\n handleOnChangeFocus(e);\r\n }\r\n\r\n render() {\r\n const {\r\n backgroundImage,\r\n masterCardLogo,\r\n title,\r\n bottomInfo,\r\n ctaSignUpForMastercardLink,\r\n } = this.props;\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

    {title}

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

    {bottomInfo}

    \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 Upgrade\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 MastercardRegistrationForm;\r\n","import React from 'react';\r\nimport { SitecoreImageField, SitecoreLinkField } from 'components/sitecore-fields';\r\nimport { isEmpty } from 'lodash';\r\nimport { getParameterByName } from '../../../../general/js/utils';\r\nimport { QueryConstants } from '../../../../general/js/utils/query-constants';\r\n\r\nclass MastercardRegistrationSuccess extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.getButtonLink = this.getButtonLink.bind(this);\r\n }\r\n\r\n getButtonLink() {\r\n const { masterCardRegistrationSuccessCTALink } = this.props;\r\n const redirectUrl = getParameterByName(QueryConstants.REDIRECT_URL);\r\n const link = !isEmpty(redirectUrl) ? redirectUrl + window.location.hash : window.location.href;\r\n const buttonLink = link != null ? link : masterCardRegistrationSuccessCTALink.url;\r\n masterCardRegistrationSuccessCTALink.url = buttonLink;\r\n\r\n return masterCardRegistrationSuccessCTALink;\r\n }\r\n\r\n render() {\r\n const {\r\n masterCardText,\r\n masterCardLogo,\r\n masterCardRegistrationSuccessTitle,\r\n masterCardRegistrationSuccessLabel,\r\n masterCardRegistrationSuccessDescription,\r\n firstName\r\n } = this.props;\r\n\r\n const buttonLink = this.getButtonLink();\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
    {masterCardText}
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    {masterCardRegistrationSuccessLabel}
    \r\n
    \r\n

    {masterCardRegistrationSuccessTitle + ' ' + firstName}

    \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 MastercardRegistrationSuccess;\r\n","import React from 'react';\r\n\r\nclass AudioComponent extends React.Component {\r\n render() {\r\n const {\r\n soundToBePlayedAfterSuccessRegister\r\n } = this.props;\r\n\r\n return (\r\n soundToBePlayedAfterSuccessRegister != null &&\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default AudioComponent;\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport Cookies from 'js-cookie';\r\nimport {\r\n handleCheckIsMasterCardMember\r\n} from '../helpers/toch-helpers';\r\nimport * as upgradeAccountActions from '../../../sso/store/actions/upgrade-account-actions';\r\nimport MastercardRegistrationForm from './MasterCardRegistrationForm';\r\nimport MastercardRegistrationSuccess from './MasterCardRegistrationSuccess';\r\nimport { isEmpty } from '../../../sso/components/utils/obj-utils';\r\nimport AudioComponent from '../helpers/AudioComponent';\r\nimport userService from '../../../../general/js/user/user-service';\r\nimport { CookieNames } from '../../../../general/js/utils/cookies';\r\nimport { MembershipTypes } from '../../../../general/js/utils';\r\n\r\nclass MastercardRegistration extends React.Component {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.state = {\r\n masterCardNumber: '',\r\n name: '',\r\n postcode: '',\r\n isMasterCardNumber: true,\r\n isDataSent: false,\r\n formHasErrors: false,\r\n isModalOpen: false\r\n };\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleOnChangeFocus = this.handleOnChangeFocus.bind(this);\r\n this.getUserFirstName = this.getUserFirstName.bind(this);\r\n this.displayMasterCardRegister = this.displayMasterCardRegister.bind(this);\r\n this.playSound = this.playSound.bind(this);\r\n this.updateDataInLocalStorage = this.updateDataInLocalStorage.bind(this);\r\n }\r\n\r\n handleChange(e, fieldName) {\r\n this.setState({ [fieldName]: e.target.value });\r\n }\r\n\r\n playSound() {\r\n const audio = document.getElementById('audio');\r\n audio.play();\r\n }\r\n\r\n updateDataInLocalStorage() {\r\n const localStorageData = userService.getDataFromLocalStorage(CookieNames.TOCH_USER_MEMBERSHIPS);\r\n const newLocalStorageData = JSON.parse(localStorageData) + ';' + MembershipTypes.OneClubAdvantage;\r\n\r\n userService.setTOCHUserMembershipsInLocalStorage(JSON.stringify(newLocalStorageData));\r\n }\r\n\r\n handleOnChangeFocus(e) {\r\n const { regexToVerifyMastercard } = this.props.options;\r\n const regexExpression = new RegExp(regexToVerifyMastercard);\r\n const regexToVerifyOnlyDigits = /^\\d+$/;\r\n\r\n if (regexExpression.test(e.target.value) && regexToVerifyOnlyDigits.test(e.target.value) && e.target.value.length === 16) {\r\n this.setState({ isMasterCardNumber: true });\r\n } else { this.setState({ isMasterCardNumber: false }); }\r\n }\r\n\r\n onSubmit = (e) => {\r\n e.preventDefault();\r\n\r\n const { isMasterCardNumber } = this.state;\r\n const { callbackUrl } = this.props.options;\r\n const { actions } = this.props;\r\n\r\n if (isMasterCardNumber) {\r\n actions.addMasterCardMembershipToUser(callbackUrl).then(() => {\r\n this.playSound();\r\n this.setState({ isDataSent: true });\r\n this.updateDataInLocalStorage();\r\n }).catch((error) => {\r\n this.setState({ formHasErrors: true });\r\n console.error(error);\r\n });\r\n } else {\r\n this.setState({ isMasterCardNumber: false });\r\n }\r\n }\r\n\r\n getUserFirstName() {\r\n const cookieValue = Cookies.get(CookieNames.TOCH_USER_DATA);\r\n const cookie = !isEmpty(cookieValue) ? JSON.parse(cookieValue) : null;\r\n\r\n return cookie != null ? cookie.firstName : null;\r\n }\r\n\r\n displayMasterCardRegister() {\r\n const {\r\n backgroundImage,\r\n masterCardLogo,\r\n masterCardText,\r\n masterCardNumberLabel,\r\n nameLabel,\r\n title,\r\n bottomInfo,\r\n postcodeLabel,\r\n ctaSignUpForMastercardLink,\r\n notMasterCardNumberErrorMessage,\r\n masterCardRegistrationSuccessTitle,\r\n masterCardRegistrationSuccessLabel,\r\n masterCardRegistrationSuccessDescription,\r\n masterCardRegistrationSuccessCTALink,\r\n soundToBePlayedAfterSuccessRegister\r\n } = this.props.options;\r\n const { isMasterCardNumber, isDataSent } = this.state;\r\n\r\n const userFirstName = this.getUserFirstName();\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {\r\n isDataSent ?\r\n :\r\n \r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n render() {\r\n const isMasterCardMember = handleCheckIsMasterCardMember(CookieNames.TOCH_USER_MEMBERSHIPS);\r\n\r\n return (\r\n !isMasterCardMember ?\r\n this.displayMasterCardRegister() : null\r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps() {\r\n return {\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n addMasterCardMembershipToUser: bindActionCreators(upgradeAccountActions.addMasterCardMembershipToUser, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(MastercardRegistration);\r\n","import React from 'react';\r\n\r\nclass TOCHModal extends React.Component {\r\n render() {\r\n const {\r\n handleOnClose\r\n } = this.props;\r\n\r\n return (\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\n );\r\n }\r\n}\r\n\r\nexport default TOCHModal;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport axios from 'axios';\r\nimport {\r\n getMasterCardRegisterObject,\r\n getTOCHMembershipArray,\r\n handleCheckMembershipExists,\r\n setTochUserDataCookie\r\n} from '../helpers/toch-helpers';\r\nimport * as userAccountActions from '../../../sso/store/actions/user-account-actions';\r\nimport { isEmpty } from '../../../sso/components/utils/obj-utils';\r\nimport userService from '../../../../general/js/user/user-service';\r\nimport MastercardRegistration from '../mastercard-registration/MasterCardRegistration';\r\nimport TOCHModal from '../helpers/TOCHModal';\r\nimport { TOCH_USER_ADDRESS_BOOK_LOCALSTORAGE_NAME } from '../../../../general/js/user/constants';\r\nimport {\r\n MembershipTypes, addQueryParams, getParameterByName, redirectTo\r\n} from '../../../../general/js/utils';\r\nimport { QueryConstants } from '../../../../general/js/utils/query-constants';\r\nimport { isNullOrUndefined } from '../../../../general/js/general-helpers';\r\n\r\nclass TOCHForceSignIn extends Component {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.state = {\r\n isDataReceived: false,\r\n masterCardData: null,\r\n isModalOpen: false\r\n };\r\n\r\n this.handleUserLoginStatus = this.handleUserLoginStatus.bind(this);\r\n this.getUserData = this.getUserData.bind(this);\r\n this.callMasterCardUpgradeFormApi = this.callMasterCardUpgradeFormApi.bind(this);\r\n this.displayMasterCardUpgradeForm = this.displayMasterCardUpgradeForm.bind(this);\r\n this.handleOnCloseModal = this.handleOnCloseModal.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.getUserData();\r\n }\r\n\r\n handleOnCloseModal = (value) => {\r\n const { masterCardData } = this.state;\r\n const options = getMasterCardRegisterObject(masterCardData);\r\n const MCRedirectUrl = options != null ? options.masterCardRegistrationSuccessCTALink : null;\r\n\r\n const redirectUrl = getParameterByName(QueryConstants.REDIRECT_URL);\r\n const link = !isEmpty(redirectUrl) ? redirectUrl + window.location.hash : window.location.href;\r\n const refreshLink = link != null ? link : MCRedirectUrl != null ? MCRedirectUrl.url : null;\r\n\r\n this.setState({ isModalOpen: value });\r\n\r\n if (refreshLink != null) {\r\n //window.location.replace(refreshLink);\r\n }\r\n }\r\n\r\n handleUserLoginStatus() {\r\n userService.setDataInLocalStorage(QueryConstants.REDIRECT_URL, window.location.pathname + encodeURIComponent(window.location.search));\r\n\r\n const { userAccountData, isUserNotSignedIn, isUserAccountDataLoadedSuccessful } = this.props;\r\n const {\r\n notOneClubPage, notSignInPage, overviewPage, isInEditMode\r\n } = this.props.options;\r\n\r\n const redirectUrlFromCookie = userService.getDataFromLocalStorage(QueryConstants.REDIRECT_URL);\r\n const redirectUrlFromCookieExistance = redirectUrlFromCookie !== null && redirectUrlFromCookie !== '' && redirectUrlFromCookie !== undefined;\r\n\r\n const dataLoadedSuccessful = !isUserNotSignedIn && isUserAccountDataLoadedSuccessful && !isEmpty(userAccountData);\r\n const membershipArray = getTOCHMembershipArray(userAccountData['custom:Membership']);\r\n const isOneClub = handleCheckMembershipExists(membershipArray, MembershipTypes.OneClub);\r\n const windowUrl = decodeURI(window.location.href.toLocaleLowerCase()).replace(/ /g, '-');\r\n\r\n if (isInEditMode === undefined || isInEditMode === false) {\r\n if (isUserNotSignedIn) {\r\n userService.removeDataFromLocalStorage(TOCH_USER_ADDRESS_BOOK_LOCALSTORAGE_NAME);\r\n const redirectUrl = (overviewPage === undefined || overviewPage === null) ? '/' : overviewPage.url;\r\n\r\n const redirect = redirectUrlFromCookieExistance ? redirectUrlFromCookie : redirectUrl;\r\n redirectTo(addQueryParams(notSignInPage.url, [\r\n {\r\n key: QueryConstants.REDIRECT_TO,\r\n value: redirect\r\n }\r\n ]));\r\n }\r\n if (isOneClub && windowUrl.includes(notOneClubPage.url)) {\r\n const redirectUrl = (overviewPage === undefined || overviewPage === null) ? '/' : overviewPage.url;\r\n redirectTo(redirectUrl);\r\n return null;\r\n }\r\n }\r\n const oneClubBody = document.getElementById('randa-one-club-body');\r\n if (dataLoadedSuccessful) {\r\n setTochUserDataCookie(userAccountData);\r\n\r\n if (isOneClub) {\r\n if (!isNullOrUndefined(oneClubBody)) {\r\n oneClubBody.style.removeProperty('visibility');\r\n }\r\n\r\n userService.removeDataFromLocalStorage(QueryConstants.REDIRECT_URL);\r\n }\r\n } else if (isInEditMode) {\r\n if (!isNullOrUndefined(oneClubBody)) {\r\n oneClubBody.style.removeProperty('visibility');\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n callMasterCardUpgradeFormApi() {\r\n const { masterCardRegistrationEndpoint } = this.props.options;\r\n\r\n axios.post(masterCardRegistrationEndpoint).then((response) => {\r\n this.setState({ isDataReceived: true, masterCardData: response.data, isModalOpen: true });\r\n }).catch((error) => {\r\n this.setState({ formHasErrors: true });\r\n console.error(error);\r\n });\r\n }\r\n\r\n displayMasterCardUpgradeForm() {\r\n const { masterCardData, isModalOpen } = this.state;\r\n\r\n const options = getMasterCardRegisterObject(masterCardData);\r\n\r\n return (\r\n masterCardData.item != null && isModalOpen && masterCardData.openPopup ?\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    :\r\n null\r\n );\r\n }\r\n\r\n getUserData() {\r\n const { actions } = this.props;\r\n const { getUserAccountDataCallBackURL } = this.props.options;\r\n\r\n actions.getUserAccountData(getUserAccountDataCallBackURL);\r\n }\r\n\r\n render() {\r\n const { isDataReceived } = this.state;\r\n\r\n return (\r\n !isDataReceived ?\r\n this.handleUserLoginStatus() :\r\n this.displayMasterCardUpgradeForm()\r\n );\r\n }\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 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 }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(TOCHForceSignIn);\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 configureStore from '../../../sso/store/configure-store';\r\nimport { AmplifyClient } from '../../../../project/amplify-client';\r\nimport TOCHForceSignIn from './TOCHForceSignIn';\r\n\r\nexport default class TOCHForceSignInComponent 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 React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport axios from 'axios';\r\nimport Cookies from 'js-cookie';\r\nimport { bindActionCreators } from 'redux';\r\nimport { SitecoreImageField } from 'components/sitecore-fields';\r\nimport {\r\n handleCheckIsMasterCardMember\r\n} from '../helpers/toch-helpers';\r\nimport * as userAccountActions from '../../../sso/store/actions/user-account-actions';\r\nimport { isEmpty } from '../../../sso/components/utils/obj-utils';\r\nimport MastercardRegistration from '../mastercard-registration/MasterCardRegistration';\r\nimport TOCHModal from '../helpers/TOCHModal';\r\nimport Oauth from '../../../sso/components/oauth';\r\nimport { CookieNames } from '../../../../general/js/utils/cookies';\r\nimport { safeParseJSON } from '../../../../general/js/general-helpers';\r\nimport eventBus from '../../../../general/js/event-bus';\r\nimport { BusEvents } from '../../../../general/js/event-bus-constants';\r\n\r\nclass HeaderHero extends Component {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.state = {\r\n cookieValue: '',\r\n masterCardData: null,\r\n isModalOpen: false,\r\n options: null\r\n };\r\n\r\n this.getUserData = this.getUserData.bind(this);\r\n this.getUserInitials = this.getUserInitials.bind(this);\r\n this.checkStringForEmpty = this.checkStringForEmpty.bind(this);\r\n this.getUserDetails = this.getUserDetails.bind(this);\r\n this.loadMasterCardUpgradeFormData = this.loadMasterCardUpgradeFormData.bind(this);\r\n this.handleOnCloseModal = this.handleOnCloseModal.bind(this);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n eventBus.addListener(BusEvents.USER_MEMBERSHIP_UPDATE, this.getUserData);\r\n }\r\n\r\n onDestroy() {\r\n eventBus.removeListener(BusEvents.USER_MEMBERSHIP_UPDATE, this.getUserData);\r\n }\r\n\r\n componentDidMount() {\r\n this.getUserData();\r\n this.loadMasterCardUpgradeFormData();\r\n }\r\n\r\n getUserData(event) {\r\n const { actions } = this.props;\r\n const { getUserAccountDataCallBackURL } = this.props.data;\r\n const tochUserDataCookie = Cookies.get(CookieNames.TOCH_USER_DATA);\r\n\r\n if ((event && event.bypassCache) || isEmpty(tochUserDataCookie)) actions.getUserAccountData(getUserAccountDataCallBackURL);\r\n else this.setState({ cookieValue: tochUserDataCookie });\r\n }\r\n\r\n getUserInitials(userAccountData) {\r\n if (userAccountData !== undefined && userAccountData.firstName !== undefined && userAccountData.lastName !== undefined) {\r\n userAccountData.firstName = userAccountData.firstName.trim();\r\n userAccountData.lastName = userAccountData.lastName.trim();\r\n\r\n const firstNameChar = this.checkStringForEmpty(userAccountData.firstName) ? '' : userAccountData.firstName.charAt(0);\r\n const lastNameChar = this.checkStringForEmpty(userAccountData.lastName) ? '' : userAccountData.lastName.charAt(0);\r\n\r\n return firstNameChar + lastNameChar;\r\n }\r\n\r\n return 'TT';\r\n }\r\n\r\n handleOnCloseModal = (value) => {\r\n this.setState({ isModalOpen: value });\r\n }\r\n\r\n checkStringForEmpty(name) {\r\n if (name === '') return true;\r\n\r\n return false;\r\n }\r\n\r\n getUserDetails() {\r\n const { cookieValue } = this.state;\r\n const { userAccountData, isUserNotSignedIn, isUserAccountDataLoadedSuccessful } = this.props;\r\n const cookie = safeParseJSON(cookieValue);\r\n const userData = isEmpty(cookieValue) ? userAccountData : cookie;\r\n\r\n const dataLoadedSuccessful = (!isUserNotSignedIn && isUserAccountDataLoadedSuccessful && !isEmpty(userAccountData)) || (!isEmpty(cookieValue));\r\n\r\n const userInitials = dataLoadedSuccessful && userData.isOneClub !== null ? this.getUserInitials(userData) : 'TT';\r\n\r\n const createdYear = dataLoadedSuccessful && userData.isOneClub !== null ?\r\n new Date(userData.createdDate).getFullYear() :\r\n new Date(Date.now()).getFullYear();\r\n\r\n const becameMasterCard = dataLoadedSuccessful && userData.isOneClub !== null ?\r\n new Date(userData.becameMasterCard).getFullYear() :\r\n new Date(Date.now()).getFullYear();\r\n\r\n const firstName = dataLoadedSuccessful && userData.isOneClub !== null ? userData.firstName : 'Test';\r\n\r\n const userDetails = {\r\n dataLoadedSuccessful,\r\n userInitials,\r\n createdYear,\r\n firstName,\r\n becameMasterCard\r\n };\r\n\r\n return userDetails;\r\n }\r\n\r\n loadMasterCardUpgradeFormData() {\r\n const { mastercardUpgradeEndpoint } = this.props.data;\r\n\r\n axios.post(mastercardUpgradeEndpoint).then((response) => {\r\n this.setState({ masterCardData: response.data });\r\n }).catch((error) => {\r\n this.setState({ formHasErrors: true });\r\n console.error(error);\r\n });\r\n }\r\n\r\n render() {\r\n const userDetails = this.getUserDetails();\r\n\r\n const {\r\n backgroundImage,\r\n helloMessage,\r\n welcomeMessage,\r\n headerLogoImage,\r\n membershipStatusMessage,\r\n membershipUpgradedStatusMessage,\r\n upgradeText,\r\n topButtonText,\r\n isInEditMode\r\n } = this.props.data;\r\n\r\n const { isModalOpen, options } = this.state;\r\n\r\n const isMasterCardMember = handleCheckIsMasterCardMember(CookieNames.TOCH_USER_MEMBERSHIPS);\r\n\r\n const displayMessage = isMasterCardMember ? membershipUpgradedStatusMessage : membershipStatusMessage;\r\n\r\n const displayYear = isMasterCardMember ? userDetails.becameMasterCard : userDetails.createdYear;\r\n\r\n const showData = isInEditMode || userDetails.dataLoadedSuccessful;\r\n\r\n return (\r\n showData &&\r\n
    \r\n {isModalOpen && options != null && !isMasterCardMember ?\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
    \r\n
    \r\n
    \r\n
    \r\n \r\n {userDetails.userInitials}\r\n \r\n\r\n
    \r\n

    \r\n {helloMessage + ' ' + userDetails.firstName}\r\n

    \r\n

    \r\n {welcomeMessage}\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n !isMasterCardMember &&\r\n
    \r\n {\r\n !isEmpty(topButtonText) &&\r\n

    \r\n }\r\n \r\n
    \r\n }\r\n

    \r\n { displayMessage}\r\n {displayYear}\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 isUserNotSignedIn: state.userAccount.isUserNotSignedIn,\r\n isUserAccountDataLoadedSuccessful: state.userAccount.isUserAccountDataLoadedSuccessful,\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 }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(HeaderHero);\r\n","import React from 'react';\r\nimport { Provider as ReduxProvider } from 'react-redux';\r\nimport { render } from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport configureStore from '../../../sso/store/configure-store';\r\nimport { AmplifyClient } from '../../../../project/amplify-client';\r\nimport HeaderHero from './HeaderHero';\r\n\r\nexport default class HeaderHeroComponent 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 ,\r\n this.refs.section\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport { SitecoreImageField } from 'components/sitecore-fields';\r\n\r\nclass CompetitionAnswers extends React.Component {\r\n\r\n render() {\r\n const { answers, value, onChange } = this.props;\r\n return (\r\n
      \r\n {answers.map((answer) => {\r\n return (\r\n
    • \r\n onChange(answer.text)}>\r\n
      \r\n \r\n
      \r\n
      {answer.text}
      \r\n \r\n
    • \r\n );\r\n })}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default CompetitionAnswers;\r\n","import React from 'react';\r\nimport axios from 'axios';\r\nimport string from 'yup/lib/string';\r\nimport object from 'yup/lib/object';\r\nimport { isEmpty } from 'lodash';\r\nimport { SitecoreImageField, SitecoreLinkField } from 'components/sitecore-fields';\r\nimport CompetitionAnswers from './competition-answers';\r\nimport {\r\n getComponentVisibility, addCompletedFormToAddressBookLocalStorage, getVerificationEndpoint, getUserAddressBooks, verifyUserInAddressBook, getUserDetailsFromCookie\r\n} from '../helpers/toch-helpers';\r\nimport userService from '../../../../general/js/user/user-service';\r\nimport { TOCH_USER_ADDRESS_BOOK_LOCALSTORAGE_NAME } from '../../../../general/js/user/constants';\r\n\r\nclass CompetitionQuestionLayout extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isSubmitAttempted: false,\r\n isDataSent: false,\r\n fieldsErrors: {},\r\n answer: null,\r\n formHasErrors: false,\r\n addressBooks: null\r\n };\r\n\r\n this.schema = object().shape({\r\n answer: string().required('Please choose an option').nullable(),\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.checkCompetitionStatus();\r\n }\r\n\r\n checkCompetitionStatus() {\r\n const { verificationEndpoint, question } = this.props.options;\r\n const userAddressBooks = getUserAddressBooks();\r\n\r\n if (!isEmpty(verificationEndpoint) && userAddressBooks === null) this.handleComponentVisibilityApiCall();\r\n\r\n const userInAddressBook = verifyUserInAddressBook(userAddressBooks, question.dotmailerAddressBook.addressBookID);\r\n\r\n if (userInAddressBook) {\r\n this.setState({ isDataSent: true });\r\n }\r\n }\r\n\r\n handleComponentVisibilityApiCall() {\r\n const endpoint = getVerificationEndpoint(this.props.options);\r\n\r\n axios.post(endpoint).then((response) => {\r\n if (response.data !== null && response.data !== undefined && response.data !== '') {\r\n userService.setDataInLocalStorage(TOCH_USER_ADDRESS_BOOK_LOCALSTORAGE_NAME, JSON.stringify(response.data));\r\n this.setState({ addressBooks: response.data });\r\n }\r\n }).catch(() => {\r\n this.setState({ competitionsList: null });\r\n });\r\n }\r\n\r\n validate() {\r\n const { answer } = this.state;\r\n return this.schema.validate({ answer }, { abortEarly: false }).then(() => {\r\n this.setState({ fieldsErrors: {} });\r\n return true;\r\n }, (error) => {\r\n const fieldsErrors = {};\r\n error.inner.forEach((fieldError) => {\r\n fieldsErrors[fieldError.path] = fieldError.errors;\r\n });\r\n\r\n this.setState({ fieldsErrors });\r\n return false;\r\n });\r\n }\r\n\r\n onSubmit = (e) => {\r\n e.preventDefault();\r\n\r\n const { question } = this.props.options;\r\n const updatedUserAddressBooks = addCompletedFormToAddressBookLocalStorage(question.dotmailerAddressBook.addressBookID, question.dotmailerAddressBook.adressBookName);\r\n const userDetails = getUserDetailsFromCookie();\r\n\r\n if (!this.state.isDataSent) {\r\n this.setState({ isSubmitAttempted: true });\r\n this.validate().then((isValid) => {\r\n if (isValid) {\r\n if (question.dotmailerAddressBook !== undefined) {\r\n const data = {\r\n emailAddress: userDetails.email,\r\n firstName: userDetails.firstName,\r\n lastName: userDetails.lastName,\r\n addressBookId: question.dotmailerAddressBook.addressBookID,\r\n addressBookName: question.dotmailerAddressBook.adressBookName,\r\n dotmailerColumn: question.dotmailerColumn,\r\n answer: this.state.answer\r\n };\r\n\r\n axios.post(this.props.options.endpoint, data).then(() => {\r\n userService.setDataInLocalStorage(TOCH_USER_ADDRESS_BOOK_LOCALSTORAGE_NAME, JSON.stringify(updatedUserAddressBooks));\r\n this.setState({ isDataSent: true, addressBooks: updatedUserAddressBooks });\r\n }).catch((error) => {\r\n this.setState({ formHasErrors: true });\r\n console.error(error);\r\n });\r\n } else {\r\n this.setState({ formHasErrors: true });\r\n console.error('dotmailerAddressBook is not configured');\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n onAnswerChange = (value) => {\r\n this.setState({ answer: value });\r\n }\r\n\r\n render() {\r\n const {\r\n answers,\r\n question,\r\n componentVisibility,\r\n isMastercardComponent,\r\n background,\r\n mastercardLogo,\r\n mastercardText,\r\n competitionCompletedMessage,\r\n competitionHasErrorsMessage,\r\n } = this.props.options;\r\n const {\r\n answer, isDataSent, formHasErrors, addressBooks\r\n } = this.state;\r\n const isVisible = getComponentVisibility(componentVisibility);\r\n const isMastercard = isMastercardComponent.toLowerCase() === 'true';\r\n const isInAddressBooks = addressBooks !== null ? verifyUserInAddressBook(JSON.stringify(addressBooks), question.dotmailerAddressBook.addressBookID) : null;\r\n const disable = isInAddressBooks !== null ? isInAddressBooks : isDataSent;\r\n\r\n return (\r\n isVisible &&\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n isMastercard &&\r\n
    \r\n
    {mastercardText}
    \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n

    {question.question}

    \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 !disable &&\r\n
    \r\n {\r\n formHasErrors &&\r\n
    {competitionHasErrorsMessage}
    \r\n }\r\n \r\n \r\n {question.submitButtonText}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n }\r\n {\r\n disable &&\r\n
    \r\n \r\n
    {competitionCompletedMessage}
    \r\n
    \r\n }\r\n \r\n \r\n {\r\n isMastercard &&\r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default CompetitionQuestionLayout;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport CompetitionQuestionLayout from './competition-question-layout';\r\n\r\nclass CompetitionQuestionComponent 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 this.element\r\n );\r\n }\r\n}\r\n\r\nexport default CompetitionQuestionComponent;\r\n","import React from 'react';\r\nimport { tns } from 'tiny-slider/src/tiny-slider';\r\nimport { SitecoreImageField } from 'components/sitecore-fields';\r\n\r\nclass CompetitionListCarousel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.gallery = null;\r\n this.slides = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.hasCarousel) {\r\n this.gallery = tns({\r\n container: this.slides.current,\r\n loop: false,\r\n nav: false,\r\n items: 1,\r\n gutter:20,\r\n controls: false\r\n });\r\n this.props.getNode(this.gallery); \r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.gallery !== null) {\r\n this.gallery.destroy();\r\n }\r\n }\r\n\r\n render() {\r\n const { competitions, onClick } = this.props;\r\n return (\r\n
    \r\n {\r\n competitions.map((competition, index) => {\r\n return (\r\n
    \r\n
    \r\n {\r\n competition.image !== undefined && competition.image !== \"\" &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n
    {this.props.competitionTag}
    \r\n
    \r\n {competition.title}\r\n
    \r\n {\r\n competition.showLink &&\r\n onClick(competition.competitionUrl)}>\r\n {competition.statusMessage}\r\n \r\n }\r\n\r\n {\r\n competition.showLink === false &&\r\n {competition.statusMessage}\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 CompetitionListCarousel;\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport app, {\r\n EVENT_DEVICE_TYPE_CHANGED,\r\n} from 'general/js/app';\r\nimport eventBus from 'general/js/event-bus';\r\nimport {\r\n LiveArrowControl,\r\n controlTypes,\r\n modeTypes,\r\n} from 'components/live-arrow-control';\r\nimport { SitecoreImageField } from 'components/sitecore-fields';\r\nimport axios from 'axios';\r\nimport { isEmpty } from 'lodash';\r\nimport userService from '../../../../general/js/user/user-service';\r\nimport CompetitionListCarousel from './competition-list-carousel';\r\nimport {\r\n handleMastercardRegistrationEnforce, getVerificationEndpoint, getUserAddressBooks, handlePersonalizedCompetitionList\r\n} from '../helpers/toch-helpers';\r\nimport { TOCH_USER_ADDRESS_BOOK_LOCALSTORAGE_NAME } from '../../../../general/js/user/constants';\r\nimport { addQueryParams, redirectTo } from '../../../../general/js/utils';\r\nimport { QueryConstants } from '../../../../general/js/utils/query-constants';\r\n\r\nclass CompetitionList extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.gallery = null;\r\n\r\n this.state = {\r\n deviceType: app.deviceTypeByViewport,\r\n competitionsList: null,\r\n addressBooks: null\r\n };\r\n\r\n this.handleComponentPersonalization = this.handleComponentPersonalization.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.onDeviceTypeChanged);\r\n\r\n this.handleComponentPersonalization();\r\n }\r\n\r\n handleComponentPersonalization() {\r\n const { competitions, hideCompletedCompetitions, verificationEndpoint } = this.props.data;\r\n\r\n const userAddressBooks = getUserAddressBooks();\r\n const hideCompetitions = hideCompletedCompetitions.toLowerCase() === 'true';\r\n\r\n if (hideCompetitions && !isEmpty(verificationEndpoint) && userAddressBooks === null) {\r\n this.handleComponentVisibility();\r\n }\r\n\r\n const newCompetitionList = handlePersonalizedCompetitionList(JSON.parse(userAddressBooks), competitions);\r\n\r\n if (hideCompetitions && newCompetitionList !== null) {\r\n this.setState({ competitionsList: newCompetitionList });\r\n }\r\n }\r\n\r\n handleComponentVisibility() {\r\n const endpoint = getVerificationEndpoint(this.props.data);\r\n\r\n axios.post(endpoint).then((response) => {\r\n if (response.data !== null && response.data !== undefined && response.data !== '') {\r\n userService.setDataInLocalStorage(TOCH_USER_ADDRESS_BOOK_LOCALSTORAGE_NAME, JSON.stringify(response.data));\r\n this.setState({ addressBooks: response.data });\r\n }\r\n }).catch(() => {\r\n this.setState({ competitionsList: null });\r\n });\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 onClickPrevBtn = () => {\r\n this.gallery.goTo('prev');\r\n }\r\n\r\n onClickNextBtn = () => {\r\n this.gallery.goTo('next');\r\n }\r\n\r\n getNode = (node) => {\r\n this.gallery = node;\r\n }\r\n\r\n shouldRenderCarousel(competitions) {\r\n if (competitions === null) return false;\r\n\r\n return competitions.length > 1;\r\n }\r\n\r\n onClick = (link) => {\r\n const {\r\n mastercardRegistrationPage\r\n } = this.props.data;\r\n\r\n if (handleMastercardRegistrationEnforce(this.props.data)) {\r\n redirectTo(addQueryParams(mastercardRegistrationPage.url, [\r\n {\r\n key: QueryConstants.REDIRECT_URL,\r\n value: link\r\n }\r\n ]));\r\n return;\r\n }\r\n\r\n userService.setDataInLocalStorage(QueryConstants.REDIRECT_URL, link);\r\n redirectTo(link);\r\n }\r\n\r\n\r\n render() {\r\n const {\r\n componentTitle,\r\n componentSubtitle,\r\n hasMastercardBranding,\r\n mastercardLogo,\r\n mastercardText,\r\n competitionTag,\r\n competitionListId,\r\n competitions,\r\n hideCompletedCompetitions\r\n } = this.props.data;\r\n const { competitionsList, addressBooks } = this.state;\r\n const personalizedCompetitionList = addressBooks !== null ? handlePersonalizedCompetitionList(addressBooks, competitions) : null;\r\n const newCompetitionList = personalizedCompetitionList !== null ? personalizedCompetitionList : competitionsList;\r\n const compList = !(hideCompletedCompetitions.toLowerCase() === 'true') ? competitions : newCompetitionList;\r\n\r\n const hasCarousel = this.shouldRenderCarousel(compList);\r\n const isMastercard = hasMastercardBranding.toLowerCase() === 'true';\r\n\r\n return (\r\n (compList !== null && compList !== undefined) &&\r\n
    \r\n
    \r\n
    \r\n {\r\n isMastercard &&\r\n
    \r\n \r\n
    {mastercardText}
    \r\n
    \r\n }\r\n

    \r\n {componentTitle}\r\n /\r\n {componentSubtitle}\r\n

    \r\n
    \r\n {\r\n hasCarousel &&\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\nconst CompetitionListContainer = connect(\r\n)(CompetitionList);\r\n\r\nexport default CompetitionListContainer;\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 CompetitionList from './CompetitionList';\r\n\r\nclass CompetitionListComponent 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 CompetitionListComponent;\r\n","import React from 'react';\r\n\r\nclass InfluenceAnswers extends React.Component {\r\n\r\n render() {\r\n const {\r\n answers, questionNumber, handleChange\r\n } = this.props;\r\n return (\r\n
      \r\n {answers.map((answer) => {\r\n return (\r\n
    • \r\n
      \r\n handleChange(questionNumber, e, null)}\r\n >\r\n {answer.text}\r\n
      \r\n
    • \r\n );\r\n })\r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default InfluenceAnswers;\r\n","import React from 'react';\r\n\r\nclass InfluenceFreeText extends React.Component {\r\n render() {\r\n const {\r\n freeTextMessage, handleChange, questionNumber, addFreeTextMessageLabel\r\n } = this.props;\r\n return (\r\n
    \r\n {\r\n addFreeTextMessageLabel &&\r\n
    {freeTextMessage}
    \r\n }\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default InfluenceFreeText;\r\n","import React from 'react';\r\nimport InfluenceAnswers from './influence-answers';\r\nimport InfluenceFreeText from './influence-free-text';\r\n\r\nclass InfluenceQuestions extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n\r\n this.state = {\r\n answers: new Array(this.props.questions.length + 1),\r\n freeText: '',\r\n };\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n }\r\n\r\n handleChange(questionNumber, questionValue, freeText) {\r\n const answersArray = [...this.state.answers];\r\n\r\n const { onAnswerChange } = this.props;\r\n\r\n const intQuestionNumber = parseInt(questionNumber.substring(0), 10);\r\n const answer = { ...answersArray[intQuestionNumber] };\r\n\r\n if (questionValue !== null) answer.value = questionValue.target.value;\r\n if (freeText !== null) answer.freeText = freeText.target.value;\r\n\r\n answersArray[intQuestionNumber] = answer;\r\n\r\n this.setState({ answers: answersArray });\r\n\r\n onAnswerChange(answersArray);\r\n }\r\n\r\n render() {\r\n const {\r\n questions, freeTextMessage\r\n } = this.props;\r\n\r\n return (\r\n
    \r\n {questions.map((question) => {\r\n return (\r\n
    \r\n
    \r\n {question.questionNumber}\r\n {question.questionText}\r\n
    \r\n {\r\n question.addRadioButtonAnswers &&\r\n
    \r\n \r\n
    \r\n }\r\n {\r\n question.addTellUsMoreInput &&\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 InfluenceQuestions;\r\n","import React from 'react';\r\nimport axios from 'axios';\r\nimport { SitecoreImageField, SitecoreLinkField } from 'components/sitecore-fields';\r\nimport { isEmpty } from 'lodash';\r\nimport InfluenceQuestions from './influence-questions';\r\nimport {\r\n getComponentVisibility, addCompletedFormToAddressBookLocalStorage, getVerificationEndpoint, getUserAddressBooks, verifyUserInAddressBook, getUserDetailsFromCookie\r\n} from '../helpers/toch-helpers';\r\nimport userService from '../../../../general/js/user/user-service';\r\nimport { TOCH_USER_ADDRESS_BOOK_LOCALSTORAGE_NAME } from '../../../../general/js/user/constants';\r\n\r\nclass InfluenceSurveyLayout extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isSubmitAttempted: false,\r\n isDataSent: false,\r\n fieldsErrors: {},\r\n answers: [],\r\n formHasErrors: false,\r\n addressBooks: null\r\n };\r\n\r\n this.onAnswerChange = this.onAnswerChange.bind(this);\r\n this.handleComponentVisibilityApiCall = this.handleComponentVisibilityApiCall.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.checkCompetitionStatus();\r\n }\r\n\r\n checkCompetitionStatus() {\r\n const { verificationEndpoint, dotmailerBookId } = this.props.options;\r\n const userAddressBooks = getUserAddressBooks();\r\n\r\n if (!isEmpty(verificationEndpoint) && userAddressBooks === null) this.handleComponentVisibilityApiCall();\r\n\r\n const userInAddressBook = verifyUserInAddressBook(userAddressBooks, dotmailerBookId);\r\n\r\n if (userInAddressBook) {\r\n this.setState({ isDataSent: true });\r\n }\r\n }\r\n\r\n handleComponentVisibilityApiCall() {\r\n const endpoint = getVerificationEndpoint(this.props.options);\r\n\r\n axios.post(endpoint).then((response) => {\r\n if (response.data !== null && response.data !== undefined && response.data !== '') {\r\n userService.setDataInLocalStorage(TOCH_USER_ADDRESS_BOOK_LOCALSTORAGE_NAME, JSON.stringify(response.data));\r\n this.setState({ addressBooks: response.data });\r\n }\r\n }).catch(() => {\r\n this.setState({ competitionsList: null });\r\n });\r\n }\r\n\r\n onSubmit = (e) => {\r\n e.preventDefault();\r\n\r\n const { dotmailerBookId, dotmailerBookName } = this.props.options;\r\n const { answers } = this.state;\r\n const updatedUserAddressBooks = addCompletedFormToAddressBookLocalStorage(dotmailerBookId, dotmailerBookName);\r\n const userDetails = getUserDetailsFromCookie();\r\n\r\n if (!this.state.isDataSent) {\r\n this.setState({ isSubmitAttempted: true });\r\n if (answers !== undefined) {\r\n const data = {\r\n emailAddress: userDetails.email,\r\n firstName: userDetails.firstName,\r\n lastName: userDetails.lastName,\r\n addressBookId: dotmailerBookId,\r\n addressBookName: dotmailerBookName,\r\n answers: this.state.answers,\r\n };\r\n\r\n axios.post(this.props.options.endpoint, data).then(() => {\r\n userService.setDataInLocalStorage(TOCH_USER_ADDRESS_BOOK_LOCALSTORAGE_NAME, JSON.stringify(updatedUserAddressBooks));\r\n this.setState({ isDataSent: true, addressBooks: updatedUserAddressBooks });\r\n }).catch((error) => {\r\n this.setState({ formHasErrors: true });\r\n console.error(error);\r\n });\r\n }\r\n }\r\n }\r\n\r\n onAnswerChange = (value) => {\r\n this.setState({ answers: value });\r\n }\r\n\r\n render() {\r\n const {\r\n questions,\r\n title,\r\n freeTextMessage,\r\n background,\r\n componentVisibility,\r\n isMasterCardComponent,\r\n masterCardLogo,\r\n masterCardText,\r\n surveyCompletedMessage,\r\n surveyHasErrorsMessage,\r\n ctaLink,\r\n submitButtonText,\r\n dotmailerBookId\r\n } = this.props.options;\r\n const { isDataSent, formHasErrors, addressBooks } = this.state;\r\n const isVisible = getComponentVisibility(componentVisibility);\r\n const isMastercard = isMasterCardComponent.toLowerCase() === 'true';\r\n const isInAddressBooks = addressBooks !== null ? verifyUserInAddressBook(JSON.stringify(addressBooks), dotmailerBookId) : null;\r\n const disable = isInAddressBooks !== null ? isInAddressBooks : isDataSent;\r\n\r\n return (\r\n isVisible &&\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n isMastercard &&\r\n
    \r\n
    {masterCardText}
    \r\n \r\n
    \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
    \r\n
    \r\n
    \r\n {\r\n !isDataSent &&\r\n
    \r\n \r\n \r\n {submitButtonText}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n formHasErrors &&\r\n
    {surveyHasErrorsMessage}
    \r\n }\r\n
    \r\n }\r\n {\r\n disable &&\r\n
    \r\n \r\n
    {surveyCompletedMessage}
    \r\n
    \r\n }\r\n
    \r\n {\r\n isMastercard &&\r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default InfluenceSurveyLayout;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport InfluenceSurveyLayout from './influence-survey-layout';\r\n\r\nclass InfluenceSurveyComponent 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 this.element\r\n );\r\n }\r\n}\r\n\r\nexport default InfluenceSurveyComponent;\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { getComponentVisibility } from '../helpers/toch-helpers';\r\nimport { SitecoreImageField, SitecoreLinkField } from 'components/sitecore-fields';\r\n\r\nclass GenericBanner extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n const {\r\n title,\r\n subtitle1,\r\n subtitle2,\r\n logo,\r\n description,\r\n link,\r\n backgroundImage,\r\n mobileBackgroundImage,\r\n componentVisibility,\r\n ctaClass\r\n } = this.props.data;\r\n\r\n const isVisible = getComponentVisibility(componentVisibility);\r\n const lnkClass = 'button button--primary ' + ctaClass;\r\n const hasLink = (link !== undefined && link !== '');\r\n const hasBackgroundImage = (backgroundImage !== null && backgroundImage !== '' && backgroundImage !== undefined);\r\n const hasMobileBackgroundImage = (mobileBackgroundImage !== null && mobileBackgroundImage !== '' && mobileBackgroundImage !== undefined);\r\n const hasLogo = (logo !== null && logo !== '' && logo !== undefined);\r\n\r\n return (\r\n isVisible &&\r\n <>\r\n
    \r\n {hasBackgroundImage &&\r\n
    \r\n \r\n
    }\r\n {hasMobileBackgroundImage &&\r\n
    \r\n \r\n
    }\r\n
    \r\n
    \r\n
    \r\n {hasLogo &&\r\n }\r\n
    \r\n

    {subtitle1}

    \r\n

    {subtitle2}

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

    \r\n \r\n {title}\r\n \r\n

    \r\n {description}\r\n
    \r\n {hasLink &&\r\n
    \r\n
    \r\n \r\n
    \r\n
    }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst GenericBannerContainer = connect(\r\n)(GenericBanner);\r\n\r\nexport default GenericBannerContainer;\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 GenericBanner from './GenericBanner';\r\n\r\nclass GenericBannerComponent 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 GenericBannerComponent;\r\n","import React from 'react';\r\nimport axios from 'axios';\r\nimport { isEmpty } from 'lodash';\r\nimport { SitecoreImageField } from 'components/sitecore-fields';\r\nimport userService from '../../../../general/js/user/user-service';\r\nimport {\r\n handleMastercardRegistrationEnforce, getVerificationEndpoint, getUserAddressBooks, verifyUserInAddressBook\r\n} from '../helpers/toch-helpers';\r\nimport { TOCH_USER_ADDRESS_BOOK_LOCALSTORAGE_NAME } from '../../../../general/js/user/constants';\r\nimport { addQueryParams, redirectTo } from '../../../../general/js/utils';\r\nimport { QueryConstants } from '../../../../general/js/utils/query-constants';\r\n\r\nclass InfluenceBlock extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n hideComponent: false,\r\n addressBooks: null\r\n };\r\n\r\n this.handleComponentVisibility = this.handleComponentVisibility.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const { hideInfluenceBlockWithCompletedSurvey, verificationEndpoint, addressBookId } = this.props.data;\r\n const userAddressBooks = getUserAddressBooks();\r\n const hideInfluenceBlockComponent = hideInfluenceBlockWithCompletedSurvey.toLowerCase() === 'true';\r\n\r\n if (hideInfluenceBlockComponent && !isEmpty(verificationEndpoint) && userAddressBooks === null) {\r\n this.handleComponentVisibility();\r\n }\r\n\r\n const userInAddressBook = verifyUserInAddressBook(userAddressBooks, addressBookId);\r\n\r\n if (hideInfluenceBlockComponent && userInAddressBook) {\r\n this.setState({ hideComponent: true });\r\n }\r\n }\r\n\r\n handleComponentVisibility() {\r\n const endpoint = getVerificationEndpoint(this.props.data);\r\n\r\n axios.post(endpoint).then((response) => {\r\n if (response.data !== null && response.data !== undefined && response.data !== '') {\r\n userService.setDataInLocalStorage(TOCH_USER_ADDRESS_BOOK_LOCALSTORAGE_NAME, JSON.stringify(response.data));\r\n this.setState({ addressBooks: response.data });\r\n }\r\n }).catch(() => {\r\n this.setState({ hideComponent: false });\r\n });\r\n }\r\n\r\n onClick = (link) => {\r\n const {\r\n mastercardRegistrationPage\r\n } = this.props.data;\r\n\r\n if (handleMastercardRegistrationEnforce(this.props.data)) {\r\n redirectTo(addQueryParams(mastercardRegistrationPage.url, [\r\n {\r\n key: QueryConstants.REDIRECT_URL,\r\n value: link\r\n }\r\n ]));\r\n return;\r\n }\r\n\r\n userService.setDataInLocalStorage(QueryConstants.REDIRECT_URL, link);\r\n window.location.href = link;\r\n }\r\n\r\n render() {\r\n const {\r\n componentTitle,\r\n backgroundImage,\r\n influenceSubtitle,\r\n influenceTitle,\r\n influenceUrl,\r\n influenceImage,\r\n textLink,\r\n hasMasterCardBranding,\r\n mastercardLogo,\r\n mastercardText,\r\n influenceBlockId,\r\n addressBookId\r\n } = this.props.data;\r\n const { hideComponent, addressBooks } = this.state;\r\n const isMastercard = hasMasterCardBranding.toLowerCase() === 'true';\r\n const isInAddressBooks = addressBooks !== null ? verifyUserInAddressBook(JSON.stringify(addressBooks), addressBookId) : null;\r\n const hide = isInAddressBooks !== null ? isInAddressBooks : hideComponent;\r\n\r\n return (\r\n !hide &&\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n isMastercard &&\r\n
    \r\n \r\n
    {mastercardText}
    \r\n
    \r\n }\r\n

    {componentTitle}

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {influenceSubtitle}\r\n
    \r\n
    \r\n {influenceTitle}\r\n
    \r\n this.onClick(influenceUrl)} className='influence-block__card--cta button button--primary'>{textLink}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default InfluenceBlock;\r\n","import React from 'react';\r\nimport { Provider as ReduxProvider } from 'react-redux';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport store from 'general/js/store';\r\nimport InfluenceBlock from './InfluenceBlock';\r\n\r\nexport default class InfluenceBlockComponent extends BaseComponent {\r\n\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 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 \r\n ,\r\n this.element\r\n );\r\n }\r\n}","import React from 'react';\r\nimport { Provider as ReduxProvider } from 'react-redux';\r\nimport ReactDOM from 'react-dom';\r\nimport store from 'general/js/store';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport MasterCardRegistration from './MasterCardRegistration';\r\n\r\nexport default class MasterCardRegistrationComponent 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","import React from 'react';\r\nimport { SitecoreImageField, SitecoreLinkField } 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 Countdown 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 this.isValidDate = this.isValidDate.bind(this);\r\n }\r\n\r\n isValidDate() {\r\n const { countdownTimer } = this.props.data;\r\n const newCountdownTimerDate = new Date(countdownTimer);\r\n const newDate = new Date('0001-01-01T00:00:00Z');\r\n\r\n if (newCountdownTimerDate !== newDate) return true;\r\n\r\n return false;\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 mainSubtitle,\r\n mainTitle,\r\n countdownDaysText,\r\n countdownHoursText,\r\n countdownMinutesText,\r\n secondarySubtitle,\r\n secondaryTitle,\r\n link,\r\n logo,\r\n isMastercardComponent,\r\n isInEditMode,\r\n } = this.props.data;\r\n const { days, hours, minutes } = this.state;\r\n\r\n const isExpired = checkIfExpired(countdownTimer);\r\n const isValidDate = this.isValidDate();\r\n\r\n const isValid = isExpired && isInEditMode;\r\n const showData = isValidDate || isValid;\r\n\r\n const newDate = (days === null && hours === null && minutes === null) ? calculateRemainingDate(countdownTimer) : null;\r\n const isMastercard = isMastercardComponent.toLowerCase() === 'true';\r\n const hasLogo = (logo !== null && logo !== '' && logo !== undefined);\r\n\r\n return (\r\n (!isExpired || isInEditMode) &&\r\n
    \r\n {\r\n isMastercard &&\r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {mainSubtitle}\r\n
    \r\n
    \r\n {mainTitle}\r\n
    \r\n {\r\n showData &&\r\n
    \r\n
    \r\n
    \r\n {(days === null || days === undefined) ? newDate.days : days}\r\n
    \r\n
    \r\n {countdownDaysText}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {(hours === null || hours === undefined) ? newDate.hours : hours}\r\n
    \r\n
    \r\n {countdownHoursText}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {(minutes === null || minutes === undefined) ? newDate.minutes : minutes}\r\n
    \r\n
    \r\n {countdownMinutesText}\r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {secondarySubtitle}\r\n
    \r\n
    \r\n {\r\n hasLogo &&\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n {secondaryTitle}\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 Countdown;\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 Countdown from './Countdown';\r\n\r\nclass CountdownComponent 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 CountdownComponent;\r\n","import React from 'react';\r\nimport { SitecoreImageField } from 'components/sitecore-fields';\r\n\r\nclass MastercardPromoPanelTiles extends React.Component {\r\n render() {\r\n const { tiles, onClick } = this.props;\r\n return (\r\n
    \r\n { tiles.map((tile) => {\r\n return (\r\n
    \r\n
    \r\n {\r\n (tile.link !== null && tile.link !== undefined) &&\r\n onClick(tile)}>\r\n
    \r\n \r\n
    \r\n
    \r\n

    {tile.title}

    \r\n
    \r\n
    \r\n }\r\n {\r\n (tile.link === null || tile.link === undefined) &&\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    {tile.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\r\nexport default MastercardPromoPanelTiles;\r\n","import React from 'react';\r\nimport { SitecoreImageField } from 'components/sitecore-fields';\r\nimport MastercardPromoPanelTiles from './MastercardPromoPanelTiles';\r\nimport userService from '../../../../general/js/user/user-service';\r\nimport { handleMastercardRegistrationEnforce } from '../helpers/toch-helpers';\r\nimport { addQueryParams, redirectTo } from '../../../../general/js/utils';\r\nimport { QueryConstants } from '../../../../general/js/utils/query-constants';\r\n\r\nclass MastercardPromoPanel 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 componentDidMount() {\r\n }\r\n\r\n onClick = (tile) => {\r\n const {\r\n mastercardRegistrationPage\r\n } = this.props.options;\r\n\r\n if (handleMastercardRegistrationEnforce(this.props.options)) {\r\n redirectTo(addQueryParams(mastercardRegistrationPage.url, [\r\n {\r\n key: QueryConstants.REDIRECT_URL,\r\n value: tile.link.url\r\n }\r\n ]));\r\n return;\r\n }\r\n\r\n if (tile.redirectsToRestrictedContent) {\r\n userService.setDataInLocalStorage(QueryConstants.REDIRECT_URL, tile.link.url);\r\n redirectTo(tile.link.url);\r\n } else redirectTo(tile.link.url);\r\n }\r\n\r\n render() {\r\n const {\r\n mastercardLogo,\r\n mastercardText,\r\n theOneClubLabel,\r\n mastercardBranding,\r\n title,\r\n subtitle,\r\n tiles,\r\n mastercardPromoPanelId,\r\n backgroundImage\r\n } = this.props.options;\r\n\r\n return (\r\n
    \r\n {\r\n mastercardBranding !== null &&\r\n
    \r\n \r\n \r\n
    \r\n }\r\n {\r\n mastercardBranding === null &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n {\r\n mastercardLogo !== null &&\r\n
    \r\n
    {mastercardText}
    \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n {theOneClubLabel}\r\n
    \r\n

    \r\n {title}\r\n

    \r\n
    \r\n {subtitle}\r\n
    \r\n
    \r\n
    \r\n {\r\n tiles !== null &&\r\n \r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default (MastercardPromoPanel);\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 configureStore from '../../../sso/store/configure-store';\r\nimport { AmplifyClient } from '../../../../project/amplify-client';\r\nimport MastercardPromoPanel from './MastercardPromoPanel';\r\n\r\nclass MastercardPromoPanelComponent 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 ,\r\n this.refs.section\r\n );\r\n }\r\n}\r\n\r\nexport default MastercardPromoPanelComponent;\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 React from 'react';\r\nimport { tns } from 'tiny-slider/src/tiny-slider';\r\nimport { SitecoreImageField } from 'components/sitecore-fields';\r\n\r\nclass OfferListCarousel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.gallery = null;\r\n this.slides = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.hasCarousel) {\r\n this.gallery = tns({\r\n container: this.slides.current,\r\n loop: false,\r\n nav: false,\r\n items: 1,\r\n gutter: 20,\r\n controls: false\r\n });\r\n this.props.getNode(this.gallery);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.gallery !== null) {\r\n this.gallery.destroy();\r\n }\r\n }\r\n\r\n render() {\r\n const { offers, defaultImage } = this.props;\r\n\r\n return (\r\n
    \r\n {\r\n offers.map((offer, index) => {\r\n return (\r\n <>\r\n {\r\n offer.link &&\r\n < div key={index} className='offer-list__carousel--card-wrapper' >\r\n
    \r\n {\r\n offer.image !== undefined && offer.image !== \"\" &&\r\n
    \r\n \r\n
    \r\n }\r\n {\r\n (offer.image === undefined || offer.image === \"\") &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n {offer.description}\r\n
    \r\n\r\n {\r\n (offer.link.url !== null || offer.link.url !== undefined) &&\r\n \r\n {offer.textLink}\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 OfferListCarousel;\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport app, {\r\n EVENT_DEVICE_TYPE_CHANGED,\r\n} from 'general/js/app';\r\nimport eventBus from 'general/js/event-bus';\r\nimport {\r\n LiveArrowControl,\r\n controlTypes,\r\n modeTypes,\r\n} from 'components/live-arrow-control';\r\nimport _, { isEmpty } from 'lodash';\r\nimport { getComponentVisibility } from '../helpers/toch-helpers';\r\nimport OfferListCarousel from './offer-list-carousel';\r\n\r\nclass OfferList extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.gallery = null;\r\n\r\n this.state = {\r\n deviceType: app.deviceTypeByViewport\r\n };\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 onClickPrevBtn = () => {\r\n this.gallery.goTo('prev');\r\n }\r\n\r\n onClickNextBtn = () => {\r\n this.gallery.goTo('next');\r\n }\r\n\r\n getNode = (node) => {\r\n this.gallery = node;\r\n }\r\n\r\n shouldRenderCarousel(offers) {\r\n if (offers === null) return false;\r\n\r\n return offers.length > 1;\r\n }\r\n\r\n\r\n render() {\r\n const {\r\n componentTitle,\r\n offers,\r\n defaultImage,\r\n componentVisibility\r\n } = this.props.data;\r\n\r\n const hasCarousel = this.shouldRenderCarousel(offers);\r\n const isVisible = getComponentVisibility(componentVisibility);\r\n\r\n return (\r\n isVisible &&\r\n (offers !== null && offers !== undefined) &&\r\n
    \r\n
    \r\n
    \r\n\r\n

    \r\n {componentTitle}\r\n

    \r\n
    \r\n {\r\n hasCarousel &&\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\nconst OfferListContainer = connect(\r\n)(OfferList);\r\n\r\nexport default OfferListContainer;\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 OfferList from './OfferList';\r\n\r\nclass OfferListComponent 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 OfferListComponent;\r\n","import React from 'react';\r\nimport { tns } from 'tiny-slider/src/tiny-slider';\r\nimport { SitecoreImageField } from 'components/sitecore-fields';\r\n\r\nclass TOCHImageGalleryTiles extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.gallery = null;\r\n this.slides = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.hasCarousel) {\r\n this.gallery = tns({\r\n container: this.slides.current,\r\n loop: false,\r\n nav: false,\r\n items: 1,\r\n controls: false,\r\n autoWidth: true\r\n });\r\n this.props.getNode(this.gallery);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.gallery !== null) {\r\n this.gallery.destroy();\r\n }\r\n }\r\n\r\n render() {\r\n const { tiles, onClick } = this.props;\r\n return (\r\n
    \r\n {\r\n tiles.map((tile, index) => {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n tile.link !== null &&\r\n
    onClick(tile)}>\r\n {tile.title}\r\n
    \r\n }\r\n {\r\n tile.link === null &&\r\n
    \r\n {tile.title}\r\n
    \r\n }\r\n {tile.subtitle}\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 TOCHImageGalleryTiles;\r\n","import React from 'react';\r\nimport { SitecoreImageField } from 'components/sitecore-fields';\r\nimport {\r\n LiveArrowControl,\r\n controlTypes,\r\n modeTypes,\r\n} from 'components/live-arrow-control';\r\nimport {\r\n EVENT_DEVICE_TYPE_CHANGED,\r\n} from 'general/js/app';\r\nimport eventBus from 'general/js/event-bus';\r\nimport { handleMastercardRegistrationEnforce } from '../helpers/toch-helpers';\r\nimport TOCHImageGalleryTiles from './TOCHImageGalleryTiles';\r\nimport { addQueryParams, redirectTo } from '../../../../general/js/utils';\r\nimport { QueryConstants } from '../../../../general/js/utils/query-constants';\r\n\r\nclass MastercardPromoPanel 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 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 onClickPrevBtn = () => {\r\n this.gallery.goTo('prev');\r\n }\r\n\r\n onClickNextBtn = () => {\r\n this.gallery.goTo('next');\r\n }\r\n\r\n getNode = (node) => {\r\n this.gallery = node;\r\n }\r\n\r\n shouldRenderCarousel(tiles) {\r\n if (tiles === null) return false;\r\n\r\n return tiles.length > 1;\r\n }\r\n\r\n onClick = (tile) => {\r\n const {\r\n mastercardRegistrationPage\r\n } = this.props.options;\r\n const { isMastercardAdvantageContent } = tile;\r\n\r\n if (isMastercardAdvantageContent && handleMastercardRegistrationEnforce(this.props.options)) {\r\n redirectTo(addQueryParams(mastercardRegistrationPage.url, [\r\n {\r\n key: QueryConstants.REDIRECT_URL,\r\n value: tile.link.url\r\n }\r\n ]));\r\n return;\r\n }\r\n\r\n redirectTo(tile.link.url);\r\n }\r\n\r\n render() {\r\n const {\r\n mastercardLogo,\r\n mastercardText,\r\n mastercardBranding,\r\n title,\r\n subtitle,\r\n tiles,\r\n mastercardPromoPanelId,\r\n } = this.props.options;\r\n\r\n const hasCarousel = this.shouldRenderCarousel(tiles);\r\n\r\n return (\r\n
    \r\n {mastercardBranding !== null &&\r\n
    \r\n \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n {mastercardBranding !== null &&\r\n
    \r\n
    \r\n
    {mastercardText}
    \r\n \r\n
    \r\n

    {title}

    \r\n
    {subtitle}
    \r\n
    \r\n }\r\n
    \r\n {\r\n hasCarousel &&\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 (MastercardPromoPanel);\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 configureStore from '../../../sso/store/configure-store';\r\nimport { AmplifyClient } from '../../../../project/amplify-client';\r\nimport TOCHImageGallery from './TOCHImageGallery';\r\n\r\nclass TOCHImageGalleryComponent 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 ,\r\n this.refs.section\r\n );\r\n }\r\n}\r\n\r\nexport default TOCHImageGalleryComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport TOCHForceSignInComponent from './js/toch-force-sign-in/toch-force-sign-in.component';\r\nimport HeaderHeroComponent from './js/header-hero/header-hero.component';\r\nimport CompetitionQuestionComponent from './js/competition-question/competition-question.component';\r\nimport CompetitionListComponent from './js/competition-list/competition-list.component';\r\nimport InfluenceSurveyComponent from './js/influence/influence-survey.component';\r\nimport GenericBannerComponent from './js/generic-banner/generic-banner.component';\r\nimport InfluenceBlockComponent from './js/influence-block/influence-block.component';\r\nimport MasterCardRegistrationComponent from './js/mastercard-registration/mastercard-registration.component';\r\nimport CountdownComponent from './js/countdown/countdown.component';\r\nimport MastercardPromoPanelComponent from './js/mastercard-promo-panel/mastercard-promo-panel.component';\r\nimport CountdownAlertBarComponent from './js/countdown-alertbar/countdown-alertbar.component';\r\nimport OfferListComponent from './js/offer-list/offer-list.component';\r\nimport TOCHIMageGallery from './js/toch-image-gallery/toch-image-gallery.component';\r\n\r\n\r\nComponentsFactory.getInstance().define('toch-force-sign-in', TOCHForceSignInComponent);\r\nComponentsFactory.getInstance().define('competition-question', CompetitionQuestionComponent);\r\nComponentsFactory.getInstance().define('header-hero', HeaderHeroComponent);\r\nComponentsFactory.getInstance().define('competition-list', CompetitionListComponent);\r\nComponentsFactory.getInstance().define('influence-survey', InfluenceSurveyComponent);\r\nComponentsFactory.getInstance().define('generic-banner', GenericBannerComponent);\r\nComponentsFactory.getInstance().define('influence-block', InfluenceBlockComponent);\r\nComponentsFactory.getInstance().define('countdown', CountdownComponent);\r\nComponentsFactory.getInstance().define('mastercard-registration', MasterCardRegistrationComponent);\r\nComponentsFactory.getInstance().define('mastercard-promo-panel', MastercardPromoPanelComponent);\r\nComponentsFactory.getInstance().define('countdown-alertbar', CountdownAlertBarComponent);\r\nComponentsFactory.getInstance().define('offer-list', OfferListComponent);\r\nComponentsFactory.getInstance().define('toch-image-gallery', TOCHIMageGallery);\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","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport ResaleTickets from '../../sso/components/forms/resale-tickets/ResaleTickets';\r\nimport * as userAccountActions from '../../sso/store/actions/user-account-actions';\r\n\r\nclass TicketResaleSection extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n userAccountData: {}\r\n };\r\n\r\n this.refreshResaleComponent = this.refreshResaleComponent.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.refreshResaleComponent(true);\r\n }\r\n\r\n refreshResaleComponent(shouldRefreshComponent) {\r\n const { actions, formData } = this.props;\r\n const { getUserDataCallbackUrl } = formData;\r\n\r\n actions.getUserAccountData(getUserDataCallbackUrl, shouldRefreshComponent);\r\n }\r\n\r\n render() {\r\n const { formData, userAccountData } = this.props;\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nTicketResaleSection.propTypes = {\r\n formData: PropTypes.object\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 }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(TicketResaleSection);\r\n","import React, { Fragment } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport _ from 'lodash';\r\nimport TicketResaleSection from './ticket-resale-section';\r\nimport { Provider } from 'react-redux';\r\nimport configureStore from '../../sso/store/configure-store';\r\n\r\nclass TicketResaleComponent 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 store = configureStore();\r\n \r\n ReactDOM.render(\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 TicketResaleComponent;\r\n\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction ResaleTicketsBannerButton({\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\nResaleTicketsBannerButton.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 ResaleTicketsBannerButton;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport TicketResaleComponent from './js/ticket-resale.component';\r\n\r\nComponentsFactory.getInstance().define('ticket-resale', TicketResaleComponent);\r\n","import { isNullOrUndefined, hasValue } from '../../../../../general/js/general-helpers';\r\n\r\nexport const shouldDisplayResaleButton = (buttonCriteria = null, ballotCriteria = null, membership = null) => {\r\n let 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 {\r\n showResaleButton = true;\r\n return false;\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};\r\n\r\nexport const shouldDisplayLoginButton = (membership = null) => {\r\n return isNullOrUndefined(membership);\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 Oauth from '../../oauth';\r\nimport ResaleTicketsBannerButton from './ResaleTicketsBannerButton';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport {\r\n shouldDisplayResaleButton,\r\n shouldDisplayLoginButton\r\n} from './resale-tickets-banner-helpers';\r\nimport { addQueryParam, getOauthReturnUrl } from '../../../../../general/js/utils';\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\n\r\nclass ResaleTicketsBanner 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 handleTicketsLogin(event) {\r\n event.preventDefault();\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 handleTicketsResaleBuy(event) {\r\n event.preventDefault();\r\n const { actions, resaleTicketSettings } = this.props;\r\n\r\n actions.handleRedirectToResaleTickets({\r\n resaleTicketsUrl: resaleTicketSettings.buyLink,\r\n secutixResaleUrl: resaleTicketSettings.secutixResaleUrl,\r\n secutixPointOfSaleId: resaleTicketSettings.secutixPointOfSaleId,\r\n secutixVirtualOperator: resaleTicketSettings.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, resaleTicketSettings } = this.props;\r\n\r\n actions.handleRedirectToResaleTickets({\r\n resaleTicketsUrl: resaleTicketSettings.sellLink,\r\n secutixResaleUrl: resaleTicketSettings.secutixResaleUrl,\r\n secutixPointOfSaleId: resaleTicketSettings.secutixPointOfSaleId,\r\n secutixVirtualOperator: resaleTicketSettings.secutixVirtualOperator,\r\n redirectUri: this.getOauthResaleRedirectUri()\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n resaleTicketSettings,\r\n accountData,\r\n ctaLoginLabel,\r\n ctaLoginStyle,\r\n ctaFirstLabel,\r\n ctaFirstStyle,\r\n ctaSecondLabel,\r\n ctaSecondStyle\r\n } = this.props;\r\n\r\n const {\r\n sellButtonCriteria,\r\n buyButtonCriteria\r\n } = resaleTicketSettings;\r\n\r\n const ballotCriteria = _.isEmpty(accountData) ? null : accountData.attributes['custom:ballotCriteria'];\r\n const membership = _.isEmpty(accountData) ? null : accountData.attributes['custom:Membership'];\r\n\r\n const showLoginLink = shouldDisplayLoginButton(membership);\r\n const showBuyLink = shouldDisplayResaleButton(buyButtonCriteria, ballotCriteria, membership);\r\n const showSellLink = shouldDisplayResaleButton(sellButtonCriteria, ballotCriteria, membership);\r\n return (\r\n \r\n {showLoginLink &&\r\n }\r\n {showBuyLink &&\r\n }\r\n {showSellLink &&\r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nResaleTicketsBanner.propTypes = {\r\n resaleTicketSettings: PropTypes.object.isRequired,\r\n ctaLoginLabel: PropTypes.string.isRequired,\r\n ctaLoginStyle: PropTypes.string.isRequired,\r\n ctaFirstLabel: PropTypes.string.isRequired,\r\n ctaFirstStyle: PropTypes.string.isRequired,\r\n ctaSecondLabel: PropTypes.string.isRequired,\r\n ctaSecondStyle: PropTypes.string.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\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)(ResaleTicketsBanner);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Auth } from 'aws-amplify';\r\nimport ResaleTicketsBanner from '../../sso/components/forms/resale-tickets-banner/ResaleTicketsBanner';\r\n\r\nclass TicketResaleBannerSection extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n userAccountData: {}\r\n };\r\n\r\n this.refreshResaleComponent = this.refreshResaleComponent.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.refreshResaleComponent();\r\n }\r\n\r\n refreshResaleComponent() {\r\n Auth.currentAuthenticatedUser()\r\n .then((user) => {\r\n this.setState({ userAccountData: user });\r\n })\r\n .catch(() => {\r\n });\r\n }\r\n\r\n render() {\r\n const\r\n {\r\n resaleTicketSettings,\r\n ctaLoginLabel,\r\n ctaLoginStyle,\r\n ctaFirstLabel,\r\n ctaFirstStyle,\r\n ctaSecondLabel,\r\n ctaSecondStyle\r\n } = this.props;\r\n\r\n return (\r\n \r\n\r\n );\r\n }\r\n}\r\n\r\nTicketResaleBannerSection.propTypes = {\r\n resaleTicketSettings: PropTypes.object,\r\n ctaLoginLabel: PropTypes.string,\r\n ctaLoginStyle: PropTypes.string,\r\n ctaFirstLabel: PropTypes.string,\r\n ctaFirstStyle: PropTypes.string,\r\n ctaSecondLabel: PropTypes.string,\r\n ctaSecondStyle: PropTypes.string,\r\n};\r\n\r\nexport default TicketResaleBannerSection;\r\n","import React, { Fragment } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport { Provider } from 'react-redux';\r\nimport TicketResaleBannerSection from './ticket-resale-banner-section';\r\nimport configureStore from '../../sso/store/configure-store';\r\n\r\nclass TicketResaleBannerComponent 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 store = configureStore();\r\n ReactDOM.render(\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 TicketResaleBannerComponent;\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport TicketResaleBannerComponent from './js/ticket-resale-banner.component';\r\n\r\nComponentsFactory.getInstance().define('ticket-resale-banner', TicketResaleBannerComponent);\r\n","/* eslint-disable no-console */\r\nimport { Auth } from 'aws-amplify';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport Cookies from 'js-cookie';\r\nimport api from 'general/js/api';\r\nimport _ from 'lodash';\r\nimport app from '../../../general/js/app';\r\nimport { addQueryParams, redirectTo } from '../../../general/js/utils';\r\nimport { QueryConstants } from '../../../general/js/utils/query-constants';\r\n\r\nexport default class TicketResaleForceSignInComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n const jsonOptions = this.getAttribute(this.element, 'options');\r\n this.ticketResaleOptions = JSON.parse(jsonOptions);\r\n\r\n this.processRequest();\r\n }\r\n\r\n processRequest() {\r\n if (this.options.useCognito) {\r\n this.handleCognitoUserValidation();\r\n return;\r\n }\r\n\r\n this.handleSecutixUserValidation();\r\n }\r\n\r\n handleCognitoUserValidation() {\r\n Auth.currentAuthenticatedUser(false)\r\n .then((user) => {\r\n this.authenticatedUserData = user;\r\n const userEmail = this.authenticatedUserData.attributes.email;\r\n const userMemberships = this.authenticatedUserData.attributes['custom:Membership'];\r\n\r\n if (this.ticketResaleOptions.dataSource.checkOneClubMembership && !userMemberships.includes('OneClub')) {\r\n redirectTo(this.ticketResaleOptions.dataSource.notOneClubMemberErrorPage.url);\r\n return;\r\n }\r\n\r\n this.processRedirectToWaitingList(userEmail);\r\n }).catch((error) => {\r\n console.log(error);\r\n redirectTo(this.getCognitoSignInPageUrl());\r\n });\r\n }\r\n\r\n handleSecutixUserValidation() {\r\n const userData = this.getCookieData(app.state.userDataCookieName);\r\n\r\n if (this.shouldRedirectToSignInPage(userData)) {\r\n redirectTo(this.getSecutixSignInPageUrl());\r\n return;\r\n }\r\n\r\n if (this.shouldRedirectToOneClubMemberErrorPage(userData)) {\r\n redirectTo(this.ticketResaleOptions.dataSource.notOneClubMemberErrorPage.url);\r\n return;\r\n }\r\n\r\n const linksConfigurationData = this.getCookieData(app.state.linksConfigurationCookieName);\r\n const userEmail = linksConfigurationData.username;\r\n\r\n this.processRedirectToWaitingList(userEmail);\r\n }\r\n\r\n getCookieData(cookieName) {\r\n const cookieValue = Cookies.get(cookieName);\r\n return _.isEmpty(cookieValue) ? {} : JSON.parse(cookieValue);\r\n }\r\n\r\n getSecutixSignInPageUrl() {\r\n const checkOneClubMembership = this.shouldCheckForOneClubMembership();\r\n\r\n return `${this.ticketResaleOptions.dataSource.signInPage.url}?joinOneClub=${checkOneClubMembership}`;\r\n }\r\n\r\n getCognitoSignInPageUrl() {\r\n const checkOneClubMembership = this.shouldCheckForOneClubMembership();\r\n\r\n return addQueryParams(this.ticketResaleOptions.dataSource.signInPage.url, [\r\n {\r\n key: QueryConstants.JOIN_ONE_CLUB,\r\n value: checkOneClubMembership\r\n },\r\n {\r\n key: QueryConstants.REDIRECT_TO,\r\n value: window.location.pathname\r\n }\r\n ]);\r\n }\r\n\r\n shouldCheckForOneClubMembership() {\r\n return this.ticketResaleOptions.dataSource.checkOneClubMembership ?\r\n this.ticketResaleOptions.dataSource.checkOneClubMembership :\r\n false;\r\n }\r\n\r\n shouldRedirectToSignInPage(userData) {\r\n return _.isEmpty(userData) ||\r\n !userData.isSignedIn;\r\n }\r\n\r\n shouldRedirectToOneClubMemberErrorPage(userData) {\r\n return this.ticketResaleOptions.dataSource.checkOneClubMembership &&\r\n userData.isSignedIn &&\r\n !userData.isOneClubMember;\r\n }\r\n\r\n processRedirectToWaitingList(userEmail) {\r\n const addressBookId = this.ticketResaleOptions.dataSource.dotmailerAddressBookId;\r\n return api.get(`${this.ticketResaleOptions.verifyAddressBookCallBackUrl}?addressBookId=${addressBookId}&email=${userEmail}`)\r\n .then((isUserOnWaitingList) => {\r\n if (!isUserOnWaitingList.data) {\r\n redirectTo(this.ticketResaleOptions.dataSource.notOnWaitingListErrorPage.url);\r\n }\r\n }).catch((error) => {\r\n console.log(error);\r\n });\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport TicketResaleForceSignInComponent from './js/ticket-resale-force-sign-in.component';\r\n\r\nComponentsFactory.getInstance().define('ticket-resale-force-sign-in', TicketResaleForceSignInComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\n\r\nexport default class upcomingEvents extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.onShowClick = this.onShowClick.bind(this);\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['mainList'];\r\n }\r\n\r\n init() {\r\n if (this.refs.trigger) {\r\n this.addListener(this.refs.trigger, 'click', this.onShowClick);\r\n }\r\n }\r\n\r\n onShowClick() {\r\n if (!Array.isArray(this.refs.hiddenItems)) return;\r\n\r\n this.refs.hiddenItems.forEach((item) => {\r\n item.classList.add('is-loaded');\r\n this.refs.mainList.appendChild(item);\r\n });\r\n\r\n this.removeListeners();\r\n this.refs.trigger.remove();\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport '../game-event-card/index';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport upcomingEvents from './js/upcoming-events.component';\r\n\r\nComponentsFactory.getInstance().define('upcoming-events', upcomingEvents);\r\n","import BaseComponent from 'foundation/base-component';\r\n\r\nexport default class UpdateAppComponent 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 ['refresh'];\r\n }\r\n\r\n init() {\r\n this.refs.refresh.addEventListener('click', this.onRefreshClick);\r\n }\r\n\r\n onRefreshClick = (e) => {\r\n window.location.reload();\r\n }\r\n}\r\n","import './scss/index.scss';\r\n\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport UpdateAppComponent from './js/update-app.component';\r\n\r\nComponentsFactory.getInstance().define('update-app', UpdateAppComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport eventBus from '../../../general/js/event-bus';\r\n\r\nexport default class VenueHero extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.venueHeroSticky = this.refs.venueHeroSticky;\r\n\r\n this.visibleHandler = this.visibleHandler.bind(this);\r\n this.hiddenHandler = this.hiddenHandler.bind(this);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n eventBus.emit('venue-hero-init', {\r\n venueHeroStickyRef: this.venueHeroSticky\r\n });\r\n\r\n this.createObserver();\r\n }\r\n\r\n createObserver() {\r\n const observer = new IntersectionObserver((observables) => {\r\n const observable = observables[0];\r\n\r\n if (observable.intersectionRatio > 0) {\r\n this.hiddenHandler();\r\n } else {\r\n this.visibleHandler();\r\n }\r\n });\r\n\r\n observer.observe(this.element);\r\n }\r\n\r\n hiddenHandler() {\r\n this.venueHeroSticky.classList.remove('is-visible');\r\n }\r\n\r\n visibleHandler() {\r\n this.venueHeroSticky.classList.add('is-visible');\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport VenueHeroComponent from './js/venue-hero.component';\r\n\r\n\r\nComponentsFactory.getInstance().define('venue-hero', VenueHeroComponent);\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-author';\r\nimport './components/article-hero';\r\nimport './components/article-page';\r\nimport './components/article-player-title';\r\nimport './components/article-tags';\r\nimport './components/ballot-cta';\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/championship-days';\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-rolex-simple';\r\nimport './components/contextual-stats';\r\nimport './components/cookie-warning';\r\nimport './components/countries';\r\nimport './components/course';\r\nimport './components/custom-analytics';\r\nimport './components/custom-event-leaderboard';\r\nimport './components/data-capture';\r\nimport './components/days-promo';\r\nimport './components/dfp-banner';\r\nimport './components/document-list';\r\nimport './components/dot-mailer-tracker';\r\nimport './components/email-capture';\r\nimport './components/endeavor-player';\r\nimport './components/endeavor-player-modal';\r\nimport './components/enhanced-stats';\r\nimport './components/error-hero';\r\nimport './components/extranet-login';\r\nimport './components/feature-content';\r\nimport './components/featured-list';\r\nimport './components/final-leaderboard';\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/full-size-hero-banner';\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/hero-banner-homepage-enhanced';\r\nimport './components/hero-banner-qualification';\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/key-points';\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-radio';\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/location-image';\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/nbc-alert-bars';\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/next-event-preview';\r\nimport './components/notifications';\r\nimport './components/one-club-button';\r\nimport './components/other-open-venues';\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/player-profiles-stats';\r\nimport './components/player-registration-form';\r\nimport './components/posts';\r\nimport './components/predictive-search';\r\nimport './components/previous-opens';\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/qualified-players-preview';\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/restricted-badge';\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/stats';\r\nimport './components/sticky-button-trigger';\r\nimport './components/styleguide';\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/the-one-club-hub';\r\nimport './components/ticket-builder';\r\nimport './components/ticket-option';\r\nimport './components/ticket-resale';\r\nimport './components/ticket-resale-banner';\r\nimport './components/ticket-resale-force-sign-in';\r\nimport './components/tickets-hospitality-splitter';\r\nimport './components/tickets-listing';\r\nimport './components/upcoming-events';\r\nimport './components/upcoming-opens';\r\nimport './components/upcoming-opens-card';\r\nimport './components/upcoming-opens-links';\r\nimport './components/update-app-modal';\r\nimport './components/upsell';\r\nimport './components/venue-hero';\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\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});"],"sourceRoot":""}