{"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","additionalField1","additionalField2","randomSeedNumber","additional1","additional2","agreedToC1","agreedToC2","handleFirstnameChange","handleLastnameChange","handleEmailChange","handleCheckbox1Change","handleCheckbox2Change","handleAdditional1Change","handleAdditional2Change","nameFieldsAreOptional","hideNameFields","checkbox1IsOptional","hideCheckbox1","checkbox2IsOptional","hideCheckbox2","additionalField1IsOptional","hideAdditionalField1","additionalField2IsOptional","hideAdditionalField2","firstnameLabel","firstnameError","lastnameLabel","lastnameError","emailLabel","emailError","checkbox1Label","checkbox1Error","checkbox2Label","checkbox2Error","additionalField1Label","additionalField1Error","additionalField2Label","additionalField2Error","_this$state2","isFilledFirstname","isFilledLastname","isFilledEmail","isValidEmail","isFilledAdditionalField1","isFilledAdditionalField2","checkbox1withRandomSeed","checkbox2withRandomSeed","inputFirstnameElement","focusOnElement","inputLastnameElement","inputAdditional1Element","inputAdditional2Element","inputEmailElement","createMarkup","termsAndConditionsInformation","StepFinishStatus","step_finish_status_classCallCheck","step_finish_status_getPrototypeOf","statusClass","StepQuiz","step_quiz_classCallCheck","step_quiz_getPrototypeOf","handleChange","step_quiz_assertThisInitialized","_event$target","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","gtmDynamicMenuClick","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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Aq3H,oBAAqByC,EACrBxC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAcG,gBAC5B,MAAO,CACHn1D,YACA44D,kBAAmB,eACnB8I,gBACAC,aACA7G,mBACAE,kBACAnC,WACAruH,eACAq3H,oBAAqB0C,EACrBzC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAcr4D,UAC5B,MAAO,CACHqD,YACA44D,kBAAmB,aACnB8I,gBACAC,aACA53J,aACA+wJ,mBACAE,kBACAnC,WACAruH,eACAq3H,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAciC,WAC5B,MAAO,CACHj3D,YACA44D,kBAAmB,aACnB8I,gBACA33J,aACA43J,aACA7G,mBACAE,kBACAnC,WACAruH,eACAq3H,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAcv1D,SAC5B,MAAO,CACHO,YACA44D,kBAAmB,cACnB8I,gBACA33J,aACA43J,aACA7G,mBACAE,kBACAnC,WACAruH,eACAq3H,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAcl4D,aAC5B,MAAO,CACHkD,YACA44D,kBAAmB,iBACnB8I,gBACAC,aACA53J,aACA+wJ,mBACAE,kBACAnC,WACAruH,eACAq3H,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAcj4D,aAC5B,MAAO,CACHiD,YACA44D,kBAAmB,iBACnB8I,gBACAC,aACA53J,aACA+wJ,mBACAE,kBACAnC,WACAruH,eACAq3H,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAcK,aAC5B,MAAO,CACHr1D,YACA44D,kBAAmB,iBACnB8I,gBACA33J,aACA43J,aACA7G,mBACAE,kBACAnC,WACAruH,eACAq3H,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAc/3D,KAC5B,MAAO,CACH+C,YACA44D,kBAAmB,oBACnB8I,gBACA33J,aACA43J,aACA7G,mBACAE,kBACAnC,WACAruH,eACAq3H,oBAAqBuC,EACrB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","file":"app.6a4fefa3c0750f554445.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 {\r\n firstnameField,\r\n lastnameField,\r\n checkbox1Field,\r\n checkbox2Field,\r\n additionalField1,\r\n additionalField2,\r\n } = this.props.options;\r\n\r\n const result = initialResult ? initialResult : {};\r\n\r\n this.state = {\r\n randomSeedNumber: Math.floor(Math.random() * RandomSeedMaxValue),\r\n firstName: result[firstnameField] ? result[firstnameField] : \"\",\r\n lastName: result[lastnameField] ? result[lastnameField] : \"\",\r\n additional1: result[additionalField1]\r\n ? result[additionalField1]\r\n : \"\",\r\n additional2: result[additionalField2]\r\n ? result[additionalField2]\r\n : \"\",\r\n emailAddress: emailAddress ? emailAddress : \"\",\r\n agreedToC1: result[checkbox1Field] ? result[checkbox1Field] : false,\r\n agreedToC2: result[checkbox2Field] ? result[checkbox2Field] : false,\r\n };\r\n\r\n this.handleFirstnameChange = this.handleFirstnameChange.bind(this);\r\n this.handleLastnameChange = this.handleLastnameChange.bind(this);\r\n this.handleEmailChange = this.handleEmailChange.bind(this);\r\n this.handleCheckbox1Change = this.handleCheckbox1Change.bind(this);\r\n this.handleCheckbox2Change = this.handleCheckbox2Change.bind(this);\r\n this.handleAdditional1Change = this.handleAdditional1Change.bind(this);\r\n this.handleAdditional2Change = this.handleAdditional2Change.bind(this);\r\n\r\n this.isValid = this.isValid.bind(this);\r\n\r\n this.updateResult = this.props.updateResult;\r\n }\r\n\r\n isValid() {\r\n const {\r\n nameFieldsAreOptional,\r\n hideNameFields,\r\n checkbox1IsOptional,\r\n hideCheckbox1,\r\n checkbox2IsOptional,\r\n hideCheckbox2,\r\n additionalField1IsOptional,\r\n hideAdditionalField1,\r\n additionalField2IsOptional,\r\n hideAdditionalField2,\r\n } = this.props.options;\r\n\r\n const {\r\n firstName,\r\n lastName,\r\n emailAddress,\r\n agreedToC1,\r\n agreedToC2,\r\n additional1,\r\n additional2,\r\n } = this.state;\r\n\r\n return (\r\n (nameFieldsAreOptional ||\r\n hideNameFields ||\r\n (firstName !== \"\" && lastName !== \"\")) &&\r\n validateEmail(emailAddress).isValid &&\r\n (checkbox1IsOptional || hideCheckbox1 || agreedToC1 === true) &&\r\n (checkbox2IsOptional || hideCheckbox2 || agreedToC2 === true) &&\r\n (additionalField1IsOptional ||\r\n hideAdditionalField1 ||\r\n additional1 !== \"\") &&\r\n (additionalField2IsOptional ||\r\n hideAdditionalField2 ||\r\n additional2 !== \"\")\r\n );\r\n }\r\n\r\n handleFirstnameChange(event) {\r\n this.setState({\r\n randomSeedNumber: this.state.randomSeedNumber,\r\n firstName: event.target.value,\r\n lastName: this.state.lastName,\r\n emailAddress: this.state.emailAddress,\r\n agreedToC1: this.state.agreedToC1,\r\n agreedToC2: this.state.agreedToC2,\r\n additional1: this.state.additional1,\r\n additional2: this.state.additional2,\r\n });\r\n\r\n const { firstnameField } = this.props.options;\r\n\r\n this.updateResult(this.isValid(), firstnameField, event.target.value);\r\n }\r\n\r\n handleLastnameChange(event) {\r\n this.setState({\r\n randomSeedNumber: this.state.randomSeedNumber,\r\n firstName: this.state.firstName,\r\n lastName: event.target.value,\r\n emailAddress: this.state.emailAddress,\r\n agreedToC1: this.state.agreedToC1,\r\n agreedToC2: this.state.agreedToC2,\r\n additional1: this.state.additional1,\r\n additional2: this.state.additional2,\r\n });\r\n\r\n const { lastnameField } = this.props.options;\r\n\r\n this.updateResult(this.isValid(), lastnameField, event.target.value);\r\n }\r\n\r\n handleEmailChange(event) {\r\n this.setState({\r\n randomSeedNumber: this.state.randomSeedNumber,\r\n firstName: this.state.firstName,\r\n lastName: this.state.lastName,\r\n emailAddress: event.target.value,\r\n agreedToC1: this.state.agreedToC1,\r\n agreedToC2: this.state.agreedToC2,\r\n additional1: this.state.additional1,\r\n additional2: this.state.additional2,\r\n });\r\n\r\n this.updateResult(this.isValid(), \"emailAddress\", event.target.value);\r\n }\r\n\r\n handleCheckbox1Change(event) {\r\n this.setState({\r\n randomSeedNumber: this.state.randomSeedNumber,\r\n firstName: this.state.firstName,\r\n lastName: this.state.lastName,\r\n emailAddress: this.state.emailAddress,\r\n agreedToC1: event.target.checked,\r\n agreedToC2: this.state.agreedToC2,\r\n additional1: this.state.additional1,\r\n additional2: this.state.additional2,\r\n });\r\n\r\n const { checkbox1Field } = this.props.options;\r\n\r\n this.updateResult(this.isValid(), checkbox1Field, event.target.checked);\r\n }\r\n\r\n handleCheckbox2Change(event) {\r\n this.setState({\r\n randomSeedNumber: this.state.randomSeedNumber,\r\n firstName: this.state.firstName,\r\n lastName: this.state.lastName,\r\n emailAddress: this.state.emailAddress,\r\n agreedToC1: this.state.agreedToC1,\r\n agreedToC2: event.target.checked,\r\n additional1: this.state.additional1,\r\n additional2: this.state.additional2,\r\n });\r\n\r\n const { checkbox2Field } = this.props.options;\r\n\r\n this.updateResult(this.isValid(), checkbox2Field, event.target.checked);\r\n }\r\n\r\n handleAdditional1Change(event) {\r\n this.setState({\r\n randomSeedNumber: this.state.randomSeedNumber,\r\n firstName: this.state.firstName,\r\n lastName: this.state.lastName,\r\n emailAddress: this.state.emailAddress,\r\n agreedToC1: this.state.agreedToC1,\r\n agreedToC2: this.state.agreedToC2,\r\n additional1: event.target.value,\r\n additional2: this.state.additional2,\r\n });\r\n\r\n const { additionalField1 } = this.props.options;\r\n\r\n this.updateResult(this.isValid(), additionalField1, event.target.value);\r\n }\r\n\r\n handleAdditional2Change(event) {\r\n this.setState({\r\n randomSeedNumber: this.state.randomSeedNumber,\r\n firstName: this.state.firstName,\r\n lastName: this.state.lastName,\r\n emailAddress: this.state.emailAddress,\r\n agreedToC1: this.state.agreedToC1,\r\n agreedToC2: this.state.agreedToC2,\r\n additional1: this.state.additional1,\r\n additional2: event.target.value,\r\n });\r\n\r\n const { additionalField2 } = this.props.options;\r\n\r\n this.updateResult(this.isValid(), additionalField2, event.target.value);\r\n }\r\n\r\n createMarkup = (param) => {\r\n return { __html: param };\r\n };\r\n\r\n componentDidUpdate() {\r\n const { canGoToNextStep } = this.props;\r\n\r\n if (!canGoToNextStep && this.isValid()) {\r\n this.updateResult(this.isValid());\r\n }\r\n }\r\n\r\n focusOnElement = (element) => {\r\n element.focus();\r\n };\r\n\r\n render() {\r\n const { options } = this.props;\r\n\r\n const {\r\n firstnameLabel,\r\n firstnameError,\r\n lastnameLabel,\r\n lastnameError,\r\n nameFieldsAreOptional,\r\n hideNameFields,\r\n emailLabel,\r\n emailError,\r\n checkbox1IsOptional,\r\n hideCheckbox1,\r\n checkbox1Label,\r\n checkbox1Error,\r\n checkbox2Label,\r\n checkbox2Error,\r\n checkbox2IsOptional,\r\n hideCheckbox2,\r\n additionalField1Label,\r\n additionalField1Error,\r\n additionalField1IsOptional,\r\n hideAdditionalField1,\r\n additionalField2Label,\r\n additionalField2Error,\r\n additionalField2IsOptional,\r\n hideAdditionalField2,\r\n } = options;\r\n\r\n const {\r\n randomSeedNumber,\r\n firstName,\r\n lastName,\r\n emailAddress,\r\n agreedToC1,\r\n agreedToC2,\r\n additional1,\r\n additional2,\r\n } = this.state;\r\n\r\n const { textMaximumLength, viewErrors } = this.props;\r\n\r\n const isFilledFirstname = firstName && firstName.length > 0;\r\n const isFilledLastname = lastName && lastName.length > 0;\r\n const isFilledEmail = emailAddress && emailAddress.length > 0;\r\n const isValidEmail = validateEmail(emailAddress).isValid;\r\n const isFilledAdditionalField1 = additional1 && additional1.length > 0;\r\n const isFilledAdditionalField2 = additional2 && additional2.length > 0;\r\n\r\n const checkbox1withRandomSeed = \"checkbox1\" + randomSeedNumber;\r\n const checkbox2withRandomSeed = \"checkbox2\" + randomSeedNumber;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {hideNameFields !== true && (\r\n
    \r\n \r\n \r\n (this.inputFirstnameElement = input)\r\n }\r\n className=\"form-field__input\"\r\n type=\"text\"\r\n value={firstName}\r\n maxLength={textMaximumLength}\r\n onChange={this.handleFirstnameChange}\r\n />\r\n \r\n this.focusOnElement(\r\n this.inputFirstnameElement\r\n )\r\n }\r\n >\r\n {firstnameLabel}\r\n \r\n {viewErrors &&\r\n !nameFieldsAreOptional &&\r\n !isFilledFirstname ? (\r\n
      \r\n
    • \r\n {firstnameError}\r\n
    • \r\n
    \r\n ) : null}\r\n
    \r\n \r\n \r\n (this.inputLastnameElement = input)\r\n }\r\n className=\"form-field__input\"\r\n type=\"text\"\r\n value={lastName}\r\n maxLength={textMaximumLength}\r\n onChange={this.handleLastnameChange}\r\n />\r\n \r\n this.focusOnElement(\r\n this.inputLastnameElement\r\n )\r\n }\r\n >\r\n {lastnameLabel}\r\n \r\n {viewErrors &&\r\n !nameFieldsAreOptional &&\r\n !isFilledLastname ? (\r\n
      \r\n
    • \r\n {lastnameError}\r\n
    • \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n )}\r\n\r\n {hideAdditionalField1 !== true && (\r\n \r\n \r\n (this.inputAdditional1Element = input)\r\n }\r\n className=\"form-field__input\"\r\n type=\"text\"\r\n value={additional1}\r\n maxLength={textMaximumLength}\r\n onChange={this.handleAdditional1Change}\r\n />\r\n \r\n this.focusOnElement(\r\n this.inputAdditional1Element\r\n )\r\n }\r\n >\r\n {additionalField1Label}\r\n \r\n {viewErrors &&\r\n !additionalField1IsOptional &&\r\n !isFilledAdditionalField1 ? (\r\n
      \r\n
    • \r\n {additionalField1Error}\r\n
    • \r\n
    \r\n ) : null}\r\n \r\n )}\r\n\r\n {hideAdditionalField2 !== true && (\r\n \r\n \r\n (this.inputAdditional2Element = input)\r\n }\r\n className=\"form-field__input\"\r\n type=\"text\"\r\n value={additional2}\r\n maxLength={textMaximumLength}\r\n onChange={this.handleAdditional2Change}\r\n />\r\n \r\n this.focusOnElement(\r\n this.inputAdditional2Element\r\n )\r\n }\r\n >\r\n {additionalField2Label}\r\n \r\n {viewErrors &&\r\n !additionalField2IsOptional &&\r\n !isFilledAdditionalField2 ? (\r\n
      \r\n
    • \r\n {additionalField2Error}\r\n
    • \r\n
    \r\n ) : null}\r\n \r\n )}\r\n\r\n \r\n \r\n (this.inputEmailElement = input)\r\n }\r\n className=\"form-field__input\"\r\n type=\"email\"\r\n value={emailAddress}\r\n maxLength={textMaximumLength}\r\n onChange={this.handleEmailChange}\r\n />\r\n \r\n this.focusOnElement(this.inputEmailElement)\r\n }\r\n >\r\n {emailLabel}\r\n \r\n {viewErrors && !isValidEmail ? (\r\n
      \r\n
    • \r\n {emailError}\r\n
    • \r\n
    \r\n ) : null}\r\n \r\n \r\n \r\n {hideCheckbox1 !== true && (\r\n
    \r\n \r\n \r\n \r\n \r\n {viewErrors &&\r\n !checkbox1IsOptional &&\r\n !agreedToC1 ? (\r\n
      \r\n
    • \r\n {checkbox1Error}\r\n
    • \r\n
    \r\n ) : null}\r\n
    \r\n )}\r\n {hideCheckbox2 !== true && (\r\n
    \r\n \r\n \r\n \r\n \r\n {viewErrors &&\r\n !checkbox2IsOptional &&\r\n !agreedToC2 ? (\r\n
      \r\n
    • \r\n {checkbox2Error}\r\n
    • \r\n
    \r\n ) : null}\r\n
    \r\n )}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from 'react'\r\nexport default class StepFinishStatus extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n const {message, statusClass} = this.props;\r\n\r\n return (\r\n
    \r\n )\r\n }\r\n}\r\n","import React, { Component } from 'react'\r\n\r\nexport default class StepQuiz extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.updateResult = this.props.updateResult;\r\n\r\n this.state = { answerValue: this.props.initialResult };\r\n this.updateResult(\r\n true\r\n );\r\n \r\n this.handleChange = this.handleChange.bind(this);\r\n }\r\n\r\n handleChange(event) {\r\n event.preventDefault();\r\n const { name, checked } = event.target;\r\n if (!checked) {\r\n return;\r\n }\r\n const { itemDestinationName } = this.props.options;\r\n\r\n this.updateResult(\r\n true,\r\n itemDestinationName,\r\n name\r\n );\r\n\r\n const { answerValue } = this.state;\r\n let answer = answerValue ? answerValue : {};\r\n answer[itemDestinationName] = name;\r\n\r\n this.setState(() => ({\r\n answerValue: answer\r\n }));\r\n }\r\n\r\n render() {\r\n const { answerValue } = this.state;\r\n const {\r\n possibleChoices,\r\n itemLabel,\r\n itemDestinationName\r\n } = this.props.options;\r\n\r\n const currentAnswer = answerValue && answerValue[itemDestinationName] ? answerValue[itemDestinationName] : possibleChoices[0];\r\n \r\n return (\r\n
    \r\n
    {itemLabel}
    \r\n
    \r\n {possibleChoices.map((option, index) => {\r\n return (\r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\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 this.addListener(this.refs.gtmDynamicMenuClick, 'click', this.saveActionToGtm);\r\n }\r\n\r\n onDestroy() {\r\n eventBus.removeListener(EVENT_DEVICE_TYPE_CHANGED, this.onChangeDeviceType);\r\n }\r\n\r\n saveActionToGtm = (event) => {\r\n const clickedItem = event.target;\r\n const itemText = clickedItem.innerText || clickedItem.textContent;\r\n\r\n gtm.push('Top Ribbon', 'Click', itemText);\r\n }\r\n\r\n onChangeDeviceType = () => {\r\n this.refs.location.classList.remove('is-hidden');\r\n this.refs.locationLatest.classList.remove('is-hidden');\r\n this.locationPanelHeight = this.refs.location.offsetHeight;\r\n\r\n if (!this.visibleLocation) {\r\n anime({\r\n targets: this.refs.location,\r\n marginTop: -this.locationPanelHeight,\r\n duration: 0,\r\n easing: EASING\r\n });\r\n }\r\n if (!this.visibleLocationLatest) {\r\n anime({\r\n targets: this.refs.locationLatest,\r\n marginTop: -this.locationPanelHeight,\r\n duration: 0,\r\n easing: EASING\r\n });\r\n }\r\n }\r\n\r\n setAnimation(arrayItems, boolean) {\r\n if (boolean) {\r\n [...arrayItems].forEach((item) => {\r\n item.classList.add('is-animation');\r\n });\r\n } else {\r\n [...arrayItems].forEach((item) => {\r\n item.classList.remove('is-animation');\r\n });\r\n }\r\n }\r\n\r\n ariaExpandedTrigger(array, state) {\r\n array.forEach((item) => {\r\n item.setAttribute('aria-expanded', state);\r\n });\r\n }\r\n\r\n async toggleLocationsPanel(location, dynamicButton, cb) {\r\n this.locationPanelHeight = location.offsetHeight;\r\n\r\n if (this.headerCanBeAnimated) {\r\n this.headerCanBeAnimated = false;\r\n\r\n switch (location.className.includes('__latest')) {\r\n case true:\r\n if (this.visibleLocationLatest) {\r\n this.closingMenuAnimation(location, dynamicButton);\r\n this.visibleLocationLatest = false;\r\n } else {\r\n if (this.closeOtherMenuAnimation(location)) {\r\n await this.timeout(DURATION_SLIDE);\r\n }\r\n\r\n this.openingMenuAnimation(location, dynamicButton, cb);\r\n this.visibleLocationLatest = true;\r\n }\r\n break;\r\n case false:\r\n if (this.visibleLocation) {\r\n this.closingMenuAnimation(location, dynamicButton);\r\n this.visibleLocation = false;\r\n } else {\r\n if (this.closeOtherMenuAnimation(location)) {\r\n await this.timeout(DURATION_SLIDE);\r\n }\r\n\r\n this.openingMenuAnimation(location, dynamicButton, cb);\r\n this.visibleLocation = true;\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n onKeypressDynamicButton = (event) => {\r\n this.keyboardEvent = true;\r\n event.preventDefault();\r\n this.toggleLocationsPanel(this.refs.location, this.refs.dynamicButton, this.setFocus(this.refs.locationLink));\r\n }\r\n\r\n onKeypressDynamicButtonLatest = (event) => {\r\n this.keyboardEvent = true;\r\n\r\n event.preventDefault();\r\n this.toggleLocationsPanel(this.refs.locationLatest, this.refs.dynamicButtonLatest, this.setFocus(this.refs.locationLinkLatest));\r\n }\r\n\r\n onClickDynamicButton = (event) => {\r\n if (this.keyboardEvent) return;\r\n\r\n event.preventDefault();\r\n this.toggleLocationsPanel(this.refs.location, this.refs.dynamicButton);\r\n }\r\n\r\n onClickDynamicButtonLatest = (event) => {\r\n if (this.keyboardEvent) return;\r\n\r\n event.preventDefault();\r\n this.toggleLocationsPanel(this.refs.locationLatest, this.refs.dynamicButtonLatest);\r\n }\r\n\r\n openingMenuAnimation(location, dynamicButton, cb) {\r\n this.ariaExpandedTrigger(dynamicButton, 'true');\r\n\r\n location.classList.remove('is-hidden');\r\n location.classList.add('is-visible');\r\n\r\n if (location.className.includes('__latest')) {\r\n this.setAnimation(this.refs.dynamicIconsLatest, true);\r\n window.setTimeout(() => {\r\n this.setAnimation(this.refs.locationItemLatest, true);\r\n }, 1);\r\n this.setAnimation(this.refs.locationLinkLatest, true);\r\n } else {\r\n this.setAnimation(this.refs.dynamicIcons, true);\r\n window.setTimeout(() => {\r\n this.setAnimation(this.refs.locationItem, true);\r\n }, 1);\r\n this.setAnimation(this.refs.locationLink, true);\r\n }\r\n\r\n anime({\r\n targets: location,\r\n marginTop: 0,\r\n duration: DURATION_OPEN,\r\n easing: EASING,\r\n complete: () => {\r\n this.keyboardEvent = false;\r\n this.headerCanBeAnimated = true;\r\n if (typeof cb === 'function') {\r\n cb();\r\n }\r\n }\r\n });\r\n }\r\n\r\n closingMenuAnimation(location, dynamicButton) {\r\n this.ariaExpandedTrigger(dynamicButton, 'false');\r\n\r\n if (location.className.includes('__latest')) {\r\n this.setAnimation(this.refs.dynamicIconsLatest, false);\r\n this.setAnimation(this.refs.locationItemLatest, false);\r\n this.setAnimation(this.refs.locationLinkLatest, false);\r\n } else {\r\n this.setAnimation(this.refs.dynamicIcons, false);\r\n this.setAnimation(this.refs.locationItem, false);\r\n this.setAnimation(this.refs.locationLink, false);\r\n }\r\n\r\n anime({\r\n targets: location,\r\n marginTop: -this.locationPanelHeight,\r\n duration: DURATION_CLOSE,\r\n easing: EASING,\r\n complete: () => {\r\n location.classList.remove('is-visible');\r\n location.classList.add('is-hidden');\r\n this.keyboardEvent = false;\r\n this.headerCanBeAnimated = true;\r\n }\r\n });\r\n }\r\n\r\n closeOtherMenuAnimation(location) {\r\n if (location.className.includes('__latest')) {\r\n if (this.visibleLocation) {\r\n this.closingMenuAnimation(this.refs.location, this.refs.dynamicButton);\r\n this.visibleLocation = false;\r\n return true;\r\n }\r\n } else if (this.visibleLocationLatest) {\r\n this.closingMenuAnimation(this.refs.locationLatest, this.refs.dynamicButtonLatest);\r\n this.visibleLocationLatest = false;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n async timeout(interval) {\r\n return new Promise((resolve) => setTimeout(resolve, interval));\r\n }\r\n\r\n setFocus = (locationLink) => {\r\n locationLink[0].focus();\r\n };\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport HeaderComponent from './js/header.component';\r\n\r\nComponentsFactory.getInstance().define('header', HeaderComponent);\r\n","import anime from 'animejs';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport Scroller from '../../../general/js/scroller';\r\nimport * as cookieHelper from '../../sso/helpers/cookie-helper';\r\n\r\nexport default class Hero extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.state = {\r\n isOneClubMember: this.getOneClubMemberValueFromCookie()\r\n };\r\n\r\n this.sticky = this.refs.sticky;\r\n this.stickyIsShown = false;\r\n this.observerIsCreated = false;\r\n this.promptScroller = null;\r\n\r\n this.onResize = this.onResize.bind(this);\r\n this.onClickPrompt = this.onClickPrompt.bind(this);\r\n\r\n this.onResize();\r\n this.init();\r\n}\r\n\r\n init() {\r\n this.disableButtonsWhenUserIsOneClubMember();\r\n this.checkViewportWidth();\r\n this.addBottomPadding();\r\n\r\n this.addListener(window, 'resize', this.onResize);\r\n\r\n if (this.refs.prompt) {\r\n this.initScroller();\r\n }\r\n }\r\n\r\n getOneClubMemberValueFromCookie() {\r\n const cookie = cookieHelper.getCookie('userData');\r\n const parsedCookie = JSON.parse(cookie);\r\n\r\n if (parsedCookie != null) {\r\n return parsedCookie.isOneClubMember;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n disableButtonsWhenUserIsOneClubMember() {\r\n if (this.state.isOneClubMember && this.options.disableCta1 === 'true') {\r\n this.refs.cta1.classList.add('hidden');\r\n this.refs.cta1sticky.classList.add('hidden');\r\n }\r\n\r\n if (this.state.isOneClubMember && this.options.disableCta2 === 'true') {\r\n this.refs.cta2.classList.add('hidden');\r\n this.refs.cta2sticky.classList.add('hidden');\r\n }\r\n }\r\n\r\n checkViewportWidth() {\r\n this.viewportWidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\r\n }\r\n\r\n onResize() {\r\n this.checkViewportWidth();\r\n\r\n if (this.viewportWidth > 767 && !this.observerIsCreated) {\r\n this.removeBottomPadding();\r\n this.createObserver();\r\n } else if (this.viewportWidth < 768 && this.observerIsCreated) {\r\n this.addBottomPadding();\r\n this.observer.disconnect();\r\n this.sticky.classList.remove('is-shown');\r\n this.observerIsCreated = false;\r\n }\r\n }\r\n\r\n createObserver() {\r\n this.observer = new IntersectionObserver((changes) => {\r\n const change = changes[0];\r\n if (change.intersectionRatio > 0) {\r\n this.hideSticky();\r\n } else if (!this.state.isOneClubMember) {\r\n this.showSticky();\r\n } else if (this.options.disableStickyHeader === 'false') {\r\n this.showSticky();\r\n }\r\n });\r\n this.observer.observe(this.element);\r\n this.observerIsCreated = true;\r\n }\r\n\r\n showSticky() {\r\n this.stickyIsShown = true;\r\n this.sticky.classList.add('is-shown');\r\n\r\n anime({\r\n targets: this.sticky,\r\n translateY: [-100, 0],\r\n duration: 500,\r\n easing: 'linear'\r\n });\r\n }\r\n\r\n hideSticky() {\r\n if (this.stickyIsShown) {\r\n this.stickyIsShown = false;\r\n anime({\r\n targets: this.sticky,\r\n translateY: [0, -100],\r\n duration: 300,\r\n easing: 'linear',\r\n complete: () => {\r\n this.sticky.classList.remove('is-shown');\r\n }\r\n });\r\n }\r\n }\r\n\r\n initScroller() {\r\n const elementId = this.refs.prompt.getAttribute('href');\r\n const blockToShow = document.querySelector(elementId);\r\n\r\n if (blockToShow) {\r\n this.promptScroller = new Scroller(blockToShow);\r\n this.addListener(this.refs.prompt, 'click', this.onClickPrompt);\r\n }\r\n }\r\n\r\n onClickPrompt(event) {\r\n event.preventDefault();\r\n this.promptScroller.scrollToTop();\r\n }\r\n\r\n addBottomPadding() {\r\n this.blankElement = document.createElement('div');\r\n this.blankElement.style.height = `${this.sticky.clientHeight}px`;\r\n document.body.appendChild(this.blankElement);\r\n }\r\n\r\n removeBottomPadding() {\r\n if (this.blankElement) {\r\n document.body.removeChild(this.blankElement);\r\n }\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport HeroComponent from './js/hero.component';\r\n\r\nComponentsFactory.getInstance().define('hero', HeroComponent);\r\n","\r\nimport BaseComponent from 'foundation/base-component';\r\n\r\nexport default class ImageGallery extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.total = this.refs.slides.length;\r\n this.setImage(0);\r\n\r\n this.refs.prev.addEventListener('click', () => {\r\n this.setImage(((this.current - 1) + this.total) % this.total);\r\n });\r\n\r\n this.refs.next.addEventListener('click', () => {\r\n this.setImage(((this.current + 1)) % this.total);\r\n });\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['slides'];\r\n }\r\n\r\n setImage(current) {\r\n this.current = current;\r\n\r\n this.refs.slides.forEach((slide, index) => {\r\n if (this.current === index) {\r\n slide.classList.add('is-active');\r\n } else {\r\n slide.classList.remove('is-active');\r\n }\r\n });\r\n\r\n const labelCurrent = this.current < 9 ? ('0' + (this.current + 1)) : (this.current + 1).toString();\r\n const labelTotal = this.total < 10 ? ('0' + this.total) : this.total.toString();\r\n\r\n this.refs.counter.innerHTML = labelCurrent + ' / ' + labelTotal;\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport ImgeGallery from './js/image-gallery.component';\r\nimport './scss/index.scss';\r\n\r\nComponentsFactory.getInstance().define('image-gallery', ImgeGallery);\r\n","import {\r\n hasValue,\r\n isNullOrUndefined,\r\n setHtmlIdAttribute,\r\n} from '../../../general/js/general-helpers';\r\n\r\nexport const initialiseEventCentreInstance =\r\n (clipTag, eventCenterParams) => (state) => {\r\n const { shotViewElement } = state;\r\n\r\n if (hasValue(eventCenterParams) && isNullOrUndefined(shotViewElement)) {\r\n return {\r\n ...state,\r\n shotViewElement: clipTag.eventCentre(eventCenterParams),\r\n };\r\n }\r\n\r\n return {\r\n ...state,\r\n };\r\n };\r\n\r\nexport const setClipTagContainerId = (\r\n liveShotViewConfig,\r\n clipTagContainerDiv\r\n) => {\r\n if (!hasValue(liveShotViewConfig)) return;\r\n\r\n const { eventCentreParameters } = liveShotViewConfig;\r\n\r\n if (!hasValue(eventCentreParameters)) return;\r\n\r\n const { targetElement } = eventCentreParameters;\r\n\r\n setHtmlIdAttribute(clipTagContainerDiv, targetElement);\r\n};\r\n\r\nexport const formatEventCentreParameters = (eventCentreParameters = null) => {\r\n const formattedParams = isValidEventCentreParameters(eventCentreParameters) ?\r\n {\r\n operator: eventCentreParameters.operator,\r\n sport: eventCentreParameters.sport,\r\n eventId: eventCentreParameters.eventId,\r\n targetModule: eventCentreParameters.targetModule,\r\n version: eventCentreParameters.imgaVersion,\r\n language: eventCentreParameters.imgaLanguage,\r\n targetElementSelector: `#${eventCentreParameters.targetElementSelector}`,\r\n } :\r\n {};\r\n\r\n if (!hasValue(formattedParams)) {\r\n return formattedParams;\r\n }\r\n\r\n if (hasValue(eventCentreParameters.environment)) {\r\n formattedParams.env = eventCentreParameters.environment;\r\n }\r\n\r\n if (hasValue(eventCentreParameters.contextView)) {\r\n formattedParams.initialContext = {\r\n view: eventCentreParameters.contextView,\r\n };\r\n }\r\n\r\n return formattedParams;\r\n};\r\n\r\nexport const isValidEventCentreParameters = (eventCentreParameters = null) => {\r\n return (\r\n hasValue(eventCentreParameters) &&\r\n hasValue(eventCentreParameters.operator) &&\r\n hasValue(eventCentreParameters.sport) &&\r\n hasValue(eventCentreParameters.eventId) &&\r\n hasValue(eventCentreParameters.targetModule) &&\r\n hasValue(eventCentreParameters.imgaVersion) &&\r\n hasValue(eventCentreParameters.imgaLanguage) &&\r\n hasValue(eventCentreParameters.targetElementSelector)\r\n );\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n hasValue,\r\n isScriptEmbedded,\r\n embedScript,\r\n} from '../../../general/js/general-helpers';\r\nimport {\r\n initialiseEventCentreInstance,\r\n setClipTagContainerId,\r\n formatEventCentreParameters,\r\n} from './imga-iframe-helpers';\r\n\r\nimport {\r\n getIMGArenaESModuleScriptInnerHTML,\r\n shouldLoadRouteToHoleClipTag,\r\n} from '../../shot-tracker/js/shot-tracker-helpers';\r\n\r\nclass IMGAiFrameHolder extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n shotViewElement: null,\r\n };\r\n\r\n this.clipTagContainerDiv = React.createRef();\r\n\r\n this.loadRouteToHoleClipTag = this.loadRouteToHoleClipTag.bind(this);\r\n this.updateProps = this.updateProps.bind(this);\r\n\r\n window.frontRowSeatESModuleCallback = this.loadRouteToHoleClipTag;\r\n }\r\n\r\n componentDidMount() {\r\n this.updateProps();\r\n this.initHolderDivId();\r\n this.loadShotViewScripts();\r\n }\r\n\r\n updateProps() {\r\n const { eventCentreParameters } = this.props;\r\n\r\n if (\r\n eventCentreParameters !== undefined &&\r\n eventCentreParameters !== null\r\n ) {\r\n eventCentreParameters.targetElementSelector =\r\n eventCentreParameters.targetElement;\r\n }\r\n }\r\n\r\n initHolderDivId() {\r\n const { eventCentreParameters } = this.props;\r\n if (hasValue(eventCentreParameters)) {\r\n setClipTagContainerId(this.props, this.clipTagContainerDiv.current);\r\n }\r\n }\r\n\r\n loadRouteToHoleClipTag() {\r\n const clipTag = window.frontRowSeat;\r\n const routeHolder = this.clipTagContainerDiv.current;\r\n const { eventCentreParameters } = this.props;\r\n\r\n if (shouldLoadRouteToHoleClipTag(routeHolder, clipTag)) {\r\n const formattedEventCenterParams = formatEventCentreParameters(\r\n eventCentreParameters\r\n );\r\n\r\n this.setState(\r\n initialiseEventCentreInstance(\r\n clipTag,\r\n formattedEventCenterParams,\r\n routeHolder\r\n )\r\n );\r\n }\r\n }\r\n\r\n loadShotViewScripts() {\r\n const { shotViewScripts } = this.props;\r\n\r\n if (!hasValue(shotViewScripts)) {\r\n return;\r\n }\r\n\r\n shotViewScripts.forEach((script) => {\r\n const { scriptSourceUrl, scriptType } = script;\r\n let innerHTML = '';\r\n\r\n if (scriptType === 'module') {\r\n innerHTML = getIMGArenaESModuleScriptInnerHTML(scriptSourceUrl);\r\n }\r\n\r\n if (!isScriptEmbedded(scriptSourceUrl, innerHTML)) {\r\n const { loadScriptAsync, useNoModule } = script;\r\n\r\n embedScript(\r\n scriptSourceUrl,\r\n loadScriptAsync,\r\n this.loadRouteToHoleClipTag,\r\n useNoModule,\r\n scriptType,\r\n innerHTML\r\n );\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nIMGAiFrameHolder.propTypes = {\r\n eventCentreParameters: PropTypes.object,\r\n shotViewScripts: PropTypes.array,\r\n};\r\n\r\nexport default IMGAiFrameHolder;\r\n","export function isMobile() {\r\n return window.innerWidth <= 767;\r\n}\r\n","import React, { Fragment } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport IMGAiFrameHolder from './imga-iframe-holder';\r\nimport { isMobile } from '../../../general/js/utils/screen-size-utils';\r\n\r\nclass IMGAiFrameComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n this.updateIframeSize();\r\n }\r\n\r\n updateIframeSize() {\r\n const {\r\n iFrameAspectRatioWdith,\r\n iFrameAspectRatioHeight,\r\n mobileIFrameAspectRatioHeight,\r\n mobileIFrameAspectRatioWidth\r\n } = this.options;\r\n\r\n if (iFrameAspectRatioHeight === '0' &&\r\n iFrameAspectRatioWdith === '0' &&\r\n mobileIFrameAspectRatioHeight === '0' &&\r\n mobileIFrameAspectRatioWidth === '0'\r\n ) {\r\n this.element.style.height = '640px';\r\n } else {\r\n const desktopPaddingTopPercent = `${(iFrameAspectRatioHeight / iFrameAspectRatioWdith) * 100}%`;\r\n const mobilePaddingTopPercent = `${(mobileIFrameAspectRatioHeight / mobileIFrameAspectRatioWidth) * 100}%`;\r\n\r\n this.element.style.paddingTop = isMobile() ? mobilePaddingTopPercent : desktopPaddingTopPercent;\r\n }\r\n }\r\n\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n const { shotViewScripts, eventCentreParameters } = this.options;\r\n\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default IMGAiFrameComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport IMGAiFrameComponent from './js/imga-iframe.component';\r\n\r\nComponentsFactory.getInstance().define('imga-iframe', IMGAiFrameComponent);\r\n","export const base64Decoder = {\r\n convert(input) {\r\n return getAtob()(input);\r\n },\r\n};\r\n\r\nexport const base64UrlDecode = (str) => {\r\n const base64 = str.replace(/-/g, '+').replace(/_/g, '/');\r\n\r\n return decodeURIComponent(\r\n base64Decoder\r\n .convert(base64)\r\n .split('')\r\n .map((char) => `%${`00${char.charCodeAt(0).toString(16)}`.slice(-2)}`)\r\n .join('')\r\n );\r\n};\r\n\r\nexport const getAtob = () => {\r\n // browser\r\n if (typeof window !== 'undefined' && typeof window.atob === 'function') {\r\n return window.atob;\r\n }\r\n\r\n // Next.js global polyfill\r\n if (typeof atob === 'function') {\r\n return atob;\r\n }\r\n\r\n return undefined;\r\n};\r\n","import KJUR from 'jsrsasign';\r\nimport { hasValue, safeParseJSON } from '../general-helpers';\r\nimport { base64UrlDecode } from './decode-utils';\r\n\r\nexport const decodeJWT = (token) => {\r\n if (!hasValue(token)) {\r\n return undefined;\r\n }\r\n\r\n const tokenParts = token.split('.');\r\n\r\n if (tokenParts.length !== 3) {\r\n console.error('Invalid Token');\r\n return undefined;\r\n }\r\n\r\n try {\r\n const header = safeParseJSON(base64UrlDecode(tokenParts[0]));\r\n const payload = safeParseJSON(base64UrlDecode(tokenParts[1]));\r\n const signature = tokenParts[2];\r\n\r\n return {\r\n toString: () => token,\r\n header,\r\n payload,\r\n signature\r\n };\r\n } catch (err) {\r\n console.error(err);\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const encodeJWT = (header, payload, secret = '') => {\r\n try {\r\n const sHeader = JSON.stringify(header);\r\n const sPayload = JSON.stringify(payload);\r\n const sJWT = KJUR.jws.JWS.sign(null, sHeader, sPayload, secret);\r\n\r\n return sJWT;\r\n } catch (error) {\r\n console.error('Error encoding JWT:', error);\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const stripToken = (token, allowedAttributes, secret = '', overWriteHeader = undefined) => {\r\n const decoded = decodeJWT(token);\r\n\r\n if (!decoded) {\r\n console.error('Invalid token');\r\n return undefined;\r\n }\r\n\r\n const { header, payload } = decoded;\r\n\r\n const filteredPayload = Object.keys(payload)\r\n .filter((key) => allowedAttributes.includes(key))\r\n .reduce((obj, key) => {\r\n obj[key] = payload[key];\r\n return obj;\r\n }, {});\r\n\r\n const headerToEncode = {\r\n ...header,\r\n ...overWriteHeader\r\n };\r\n\r\n return encodeJWT(headerToEncode, filteredPayload, secret);\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { getCurrentUserAttributes } from '../../sso/components/oauth/auth-provider-methods';\r\nimport { stripToken } from '../../../general/js/utils/jwt-utils';\r\nimport { hasValue, safeParseJSON, stringToArray } from '../../../general/js/general-helpers';\r\nimport { addQueryParams } from '../../../general/js/utils';\r\n\r\nexport function IMGAMatchupsGameLayout(props) {\r\n const {\r\n allowedUserAttributes,\r\n iFrameDatasource,\r\n tokenHeader,\r\n tokenQueryKey\r\n } = props;\r\n\r\n const [userIdTokenShortened, setUserIdTokenShortened] = useState(undefined);\r\n\r\n useEffect(() => {\r\n getCurrentUserAttributes()\r\n .then((user) => {\r\n setUserIdTokenShortened(\r\n stripToken(\r\n user.idToken,\r\n stringToArray(allowedUserAttributes),\r\n '',\r\n safeParseJSON(tokenHeader)\r\n )\r\n );\r\n })\r\n .catch((e) => {\r\n console.error(e);\r\n });\r\n }, []);\r\n\r\n if (\r\n !hasValue(userIdTokenShortened) ||\r\n !hasValue(iFrameDatasource) ||\r\n !hasValue(iFrameDatasource.source)) {\r\n return null;\r\n }\r\n\r\n const iFrameSrc = addQueryParams(iFrameDatasource.source, [\r\n {\r\n key: tokenQueryKey,\r\n value: userIdTokenShortened\r\n }\r\n ]);\r\n\r\n return (\r\n \r\n );\r\n}\r\n","import React, { Fragment } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport { IMGAMatchupsGameLayout } from './imga-matchups-game-layout';\r\nimport { isMobile } from '../../../general/js/utils/screen-size-utils';\r\n\r\nclass IMGAMatchupsGameComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.updatePaddingTop();\r\n this.render();\r\n }\r\n\r\n updatePaddingTop() {\r\n const {\r\n iFrameAspectRatioWidth,\r\n iFrameAspectRatioHeight,\r\n mobileIFrameAspectRatioHeight,\r\n mobileIFrameAspectRatioWidth\r\n } = this.options;\r\n\r\n const desktopPaddingTopPercent = `${(iFrameAspectRatioHeight / iFrameAspectRatioWidth) * 100}%`;\r\n const mobilePaddingTopPercent = `${(mobileIFrameAspectRatioHeight / mobileIFrameAspectRatioWidth) * 100}%`;\r\n\r\n this.element.style.paddingTop = isMobile() ? mobilePaddingTopPercent : desktopPaddingTopPercent;\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default IMGAMatchupsGameComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from '../../foundation/components-factory';\r\nimport IMGAMatchupsGameComponent from './js/imga-matchups-game.component';\r\n\r\nComponentsFactory.getInstance().define('imga-matchups-game', IMGAMatchupsGameComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport eventBus from '../../../general/js/event-bus';\r\n\r\nexport default class LargeHero extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n eventBus.emit('large-hero-init', {\r\n largeHeroStickyRef: this.refs.sticky\r\n });\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport LargeHero from './js/large-hero.component';\r\n\r\nComponentsFactory.getInstance().define('large-hero', LargeHero);\r\n","import 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":""}