{"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","HOSPITALITY_PRODUCTS","constants_defineProperty","_HOSPITALITY_PRODUCTS","maxQuantity","quantityMultiplier","BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME","DEFAULT_BASKET","productGroups","ValidationHelper","products","totalSelected","ticket","curProducts","quantity","sortOrder","product","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","hospitalityProduct","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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","file":"app.2b2245dea4091fc6bc41.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_1860 = '1860';\r\nexport const PRODUCT_TAG_PLATINUM = 'Platinum';\r\nexport const PRODUCT_TAG_PREMIUM = 'Premium';\r\nexport const PRODUCT_TAG_SELECT = 'Select';\r\nexport const PRODUCT_TAG_SIGNATURE = 'Signature';\r\n\r\nexport const PRODUCT_TAG_SCORERS_PREMIUM = 'ScorersPremium';\r\nexport const PRODUCT_TAG_ENGRAVERS = 'Engravers';\r\nexport const PRODUCT_TAG_CHAMPIONS = 'Champions';\r\nexport const PRODUCT_TAG_TICKET_PLUS = 'TicketPlus';\r\nexport const PRODUCT_TAG_TICKET_PLUS_EXTRA = 'TicketPlusExtra';\r\nexport const PRODUCT_SECUTIX_ID_ENGRAVERS_SUNDAY = '101322505327';\r\nexport const MAX_SCORERS_PREMIUM_TICKETS_AVAILABLE = 10;\r\n\r\nexport const HOSPITALITY_PRODUCTS = {\r\n [PRODUCT_TAG_1860]: {\r\n maxQuantity: 20,\r\n quantityMultiplier: 1\r\n },\r\n [PRODUCT_TAG_PLATINUM]: {\r\n maxQuantity: 20,\r\n quantityMultiplier: 1\r\n },\r\n [PRODUCT_TAG_PREMIUM]: {\r\n maxQuantity: 20,\r\n quantityMultiplier: 1\r\n },\r\n [PRODUCT_TAG_SELECT]: {\r\n maxQuantity: 6,\r\n quantityMultiplier: 1\r\n },\r\n [PRODUCT_TAG_SIGNATURE]: {\r\n maxQuantity: 20,\r\n quantityMultiplier: 1\r\n },\r\n [PRODUCT_TAG_CHAMPIONS]: {\r\n maxQuantity: 10,\r\n\r\n // this quantity multiplier must be in-sync with the\r\n // quantity modifier value from the ticket builder\r\n // setting in Sitecore for Champions packages\r\n quantityMultiplier: 2\r\n }\r\n};\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 HOSPITALITY_PRODUCTS\r\n} from './constants';\r\n\r\nexport default class ValidationHelper {\r\n static getPreparedProductsList(products) {\r\n const totalSelected = products\r\n .filter((ticket) => ticket.tag === PRODUCT_TAG_ADULT || ticket.tag === PRODUCT_TAG_YOUTH)\r\n .reduce((total, curProducts) => (curProducts.quantity ? total + curProducts.quantity : total), 0);\r\n\r\n products\r\n .sort((a, b) => a.sortOrder - b.sortOrder)\r\n .forEach((product) => {\r\n if (product.type === PRODUCT_TYPE_HOSPITALITY ||\r\n product.type === PRODUCT_TYPE_EXTRAS\r\n ) {\r\n switch (product.tag) {\r\n case PRODUCT_TAG_SWING_BADGE:\r\n product.maxQuantity = MAX_STANDART_TICKETS_AVAILABLE;\r\n product.maxAvailable = MAX_SWING_BADGE_AVAILABLE;\r\n break;\r\n case PRODUCT_TAG_SWING_BADGE_GUEST:\r\n product.maxQuantity = MAX_STANDART_TICKETS_AVAILABLE;\r\n product.maxAvailable = MAX_SWING_BADGE_GUEST_AVAILABLE;\r\n break;\r\n case PRODUCT_TAG_SWING_BADGE_ADDITIONAL_GUEST:\r\n product.maxQuantity = MAX_STANDART_TICKETS_AVAILABLE;\r\n product.maxAvailable = MAX_SWING_BADGE_ADDITIONAL_GUEST_AVAILABLE;\r\n break;\r\n 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 if (HOSPITALITY_PRODUCTS[product.tag] !== undefined) {\r\n product.maxQuantity = HOSPITALITY_PRODUCTS[product.tag].maxQuantity;\r\n } else {\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 if (HOSPITALITY_PRODUCTS[product.tag] !== undefined) {\r\n totalAvailable = HOSPITALITY_PRODUCTS[product.tag].maxQuantity - totalSelected;\r\n }\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 HOSPITALITY_PRODUCTS\r\n} from '../../../general/js/basket/constants';\r\n\r\nexport default class BasketProduct extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onRemoveClick = this.onRemoveClick.bind(this);\r\n this.onQuantityChange = this.onQuantityChange.bind(this);\r\n this.carProductsArray = [PRODUCT_TAG_CAR, PRODUCT_TAG_MOTORCYCLE, PRODUCT_TAG_COACH, PRODUCT_TAG_MINIBUS];\r\n }\r\n\r\n onQuantityChange(e) {\r\n let quantity = parseInt(e.target.value, 10);\r\n quantity = !Number.isNaN(quantity) ? quantity : 0;\r\n\r\n const product = this.props.product;\r\n const oldQuantity = product.quantity;\r\n\r\n let eventType = '';\r\n let quantityDelta = 0;\r\n\r\n if (quantity > oldQuantity) {\r\n eventType = ecommerceEventTypes.ADD_TO_CART;\r\n quantityDelta = quantity - oldQuantity;\r\n } else if (quantity < oldQuantity) {\r\n eventType = ecommerceEventTypes.REMOVE_FROM_CART;\r\n quantityDelta = oldQuantity - quantity;\r\n }\r\n\r\n const productGroupYear = this.props.productGroup.title.split(' ')[3];\r\n const productPrice = product.price / CURRENCY_RATIO;\r\n\r\n gtm.pushEcommerceEvent(eventType, {\r\n currency: currencyIsoCodes.GBP,\r\n value: productPrice * quantityDelta,\r\n items: [\r\n {\r\n item_id: product.productId,\r\n item_name: `${product.title} ${productGroupYear}`,\r\n price: productPrice,\r\n quantity: quantityDelta\r\n }\r\n ]\r\n });\r\n\r\n this.props.onQuantityUpdate(quantity);\r\n }\r\n\r\n onRemoveClick() {\r\n const product = this.props.product;\r\n const productPrice = product.price / CURRENCY_RATIO;\r\n const productGroupYear = this.props.productGroup.title.split(' ')[3];\r\n\r\n gtm.pushEcommerceEvent(ecommerceEventTypes.REMOVE_FROM_CART, {\r\n currency: currencyIsoCodes.GBP,\r\n value: productPrice * product.quantity,\r\n items: [\r\n {\r\n item_id: product.productId,\r\n item_name: `${product.title} ${productGroupYear}`,\r\n price: productPrice,\r\n quantity: product.quantity\r\n }\r\n ]\r\n });\r\n\r\n this.props.onQuantityUpdate(0);\r\n }\r\n\r\n getProductQuantities(product) {\r\n const result = [];\r\n let startQuantity = 1;\r\n\r\n if (product.tag === PRODUCT_TAG_ENGRAVERS) {\r\n startQuantity = 2;\r\n }\r\n\r\n const hospitalityProduct = HOSPITALITY_PRODUCTS[product.tag];\r\n\r\n if (hospitalityProduct !== undefined) {\r\n if (hospitalityProduct.quantityMultiplier % 2 === 0) {\r\n startQuantity = 2;\r\n }\r\n }\r\n\r\n for (let i = startQuantity; i <= product.maxQuantity; i += startQuantity) {\r\n result.push(i);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n renderControl(product, hasBallotConfiguration) {\r\n return (\r\n !hasBallotConfiguration ?\r\n product.tag === PRODUCT_TAG_SCORERS_PREMIUM ?\r\n \r\n {\r\n {product.quantity}\r\n }\r\n \r\n :\r\n \r\n {\r\n this.getProductQuantities(product).map((quantity) =>\r\n product.maxAvailable}\r\n value={quantity}>{quantity})\r\n }\r\n \r\n\r\n :\r\n (this.carProductsArray.indexOf(product.tag) > -1) ?\r\n this.props.groupHasMoreTypesOfProducts ?\r\n
\r\n {product.quantity}\r\n
\r\n :\r\n \r\n {\r\n this.getProductQuantities(product).map((quantity) =>\r\n product.maxAvailable}\r\n value={quantity}>{quantity})\r\n }\r\n \r\n :\r\n
\r\n {product.quantity}\r\n
\r\n );\r\n }\r\n\r\n render() {\r\n const { product } = this.props;\r\n return (\r\n
\r\n
\r\n {product.title}\r\n
\r\n
\r\n {CurrencyHelper.convertToPounds(product.price)}\r\n
\r\n
\r\n Qty:\r\n {this.renderControl(product, this.props.hasBallotConfiguration)}\r\n {!this.props.hasBallotConfiguration ?\r\n \r\n remove product from basket\r\n \r\n \r\n \r\n \r\n :\r\n (this.carProductsArray.indexOf(product.tag) > -1) ?\r\n this.props.groupHasMoreTypesOfProducts ?\r\n \r\n :\r\n
\r\n
\r\n {\r\n product.price > 0 ?\r\n CurrencyHelper.convertToPounds(product.sum) :\r\n 'Free'\r\n }\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nBasketProduct.propTypes = {\r\n product: PropTypes.object.isRequired,\r\n productGroup: PropTypes.object.isRequired,\r\n onQuantityUpdate: PropTypes.func,\r\n hasBallotConfiguration: PropTypes.bool,\r\n groupHasMoreTypesOfProducts: PropTypes.bool\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport CurrencyHelper from '../../../general/js/basket/currency-helper';\r\nimport BasketProduct from './basket-product';\r\nimport ValidationHelper from '../../../general/js/basket/validation-helper';\r\nimport {\r\n PRODUCT_TAG_CAR,\r\n PRODUCT_TAG_MOTORCYCLE,\r\n PRODUCT_TAG_MINIBUS,\r\n PRODUCT_TAG_COACH\r\n} from '../../../general/js/basket/constants';\r\n\r\nexport default class BasketProductGroup extends React.Component {\r\n render() {\r\n const { productGroup } = this.props;\r\n\r\n // apply validation rules\r\n const products = ValidationHelper.getPreparedProductsList(productGroup.products);\r\n const groupHasDifferentTypesOfProducts = this.existOtherProductsThanParkingInGroup(products);\r\n\r\n return (\r\n
\r\n

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

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

{basketDialogBoxTitle}

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

{bannerTitle || formMessageConstants.formBannerTitle}

;\r\n}\r\n\r\nconst getColor = (color) => {\r\n return _.isEmpty(color) ? 'black' : color;\r\n}\r\n\r\nRegisterFormBanner.propTypes = {\r\n formBanner: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default RegisterFormBanner;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ReactModal from '../../../../modal/js/react-modal';\r\nimport RegisterFormBanner from '../../forms/one-club-register/RegisterFormBanner';\r\n\r\nfunction ConfirmationModal({\r\n isOpen,\r\n children,\r\n inputText,\r\n onModalClose,\r\n onApproveClick,\r\n isApproveDanger,\r\n isApproveButtonDisabled,\r\n onCancelClick,\r\n isCancelButtonDisabled,\r\n masterCardDialogBoxBanner\r\n}) {\r\n function displayModal() {\r\n if (!isOpen) {\r\n return null;\r\n }\r\n \r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n {children}\r\n
\r\n {!isCancelButtonDisabled && \r\n \r\n {'Cancel'}\r\n \r\n \r\n \r\n \r\n }\r\n {!isApproveButtonDisabled &&\r\n \r\n \r\n {inputText}\r\n \r\n \r\n \r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n
);\r\n }\r\n\r\n return displayModal();\r\n}\r\n\r\n\r\nConfirmationModal.propTypes = {\r\n isOpen: PropTypes.bool.isRequired,\r\n inputText: PropTypes.string.isRequired,\r\n onModalClose: PropTypes.func.isRequired,\r\n onApproveClick: PropTypes.func.isRequired,\r\n isApproveDanger: PropTypes.bool,\r\n isApproveButtonDisabled: PropTypes.bool.isRequired,\r\n onCancelClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default ConfirmationModal;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport BasketDialogBoxContentBody from '../../../general/js/basket/basket-dialog-box-content-body';\r\nimport userService from '../../../general/js/user/user-service';\r\nimport ConfirmationModal from '../../sso/components/common/utility/ConfirmationModal';\r\nimport { BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME } from '../../../general/js/user/constants';\r\n\r\nexport default class BasketPayButtons extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showModal: false\r\n };\r\n this.toggleConfirmationModal = this.toggleConfirmationModal.bind(this);\r\n this.toggleCloseModal = this.toggleCloseModal.bind(this);\r\n }\r\n\r\n toggleConfirmationModal() {\r\n userService.removeDataCookie(BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME);\r\n if (this.props.showAlertBoxBeforePayment) {\r\n this.setState({ showModal: true });\r\n } else {\r\n this.setState({ showModal: false });\r\n this.props.onCheckout();\r\n }\r\n }\r\n\r\n toggleCloseModal() {\r\n this.setState({ showModal: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n \r\n
\r\n We are experiencing high volumes of traffic at the minute. Please try again.\r\n
\r\n
\r\n this.props.onCheckout()}\r\n isApproveDanger={false}\r\n isApproveButtonDisabled={false}\r\n onCancelClick={this.toggleCloseModal}\r\n isCancelButtonDisabled={true}\r\n masterCardDialogBoxBanner={this.props.dialogBoxBanner}\r\n >\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nBasketPayButtons.propTypes = {\r\n basket: PropTypes.object.isRequired,\r\n onCheckout: PropTypes.func.isRequired,\r\n showAlertBoxBeforePayment: PropTypes.bool.isRequired,\r\n dialogBoxTitle: PropTypes.string,\r\n dialogBoxMessage: PropTypes.string,\r\n dialogBoxLogo: PropTypes.string\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default class BasketErrors extends React.Component {\r\n render() {\r\n return this.props.errors.length > 0 ? (\r\n
\r\n {this.props.errors.map((error, i) =>
\r\n {error.errorMessage} {error.productName ? `for ${error.productName}` : null} {error.audienceSubcategoryName ? `(${error.audienceSubcategoryName})` : null}\r\n
)}\r\n
\r\n ) : null;\r\n }\r\n}\r\n\r\nBasketErrors.propTypes = {\r\n errors: PropTypes.array.isRequired,\r\n};\r\n","import flatten from 'lodash/flatten';\r\nimport { CURRENCY_RATIO } from './currency-helper';\r\n\r\nexport default class TrackingHelper {\r\n static getBasketTotalValue = (productGroups) => {\r\n return productGroups.reduce((accumulator, productGroup) => {\r\n return accumulator + productGroup.sum / CURRENCY_RATIO;\r\n }, 0);\r\n };\r\n\r\n static getBasketProducts = (productGroups) => {\r\n return flatten(productGroups.map((productGroup) =>\r\n productGroup.products.map((product) => ({\r\n item_id: product.productId,\r\n item_name: `${product.tag} - ${productGroup.title}`,\r\n price: product.price / CURRENCY_RATIO,\r\n quantity: product.quantity\r\n }))));\r\n };\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport BasketGroups from './basket-groups';\r\nimport BasketTotal from './basket-total';\r\nimport BasketPayButtons from './basket-pay-buttons';\r\nimport BasketErrors from './basket-errors';\r\nimport gtm, { ecommerceEventTypes } from '../../../general/js/gtm';\r\nimport TrackingHelper from '../../../general/js/basket/tracking-helper';\r\nimport { CURRENCY_RATIO, currencyIsoCodes } from '../../../general/js/basket/currency-helper';\r\n\r\nexport default class Basket extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onCheckout = this.onCheckout.bind(this);\r\n }\r\n\r\n renderEmpty() {\r\n return (\r\n
Your basket is empty
\r\n );\r\n }\r\n\r\n onCheckout() {\r\n const productGroupList = this.getProductGroupList(this.props.basket.productGroups);\r\n const basketItems = TrackingHelper.getBasketProducts(productGroupList);\r\n\r\n gtm.pushEcommerceEvent(ecommerceEventTypes.BEGIN_CHECKOUT, {\r\n currency: currencyIsoCodes.GBP,\r\n value: this.props.basket.total / CURRENCY_RATIO,\r\n items: basketItems\r\n });\r\n\r\n this.props.onCheckout();\r\n }\r\n\r\n getProductGroupList(productGroups) {\r\n return Object.keys(productGroups).map((id) => productGroups[id]);\r\n }\r\n\r\n render() {\r\n const productsGroupList = this.getProductGroupList(this.props.basket.productGroups);\r\n\r\n return (\r\n
\r\n {productsGroupList.length > 0 ?\r\n \r\n \r\n \r\n \r\n \r\n : this.renderEmpty()\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nBasket.propTypes = {\r\n basket: PropTypes.object.isRequired,\r\n onUpdateProductQuantity: PropTypes.func.isRequired,\r\n onCheckout: PropTypes.func.isRequired,\r\n errors: PropTypes.array,\r\n hasBallotConfiguration: PropTypes.bool,\r\n showAlertBoxBeforePayment: PropTypes.bool,\r\n dialogBoxTitle: PropTypes.string,\r\n dialogBoxMessage: PropTypes.string,\r\n dialogBoxLogo: PropTypes.string\r\n};\r\n","import Cookies from 'js-cookie';\r\nimport {\r\n BALLOT_BASKET_STORAGE_KEY,\r\n BALLOT_RESERVED_PRODUCTS_STORAGE_KEY,\r\n BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME\r\n} from './constants';\r\n\r\nexport default class BasketProductsHelper {\r\n static setSecutixReservedProducts(secutixBallotReservedProducts) {\r\n if (localStorage) {\r\n this.getCookie(BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME) !== '' ? this.addReservedProductsToBallotProductsList(secutixBallotReservedProducts) :\r\n this.removeReservedProductsFromBallotProductsList();\r\n }\r\n }\r\n\r\n static addReservedProductsToBallotProductsList(secutixBallotReservedProducts) {\r\n if (Object.keys(secutixBallotReservedProducts).length !== 0) {\r\n const ballotBasketReservedProducts = {};\r\n\r\n secutixBallotReservedProducts.forEach((element) => {\r\n ballotBasketReservedProducts[element.id] = element;\r\n });\r\n\r\n if (localStorage.getItem(BALLOT_BASKET_STORAGE_KEY) === null) {\r\n localStorage.setItem(BALLOT_BASKET_STORAGE_KEY, JSON.stringify(ballotBasketReservedProducts));\r\n localStorage.setItem(BALLOT_RESERVED_PRODUCTS_STORAGE_KEY, JSON.stringify(ballotBasketReservedProducts));\r\n } else if (localStorage.getItem(BALLOT_RESERVED_PRODUCTS_STORAGE_KEY) === null) {\r\n const ballotBasket = JSON.parse(localStorage.getItem(BALLOT_BASKET_STORAGE_KEY));\r\n\r\n secutixBallotReservedProducts.forEach((element) => {\r\n if (!ballotBasket.hasOwnProperty(element.id)) {\r\n ballotBasket[element.id] = element;\r\n }\r\n });\r\n\r\n localStorage.setItem(BALLOT_BASKET_STORAGE_KEY, JSON.stringify(ballotBasket));\r\n localStorage.setItem(BALLOT_RESERVED_PRODUCTS_STORAGE_KEY, JSON.stringify(ballotBasketReservedProducts));\r\n }\r\n }\r\n }\r\n\r\n static removeReservedProductsFromBallotProductsList() {\r\n if (!this.isBallotLocalStorageEmpty()) {\r\n const basketBallot = JSON.parse(localStorage.getItem(BALLOT_BASKET_STORAGE_KEY));\r\n const secutixBallotProducts = JSON.parse(localStorage.getItem(BALLOT_RESERVED_PRODUCTS_STORAGE_KEY));\r\n const secutixBallotProductsList = [];\r\n\r\n for (const product in secutixBallotProducts) { secutixBallotProductsList.push(secutixBallotProducts[product]); }\r\n\r\n secutixBallotProductsList.forEach((element) => {\r\n if (basketBallot.hasOwnProperty(element.id)) {\r\n delete basketBallot[element.id];\r\n }\r\n });\r\n\r\n localStorage.removeItem(BALLOT_RESERVED_PRODUCTS_STORAGE_KEY);\r\n localStorage.setItem(BALLOT_BASKET_STORAGE_KEY, JSON.stringify(basketBallot));\r\n }\r\n }\r\n\r\n static isBallotLocalStorageEmpty() {\r\n if (localStorage.getItem(BALLOT_RESERVED_PRODUCTS_STORAGE_KEY) !== null &&\r\n localStorage.getItem(BALLOT_BASKET_STORAGE_KEY) !== null) { return false; }\r\n\r\n return true;\r\n }\r\n\r\n static getCookie(cookieName) {\r\n const cookie = Cookies.get(cookieName);\r\n return cookie && cookie !== '0' ? cookie : '';\r\n }\r\n}\r\n","/* eslint-disable no-unused-expressions */\r\nimport BaseComponent from 'foundation/base-component';\r\nimport React from 'react';\r\nimport { render } from 'react-dom';\r\nimport Cookies from 'js-cookie';\r\nimport BasketController from '../../../general/js/basket/basket-controller';\r\nimport Basket from './basket';\r\nimport basketProductsHelper from '../../../general/js/basket/basket-products-helper';\r\nimport { safeParseJSON, stringToBoolean } from '../../../general/js/general-helpers';\r\n\r\nexport default class BasketComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n const {\r\n isBallotBasketType, showAlertBoxBeforePayment, dialogBoxTitle, dialogBoxLogo, secutixBallotReservedProducts\r\n } = this.options;\r\n const dialogBoxBanner = {\r\n bannerBackgroundImageSrc: this.options.bannerBackgroundImageSrc,\r\n bannerMessage: this.options.bannerMessage,\r\n bannerTitle: this.options.bannerTitle,\r\n displayHeadingOverImage: stringToBoolean(this.options.displayHeadingOverImage),\r\n displayMessageUnderImage: stringToBoolean(this.options.displayMessageUnderImage),\r\n textColor: this.options.textColor,\r\n headingColor: this.options.headingColor\r\n };\r\n const errorsCookie = Cookies.get('validationErrors');\r\n const hasBallotConfiguration = JSON.parse(isBallotBasketType.toLowerCase());\r\n const hasAlertBoxBeforePayment = JSON.parse(showAlertBoxBeforePayment.toLowerCase());\r\n const dialogBoxMessage = this.options.dialogBoxMessage.split('newline').join('\\n');\r\n\r\n errorsCookie !== undefined ? this.errors = safeParseJSON(errorsCookie) : this.errors = [];\r\n\r\n basketProductsHelper.setSecutixReservedProducts(secutixBallotReservedProducts);\r\n\r\n render(\r\n (\r\n \r\n \r\n }>\r\n \r\n ),\r\n this.element\r\n );\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport BasketComponent from './js/basket.component';\r\n\r\nComponentsFactory.getInstance().define('basket', BasketComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport Cookies from 'js-cookie';\r\nimport app from '../../../general/js/app'; \r\n\r\nexport default class BasketBuyLinksComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n const secutixConfigCookie = Cookies.get('secutixConfig');\r\n\t\tif (secutixConfigCookie !== undefined) {\r\n const secutixConfig = JSON.parse(secutixConfigCookie);\r\n if (secutixConfig !== undefined) {\r\n\t\t\t\tif (this.refs.buyticketsurl !== undefined)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(secutixConfig.buyTicketsLink === undefined || secutixConfig.buyTicketsLink === ''){\r\n\t\t\t\t\t\tthis.refs.buyticketsurl.setAttribute('style','display:none;');\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tthis.refs.buyticketsurl.setAttribute('href', secutixConfig.buyTicketsLink);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif (this.refs.buyhospitalityurl !== undefined)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(secutixConfig.buyHospitalityLink === undefined || secutixConfig.buyHospitalityLink === ''){\r\n\t\t\t\t\t\tthis.refs.buyhospitalityurl.setAttribute('style','display:none;');\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tthis.refs.buyhospitalityurl.setAttribute('href', secutixConfig.buyHospitalityLink);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n }\r\n\t\t}\r\n\t\t\r\n\t\tconst userDataCookie = Cookies.get(app.state.userDataCookieName);\r\n\t\tif (userDataCookie !== undefined) {\r\n\t\t\tconst userData = JSON.parse(userDataCookie);\r\n\r\n\t\t\tif (userData !== undefined && userData.isRandaMember !== undefined && userData.isRandaMember) \r\n\t\t\t\t{\r\n\t\t\t\t\tthis.refs.buyticketsurl.setAttribute('href', '/ramembers');\r\n\t\t\t\t}\r\n\t\t}\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport BasketBuyLinksComponent from './js/basket-buy-links.component';\r\n\r\nComponentsFactory.getInstance().define('basket-buy-links', BasketBuyLinksComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport basketService from '../../../general/js/basket/basket-service';\r\n\r\nexport default class BasketCleanerComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n basketService.cleanBasket(true);\r\n basketService.cleanBasket(false);\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport BasketCleanerComponent from './js/basket-cleaner.component';\r\n\r\nComponentsFactory.getInstance().define('basket-cleaner', BasketCleanerComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport Cookies from 'js-cookie';\r\nimport basketService from '../../../general/js/basket/basket-service';\r\nimport { BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME } from '../../../general/js/basket/constants';\r\n\r\nexport default class BasketIcon extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n this.onBasketStateUpdate = this.onBasketStateUpdate.bind(this);\r\n this.onBallotBasketStateUpdate = this.onBallotBasketStateUpdate.bind(this);\r\n }\r\n\r\n static getRequiredRefs() {\r\n return [\r\n 'basketLink',\r\n 'basketTooltip'\r\n ];\r\n }\r\n\r\n init() {\r\n this.basketIsEmpty = true;\r\n this.ballotBasketIsEmpty = true;\r\n this.ballotBasketUrl = '';\r\n this.basketUrl = '';\r\n\r\n this.options.forEach((basketItem) => {\r\n basketItem.isBallotBasket ?\r\n this.ballotBasketUrl = basketItem.basketLink.url :\r\n this.basketUrl = basketItem.basketLink.url;\r\n });\r\n\r\n if (this.getCookie(BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME) !== '' &&\r\n this.ballotBasketUrl !== '') { this.ballotBasketIsEmpty = false; }\r\n\r\n basketService.onBasketUpdate(this.onBasketStateUpdate);\r\n basketService.onBallotBasketUpdate(this.onBallotBasketStateUpdate);\r\n }\r\n\r\n onBasketStateUpdate = (basket) => {\r\n if (basket === null) return;\r\n\r\n basket.isEmpty ? this.basketIsEmpty = true : this.basketIsEmpty = false;\r\n\r\n if (this.basketIsEmpty && this.ballotBasketIsEmpty) { this.element.classList.remove('is-filled'); }\r\n\r\n this.removeListeners();\r\n this.addListeners();\r\n };\r\n\r\n onBallotBasketStateUpdate = (basket) => {\r\n if (basket === null && this.getCookie(BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME) === '') return;\r\n\r\n if (this.ballotBasketUrl !== '') {\r\n basket.isEmpty && this.getCookie(BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME) === '' ? this.ballotBasketIsEmpty = true : this.ballotBasketIsEmpty = false;\r\n }\r\n\r\n if (this.basketIsEmpty && this.ballotBasketIsEmpty) { this.element.classList.remove('is-filled'); }\r\n\r\n this.removeListeners();\r\n this.addListeners();\r\n };\r\n\r\n addListeners() {\r\n if (this.basketIsEmpty && !this.ballotBasketIsEmpty) {\r\n this.element.classList.add('is-filled');\r\n this.addListener(this.refs.basketLink, 'click', () => { location.href = this.ballotBasketUrl; });\r\n }\r\n if (!this.basketIsEmpty && this.ballotBasketIsEmpty) {\r\n this.element.classList.add('is-filled');\r\n this.addListener(this.refs.basketLink, 'click', () => { location.href = this.basketUrl; });\r\n }\r\n if (!this.basketIsEmpty && !this.ballotBasketIsEmpty) {\r\n this.element.classList.add('is-filled');\r\n\r\n this.addListener(this.refs.basketLink, 'click', this.onUserButtonClick);\r\n this.addListener(document, 'keydown', this.onkeydown);\r\n this.addListener(document, 'click', this.outerClickHandle);\r\n this.addListener(document, 'touchstart', this.outerClickHandle);\r\n }\r\n }\r\n\r\n onUserButtonClick = () => {\r\n if (!this.refs.basketTooltip) return;\r\n if (this.refs.basketTooltip.classList.contains('is-visible')) { this.refs.basketTooltip.classList.remove('is-visible'); } else { this.refs.basketTooltip.classList.add('is-visible'); }\r\n };\r\n\r\n onkeydown = (event) => {\r\n if (event.keyCode === 27) {\r\n if (!this.refs.basketTooltip) return;\r\n this.refs.basketTooltip.classList.remove('is-visible');\r\n }\r\n };\r\n\r\n outerClickHandle = (event) => {\r\n if ((this.refs.basketTooltip && !this.refs.basketTooltip.contains(event.target)) &&\r\n (this.refs.basketLink && !this.refs.basketLink.contains(event.target))) { this.refs.basketTooltip.classList.remove('is-visible'); }\r\n };\r\n\r\n getCookie(cookieName) {\r\n const cookie = Cookies.get(cookieName);\r\n return cookie && cookie !== '0' ? cookie : '';\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport BasketIconComponent from './js/basket-icon.componenet';\r\n\r\nComponentsFactory.getInstance().define('basket-icon', BasketIconComponent);\r\n","export const carouselEvents = Object.freeze({\r\n NEXT_SLIDE_CLICK: 'carousel:next-slide',\r\n PREV_SLIDE_CLICK: 'carousel:prev-slide'\r\n});\r\n","import BaseComponent from 'foundation/base-component';\r\nimport app from 'general/js/app';\r\n\r\nconst DEFAULT_GROUP_NAME = 'Default';\r\n\r\nclass ContextualManagerComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.state = {\r\n minToShowCount: this.options.minToShowCount || 0,\r\n mainCount: 0,\r\n replacementCount: this.getReplacementCount(),\r\n groups: {}\r\n };\r\n\r\n if (!app.isEditMode) {\r\n this.init();\r\n }\r\n }\r\n\r\n init() {\r\n if (Array.isArray(this.refs.main)) {\r\n this.splitMainToGroups();\r\n this.state.mainCount = this.getMainCount();\r\n this.showMain();\r\n }\r\n\r\n if (this.state.mainCount < this.options.minToShowCount) {\r\n this.showReplacement();\r\n }\r\n }\r\n\r\n splitMainToGroups() {\r\n this.refs.main.forEach((ref) => {\r\n const groupName = this.getAttribute(ref, 'group');\r\n\r\n if (!groupName) return;\r\n\r\n if (!this.state.groups[groupName]) {\r\n this.state.groups[groupName] = [];\r\n }\r\n\r\n this.state.groups[groupName].push(ref);\r\n });\r\n }\r\n\r\n getMainCount() {\r\n const totalRefs = this.refs.main.length;\r\n const totalRefsInGroups = Object.keys(this.state.groups).reduce((prev, groupName) => {\r\n if (groupName === DEFAULT_GROUP_NAME) return prev;\r\n //eslint-disable-next-line no-return-assign\r\n return prev += this.state.groups[groupName].length;\r\n }, 0);\r\n const totalGroups = Object.keys(this.state.groups).length - 1;\r\n\r\n return totalRefs - totalRefsInGroups + totalGroups;\r\n }\r\n\r\n getReplacementCount() {\r\n return (this.refs.replacement && this.refs.replacement.length) || 0;\r\n }\r\n\r\n // this is bad but there is no way to set ref on a wrapper in Sitecore way :(\r\n makeVisible(ref) {\r\n const hiddenWrapper = ref.closest('.is-hidden');\r\n\r\n if (hiddenWrapper) {\r\n hiddenWrapper.classList.remove('is-hidden');\r\n }\r\n }\r\n\r\n showRandomInGroup(group) {\r\n const randomIndex = Math.round(Math.random() * (group.length - 1));\r\n this.makeVisible(group[randomIndex]);\r\n }\r\n\r\n showMain() {\r\n Object.keys(this.state.groups).forEach((groupName) => {\r\n const group = this.state.groups[groupName];\r\n\r\n if (groupName === DEFAULT_GROUP_NAME) {\r\n group.forEach((ref) => this.makeVisible(ref));\r\n } else {\r\n this.showRandomInGroup(group);\r\n }\r\n });\r\n }\r\n\r\n showReplacement() {\r\n if (!Array.isArray(this.refs.replacement)) return;\r\n\r\n let replacementStack = [...this.refs.replacement];\r\n let diff = this.state.minToShowCount - this.state.mainCount;\r\n\r\n while (replacementStack.length > 0 && diff > 0) {\r\n const randomIndex = Math.round(Math.random() * (replacementStack.length - 1));\r\n const replacementRef = replacementStack[randomIndex];\r\n\r\n replacementStack = replacementStack.filter((ref, index) => index !== randomIndex);\r\n\r\n if (replacementRef) {\r\n this.makeVisible(replacementRef);\r\n }\r\n diff--;\r\n }\r\n }\r\n}\r\n\r\nexport default ContextualManagerComponent;\r\n","//import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport ContextualManagerComponent from './js/contextual-manager.component';\r\n\r\nComponentsFactory.getInstance().define('contextual-manager', ContextualManagerComponent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport get from 'lodash/get';\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport ScoringLoader, { endpointNames } from 'general/js/loaders/scoring-loader';\r\nimport { getRoundById } from 'general/js/helpers';\r\nimport { LiveStatsCardContainer, statsTypes, getStatsCards } from 'components/live-stats';\r\nimport { BlockPlaceholder } from 'components/block-placeholder';\r\nimport { BlockSpinner } from 'components/block-spinner';\r\n\r\nclass ContextualStatsLayout extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const cardType = this.getType();\r\n const statsCards = getStatsCards();\r\n const filteredCards = statsCards.filter((statsCard) => statsCard.type === cardType);\r\n\r\n this.card = this.getRadomCard(filteredCards);\r\n }\r\n\r\n componentDidMount() {\r\n ScoringLoader.subscribe(endpointNames.LIVE_SCANNER);\r\n ScoringLoader.subscribe(endpointNames.STATISTICS);\r\n ScoringLoader.subscribe(endpointNames.COURSE);\r\n }\r\n\r\n componentWillUnmount() {\r\n ScoringLoader.unsubscribe(endpointNames.LIVE_SCANNER);\r\n ScoringLoader.unsubscribe(endpointNames.STATISTICS);\r\n ScoringLoader.unsubscribe(endpointNames.COURSE);\r\n }\r\n\r\n getRound() {\r\n const activeRoundId = get(this.props, 'liveScanner.activeRoundId');\r\n\r\n return getRoundById(this.props.scoringStats.rounds, activeRoundId);\r\n }\r\n\r\n getRandomType() {\r\n const statsTypesList = Object.keys(statsTypes);\r\n const len = statsTypesList.length;\r\n const randomIndex = Math.round(Math.random() * (len - 1));\r\n const key = statsTypesList[randomIndex];\r\n\r\n return statsTypes[key];\r\n }\r\n\r\n getType() {\r\n const { type, players, holes } = this.props.options;\r\n\r\n if (players.length && holes.length) {\r\n return this.getRandomType();\r\n }\r\n\r\n if (players.length) {\r\n return statsTypes.PLAYER;\r\n }\r\n\r\n if (holes.length) {\r\n return statsTypes.HOLE;\r\n }\r\n\r\n return type || this.getRandomType();\r\n }\r\n\r\n getRadomCard(list) {\r\n return list[Math.round(Math.random() * (list.length - 1))];\r\n }\r\n\r\n getSitecoreData(statsName) {\r\n return get(this.props.scoringStats, `sitecoreData[${statsName}]`, null);\r\n }\r\n\r\n getStats(card) {\r\n const { players, holes } = this.props.options;\r\n const round = this.getRound();\r\n const stats = get(round, `[${card.name}].stats`, []);\r\n\r\n // override state\r\n if (players.length || holes.length) {\r\n return card.type === statsTypes.PLAYER ?\r\n this.getStatsByIds(stats, players, 'playerId') :\r\n this.getStatsByIds(stats, holes, 'holeId');\r\n }\r\n\r\n return this.getTopStats(stats);\r\n }\r\n\r\n getTopStats(stats) {\r\n return stats.slice(0, 3);\r\n }\r\n\r\n getStatsByIds(stats, ids, idKey) {\r\n return ids\r\n .map((id) =>\r\n stats.find((statsModel) =>\r\n statsModel[idKey].toString() === id.toString()))\r\n .filter((mappedStat) => mappedStat !== undefined);\r\n }\r\n\r\n generateCard() {\r\n const { scoringStats } = this.props;\r\n\r\n if (!scoringStats) return null;\r\n\r\n const card = cloneDeep(this.card);\r\n\r\n card.sitecoreData = this.getSitecoreData(card.name);\r\n card.stats = this.getStats(card);\r\n card.targetUrl = this.props.options.viewAllUrl;\r\n\r\n return card;\r\n }\r\n\r\n render() {\r\n const { liveScanner, scoringStats } = this.props;\r\n\r\n if (liveScanner === undefined ||\r\n scoringStats === undefined\r\n ) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n if (!liveScanner ||\r\n !scoringStats ||\r\n !Array.isArray(scoringStats.rounds)\r\n ) {\r\n return null;\r\n }\r\n\r\n const card = this.generateCard();\r\n\r\n return ;\r\n }\r\n}\r\n\r\nContextualStatsLayout.propTypes = {\r\n options: PropTypes.object\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n liveScanner: state.scoring[endpointNames.LIVE_SCANNER],\r\n scoringStats: state.scoring[endpointNames.STATISTICS],\r\n courseStats: state.scoring[endpointNames.COURSE],\r\n});\r\n\r\nconst ContextualStatsLayoutContainer = connect(\r\n mapStateToProps,\r\n null\r\n)(ContextualStatsLayout);\r\n\r\nexport default ContextualStatsLayoutContainer;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport store from 'general/js/store';\r\nimport ContextualStatsLayout from './contextual-stats-layout';\r\n\r\nclass ContextualStats extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default ContextualStats;\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport ContextualStats from './js/contextual-stats.component';\r\n\r\nComponentsFactory.getInstance().define('contextual-stats', ContextualStats);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport Cookies from 'js-cookie';\r\nimport overlay from '../../../general/js/overlay';\r\nimport _ from 'lodash';\r\n\r\nconst COOKIE_WARNING_AGREED = 'cookie-warning-settings_agreed';\r\nconst COOKIE_WARNING_AGREE_BUTTON_CLASS = 'cookie-warning__agree-button';\r\nconst COOKIE_WARNING_AGREE_LINK_CLASS = 'cookie-warning__agree-link';\r\nconst COOKIE_CONTROL_EXPIRY_DAYS = 'cookieControlExpiryDaysValue';\r\n\r\nexport default class CookieWarningComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.onCloseCookieWarning = this.onCloseCookieWarning.bind(this);\r\n this.closeSlideoutCookiePanelHandler = this.closeSlideoutCookiePanelHandler.bind(this);\r\n this.acceptCookiesHandler = this.acceptCookiesHandler.bind(this);\r\n this.cookieWarningSettingsAgreedTitle = this.getCookieWarningOption('warningSettingsAgreed', COOKIE_WARNING_AGREED);\r\n this.requiredCookiesForGoogleAnalytics = this.getCookieWarningOption('requiredCookiesForGoogleAnalytics');\r\n this.init();\r\n }\r\n\r\n isSiteVisited() {\r\n const warningAgreedCookie = Cookies.get(this.cookieWarningSettingsAgreedTitle);\r\n const acceptedCookies = warningAgreedCookie !== undefined;\r\n return acceptedCookies;\r\n }\r\n\r\n init() {\r\n setTimeout(() => {\r\n if (!this.isSiteVisited()){\r\n this.element.classList.add('is-visible');\r\n overlay.show('overlay');\r\n\r\n const agreeButton = document.getElementsByClassName(COOKIE_WARNING_AGREE_BUTTON_CLASS)[0];\r\n const agreeLink = document.getElementsByClassName(COOKIE_WARNING_AGREE_LINK_CLASS)[0];\r\n let cookieExpiryDays = this.getCookieExpiryDays();\r\n \r\n this.addListener(agreeButton, 'click', () => {\r\n Cookies.set(this.cookieWarningSettingsAgreedTitle, '1', { expires: cookieExpiryDays, secure: true });\r\n this.onCloseCookieWarning();\r\n });\r\n this.addListener(agreeLink, 'click', () => {\r\n this.onCloseCookieWarning();\r\n });\r\n }\r\n }, 100);\r\n }\r\n\r\n onCloseCookieWarning() {\r\n setTimeout(() => {\r\n const { civicukCloseButtonId, civicukAcceptAllButtonId} = this.options;\r\n var slideoutCloseButton = null;\r\n var acceptAllButton = null; \r\n\r\n if (civicukCloseButtonId !== undefined && !_.isEmpty(civicukCloseButtonId)){\r\n slideoutCloseButton = document.getElementById(civicukCloseButtonId);\r\n }\r\n\r\n if (civicukAcceptAllButtonId !== undefined && !_.isEmpty(civicukAcceptAllButtonId)){\r\n acceptAllButton = document.getElementById(civicukAcceptAllButtonId);\r\n }\r\n\r\n this.addClickEventListener(slideoutCloseButton, this.closeSlideoutCookiePanelHandler);\r\n this.addClickEventListener(acceptAllButton, this.acceptCookiesHandler);\r\n\r\n this.element.classList.add('is-closed');\r\n this.element.classList.remove('is-visible');\r\n overlay.hide('overlay');\r\n }, 300);\r\n }\r\n\r\n addClickEventListener(element, callback){\r\n if(element !== null){\r\n element.addEventListener('click', callback, { once: true });\r\n }\r\n }\r\n\r\n getCookieExpiryDays(){\r\n var cookieExpiryDays = parseInt(localStorage.getItem(COOKIE_CONTROL_EXPIRY_DAYS));\r\n if (cookieExpiryDays === null || cookieExpiryDays === undefined)\r\n {\r\n cookieExpiryDays = 90;\r\n }\r\n\r\n return cookieExpiryDays;\r\n }\r\n\r\n closeSlideoutCookiePanelHandler(){\r\n let cookieExpiryDays = this.getCookieExpiryDays();\r\n let cookieControlValue = Cookies.get('CookieControl');\r\n let cookieControlObj = !_.isEmpty(cookieControlValue) ? JSON.parse(cookieControlValue) : {};\r\n var cookieWarningAgreedValue = '0';\r\n\r\n if(this.requiredCookiesForGoogleAnalytics && !_.isEmpty(cookieControlObj) && !_.isEmpty(cookieControlObj.optionalCookies)){\r\n this.requiredCookiesForGoogleAnalytics.forEach(requiredCookie => {\r\n if( Object.keys(cookieControlObj.optionalCookies).some((optionalCookie) => optionalCookie === requiredCookie )){\r\n cookieWarningAgreedValue = '1';\r\n }\r\n });\r\n }\r\n\r\n Cookies.set(this.cookieWarningSettingsAgreedTitle, cookieWarningAgreedValue, { expires: cookieExpiryDays, secure: true });\r\n }\r\n\r\n acceptCookiesHandler() {\r\n const cookieExpiryDays = this.getCookieExpiryDays();\r\n\r\n Cookies.set(this.cookieWarningSettingsAgreedTitle, '1', { expires: cookieExpiryDays, secure: true });\r\n }\r\n\r\n getCookieWarningOption(optionName, defaultValue = undefined){\r\n return this.options ? this.options[optionName] : defaultValue;\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport CookieWarningComponent from './js/cookie-warning.component';\r\n\r\nComponentsFactory.getInstance().define('cookie-warning', CookieWarningComponent);\r\n","import 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\nimport './components/comparison-tool';\r\n\r\n/* init app */\r\nimport app from './general/js/app';\r\n\r\napp.init();\r\n\r\n/* build svg sprite */\r\nconst files = require.context('./general/svg', true, /^\\.\\/.*\\.svg/);\r\nfiles.keys().forEach(files);\r\n\r\n// do not focus sprite in IE\r\nconst spriteNode = document.getElementById('__SVG_SPRITE_NODE__');\r\n\r\nif (spriteNode) {\r\n spriteNode.setAttribute('focusable', 'false');\r\n spriteNode.setAttribute('aria-hidden', 'true');\r\n}\r\n","var Handlebars = require(\"D:\\\\a\\\\1\\\\s\\\\src\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.classNames : depth0)) != null ? stack1.highlightedState : stack1), depth0));\n},\"3\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.classNames : depth0)) != null ? stack1.itemSelectable : stack1), depth0));\n},\"5\":function(container,depth0,helpers,partials,data) {\n return \"aria-selected=\\\"true\\\"\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n return \"aria-disabled=\\\"true\\\"\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression;\n\n return \" \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=container.lambda, alias2=container.escapeExpression, alias3=depth0 != null ? depth0 : (container.nullContext || {}), alias4=helpers.blockHelperMissing;\n\n return \"\\r\\n \"\n + ((stack1 = ((helper = (helper = helpers.content || (depth0 != null ? depth0.content : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(alias3,{\"name\":\"content\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n + \"\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(alias3,(depth0 != null ? depth0.removeItemButton : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n\";\n},\"useData\":true});","var Handlebars = require(\"D:\\\\a\\\\1\\\\s\\\\src\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.classNames : depth0)) != null ? stack1.itemDisabled : stack1), depth0));\n},\"3\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.classNames : depth0)) != null ? stack1.itemSelectable : stack1), depth0));\n},\"5\":function(container,depth0,helpers,partials,data) {\n return \"data-choice-disabled aria-disabled=\\\"true\\\"\\r\\n \";\n},\"7\":function(container,depth0,helpers,partials,data) {\n return \"data-choice-selectable\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=container.lambda, alias2=container.escapeExpression, alias3=depth0 != null ? depth0 : (container.nullContext || {}), alias4=helpers.helperMissing, alias5=\"function\";\n\n return \"\\r\\n \"\n + ((stack1 = ((helper = (helper = helpers.content || (depth0 != null ? depth0.content : depth0)) != null ? helper : alias4),(typeof helper === alias5 ? helper.call(alias3,{\"name\":\"content\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n + \"\\r\\n\\r\\n\";\n},\"useData\":true});"],"sourceRoot":""}