{"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/hocComponents/withLoadingInterval.js","webpack:///./project/randa/code/assets/components/sso/components/hocComponents/index.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","shouldCheckAuthUser","handleOauthSignedIn","setDataInLocalStorage","sub","setCheckedUser","ticketingAccountId","newMembershipList","getDataFromLocalStorage","TOCH_USER_MEMBERSHIPS","loadUserOrderHistory","href","encodeURIComponent","oneClubHeaderElement","getElementById","isNullOrUndefined","userDataCookie","app","getUserOrderHistory","loadTicketsInfo","userTicketsCallbackUrl","username","textContent","storedLastVisitDate","LAST_VISIT_DATE","storedDate","currentDate","toDateString","needsToUpdateLastVisit","_getLastLogInData","lastLoggedInDataCallBackUrl","updateUserResponse","hasErrors","updateUserError","_getLastLogInData2","ModalTriggerLoginComponent","ModalTriggerComponent","asyncUrl","modal_trigger_login_component_getPrototypeOf","failedReturnUrlParam","UrlHelper","getUrlByParams","modal_trigger_login_component_defineProperty","getRelativeUrl","QueryConstants","SHOW_POPUP","status","OauthHandlerComponent","oauth_handler_component_classCallCheck","oauth_handler_component_getPrototypeOf","handleCustomOAuthState","oauth_handler_component_assertThisInitialized","redirectAfterSignOut","returnUrl","getHostedUIReturnUrlFromSessionStorage","AccountComponent","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","withLoadingInterval","WithLoadingInterval","_Component","withLoadingInterval_classCallCheck","withLoadingInterval_getPrototypeOf","withLoadingInterval_defineProperty","withLoadingInterval_assertThisInitialized","elapsedTime","withLoadingInterval_objectSpread","withLoadingInterval_inherits","startInterval","stopInterval","withLoadingInterval_extends","displayName","AccountHomePage","AccountHomePage_classCallCheck","AccountHomePage_getPrototypeOf","loadHomePageTicketsData","AccountHomePage_assertThisInitialized","getHomePageTicketsDataCallbackUrl","loadingErrorMessage","elapsedTimeLimit","isTicketsDataLoadedSuccessful","actionsToPerformValue","formSubTitle","actionOrderType","formSubtitleSplit","shouldDisplayHomePageTicketsData","checkElapsedTimeMessage","elapsedTimeError","account_home_page_FileActionsTable","account_home_page_Upcoming","account_home_page_LastOrder","SSOCloseButton","onCloseButtonClick","AddAddressForm","AddAddressForm_classCallCheck","AddAddressForm_getPrototypeOf","displayAddAddressForm","AddAddressForm_assertThisInitialized","submitAddressData","buildNewAddress","onAddAddressClick","newAddress","onCloseAddAddressFormClick","utility_SSOCloseButton","FormAddressDisplayField","FormAddressDisplayField_classCallCheck","FormAddressDisplayField_getPrototypeOf","mainValue","shippingAddressValue","billingAddressValue","handleEditAddress","FormAddressDisplayField_assertThisInitialized","handleRemoveAddress","handleUpdateAddress","updateAddressValues","displayCitySection","displayCountrySection","onEditAddressClick","onRemoveAddressClick","addressType","onUpdateAddressClick","updatedAddress","addressFlaggedForUpdate","stateName","UpdateAddressForm","UpdateAddressForm_classCallCheck","UpdateAddressForm_getPrototypeOf","UpdateAddressForm_assertThisInitialized","displayUpdateAddressForm","getAddressForUpdate","onCloseUpdateAddressFormClick","addressesFormConstants","addressDisplayForm","accountFormData","callbackFunctions","displayUserAddresses","addressAddForm","handleAddNewAddress","handleShowDisplayAddressForm","user_addresses_AddAddressForm","addressUpdateForm","getUpdateAddressFormData","user_addresses_UpdateAddressForm","handleShowAddAddressForm","noAddressFoundText","displayAddresses","handleShowUpdateAddressForm","addressesDisplayForm","user_addresses_FormAddressDisplayField","UserAddressesForm","UserAddressesForm_classCallCheck","UserAddressesForm_getPrototypeOf","submitAddressesData","UserAddressesForm_assertThisInitialized","displayAddressesForm","handleUpdateFinish","removeAddressConfirmation","addressToRemove","addAddress","getUpdatedAddresses","flaggedForUpdate","canUpdatedAddresses","canRemoveAddress","addressToRemoveIndex","cannotRemoveLastAddressMessage","cannotRemoveMainAddressMessage","cannotRemoveShippingAddressMessage","cannotRemoveBillingAddressMessage","addressFlaggedForUpdateIndex","updateUserAddressesSuccessText","userAddressesFormStateConstants","resetAddressesFormStateConstants","areUserAddressesUpdatedSuccessful","removeAddressInputText","removeAddressModalWarning","removeAddressModalWarningSplit","EmailNotificationSettingsForm","EmailNotificationSettingsForm_classCallCheck","EmailNotificationSettingsForm_getPrototypeOf","getSelectedFormData","EmailNotificationSettingsForm_objectSpread","displayEmailNotificationSettingsFrom","EmailNotificationSettingsForm_assertThisInitialized","submitUserData","_accountData$preferen","getSelectedValues","getSelectedValuesFromProperty","defaultChoices","selectedValues","updatedNotificationSuccessMessage","eventTarge","PushNotificationsForm","ResaleTicketsButton","onResaleClick","buttonColor","ResaleTicketsFAQ","questions","question","checkId","shouldDisplayResaleButton","buttonCriteria","ballotCriteria","showResaleButton","userMemberships","criteriaList","criterion","ResaleTickets","ResaleTickets_classCallCheck","ResaleTickets_getPrototypeOf","handleTicketsResaleBuy","ResaleTickets_assertThisInitialized","handleTicketsResaleSell","getOauthResaleRedirectUri","buyLink","renderedComponent","returnUri","useEncode","addQueryParam","sellLink","resaleTicketsTitle","resaleTicketsInformationOpen","sellButtonCriteria","buyButtonCriteria","resaleTicketsImageSource","resaleTicketsImageText","resaleTicketsFAQTitle","resaleTicketsFAQs","resaleTicketsIntro","showBuyLink","showSellLink","texts","introText","resale_tickets_ResaleTicketsButton","sizes","srcSet","resale_tickets_ResaleTicketsFAQ","Order","orderItem","onViewFileDetailsClick","handleViewFileDetailsClick","OrdersPagination","numberOfPages","activePageNumber","onPageNumberChange","shouldDisplayPaginator","goToPage","pageNumberButtons","getPageNumberButtons","updatedPagination","displayPagination","OrdersList","_ref$formData","handleDisplayCancelledFilesChange","handlePageNumberChange","orderHistoryItem","order_history_display_Order","displayOrderList","order_history_display_OrdersPagination","FileSummary","onPrintSummaryButtonClick","onCancelButtonClick","onPayReservationClick","showCancelButton","SecutixReservationStatus","SecutixReservationOrderType","SecutixReservationRunningStatus","FileContentSummary","fileContents","details","Type","InstallmentTable","paymentUrl","displayInstallmentRow","PaymentSummary","isPaymentSummaryEmpty","foundCountry","file_summary_display_InstallmentTable","ChangeHistorySection","historyContentsLength","isHistoryContentsEmpty","historyContents","onPrintDocumentInvoiceButtonClick","historyContent","orderHistoryFormConstants","orderHistoryDisplayForm","order_history_display_OrdersList","fileDetailsDisplayForm","orderHistoryForDisplay","handlePrintSummaryButton","handlePrintDocumentInvoiceButtonClick","handleCloseFormButton","handlePayReservationClick","file_summary_display_FileSummary","file_summary_display_FileContentSummary","file_summary_display_PaymentSummary","file_summary_display_ChangeHistorySection","UserOrderHistory","UserOrderHistory_classCallCheck","UserOrderHistory_getPrototypeOf","showPopup","loadOrderHistoryData","UserOrderHistory_assertThisInitialized","reloadOrderHistoryData","displayOrderHistoryForm","loadFileDetails","handleCloseFileDetailsDisplayForm","toggleModalClose","handlePayReservation","areOrderDetailsLoadedSuccessful","loadOrders","getOrderHistoryPagesCallbackUrl","UserOrderHistory_defineProperty","getOrderHistoryCallbackUrl","getOrderDetailsCallbackUrl","downloadFileSummaryPdfCallbackUrl","showDialogBox","documentId","_this$props7","downloadDocumentPdfCallbackUrl","_this$props8","orderHistoryDisplayData","_this$props9","logoSrc","masterCardDialogBox","areOrderHistoryPagesLoadedSuccessful","isOrderHistoryLoadedSuccessful","UserDetailsFormData","ssoUserDetailsFields","updateUserDetailsCallbackUrl","user_details_form_data_defineProperty","getUserDetailsFieldsWithDefaultValues","paymentStatus","WAITING","IN_PROGRESS","AUTHORIZED","PAID","CANCELLED_BY_USER","FAILED","WAITING_MANUAL_VALIDATION","FAILED_REJECTED","getFileStates","runningFileStateText","suspendedFileStateText","inOptionFileStateText","inReservationFileStateText","optionReservFileStateText","confirmedFileStateText","soldFileStateText","notSoldFileStateText","partSoldFileStateText","canceledFileStateText","abandonedFileStateText","techErrorFileStateText","fileStates","getPaymentStatuses","waitingPaymentStatusText","inProgressPaymentStatusText","authorizedPaymentStatusText","paidPaymentStatusText","cancelledByUserPaymentStatusText","failedPaymentStatusText","abandonedPaymentStatusText","waitingManualValidationPaymentStatusText","failedRejectedPaymentStatusText","paymentStatuses","getOrderTypes","saleOrderTypeText","refundClientOrderTypeText","refundOrganizationOrderTypeText","exchangeOrganizationOrderTypeText","exchangeClientOrderTypeText","reservationOrderTypeText","renewalOrderTypeText","optionOrderTypeText","reservationFreeingOrderTypeText","optionFreeingOrderTypeText","stTransferOrderTypeText","orderTypes","AccountHomePageFormData","saleActionOrderTypeText","refundClientActionOrderTypeText","refundOrganizationActionOrderTypeText","exchangeOrganizationActionOrderTypeText","exchangeClientActionOrderTypeText","reservationActionOrderTypeText","renewalActionOrderTypeText","optionActionOrderTypeText","reservationFreeingActionOrderTypeText","optionFreeingActionOrderTypeText","stTransferActionOrderTypeText","actionOrderTypes","ssoAccountHomePageFields","ssoOrderHistoryFields","UserAddressesDisplayFormData","ssoUserAddressesFields","addAddressCallBackUrl","addAddressActionSuccessText","updateAddressCallBackUrl","updateAddressActionSuccessText","TicketOwnerDialog","TicketOwnerDialog_classCallCheck","TicketOwnerDialog_getPrototypeOf","displayTicketsDialogForm","TicketOwnerDialog_assertThisInitialized","handleSaveAndContinue","onSaveAndContinueClick","handleCloseTicketDialog","printTicketDialogText","TicketsDisplay","TicketsDisplay_classCallCheck","TicketsDisplay_getPrototypeOf","getTicketStatusTexts","TicketsDisplay_assertThisInitialized","handlePrintTicket","ticketIsPrintableText","ticketIsNotPrintableText","ticketIsAlreadyPrintedText","isPrintable","isAlreadyPrinted","TicketsDisplay_objectSpread","tickets","ticketType","fileId","user_tickets_TicketOwnerDialog","TicketGroups","TicketGroups_classCallCheck","TicketGroups_getPrototypeOf","ticketGroups","ticketGroup","scrollToRef","ticketEvent","user_tickets_TicketsDisplay","TicketModalBody","printTicketModalText","UserTickets","UserTickets_classCallCheck","UserTickets_getPrototypeOf","loadUserTicketsData","UserTickets_assertThisInitialized","reloadUserTicketsData","displayUserTicketsForm","displayAvailableTicketsData","displayConfirmationModal","handleHideOldTicketsChange","handlePrintTicketClick","isPdfFileDownloadedSuccessful","isUserTicketsDataLoadedSuccessful","noTicketsFoundText","shouldDisplayAvailableTickets","shouldDisplayNoTicketsFound","userTicket","user_tickets_TicketGroups","displayLoadingError","printTicketInputText","user_tickets_TicketModalBody","_this$props$formData","UserTickets_objectSpread","downloadTicketPdfCallbackUrl","getTicketsCallbackUrl","ChangePasswordFormData","ssoChangePasswordFields","TheOneClubIntro","imageText","TheOneClubMotivation","reasons","reason","htmlText","TheOneClubFAQ","LeaveOneClubModalBody","leaveTheOneClubDialogBoxTitle","leaveTheOneClubDialogBoxMessage","leaveOneClubDialogBoxCheckText","onLeaveOneClubClick","leaveTheOneClubDialogBoxMessageSplit","TheOneClub","TheOneClub_classCallCheck","TheOneClub_getPrototypeOf","TheOneClub_objectSpread","shouldLeaveOneClub","displayTheOneClubForm","TheOneClub_assertThisInitialized","handleJoinNowClick","scrollToForm","handleApproveLeaveOneClub","handleLeaveOneClubCheck","hasOneClubAccount","userAddedToAddressBookSuccessful","joinTheOneClubActionSuccessText","leaveTheOneClubActionSuccessText","updateDetailsActionSuccessText","_objectSpread16","_this$state3","leaveTheOneClubDialogBoxAgreeButton","the_one_club_LeaveOneClubModalBody","_this$state4","joinTheOneClubInputLabelText","theOneClubImageSource","theOneClubImageText","theOneClubMotivationTitle","theOneClubMotivationImageSource","theOneClubReasons","theOneClubFAQTitle","theOneClubFAQs","_this$state5","the_one_club_TheOneClubIntro","the_one_club_TheOneClubMotivation","the_one_club_TheOneClubFAQ","OrderHistoryDisplayFormData","mastercardDialogBox","mastercardDialogBoxBanner","UserTicketsDisplayFormData","ssoUserTicketsFields","TheOneClubFormData","ssoTheOneClubFields","theOneClubVideoText","theOneClubVideoWebmSource","theOneClubThumbnailSource","theOneClubVideoSource","getFieldsWithDefaultValues","TicketsResaleFormData","displayResaleCriteria","ssoAccountResaleTicketsFields","EmailNotificationSettingsFormData","updateNotificationSettingsDataCallbackUrl","channelsSection","userAccountContentConstants","accountHomePage","userDetailsForm","changePasswordForm","userAddressesForm","emailNotificationSettings","pushNotifications","userOrderHistory","userTickets","theOneClub","resaleTickets","userAccountMenuConstants","userAccountFormConstants","handleViewTicketsClick","account_home_page_AccountHomePage","user_details_UserDetailsForm","change_password_ChangePasswordForm","_accountFormData$ssoU","getCountry","selectedStateName","user_addresses_UserAddressesForm","the_one_club_TheOneClub","resale_tickets_ResaleTickets","email_notification_settings_EmailNotificationSettingsForm","user_order_history_UserOrderHistory","user_tickets_UserTickets","AccountMenuLinks","accountMenu","displayResaleTicketsMenuItem","componentToRender","toggleDisplayMenu","handleChangeAccountDetailsContent","theOneClubChildItem","resaleTicketsChildItem","childItem","accountDetailsLink","newUrl","onMouseDown","displayMenuChildren","shouldDisplayMenu","AccountMenu","fullName","handleHashChange","user_account_AccountMenuLinks","UserAccountPage","UserAccountPage_classCallCheck","UserAccountPage_getPrototypeOf","modalTriggerPromoPanelRef","modalTrigger","UserAccountPage_assertThisInitialized","updateComponentToRenderDisplay","updateComponentToRender","displayMyAccountPage","displayAccountDetailsContent","isRefMounted","refMounted","titleLabel","getTitleLabel","getInitials","customEvent","UserAccountPage_objectSpread","nexComponentToRender","callbackFunction","shouldRefreshComponent","getUserDataCallbackUrl","modalTriggerPromoPanel","serverErrorMessage","dataLoadedSuccessful","USER_STATE_VALID","data-dc-modal-trigger-promo-panel-options","user_account_AccountMenu","copyOfAccountFormData","copyOfUserAccountData","DefaultRegisterForm","DefaultRegisterForm_classCallCheck","DefaultRegisterForm_getPrototypeOf","DefaultRegisterForm_objectSpread","loadRegisterFormData","DefaultRegisterForm_assertThisInitialized","displayDefaultRegisterForm","updateState","TicketingRegisterForm","TicketingRegisterForm_classCallCheck","TicketingRegisterForm_getPrototypeOf","TicketingRegisterForm_objectSpread","TicketingRegisterForm_assertThisInitialized","displayTicketingRegisterForm","finishFormSubmit","trackTicketingAccountAction","trackTicketingAccountActionClick","copyOfRegisterFormData","SignInForm","SignInForm_classCallCheck","SignInForm_getPrototypeOf","SignInForm_objectSpread","gtmTrigger","displaySignInForm","SignInForm_assertThisInitialized","submitSignInData","handleSignInSuccess","updateLastLogInUserDetails","loadSignInFormData","getNextComponentToRender","onNewPasswordRequired","userLastLogInDataErrorMessages","signInFormHelpers","_signInFormHelpers$ge","cognitUser","onSignInSuccess","signInSuccessFormData","upgradeToOneClubFormData","redirectToAddress","REDIRECT_TO","TOCH_USER_EMAIL","SignInSuccess","upgradeAccountFormActions","purchaseAttemptError","retryPurchase","UpgradeToTicketingAccountForm","UpgradeToTicketingAccountForm_classCallCheck","UpgradeToTicketingAccountForm_getPrototypeOf","UpgradeToTicketingAccountForm_objectSpread","UpgradeToTicketingAccountForm_defineProperty","displayUpgradeToTicketingAccountForm","UpgradeToTicketingAccountForm_assertThisInitialized","handleAccountUpgradeSuccess","isFromResale","isPaymentAttemptSuccessful","hostname","basketActions","UpgradeToOneClubAccountForm","UpgradeToOneClubAccountForm_classCallCheck","UpgradeToOneClubAccountForm_getPrototypeOf","UpgradeToOneClubAccountForm_objectSpread","UpgradeToOneClubAccountForm_defineProperty","displayUpgradeToOneClubAccountForm","UpgradeToOneClubAccountForm_assertThisInitialized","updateTOCHUserMemberships","oneClubHubData","IsOneClubHubUpgrade","ReturnUrl","NewPasswordRequiredForm","NewPasswordRequiredForm_classCallCheck","NewPasswordRequiredForm_getPrototypeOf","NewPasswordRequiredForm_assertThisInitialized","displayNewPasswordRequiredForm","submitNewPasswordData","loadNewPasswordRequiredForm","isNewPasswordSavedSuccessful","onResetSuccess","challengeParam","isNewPasswordRequiredFormDataLoadedSuccessful","RaMembersRegisterForm","RaMembersRegisterForm_classCallCheck","RaMembersRegisterForm_getPrototypeOf","RaMembersRegisterForm_objectSpread","RaMembersRegisterForm_assertThisInitialized","displayRaMembersRegisterForm","isRAMembersRegister","RaMembersSignInForm","RaMembersSignInForm_classCallCheck","RaMembersSignInForm_getPrototypeOf","RaMembersSignInForm_assertThisInitialized","RaMembersSummaryDetailsFormData","ra_members_summary_form_data_defineProperty","getRaMembersSummaryUserDetailsFieldsWithDefaultValues","RaMembersSummaryForm","RaMembersSummaryForm_classCallCheck","RaMembersSummaryForm_getPrototypeOf","RaMembersSummaryForm_objectSpread","RaMembersSummaryForm_defineProperty","displayRaMembersSummaryForm","RaMembersSummaryForm_assertThisInitialized","handleUserUpdateRaMembersSummarySuccess","submitRaMembersSummaryData","handleRaMemberIdChange","toggleModalCloseButton","displayButton","PrivacyPolicyMessage","_useState10","SignInSuccessForm_slicedToArray","_useState12","privacyAndPolicy","privacyPolicyMessage","SignInSuccessForm_MultiLineMessage","privacyPolicyConsentText","agreeToPrivacyPolicyAndTermsAndConditions","updateButtonText","PrivacyPolicyAndTermsAndConditionsMessage","_useState14","_useState16","privacyPolicyAndTermsAndConditions","privacyAndTermsMessage","agreedPrivacyPolicy","setAgreePrivacyPolicy","agreedTermsAndConditions","setAgreeTermsAndConditions","ssoFormConstants","sso_form_constants_defineProperty","_ssoFormConstants","handleSignIn","handleForgotPassword","one_club_register_OneClubRegisterForm","default_register_DefaultRegisterForm","ticketing_register_TicketingRegisterForm","RaMembersRegister","handleRaMembersRegisterSuccess","handleRaMembersSignIn","ra_members_RaMembersRegisterForm","upgrade_to_ticketing_UpgradeToTicketingAccountForm","upgrade_to_one_club_UpgradeToOneClubAccountForm","handleRegister","handleSignInSucces","sign_in_SignInForm","ra_members_RaMembersSignInForm","sign_in_SignInSuccessForm","NewPasswordRequired","new_password_required_NewPasswordRequiredForm","ForgotPassword","forgot_password_ForgotPasswordForm","BallotForgotPassword","handleBallotSignIn","ResetPassword","reset_password_ResetPasswordForm","VerifyEmail","_ref15","OneClubRegisterSuccess","_ref16","user_register_success_form_UserRegisterSuccessForm","RaMembersRegisterSuccess","_ref17","UserAccount","_ref18","user_account_UserAccountPage","_ref19","ballot_BallotRegisterForm","_ref20","_ref21","_ref22","ballot_BallotSummaryForm","_ref23","item_list_SSOItemListForm","_ref24","ra_members_RaMembersSummaryForm","_ref25","handleCognitoHostedUISignIn","handleBallotForgotPassword","handleBallotRegister","ballot_BallotSignInForm","_ref26","ballot_BallotSignInSuccessForm","PreRegisterForm","_ref27","SSOForm","SSOForm_classCallCheck","SSOForm_getPrototypeOf","ssoContext","currentScenarioTitle","IsPopup","initialFormType","isFormDataDirty","modalOpen","displaySSOForm","SSOForm_assertThisInitialized","onModalOpen","getTransitionToForm","SSOForm_objectSpread","transitionToForm","nextFormTypeAfterRegister","_this$props$formData2","nextFormTypeAfterSubmit","nextFormAfterSubmit","nextFormType","isBallotForm","ballotRedirectUrl","_this$props$formData3","formForTransitionTo","_this$props$formData4","_this$props$formData5","isFromButtonEvent","onSignInLinkClickAction","shouldDisplayForm","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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8I,gBACAC,aACA7G,mBACAE,kBACAnC,WACAvuH,eACAu3H,oBAAqByC,EACrBxC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAcG,gBAC5B,MAAO,CACHn1D,YACA44D,kBAAmB,eACnB8I,gBACAC,aACA7G,mBACAE,kBACAnC,WACAvuH,eACAu3H,oBAAqB0C,EACrBzC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAcr4D,UAC5B,MAAO,CACHqD,YACA44D,kBAAmB,aACnB8I,gBACAC,aACA93J,aACAixJ,mBACAE,kBACAnC,WACAvuH,eACAu3H,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAciC,WAC5B,MAAO,CACHj3D,YACA44D,kBAAmB,aACnB8I,gBACA73J,aACA83J,aACA7G,mBACAE,kBACAnC,WACAvuH,eACAu3H,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAcv1D,SAC5B,MAAO,CACHO,YACA44D,kBAAmB,cACnB8I,gBACA73J,aACA83J,aACA7G,mBACAE,kBACAnC,WACAvuH,eACAu3H,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAcl4D,aAC5B,MAAO,CACHkD,YACA44D,kBAAmB,iBACnB8I,gBACAC,aACA93J,aACAixJ,mBACAE,kBACAnC,WACAvuH,eACAu3H,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAcj4D,aAC5B,MAAO,CACHiD,YACA44D,kBAAmB,iBACnB8I,gBACAC,aACA93J,aACAixJ,mBACAE,kBACAnC,WACAvuH,eACAu3H,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAcK,aAC5B,MAAO,CACHr1D,YACA44D,kBAAmB,iBACnB8I,gBACA73J,aACA83J,aACA7G,mBACAE,kBACAnC,WACAvuH,eACAu3H,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAchQ,GAAc/3D,KAC5B,MAAO,CACH+C,YACA44D,kBAAmB,oBACnB8I,gBACA73J,aACA83J,aACA7G,mB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","file":"app.7c8d0e0a270ad5ef30b8.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 const bypassCache = userService.shouldCheckAuthUser();\r\n Auth.currentAuthenticatedUser({ bypassCache })\r\n .then((user) => {\r\n updateUserDetailsCookie(user);\r\n this.accountinfoShow(user.attributes.given_name);\r\n Oauth.handleOauthSignedIn({ allowReload: false, useDefaultRedirectUri: false });\r\n\r\n userService.setDataInLocalStorage(USER_ID, user.attributes.sub);\r\n cookieHelper.setCookiOnDomain(CookieNames.UserId, user.attributes.sub);\r\n if(bypassCache) {\r\n userService.setCheckedUser();\r\n }\r\n\r\n const ticketingAccountId = user.attributes['custom:TicketingAccountId'];\r\n\r\n if (ticketingAccountId) {\r\n userService.setDataInLocalStorage(SECUTIX_CONTACT_ID, ticketingAccountId);\r\n }\r\n\r\n const newMembershipList = user.attributes['custom:Membership'];\r\n const showOneClubHubLink = newMembershipList.split(';').includes(MembershipTypes.OneClub);\r\n const oldMembershipList = JSON.parse(userService.getDataFromLocalStorage(CookieNames.TOCH_USER_MEMBERSHIPS));\r\n\r\n if (newMembershipList !== oldMembershipList) {\r\n userService.setTOCHUserMembershipsInLocalStorage(JSON.stringify(newMembershipList));\r\n this.updateMyOneClubLink(showOneClubHubLink);\r\n }\r\n })\r\n .catch(() => {\r\n this.signInLinkShow();\r\n });\r\n }\r\n\r\n getUserOrderHistory() {\r\n return Auth.currentAuthenticatedUser()\r\n .then(() => {\r\n userService.loadUserOrderHistory(this.userOrderHistoryCallbackUrl, this.ssoDomain);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n onSignOut = (event) => {\r\n event.preventDefault();\r\n\r\n setOauthSignOutReturnUrl();\r\n\r\n userService.signOut();\r\n\r\n userService.removeDataFromLocalStorage(SECUTIX_CONTACT_ID);\r\n userService.removeDataFromLocalStorage(USER_ID);\r\n\r\n cookieHelper.removeCookie(CookieNames.UserId);\r\n };\r\n\r\n getRedirectUrl() {\r\n if (window.location.href.includes('account/profile')) {\r\n return encodeURIComponent(window.location.origin);\r\n }\r\n\r\n return encodeURIComponent(window.location.href);\r\n }\r\n\r\n onUserButtonClick = () => {\r\n if (!this.refs.tooltip) return;\r\n\r\n if (this.refs.tooltip.classList.contains('is-visible')) {\r\n this.refs.tooltip.classList.remove('is-visible');\r\n } else {\r\n this.refs.tooltip.classList.add('is-visible');\r\n }\r\n };\r\n\r\n onkeydown = (event) => {\r\n if (event.keyCode === 27) {\r\n if (!this.refs.tooltip) return;\r\n this.refs.tooltip.classList.remove('is-visible');\r\n }\r\n };\r\n\r\n outerClickHandle = (event) => {\r\n if (\r\n (this.refs.tooltip && !this.refs.tooltip.contains(event.target)) &&\r\n (this.refs.button && !this.refs.button.contains(event.target)) &&\r\n (this.refs.signInLink && !this.refs.signInLink.contains(event.target))\r\n ) {\r\n this.refs.tooltip.classList.remove('is-visible');\r\n }\r\n };\r\n\r\n tochDataChangedHandle = (event) => {\r\n this.updateMyOneClubLink(event.detail.showOneClubHubLink);\r\n userService.setTOCHUserMembershipsInLocalStorage(JSON.stringify(event.detail.membership));\r\n };\r\n\r\n updateMyOneClubLink(showOneClubHubLink) {\r\n const oneClubHeaderElement = document.getElementById('my-one-club-link');\r\n\r\n if (isNullOrUndefined(oneClubHeaderElement)) {\r\n return;\r\n }\r\n\r\n if (showOneClubHubLink) {\r\n oneClubHeaderElement.classList.remove('hidden');\r\n } else {\r\n oneClubHeaderElement.classList.add('hidden');\r\n }\r\n }\r\n\r\n checkSignIn() {\r\n const userDataCookie = Cookies.get(app.state.userDataCookieName);\r\n if (_.isEmpty(userDataCookie)) {\r\n return;\r\n }\r\n\r\n const userData = JSON.parse(userDataCookie);\r\n if (_.isEmpty(userData)) {\r\n return;\r\n }\r\n\r\n if (!userData.isSignedIn) {\r\n return;\r\n }\r\n\r\n this.getUserOrderHistory();\r\n userService.loadTicketsInfo(this.options.userTicketsCallbackUrl);\r\n\r\n this.element.classList.add('is-signed-in');\r\n this.refs.button.classList.add('is-signed-in');\r\n this.refs.tooltip.classList.add('is-signed-in');\r\n if (!_.isEmpty(this.refs.username)) {\r\n this.refs.username.textContent += ' ' + userData.firstName;\r\n }\r\n }\r\n\r\n needsToUpdateLastVisit() {\r\n const storedLastVisitDate = userService.getDataFromLocalStorage(LAST_VISIT_DATE);\r\n if (storedLastVisitDate) {\r\n const storedDate = new Date(storedLastVisitDate);\r\n const currentDate = new Date();\r\n\r\n if (storedDate.toDateString() === currentDate.toDateString()) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n updateLastVisitInfo() {\r\n const needsUpdate = this.needsToUpdateLastVisit();\r\n\r\n if (!needsUpdate) {\r\n return;\r\n }\r\n\r\n const { lastLoginDate, lastLoginPlatform, lastLoginDevice } = getLastLogInData();\r\n getSSOSignInFormData()\r\n .then((response) => {\r\n const { lastLoggedInDataCallBackUrl } = response.data;\r\n updateUserSignInDetails(\r\n getFormattedUserSignInDetailsData(lastLoginDate, lastLoginDevice, lastLoginPlatform),\r\n lastLoggedInDataCallBackUrl\r\n ).then((updateUserResponse) => {\r\n if (updateUserResponse.hasErrors) return;\r\n userService.setDataInLocalStorage(LAST_VISIT_DATE, lastLoginDate);\r\n })\r\n .catch((updateUserError) => {\r\n console.error(updateUserError);\r\n });\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n needsToUpdateLastVisit() {\r\n const storedLastVisitDate = userService.getDataFromLocalStorage(LAST_VISIT_DATE);\r\n if (storedLastVisitDate) {\r\n const storedDate = new Date(storedLastVisitDate);\r\n const currentDate = new Date();\r\n\r\n if (storedDate.toDateString() === currentDate.toDateString()) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n updateLastVisitInfo() {\r\n const needsUpdate = this.needsToUpdateLastVisit();\r\n\r\n if (!needsUpdate) {\r\n return;\r\n }\r\n\r\n const { lastLoginDate, lastLoginPlatform, lastLoginDevice } = getLastLogInData();\r\n getSSOSignInFormData()\r\n .then((response) => {\r\n const { lastLoggedInDataCallBackUrl } = response.data;\r\n updateUserSignInDetails(\r\n getFormattedUserSignInDetailsData(lastLoginDate, lastLoginDevice, lastLoginPlatform),\r\n lastLoggedInDataCallBackUrl\r\n ).then((updateUserResponse) => {\r\n if (updateUserResponse.hasErrors) return;\r\n userService.setDataInLocalStorage(LAST_VISIT_DATE, lastLoginDate);\r\n })\r\n .catch((updateUserError) => {\r\n console.error(updateUserError);\r\n });\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n}\r\n","import UrlHelper from 'foundation/url-helper';\r\nimport ModalTriggerComponent from '../../modal/js/modal-trigger.component';\r\nimport { QueryConstants } from '../../../general/js/utils/query-constants';\r\n\r\nexport default class ModalTriggerLoginComponent extends ModalTriggerComponent {\r\n getAsyncTargetUrl() {\r\n const asyncUrl = super.getAsyncTargetUrl();\r\n const failedReturnUrlParam = this.getAttribute(this.element, 'failed-return-url-param');\r\n return UrlHelper.getUrlByParams(\r\n asyncUrl,\r\n {\r\n [failedReturnUrlParam]: UrlHelper.getUrlByParams(\r\n UrlHelper.getRelativeUrl(window.location), { [QueryConstants.SHOW_POPUP]: UrlHelper.getUrlByParams(asyncUrl, { status: 'LoginFailed' }) }\r\n )\r\n }\r\n );\r\n }\r\n}\r\n","import { Auth, Hub } from 'aws-amplify';\r\nimport { AmplifyClient } from '../../../project/amplify-client';\r\nimport BaseComponent from '../../../foundation/base-component';\r\nimport userService from '../../../general/js/user/user-service';\r\nimport { isEmpty } from '../../sso/components/utils/obj-utils';\r\n\r\nexport default class OauthHandlerComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init = () => {\r\n AmplifyClient.init();\r\n Hub.listen('auth', ({ payload: { event } }) => {\r\n switch (event) {\r\n case 'signIn':\r\n this.handleCustomOAuthState();\r\n break;\r\n case 'customOAuthState':\r\n this.handleCustomOAuthState();\r\n break;\r\n // case 'signOut':\r\n // this.handleRedirectAfterSignOut();\r\n // break;\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n\r\n handleRedirectAfterSignOut() {\r\n userService.redirectAfterSignOut();\r\n }\r\n\r\n handleCustomOAuthState() {\r\n Auth.currentAuthenticatedUser({ bypassCache: true })\r\n .then(() => {\r\n const returnUrl = userService.getHostedUIReturnUrlFromSessionStorage(true);\r\n\r\n if (!isEmpty(returnUrl) && window.location.href !== returnUrl) {\r\n window.location.href = returnUrl;\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport AccountComponent from './js/account.component';\r\nimport ModalTriggerLoginComponent from './js/modal-trigger-login.component';\r\nimport SSOSignInComponent from './js/sso-sign-in.component';\r\nimport OauthHandlerComponent from './js/oauth-handler.component';\r\n\r\nComponentsFactory.getInstance().define('account', AccountComponent);\r\nComponentsFactory.getInstance().define('modal-trigger-login', ModalTriggerLoginComponent);\r\nComponentsFactory.getInstance().define('sso-sign-in', SSOSignInComponent);\r\nComponentsFactory.getInstance().define('oauth-handler', OauthHandlerComponent);\r\n","import get from 'lodash/get';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport userService from '../../../general/js/user/user-service';\r\nimport createEvent from '../../../general/js/create-event';\r\nimport pageSpinner from '../../../general/js/page-spinner';\r\nimport { redirectTo } from '../../../general/js/utils';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\n\r\nconst INPUTS_SELECTOR = 'input, textarea, select';\r\nconst INPUTS_SELECTOR_EXCLUDED = 'input[type=button], input[type=submit], input[type=reset], input[type=hidden]';\r\n\r\nconst BIND_ATTRIBUTE = 'user-bind';\r\nconst BIND_MULTIPLE_ATTRIBUTE = 'user-bind-multiple';\r\nconst CONDITION_ATTRIBUTE = 'user-if';\r\n\r\nexport default class AccountProfileComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return [];\r\n }\r\n\r\n init() {\r\n pageSpinner.show();\r\n const isLoggedInPromise = userService.isSecuTixLoggedIn();\r\n userService.getCurrentUser().then((user) => {\r\n this.setStylesProfileBlock(user);\r\n this._user = user;\r\n isLoggedInPromise.then((status) => {\r\n this._isLoggedInToSecuTix = status;\r\n this.applyModel();\r\n this.element.classList.add('is-visible');\r\n pageSpinner.hide();\r\n });\r\n }, () => {\r\n this.rejectUser();\r\n });\r\n }\r\n\r\n setStylesProfileBlock(user) {\r\n if (!user.isOneClubMember) return;\r\n this.refs.profileBlock[0].classList.add('is-one-club-member');\r\n this.refs.username.insertAdjacentHTML('afterend', '
one club member
');\r\n }\r\n\r\n rejectUser() {\r\n redirectTo(hasValue(this.options.signInUrl) ? this.options.signInUrl : '/');\r\n }\r\n\r\n isLoggedInToSecuTix() {\r\n return this._isLoggedInToSecuTix;\r\n }\r\n\r\n getModel() {\r\n const user = this._user;\r\n let optedTheOpenOffersByEmail = get(user, 'optIns.optedTheOpenOffersByEmail', true);\r\n if (optedTheOpenOffersByEmail === null) {\r\n optedTheOpenOffersByEmail = true;\r\n }\r\n\r\n return {\r\n ...user,\r\n hasTicketingAccount: userService.hasTicketingAccount(user),\r\n loggedInToSecuTix: this.isLoggedInToSecuTix(),\r\n initials: user.firstName && user.lastName ? `${user.firstName[0]}${user.lastName[0]}` : '',\r\n doNotOptedTheOpenOffersByEmail: !optedTheOpenOffersByEmail\r\n };\r\n }\r\n\r\n applyModel() {\r\n this.applyOneClubStyling();\r\n this.applyConditions();\r\n this.applyBindings();\r\n }\r\n\r\n applyConditions() {\r\n const conditionElements = [...this.element.querySelectorAll(`[${CONDITION_ATTRIBUTE}]`)];\r\n conditionElements.forEach((el) => {\r\n let cond = false;\r\n let inverse = false;\r\n\r\n let prop = el.getAttribute(CONDITION_ATTRIBUTE);\r\n if (prop) {\r\n if (prop[0] === '!') {\r\n inverse = true;\r\n prop = prop.substring(1);\r\n }\r\n cond = this.getModelValue(prop, false);\r\n }\r\n\r\n cond = inverse ? !cond : cond;\r\n if (!cond) {\r\n el.style.display = 'none';\r\n }\r\n });\r\n }\r\n\r\n applyBindings() {\r\n const bindElements = [...this.element.querySelectorAll(`[${BIND_ATTRIBUTE}]`)];\r\n const inputElements = [];\r\n const textElements = [];\r\n\r\n bindElements.forEach((element) => {\r\n if (element.matches(INPUTS_SELECTOR) && !element.matches(INPUTS_SELECTOR_EXCLUDED)) {\r\n inputElements.push(element);\r\n } else {\r\n textElements.push(element);\r\n }\r\n });\r\n\r\n this.applyInputsBindings(inputElements);\r\n this.applyTextBindings(textElements);\r\n }\r\n\r\n applyInputsBindings(elements) {\r\n elements.forEach((el) => {\r\n const prop = el.getAttribute(BIND_ATTRIBUTE);\r\n this.applyInputValue(el, this.getModelValue(prop));\r\n });\r\n }\r\n\r\n applyInputValue(input, value) {\r\n switch (input.type) {\r\n case 'checkbox':\r\n this.applyCheckboxValue(input, value);\r\n break;\r\n case 'radio':\r\n break;\r\n case 'select-multiple':\r\n break;\r\n default:\r\n input.value = value || '';\r\n }\r\n input.dispatchEvent(createEvent('change'));\r\n }\r\n\r\n applyCheckboxValue(input, value) {\r\n if (input.hasAttribute(BIND_MULTIPLE_ATTRIBUTE)) {\r\n const modelValue = value || [];\r\n const inputValue = input.value;\r\n input.checked = modelValue.includes(inputValue);\r\n } else {\r\n input.checked = value || false;\r\n }\r\n }\r\n\r\n getModelValue(prop, defaultValue) {\r\n return get(this.getModel(), prop, defaultValue);\r\n }\r\n\r\n applyTextBindings(elements) {\r\n elements.forEach((el) => {\r\n const prop = el.getAttribute(BIND_ATTRIBUTE);\r\n if (prop) {\r\n el.innerHTML = this.getModelValue(prop, '');\r\n }\r\n });\r\n }\r\n\r\n applyOneClubStyling() {\r\n const { isOneClubMember } = this.getModel();\r\n if (isOneClubMember) {\r\n this.element.classList.add(this.options.oneClubClass);\r\n }\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport AccountProfileComponent from './js/account-profile.component';\r\n\r\nComponentsFactory.getInstance().define('account-profile', AccountProfileComponent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport gtm from 'general/js/gtm';\r\n\r\nconst AlertBar = ({ model }) => {\r\n const onClickLink = () => {\r\n gtm.push('Alert bar', 'Read More', model.title);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {model.title}\r\n  {model.subtitle}\r\n {\r\n model.linkUrl &&\r\n \r\n {model.linkText}\r\n \r\n }\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nAlertBar.propTypes = {\r\n model: PropTypes.shape({\r\n title: PropTypes.string,\r\n subtitle: PropTypes.string,\r\n linkUrl: PropTypes.string,\r\n linkText: PropTypes.string,\r\n })\r\n};\r\n\r\nexport default AlertBar;\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport ArrayHelper from 'foundation/array-helper';\r\nimport ScoringLoader, { endpointNames } from 'general/js/loaders/scoring-loader';\r\nimport AlertBar from './alert-bar';\r\n\r\nclass AlertBarsLayout extends React.Component {\r\n componentDidMount() {\r\n ScoringLoader.subscribe(endpointNames.LIVE_SCANNER);\r\n }\r\n\r\n componentWillUnmount() {\r\n ScoringLoader.unsubscribe(endpointNames.LIVE_SCANNER);\r\n }\r\n\r\n render() {\r\n const { liveScanner } = this.props;\r\n\r\n if (!liveScanner || ArrayHelper.isEmpty(liveScanner.alertBars)) return null;\r\n\r\n return liveScanner.alertBars.map((alertBar) => {\r\n return ;\r\n });\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n liveScanner: state.scoring[endpointNames.LIVE_SCANNER],\r\n});\r\n\r\nconst AlertBarsLayoutContainer = connect(\r\n mapStateToProps,\r\n null\r\n)(AlertBarsLayout);\r\n\r\nexport default AlertBarsLayoutContainer;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport store from 'general/js/store';\r\nimport AlertBarsLayout from './alert-bars-layout';\r\n\r\nclass AlertBarsComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n destroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default AlertBarsComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport AlertBarsComponent from './js/alert-bars.component';\r\n\r\nComponentsFactory.getInstance().define('alert-bars', AlertBarsComponent);\r\n","import axios from 'axios';\r\nimport Cookies from 'js-cookie';\r\nimport BaseComponent from 'foundation/base-component';\r\n\r\nconst COOKIE_MAX_AGE = 2147483647;\r\n\r\nclass AntiForgeryTokenComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n if (!this.options.endpointUrl) {\r\n throw new Error('You must provide endpointUrl');\r\n }\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.updateToken(this.getOldToken());\r\n }\r\n\r\n getOldToken() {\r\n return Cookies.get(this.options.cookieName);\r\n }\r\n\r\n updateToken(oldToken) {\r\n const url = `${this.options.endpointUrl}?oldCookieToken=${oldToken}`;\r\n\r\n axios\r\n .get(url)\r\n .then((response) => {\r\n const { formInputToken, cookieTokenValue } = response.data;\r\n\r\n this.refs.tokenInput.value = formInputToken;\r\n\r\n if (cookieTokenValue !== null) {\r\n Cookies.set(this.options.cookieName, cookieTokenValue, { expires: COOKIE_MAX_AGE, secure: true });\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default AntiForgeryTokenComponent;\r\n","//import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport AntiForgeryTokenComponent from './js/anti-forgery-token.component';\r\n\r\nComponentsFactory.getInstance().define('anti-forgery-token', AntiForgeryTokenComponent);\r\n","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 ChangePasswordFooter from './ChangePasswordFooter';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport './change-password.scss';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport Oauth from '../../oauth';\r\n\r\nclass ChangePasswordForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = initialState.userDetailsFormState;\r\n\r\n this.displayChangePasswordForm = this.displayChangePasswordForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.submitPasswordData = this.submitPasswordData.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { loading, actions, isUserPasswordChangedSuccessful } = nextProps;\r\n\r\n if (!loading && isUserPasswordChangedSuccessful) {\r\n actions.signOutUser();\r\n }\r\n }\r\n\r\n displayForm() {\r\n const { formData, isUserPasswordChangedSuccessful, changePasswordMessages } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n return null;\r\n }\r\n\r\n return (
    \r\n \r\n {/* {this.displayChangePasswordForm()} */}\r\n \r\n );\r\n }\r\n\r\n displayChangePasswordForm() {\r\n const { formData } = this.props;\r\n\r\n return FormBuilder({\r\n formData,\r\n handleFieldChange: (event) => {\r\n const { oldPassword } = this.state;\r\n const eventTarget = event.target;\r\n const fieldName = eventTarget.name;\r\n const fieldData = formData[fieldName];\r\n this.setState(formStateHelpers.handleFieldChangeWithValidation(eventTarget, fieldData));\r\n this.setState(formStateHelpers.handleOldPasswordFieldChange({ name: formConstants.oldPassword, value: oldPassword }));\r\n },\r\n handleOldPasswordChange: (event) => {\r\n this.setState(formStateHelpers.handleOldPasswordFieldChange(event.target));\r\n },\r\n handleConfirmPasswordChange: (event) => {\r\n this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target));\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n });\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitPasswordData);\r\n }\r\n\r\n submitPasswordData() {\r\n const { actions, formData } = this.props;\r\n const { actionSuccessText, callBackUrl } = formData;\r\n const { oldPassword, password } = this.state;\r\n\r\n actions.changeUserPassword({ oldPassword, newPassword: password }, actionSuccessText, callBackUrl);\r\n }\r\n\r\n render() {\r\n const { formData } = this.props;\r\n const { formTitle } = formData;\r\n return (\r\n \r\n

    {formTitle}

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

    {formTitle}

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

    {text}

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

    {formMessageConstants.lastOrderText}

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

    {noOrdersFoundText}

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

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

    \r\n

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

    \r\n

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

    \r\n

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

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

    {formMessageConstants.upcoming}

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

    {noUpcomingEventText}

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

    {noActionsToPerformText}

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

    {formTitle}

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

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

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

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

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

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

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

    {formTitle}

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

    {text}

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

    {formTitle}

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

    {title}

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

    {resaleTicketsTitle}

    \r\n
    \r\n

    {resaleTicketsIntro}

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

    {introText}

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

    {introText}

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

    {resaleTicketsImageText}

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

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

    \r\n

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

    \r\n

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

    \r\n

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

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

    {formMessageConstants.information}

    \r\n

    {noOrdersFoundText}

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

    {formMessageConstants.display}:

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

    {formMessageConstants.fileSummary}

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

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

    \r\n

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

    \r\n

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

    \r\n

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

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

    {noProductsFoundText}

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

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

    \r\n

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

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

    {formMessageConstants.fileContent}

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

    {formMessageConstants.installments}

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

    {formMessageConstants.paymentSummary}

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

    {noPaymentSummaryFoundText}

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

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

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

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

    \r\n

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

    \r\n

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

    \r\n

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

    \r\n

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

    \r\n

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

    \r\n
    \r\n

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

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

    {formMessageConstants.changeHistory}

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

    {noHistoryDataFoundText}

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

    {formTitle}

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

    {printTicketModalText}

    \r\n
    \r\n

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

    \r\n

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

    \r\n

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

    \r\n

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

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

    {formMessageConstants.display}:

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

    {noTicketsFoundText}

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

    {formTitle}

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

    {introText}

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

    {imageText}

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

      {reason.label}

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

    {title}

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

    {title}

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

    {leaveTheOneClubDialogBoxTitle}

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

    {formTitle}

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

    {serverErrorMessage}

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

    {loadingErrorMessage}

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

    {formMessageConstants.somethingWentWrong}

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

    {message}


    ;\r\n })\r\n }\r\n
    );\r\n}\r\n\r\nfunction PrivacyPolicyMessage(props) {\r\n const { formData, actions } = props;\r\n\r\n const [hideSaveButton, setHideSaveButton] = useState(true);\r\n const [showSuccessMessage, setShowSuccessMessage] = useState(false);\r\n\r\n const { privacyAndPolicy, successMessage, privacyPolicyMessage } = formData;\r\n\r\n const messageParagraphs = getMultilineText(privacyPolicyMessage);\r\n const successMessageParagraphs = getMultilineText(successMessage);\r\n\r\n const updatePrivacyPolicy = (event) => {\r\n event.preventDefault();\r\n\r\n actions.agreeToPrivacyPolicyAndTermsAndConditions(formData.callbackUrl, true, null).then(() => {\r\n toggleModalCloseButton(formData, true);\r\n setShowSuccessMessage(true);\r\n });\r\n };\r\n\r\n const onAgreePrivacyPolicy = (event) => {\r\n setHideSaveButton(!event.target.checked);\r\n };\r\n\r\n return (\r\n {\r\n messageParagraphs.length > 0 ?\r\n :\r\n null\r\n }\r\n \r\n
    \r\n {getDestructuredTextWithMultipleLinks(\r\n privacyAndPolicy.policy.label,\r\n privacyAndPolicy.policy.link.split(';')\r\n )}\r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n {formData.updateButtonText}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    );\r\n}\r\n\r\nfunction PrivacyPolicyAndTermsAndConditionsMessage(props) {\r\n const { formData, actions } = props;\r\n\r\n const [hideSaveButton, setHideSaveButton] = useState(true);\r\n const [showSuccessMessage, setShowSuccessMessage] = useState(false);\r\n\r\n const { privacyPolicyAndTermsAndConditions, privacyAndTermsMessage, successMessage } = formData;\r\n\r\n const messageParagraphs = getMultilineText(privacyAndTermsMessage);\r\n const successMessageParagraphs = getMultilineText(successMessage);\r\n\r\n const agreeTermsAndPrivacy = (event) => {\r\n event.preventDefault();\r\n\r\n actions.agreeToPrivacyPolicyAndTermsAndConditions(formData.callbackUrl, true, true).then(() => {\r\n toggleModalCloseButton(formData, true);\r\n setShowSuccessMessage(true);\r\n });\r\n };\r\n\r\n const onAgreeTermsAndPrivacy = (event) => {\r\n setHideSaveButton(!event.target.checked);\r\n };\r\n\r\n return (\r\n {\r\n messageParagraphs.length > 0 ?\r\n :\r\n null\r\n }\r\n \r\n
    \r\n {getDestructuredTextWithMultipleLinks(\r\n privacyPolicyAndTermsAndConditions.policy.label,\r\n privacyPolicyAndTermsAndConditions.policy.link.split(';')\r\n )}\r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n {formData.updateButtonText}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    );\r\n}\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n formData: hasValue(ownProps.formData) ? ownProps.formData : state.signInForm.signInSuccessFormData\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n agreeToPrivacyPolicyAndTermsAndConditions: bindActionCreators(upgradeAccountActions.agreePrivacyPolicyAndTermsAndCoditions, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SignInSuccessForm);\r\n","import React from 'react';\r\nimport OneClubRegisterForm from './forms/one-club-register/OneClubRegisterForm';\r\nimport UserRegisterSuccessForm from './forms/user-register-success-form/UserRegisterSuccessForm';\r\nimport BallotRegisterForm from './forms/ballot/BallotRegisterForm';\r\nimport BallotSummaryForm from './forms/ballot/BallotSummaryForm';\r\nimport SSOItemListForm from './forms/item-list/SSOItemListForm';\r\nimport BallotSignInForm from './forms/ballot/BallotSignInForm';\r\nimport BallotSignInSuccessForm from './forms/ballot/BallotSignInSuccessForm';\r\nimport ForgotPasswordForm from './forms/forgot-password/ForgotPasswordForm';\r\nimport ResetPasswordForm from './forms/reset-password/ResetPasswordForm';\r\nimport UserAccountPage from './user-account/UserAccountPage';\r\nimport DefaultRegisterForm from './forms/default-register/DefaultRegisterForm';\r\nimport TicketingRegisterForm from './forms/ticketing-register/TicketingRegisterForm';\r\nimport SignInForm from './forms/sign-in/SignInForm';\r\nimport UpgradeToTicketingAccountForm from './forms/upgrade-to-ticketing/UpgradeToTicketingAccountForm';\r\nimport UpgradeToOneClubAccountForm from './forms/upgrade-to-one-club/UpgradeToOneClubAccountForm';\r\nimport VerifyEmailForm from './forms/verify-email/VerifyEmailForm';\r\nimport NewPasswordRequiredForm from './forms/new-password-required/NewPasswordRequiredForm';\r\nimport RaMembersRegisterForm from './forms/ra-members/RaMembersRegisterForm';\r\nimport RaMembersSignInForm from './forms/ra-members/RaMembersSignInForm';\r\nimport RaMembersSummaryForm from './forms/ra-members/RaMembersSummaryForm';\r\nimport { ssoFormTypes } from './utils/form-types';\r\nimport SignInSuccessForm from './forms/sign-in/SignInSuccessForm';\r\n\r\n/* eslint-disable */\r\nexport const ssoFormConstants = {\r\n [ssoFormTypes.OneClubRegister]: ({\r\n formData,\r\n ssoDomain,\r\n handleUserRegisterSuccess,\r\n handleSignIn,\r\n handleForgotPassword,\r\n loadSSORegisterFormData,\r\n ssoFormType }) => {\r\n return \r\n },\r\n [ssoFormTypes.DefaultRegister]: ({\r\n formData,\r\n ssoDomain,\r\n handleUserRegisterSuccess,\r\n handleSignIn,\r\n handleForgotPassword }) => {\r\n return \r\n },\r\n [ssoFormTypes.TicketingRegister]: ({\r\n formData,\r\n ssoDomain,\r\n handleUserRegisterSuccess,\r\n handleSignIn,\r\n handleForgotPassword }) => {\r\n return \r\n },\r\n [ssoFormTypes.RaMembersRegister]: ({\r\n formData,\r\n ssoDomain,\r\n handleRaMembersRegisterSuccess,\r\n handleRaMembersSignIn,\r\n handleForgotPassword }) => {\r\n return \r\n },\r\n [ssoFormTypes.UpgradeToTicketingAccount]: ({ formData, ssoDomain, handleSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.UpgradeToOneClubAccountFromDefault]: ({ formData, handleSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.UpgradeToOneClubAccountFromTicketing]: ({ formData, handleSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.SignIn]: ({\r\n formData,\r\n handleForgotPassword,\r\n handleRegister,\r\n handleNewPasswordRequired,\r\n handleSignInSucces\r\n }) => {\r\n return \r\n },\r\n [ssoFormTypes.RaMembersSignInForm]: ({\r\n formData,\r\n handleForgotPassword,\r\n handleRegister,\r\n handleNewPasswordRequired\r\n }) => {\r\n return \r\n },\r\n [ssoFormTypes.SignInSuccess]: ({\r\n formData,\r\n ssoDomain,\r\n }) => {\r\n return \r\n \r\n },\r\n [ssoFormTypes.NewPasswordRequired]: ({ cognitoUser, handleSignIn, handleSignInSucces }) => {\r\n return \r\n },\r\n [ssoFormTypes.ForgotPassword]: ({ formData, handleSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.BallotForgotPassword]: ({ formData, handleBallotSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.ResetPassword]: ({ formData }) => {\r\n return \r\n },\r\n [ssoFormTypes.VerifyEmail]: ({ formData }) => {\r\n return \r\n },\r\n [ssoFormTypes.OneClubRegisterSuccess]: ({\r\n emailAddress,\r\n ssoDomain,\r\n requestEmailVerificationCallbackUrl,\r\n actionSuccessText,\r\n requestEmailVerificationActionSuccessText,\r\n displayBanner,\r\n isBallotRegister,\r\n handleSignIn,\r\n handleBallotSignIn,\r\n bannerBackgroundImageSrc,\r\n bannerSuccessRegistration}) => {\r\n return \r\n },\r\n [ssoFormTypes.RaMembersRegisterSuccess]: ({\r\n emailAddress,\r\n ssoDomain,\r\n requestEmailVerificationCallbackUrl,\r\n actionSuccessText,\r\n requestEmailVerificationActionSuccessText,\r\n displayBanner,\r\n handleRaMembersSignIn,\r\n bannerBackgroundImageSrc }) => {\r\n return \r\n },\r\n [ssoFormTypes.UserAccount]: ({ formData }) => {\r\n return \r\n },\r\n [ssoFormTypes.BallotLiteRegister]: ({\r\n formData,\r\n ssoDomain,\r\n handleUserRegisterSuccess,\r\n handleBallotSignIn,\r\n ssoFormType }) => {\r\n return \r\n },\r\n [ssoFormTypes.BallotFullRegister]: ({\r\n formData,\r\n ssoDomain,\r\n handleUserRegisterSuccess,\r\n handleBallotSignIn,\r\n loadSSORegisterFormData,\r\n ssoFormType }) => {\r\n return \r\n },\r\n [ssoFormTypes.UpgradeToTicketingAccount]: ({ formData, handleSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.BallotSummaryForm]: ({\r\n formData,\r\n ssoDomain,\r\n handleSignIn,\r\n handleBallotSummarySuccess,\r\n handleBallotPortalRedirect }) => {\r\n return \r\n },\r\n [ssoFormTypes.SSOItemListForm]: ({\r\n formData,\r\n ssoDomain,\r\n handleBallotPortalRedirect,\r\n formId,\r\n isFromBallot }) => {\r\n return \r\n },\r\n [ssoFormTypes.RaMembersSummaryForm]: ({\r\n formData,\r\n ssoDomain,\r\n handleSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.BallotSignInForm]: ({\r\n formData,\r\n ssoDomain,\r\n handleCognitoHostedUISignIn,\r\n handleBallotForgotPassword,\r\n handleBallotRegister }) => {\r\n return \r\n },\r\n [ssoFormTypes.BallotSignInSuccessForm]: ({\r\n formData,\r\n ssoDomain }) => {\r\n return \r\n },\r\n [ssoFormTypes.PreRegisterForm]: ({\r\n formData,\r\n ssoDomain,\r\n handleSignIn,\r\n handleForgotPassword,\r\n handleBallotRegister }) => {\r\n return \r\n },\r\n};\r\n","/* eslint-disable no-nested-ternary */\r\n/* eslint-disable no-prototype-builtins */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport app from 'general/js/app';\r\nimport { SSOFormContext } from './sso-form-context';\r\nimport { ssoFormTypes } from './utils/form-types';\r\nimport eventBus from '../../../general/js/event-bus';\r\nimport { ssoFormConstants } from './sso-form-constants';\r\nimport { domainConstants } from './utils/constants/domain-constants';\r\nimport userService from '../../../general/js/user/user-service';\r\nimport { formConstants } from './utils/constants/form-constants';\r\nimport { getProperty, hasValue } from '../../../general/js/general-helpers';\r\nimport { sitecoreFieldConstants } from '../../sitecore-fields/js/sitecore-field-constants';\r\nimport { isBallotForm } from './forms/helpers/form-helpers/form-field-helpers';\r\nimport { redirectTo, reloadPageWithoutQueryParams } from '../../../general/js/utils';\r\n\r\n\r\nclass SSOForm extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.ssoContext = {\r\n currentScenarioTitle: 'SSO Forms',\r\n cognitoUser: {}\r\n };\r\n const { IsPopup, formType, registerFormType } = this.props.formData;\r\n\r\n this.state = {\r\n ssoFormType: formType,\r\n initialFormType: formType,\r\n isFormDataDirty: false,\r\n registerFormType,\r\n IsPopup,\r\n modalOpen: true\r\n };\r\n\r\n this.displaySSOForm = this.displaySSOForm.bind(this);\r\n this.handleSignIn = this.handleSignIn.bind(this);\r\n this.handleRaMembersSignIn = this.handleRaMembersSignIn.bind(this);\r\n this.handleRegister = this.handleRegister.bind(this);\r\n this.handleNewPasswordRequired = this.handleNewPasswordRequired.bind(this);\r\n this.handleUserRegisterSuccess = this.handleUserRegisterSuccess.bind(this);\r\n this.handleRaMembersRegisterSuccess = this.handleRaMembersRegisterSuccess.bind(this);\r\n this.handleForgotPassword = this.handleForgotPassword.bind(this);\r\n this.handleBallotForgotPassword = this.handleBallotForgotPassword.bind(this);\r\n this.onModalClose = this.onModalClose.bind(this);\r\n this.onModalOpen = this.onModalOpen.bind(this);\r\n this.getTransitionToForm = this.getTransitionToForm.bind(this);\r\n this.handleBallotSignIn = this.handleBallotSignIn.bind(this);\r\n this.handleBallotRegister = this.handleBallotRegister.bind(this);\r\n this.handleCognitoHostedUISignIn = this.handleCognitoHostedUISignIn.bind(this);\r\n this.handleSignInSucces = this.handleSignInSucces.bind(this);\r\n this.handleBallotSummarySuccess = this.handleBallotSummarySuccess.bind(this);\r\n this.handleBallotPortalRedirect = this.handleBallotPortalRedirect.bind(this);\r\n\r\n eventBus.addListener('modal:closed', this.onModalClose);\r\n eventBus.addListener('modal:open', this.onModalOpen);\r\n }\r\n\r\n onModalClose() {\r\n const { IsPopup } = this.props;\r\n\r\n sessionStorage.removeItem(formConstants.ballotSignInStorageItem);\r\n\r\n if (!IsPopup) {\r\n return;\r\n }\r\n this.setState((state) => ({\r\n ...state,\r\n modalOpen: false,\r\n ssoFormType: state.initialFormType\r\n }));\r\n }\r\n\r\n onModalOpen() {\r\n const { IsPopup } = this.props;\r\n if (!IsPopup) {\r\n return;\r\n }\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n modalOpen: true\r\n }));\r\n }\r\n\r\n handleRegister() {\r\n const { initialFormType } = this.state;\r\n const transitionToForm = this.getTransitionToForm();\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: transitionToForm,\r\n isFormDataDirty: initialFormType !== transitionToForm\r\n }));\r\n }\r\n\r\n handleBallotRegister() {\r\n const { initialFormType } = this.state;\r\n const { formData } = this.props;\r\n const { nextFormTypeAfterRegister } = formData;\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: nextFormTypeAfterRegister,\r\n isFormDataDirty: initialFormType !== nextFormTypeAfterRegister\r\n }));\r\n }\r\n\r\n handleBallotSummarySuccess() {\r\n const { initialFormType } = this.state;\r\n const { formData: { nextFormTypeAfterSubmit, nextFormAfterSubmit } } = this.props;\r\n\r\n if (nextFormAfterSubmit === sitecoreFieldConstants.emptyGUID || !hasValue(nextFormAfterSubmit) || !hasValue(nextFormTypeAfterSubmit)) {\r\n this.handleBallotPortalRedirect();\r\n return;\r\n }\r\n\r\n const nextFormType = getProperty(ssoFormTypes, nextFormTypeAfterSubmit);\r\n\r\n if (!hasValue(nextFormType)) {\r\n this.handleBallotPortalRedirect();\r\n return;\r\n }\r\n\r\n const isFromBallot = isBallotForm(initialFormType);\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: nextFormType,\r\n isFormDataDirty: initialFormType !== nextFormType,\r\n isFromBallot\r\n }));\r\n }\r\n\r\n handleBallotPortalRedirect() {\r\n const { state: { ssoConfig: { ballotRedirectUrl } } } = app;\r\n\r\n if (!hasValue(ballotRedirectUrl)) {\r\n reloadPageWithoutQueryParams();\r\n }\r\n\r\n redirectTo(ballotRedirectUrl);\r\n }\r\n\r\n handleBallotSignIn() {\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.BallotSignInForm,\r\n isFormDataDirty: false\r\n }));\r\n }\r\n\r\n handleRaMembersSignIn() {\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.RaMembersSignInForm\r\n }));\r\n }\r\n\r\n handleNewPasswordRequired(cognitoUser) {\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.NewPasswordRequired,\r\n cognitoUser\r\n }));\r\n }\r\n\r\n handleSignInSucces(formData, formType = ssoFormTypes.SignInSuccess) {\r\n formData = hasValue(formData) ? { ...formData, hideCloseButton: true, reloadPage: true } : formData;\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: formType,\r\n formData\r\n }));\r\n }\r\n\r\n getTransitionToForm() {\r\n const { registerFormType, initialFormType } = this.state;\r\n\r\n if (registerFormType >= 0) {\r\n return registerFormType;\r\n }\r\n\r\n const { ssoDomain, nextFormTypeAfterRegister } = this.props.formData;\r\n const formForTransitionTo = ssoDomain === domainConstants.womensOpen ?\r\n ssoFormTypes.TicketingRegister :\r\n ssoFormTypes.OneClubRegister;\r\n\r\n return initialFormType === ssoFormTypes.SignIn || initialFormType === ssoFormTypes.PreRegisterForm ?\r\n (hasValue(nextFormTypeAfterRegister) ? nextFormTypeAfterRegister : formForTransitionTo) :\r\n initialFormType;\r\n }\r\n\r\n handleUserRegisterSuccess(emailAddress, {\r\n isBallotRegister,\r\n successText,\r\n emailVerificationCallbackUrl,\r\n emailVerificationActionSuccessText,\r\n displayBanner,\r\n bannerBackgroundImageSrc,\r\n bannerSuccessRegistration\r\n }) {\r\n const {\r\n requestEmailVerificationCallbackUrl,\r\n actionSuccessText,\r\n requestEmailVerificationActionSuccessText\r\n } = this.props.formData;\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.OneClubRegisterSuccess,\r\n emailAddress,\r\n requestEmailVerificationCallbackUrl: requestEmailVerificationCallbackUrl || emailVerificationCallbackUrl,\r\n actionSuccessText: successText || actionSuccessText,\r\n requestEmailVerificationActionSuccessText: requestEmailVerificationActionSuccessText || emailVerificationActionSuccessText,\r\n displayBanner,\r\n isBallotRegister,\r\n bannerBackgroundImageSrc,\r\n bannerSuccessRegistration\r\n }));\r\n }\r\n\r\n handleRaMembersRegisterSuccess(emailAddress, {\r\n successText,\r\n emailVerificationCallbackUrl,\r\n emailVerificationActionSuccessText,\r\n displayBanner,\r\n bannerBackgroundImageSrc\r\n }) {\r\n const {\r\n requestEmailVerificationCallbackUrl,\r\n actionSuccessText,\r\n requestEmailVerificationActionSuccessText\r\n } = this.props.formData;\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.RaMembersRegisterSuccess,\r\n emailAddress,\r\n requestEmailVerificationCallbackUrl: requestEmailVerificationCallbackUrl || emailVerificationCallbackUrl,\r\n actionSuccessText: successText || actionSuccessText,\r\n requestEmailVerificationActionSuccessText: requestEmailVerificationActionSuccessText || emailVerificationActionSuccessText,\r\n displayBanner,\r\n bannerBackgroundImageSrc\r\n }));\r\n }\r\n\r\n handleForgotPassword() {\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.ForgotPassword\r\n }));\r\n }\r\n\r\n handleBallotForgotPassword() {\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.BallotForgotPassword\r\n }));\r\n }\r\n\r\n handleSignIn() {\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.SignIn\r\n }));\r\n }\r\n\r\n handleCognitoHostedUISignIn(returnUrl = '') {\r\n if (!hasValue(returnUrl) || this.isFromButtonEvent(returnUrl)) {\r\n returnUrl = window.location.href;\r\n }\r\n\r\n userService.onSignInLinkClickAction(returnUrl, true);\r\n }\r\n\r\n isFromButtonEvent(returnUrl) {\r\n return returnUrl.hasOwnProperty('type');\r\n }\r\n\r\n displaySSOForm() {\r\n const {\r\n ssoFormType,\r\n isFromBallot,\r\n emailAddress,\r\n isFormDataDirty,\r\n requestEmailVerificationCallbackUrl,\r\n actionSuccessText,\r\n requestEmailVerificationActionSuccessText,\r\n displayBanner,\r\n isBallotRegister,\r\n cognitoUser,\r\n bannerBackgroundImageSrc,\r\n bannerSuccessRegistration\r\n } = this.state;\r\n\r\n const { formData } = hasValue(this.state.formData) ? this.state : this.props;\r\n const { ssoDomain } = formData;\r\n\r\n const copyOfFormData = _.cloneDeep(formData);\r\n const { nextFormAfterSubmit } = copyOfFormData;\r\n\r\n return ssoFormConstants[ssoFormType]({\r\n formData: isFormDataDirty ? {} : copyOfFormData,\r\n emailAddress,\r\n ssoDomain,\r\n requestEmailVerificationCallbackUrl,\r\n actionSuccessText,\r\n requestEmailVerificationActionSuccessText,\r\n displayBanner,\r\n isBallotRegister,\r\n cognitoUser,\r\n ssoFormType,\r\n bannerBackgroundImageSrc,\r\n bannerSuccessRegistration,\r\n isFromBallot: isFromBallot || copyOfFormData.isFromBallot,\r\n formId: nextFormAfterSubmit,\r\n handleRegister: this.handleRegister,\r\n handleUserRegisterSuccess: this.handleUserRegisterSuccess,\r\n handleRaMembersRegisterSuccess: this.handleRaMembersRegisterSuccess,\r\n handleSignIn: this.handleSignIn,\r\n handleCognitoHostedUISignIn: this.handleCognitoHostedUISignIn,\r\n handleForgotPassword: this.handleForgotPassword,\r\n handleSignInSucces: this.handleSignInSucces,\r\n handleNewPasswordRequired: this.handleNewPasswordRequired,\r\n handleBallotSignIn: this.handleBallotSignIn,\r\n handleBallotRegister: this.handleBallotRegister,\r\n handleBallotForgotPassword: this.handleBallotForgotPassword,\r\n handleBallotSummarySuccess: this.handleBallotSummarySuccess,\r\n handleBallotPortalRedirect: this.handleBallotPortalRedirect,\r\n handleRaMembersSignIn: this.handleRaMembersSignIn\r\n });\r\n }\r\n\r\n render() {\r\n const { modalOpen } = this.state;\r\n const { IsPopup } = this.props;\r\n const shouldDisplayForm = IsPopup ? modalOpen : true;\r\n return (\r\n \r\n {shouldDisplayForm ? this.displaySSOForm() : null}\r\n \r\n );\r\n }\r\n}\r\n\r\nSSOForm.propTypes = {\r\n formData: PropTypes.object.isRequired\r\n};\r\n\r\nexport default SSOForm;\r\n","export const sitecoreFieldConstants = {\r\n emptyGUID: \"00000000-0000-0000-0000-000000000000\"\r\n};","\r\nexport default {\r\n registerForm: {\r\n registerFormData: {},\r\n isFormLoadSuccessful: false,\r\n isRegisterSuccessful: false,\r\n userRegistrationMessages: [],\r\n isResendEmailVerificationSuccessful: false,\r\n resendEmailVerificationMessages: [],\r\n userName: ''\r\n },\r\n itemListForm: {\r\n isFormLoadSuccessful: false,\r\n itemListFormData: {},\r\n itemListErrorMessages: []\r\n },\r\n upgradeAccountForm: {\r\n isUpgradeSuccessful: false,\r\n accountUpgradeMessages: [],\r\n upgradeToOneClubFormData: {}\r\n },\r\n userAddress: {\r\n isUserAddressSearchSuccessful: false,\r\n suggestedAddresses: [],\r\n searchAddressMessages: '',\r\n isUserAddressRetrieveSuccessful: false,\r\n retrieveAddressMessages: '',\r\n retrievedUserAddress: {}\r\n },\r\n basket: {\r\n isPaymentAttemptSuccessful: true,\r\n purchaseAttemptMessages: []\r\n },\r\n signInForm: {\r\n signInFormData: {},\r\n isFormLoadSuccessful: false,\r\n isSignInSuccessful: false,\r\n isUserLastLogInDataUpdated: false,\r\n userLastLogInDataErrorMessages: [],\r\n signInMessages: [],\r\n isSignOutSuccessful: false,\r\n signOutMessages: [],\r\n isNewPasswordRequired: false,\r\n cognitoUser: {},\r\n isNewPasswordRequiredFormDataLoadedSuccessful: false,\r\n loadPasswordRequiredFormDataMessages: [],\r\n newPasswordRequiredFormData: {},\r\n isNewPasswordSavedSuccessful: false,\r\n newPasswordSavedMessages: [],\r\n signInSuccessFormData: {}\r\n },\r\n forgotPasswordForm: {\r\n forgotPasswordFormData: {},\r\n isFormLoadSuccessful: false,\r\n forgotPasswordMessages: [],\r\n isForgotPasswordSuccessful: false\r\n },\r\n resetPasswordForm: {\r\n resetPasswordFormData: {},\r\n isFormLoadSuccessful: false,\r\n resetPasswordMessages: [],\r\n isResetPasswordSuccessful: false\r\n },\r\n verifyEmailForm: {\r\n verifyEmailFormData: {},\r\n isFormLoadSuccessful: false,\r\n verifyEmailMessages: [],\r\n isVerifyEmailSuccessful: false\r\n },\r\n userAccount: {\r\n isTicketsDataLoadedSuccessful: false,\r\n isUserAccountDataLoadedSuccessful: false,\r\n isAccountPageRefresh: false,\r\n isUserNotSignedIn: false,\r\n isOrderHistoryLoadedSuccessful: false,\r\n areOrderDetailsLoadedSuccessful: false,\r\n areOrderHistoryPagesLoadedSuccessful: false,\r\n isUserDetailsUpdatedSuccessful: false,\r\n isUserTicketsDataLoadedSuccessful: false,\r\n isPdfFileDownloadedSuccessful: false,\r\n isUserAccountRemovedSuccessful: false,\r\n areUserAddressesUpdatedSuccessful: false,\r\n isUserPasswordChangedSuccessful: false,\r\n isUserUpdatingEmail: false,\r\n homePageTicketsData: {},\r\n userAccountData: {},\r\n orderHistoryData: [],\r\n orderDetails: {},\r\n userTicketsData: [],\r\n orderHistoryPages: 0,\r\n loadHomePageTicketsDataErrorMessages: [],\r\n downloadPdfFileErrorMessages: [],\r\n updateUserDetailsMessages: [],\r\n updateUserAddressesMessages: [],\r\n changePasswordMessages: [],\r\n userAddedToAddressBookSuccessful: false,\r\n saveUserToAddressBookErrorMessages: []\r\n },\r\n apiStatus: {\r\n apiCallsInProgress: 0,\r\n apiErrorMessages: []\r\n }\r\n};\r\n","import { combineReducers } from 'redux';\r\nimport apiStatus from './api-status-reducer';\r\nimport registerForm from './register-form-reducer';\r\nimport userAddressReducer from './user-address-reducer';\r\nimport upgradeAccountForm from './upgrade-account-reducer';\r\nimport basket from './basket-reducer';\r\nimport signInForm from './sign-in-form-reducer';\r\nimport forgotPasswordForm from './forgot-password-form-reducer';\r\nimport resetPasswordForm from './reset-password-form-reducer';\r\nimport userAccount from './user-account-reducer';\r\nimport itemListForm from './item-list-form-reducer';\r\nimport verifyEmailForm from './verify-email-form-reducer';\r\n\r\nconst rootReducer = combineReducers({\r\n registerForm,\r\n itemListForm,\r\n upgradeAccountForm,\r\n basket,\r\n userAddressSearchData: userAddressReducer,\r\n signInForm,\r\n forgotPasswordForm,\r\n resetPasswordForm,\r\n verifyEmailForm,\r\n userAccount,\r\n apiStatus,\r\n});\r\n\r\nexport default rootReducer;\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function registerFormReducer(state = initialState.registerForm, action) {\r\n switch (action.type) {\r\n case types.REGISTER_USER_SUCCESS:\r\n return {\r\n ...state,\r\n isRegisterSuccessful: true,\r\n userName: action.userName,\r\n userRegistrationMessages: action.userRegistrationMessages\r\n };\r\n case types.REGISTER_USER_ERROR:\r\n return {\r\n ...state,\r\n isRegisterSuccessful: false,\r\n userName: '',\r\n userRegistrationMessages: action.userRegistrationMessages\r\n };\r\n case types.LOAD_REGISTER_FORM_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: true,\r\n registerFormData: action.registerFormData,\r\n userRegistrationMessages: []\r\n };\r\n case types.LOAD_REGISTER_FORM_DATA_ERROR:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: false,\r\n registerFormData: {},\r\n userRegistrationMessages: []\r\n };\r\n case types.RESEND_EMAIL_VERIFICATION_SUCCESS:\r\n return {\r\n ...state,\r\n isResendEmailVerificationSuccessful: true,\r\n resendEmailVerificationMessages: action.resendEmailVerificationMessages,\r\n };\r\n case types.RESEND_EMAIL_VERIFICATION_ERROR:\r\n return {\r\n ...state,\r\n isResendEmailVerificationSuccessful: false,\r\n resendEmailVerificationMessages: action.resendEmailVerificationMessages,\r\n };\r\n case types.RESET_REGISTER_FORM_STATE:\r\n return initialState.registerForm;\r\n case types.VERIFY_IF_USER_EMAIL_EXISTS_SUCCESS:\r\n return {\r\n ...state,\r\n isUserEmailAlreadyUsed: false\r\n };\r\n case types.VERIFY_IF_USER_EMAIL_EXISTS_ERROR:\r\n return {\r\n ...state,\r\n isUserEmailAlreadyUsed: true\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { hasValue } from '../../../../general/js/general-helpers';\r\nimport * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function itemListFormReducer(state = initialState.itemListForm, action) {\r\n switch (action.type) {\r\n case types.LOAD_ITEM_LIST_FORM_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: true,\r\n itemListFormData: hasValue(action.itemListFormData) ? action.itemListFormData : {},\r\n itemListErrorMessages: []\r\n };\r\n case types.LOAD_ITEM_LIST_FORM_DATA_ERROR:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: false,\r\n itemListFormData: {},\r\n itemListErrorMessages: action.errorMessage\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function upgradeAccountReducer(state = initialState.upgradeAccountForm, action) {\r\n switch (action.type) {\r\n case types.UPGRADE_TO_TICKETING_ACCOUNT_SUCCESS:\r\n return {\r\n ...state,\r\n isUpgradeSuccessful: true,\r\n accountUpgradeMessages: action.accountUpgradeMessages,\r\n };\r\n case types.UPGRADE_TO_TICKETING_ACCOUNT_ERROR:\r\n return {\r\n ...state,\r\n isUpgradeSuccessful: false,\r\n accountUpgradeMessages: action.accountUpgradeMessages\r\n };\r\n case types.LOAD_UPGRADE_TO_ONE_CLUB_FORM_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n isUpgradeToOneClubFormDataLoadedSuccessful: true,\r\n upgradeToOneClubFormData: action.ssoUpgradeToOneClubFormData\r\n };\r\n case types.LOAD_UPGRADE_TO_ONE_CLUB_FORM_DATA_ERROR:\r\n return {\r\n ...state,\r\n isUpgradeToOneClubFormDataLoadedSuccessful: false,\r\n upgradeToOneClubFormData: {}\r\n };\r\n case types.RESET_UPGRADE_ACCOUNT_FORM:\r\n return initialState.upgradeAccountForm;\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function basketReducer(state = initialState.basket, action) {\r\n switch (action.type) {\r\n case types.PURCHASE_ATTEMPT_SUCCESS:\r\n return {\r\n ...state,\r\n isPaymentAttemptSuccessful: true,\r\n purchaseAttemptMessages: action.purchaseAttemptMessages\r\n };\r\n case types.PURCHASE_ATTEMPT_ERROR:\r\n return {\r\n ...state,\r\n isPaymentAttemptSuccessful: false,\r\n userRegistrationMessages: action.purchaseAttemptMessages\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function userAddressReducer(state = initialState.userAddress, action) {\r\n switch (action.type) {\r\n case types.SEARCH_ADDRESS_SUCCESS:\r\n return {\r\n ...state,\r\n isUserAddressSearchSuccessful: true,\r\n suggestedAddresses: action.suggestedAddresses,\r\n searchAddressMessages: ''\r\n };\r\n case types.SEARCH_ADDRESS_ERROR:\r\n return {\r\n ...state,\r\n isUserAddressSearchSuccessful: false,\r\n suggestedAddresses: [],\r\n searchAddressMessage: action.searchAddressMessage\r\n };\r\n case types.RETRIEVE_ADDRESS_SUCCESS:\r\n return {\r\n ...state,\r\n isUserAddressRetrieveSuccessful: true,\r\n retrievedUserAddress: action.addressData,\r\n retrieveAddressMessages: ''\r\n };\r\n case types.RETRIEVE_ADDRESS_ERROR:\r\n return {\r\n ...state,\r\n isUserAddressRetrieveSuccessful: false,\r\n retrievedUserAddress: {},\r\n retrieveAddressMessages: action.retrieveAddressMessages\r\n };\r\n case types.RESET_RETRIEVE_USER_ADDRESS: return {\r\n ...state,\r\n isUserAddressRetrieveSuccessful: false,\r\n retrievedUserAddress: {}\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function registerFormReducer(state = initialState.signInForm, action) {\r\n switch (action.type) {\r\n case types.SIGN_IN_USER_SUCCESS:\r\n return {\r\n ...state,\r\n isSignInSuccessful: action.signInProperties.isSignInSuccessful,\r\n signInMessages: action.signInProperties.signInMessages,\r\n isNewPasswordRequired: action.signInProperties.isNewPasswordRequired,\r\n cognitoUser: action.signInProperties.cognitoUser\r\n };\r\n case types.SIGN_IN_USER_ERROR:\r\n return {\r\n ...state,\r\n isSignInSuccessful: false,\r\n isNewPasswordRequired: false,\r\n signInMessages: action.signInMessages,\r\n cognitoUser: {}\r\n };\r\n case types.LAST_LOG_IN_UPDATE_SUCCESS:\r\n return {\r\n ...state,\r\n isUserLastLogInDataUpdated: action.lastLogInProperties.isUserLastLogInDataUpdated,\r\n userLastLogInDataErrorMessages: []\r\n };\r\n case types.LAST_LOG_IN_UPDATE_ERROR:\r\n return {\r\n ...state,\r\n isUserLastLogInDataUpdated: false,\r\n userLastLogInDataErrorMessages: action.errorMessages\r\n };\r\n case types.NEW_PASSWORD_SAVED_SUCCESS:\r\n return {\r\n ...state,\r\n isNewPasswordSavedSuccessful: true,\r\n newPasswordSavedMessages: action.newPasswordSavedMessages,\r\n };\r\n case types.NEW_PASSWORD_SAVED_ERROR:\r\n return {\r\n ...state,\r\n isNewPasswordSavedSuccessful: false,\r\n newPasswordSavedMessages: action.newPasswordSavedMessages,\r\n };\r\n case types.LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n isNewPasswordRequiredFormDataLoadedSuccessful: true,\r\n newPasswordRequiredFormData: action.newPasswordRequiredFormData,\r\n loadPasswordRequiredFormDataMessages: []\r\n };\r\n case types.LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_ERROR:\r\n return {\r\n ...state,\r\n isNewPasswordRequiredFormDataLoadedSuccessful: false,\r\n loadPasswordRequiredFormDataMessages: action.loadPasswordRequiredFormDataMessages,\r\n newPasswordRequiredFormData: {}\r\n };\r\n case types.SIGN_OUT_USER_SUCCESS:\r\n return {\r\n ...state,\r\n isSignOutSuccessful: true,\r\n signOutMessages: action.signOutMessages\r\n };\r\n case types.SIGN_OUT_USER_ERROR:\r\n return {\r\n ...state,\r\n isSignOutSuccessful: false,\r\n signOutMessages: action.signOutMessages\r\n };\r\n case types.LOAD_SIGN_IN_FORM_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: true,\r\n signInFormData: action.signInFormData\r\n };\r\n case types.LOAD_SIGN_IN_FORM_DATA_ERROR:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: false,\r\n signInFormData: {}\r\n };\r\n case types.LOAD_SIGN_IN_SUCCESS_FORM_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n signInSuccessFormData: action.signInFormDataSuccess\r\n };\r\n case types.RESET_SIGN_IN_FORM_STATE:\r\n return {\r\n ...state,\r\n signInFormData: {},\r\n isFormLoadSuccessful: false,\r\n isSignInSuccessful: false,\r\n signInMessages: [],\r\n isSignOutSuccessful: false,\r\n signOutMessages: [],\r\n isNewPasswordRequired: false,\r\n cognitoUser: {},\r\n isNewPasswordRequiredFormDataLoadedSuccessful: false,\r\n loadPasswordRequiredFormDataMessages: [],\r\n newPasswordRequiredFormData: {},\r\n isNewPasswordSavedSuccessful: false,\r\n newPasswordSavedMessages: []\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function forgotPasswordFormReducer(state = initialState.forgotPasswordForm, action) {\r\n switch (action.type) {\r\n case types.FORGOT_PASSWORD_SUCCESS:\r\n return {\r\n ...state,\r\n isForgotPasswordSuccessful: true,\r\n forgotPasswordMessages: action.forgotPasswordMessages\r\n };\r\n case types.FORGOT_PASSWORD_ERROR:\r\n return {\r\n ...state,\r\n isForgotPasswordSuccessful: false,\r\n forgotPasswordMessages: action.forgotPasswordMessages\r\n };\r\n case types.LOAD_FORGOT_PASSWORD_FORM_SUCCESS:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: true,\r\n forgotPasswordFormData: action.forgotPasswordFormData,\r\n forgotPasswordMessages: []\r\n };\r\n case types.LOAD_FORGOT_PASSWORD_FORM_ERROR:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: false,\r\n forgotPasswordFormData: {},\r\n forgotPasswordMessages: []\r\n };\r\n case types.RESET_FORGOT_PASSWORD_FORM_STATE:\r\n return initialState.forgotPasswordForm;\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function resetPasswordFormReducer(state = initialState.resetPasswordForm, action) {\r\n switch (action.type) {\r\n case types.RESET_PASSWORD_SUCCESS:\r\n return {\r\n ...state,\r\n isResetPasswordSuccessful: true,\r\n resetPasswordMessages: action.resetPasswordMessages\r\n };\r\n case types.RESET_PASSWORD_ERROR:\r\n return {\r\n ...state,\r\n isResetPasswordSuccessful: false,\r\n resetPasswordMessages: action.resetPasswordMessages\r\n };\r\n case types.LOAD_RESET_PASSWORD_FORM_SUCCESS:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: true,\r\n resetPasswordFormData: action.resetPasswordFormData,\r\n resetPasswordMessages: []\r\n };\r\n case types.LOAD_RESET_PASSWORD_FORM_ERROR:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: false,\r\n resetPasswordFormData: {},\r\n resetPasswordMessages: []\r\n };\r\n case types.RESET_RESET_PASSWORD_FORM_STATE:\r\n return initialState.resetPasswordForm;\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function verifyEmailFormReducer(state = initialState.verifyEmailForm, action) {\r\n switch (action.type) {\r\n case types.VERIFY_EMAIL_SUCCESS:\r\n return {\r\n ...state,\r\n isVerifyEmailSuccessful: true,\r\n verifyEmailMessages: action.verifyEmailMessages\r\n };\r\n case types.VERIFY_EMAIL_ERROR:\r\n return {\r\n ...state,\r\n isVerifyEmailSuccessful: false,\r\n verifyEmailMessages: action.verifyEmailMessages\r\n };\r\n case types.LOAD_VERIFY_EMAIL_FORM_SUCCESS:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: true,\r\n verifyEmailFormData: action.verifyEmailFormData,\r\n verifyEmailMessages: []\r\n };\r\n case types.LOAD_VERIFY_EMAIL_FORM_ERROR:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: false,\r\n verifyEmailFormData: {},\r\n verifyEmailMessages: []\r\n };\r\n case types.RESET_VERIFY_EMAIL_FORM_STATE:\r\n return initialState.verifyEmailForm;\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function userAccountReducer(state = initialState.userAccount, action) {\r\n switch (action.type) {\r\n case types.LOAD_HOME_PAGE_TICKETS_DATA_SUCCESS: return {\r\n ...state,\r\n isTicketsDataLoadedSuccessful: true,\r\n loadHomePageTicketsDataErrorMessages: [],\r\n homePageTicketsData: action.homePageTicketsData\r\n\r\n };\r\n case types.LOAD_HOME_PAGE_TICKETS_DATA_ERROR: return {\r\n ...state,\r\n isTicketsDataLoadedSuccessful: false,\r\n loadHomePageTicketsDataErrorMessages: action.loadHomePageTicketsDataErrorMessages,\r\n homePageTicketsData: {}\r\n\r\n };\r\n case types.RESET_HOME_PAGE_TICKETS_DATA_FORM_STATE: return {\r\n ...state,\r\n isTicketsDataLoadedSuccessful: false,\r\n loadHomePageTicketsDataErrorMessages: [],\r\n homePageTicketsData: {}\r\n };\r\n case types.LOAD_USER_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n userAccountData: action.data.userAccountData,\r\n isAccountPageRefresh: action.data.isAccountPageRefresh,\r\n isUserAccountDataLoadedSuccessful: true,\r\n isUserNotSignedIn: false,\r\n userAddedToAddressBookSuccessful: false,\r\n saveUserToAddressBookErrorMessages: []\r\n };\r\n case types.LOAD_USER_DATA_ERROR:\r\n return {\r\n ...state,\r\n userAccountData: {},\r\n isAccountPageRefresh: false,\r\n isUserNotSignedIn: action.isUserNotSignedIn,\r\n isUserAccountDataLoadedSuccessful: false\r\n };\r\n case types.LOAD_ORDER_HISTORY_SUCCESS:\r\n return {\r\n ...state,\r\n orderHistoryData: action.orderHistoryData,\r\n isOrderHistoryLoadedSuccessful: true,\r\n displayCancelledFiles: action.displayCancelledFiles\r\n };\r\n case types.LOAD_ORDER_HISTORY_ERROR:\r\n return {\r\n ...state,\r\n orderHistoryData: [],\r\n isOrderHistoryLoadedSuccessful: false\r\n };\r\n case types.LOAD_ORDER_HISTORY_PAGES_SUCCESS: return {\r\n ...state,\r\n areOrderHistoryPagesLoadedSuccessful: true,\r\n orderHistoryPages: action.orderHistoryPages,\r\n displayCancelledFiles: action.displayCancelledFiles\r\n };\r\n case types.LOAD_ORDER_HISTORY_PAGES_ERROR: return {\r\n ...state,\r\n areOrderHistoryPagesLoadedSuccessful: false,\r\n orderHistoryPages: 0\r\n };\r\n case types.LOAD_ORDER_DETAILS_SUCCESS: return {\r\n ...state,\r\n orderDetails: action.orderDetails,\r\n areOrderDetailsLoadedSuccessful: true\r\n };\r\n case types.LOAD_ORDER_DETAILS_ERROR: return {\r\n ...state,\r\n orderDetails: {},\r\n areOrderDetailsLoadedSuccessful: false\r\n };\r\n case types.LOAD_USER_TICKETS_SUCCESS: return {\r\n ...state,\r\n userTicketsData: action.userTicketsData,\r\n hideOldTickets: action.hideOldTickets,\r\n isUserTicketsDataLoadedSuccessful: true,\r\n };\r\n case types.LOAD_USER_TICKETS_ERROR: return {\r\n ...state,\r\n userTicketsData: {},\r\n isUserTicketsDataLoadedSuccessful: false,\r\n };\r\n case types.DOWNLOAD_PDF_FILE_SUCCESS: return {\r\n ...state,\r\n downloadPdfFileErrorMessages: [],\r\n isPdfFileDownloadedSuccessful: true\r\n };\r\n case types.DOWNLOAD_PDF_FILE_ERROR: return {\r\n ...state,\r\n isPdfFileDownloadedSuccessful: false,\r\n downloadPdfFileErrorMessages: action.downloadPdfFileErrorMessages\r\n };\r\n case types.UPDATE_USER_DETAILS_SUCCESS:\r\n return {\r\n ...state,\r\n isUserDetailsUpdatedSuccessful: true,\r\n updateUserDetailsMessages: action.updateUserDetailsMessages\r\n };\r\n case types.UPDATER_USER_EMAIL_SUCCESS:\r\n return {\r\n ...state,\r\n isUserDetailsUpdatedSuccessful: true,\r\n isUserUpdatingEmail: true,\r\n updateUserDetailsMessages: action.updateUserDetailsMessages\r\n };\r\n case types.UPDATE_USER_DETAILS_ERROR:\r\n return {\r\n ...state,\r\n isUserDetailsUpdatedSuccessful: false,\r\n updateUserDetailsMessages: action.updateUserDetailsMessages\r\n };\r\n case types.REMOVE_USER_ACCOUNT_SUCCESS:\r\n return {\r\n ...state,\r\n isUserAccountRemovedSuccessful: true\r\n };\r\n case types.REMOVE_USER_ACCOUNT_ERROR:\r\n return {\r\n ...state,\r\n isUserAccountRemovedSuccessful: false\r\n };\r\n case types.UPDATE_USER_ADDRESSES_SUCCESS:\r\n return {\r\n ...state,\r\n areUserAddressesUpdatedSuccessful: true,\r\n updateUserAddressesMessages: action.updateUserAddressesMessages\r\n };\r\n case types.UPDATE_USER_ADDRESSES_ERROR:\r\n return {\r\n ...state,\r\n areUserAddressesUpdatedSuccessful: false,\r\n updateUserAddressesMessages: action.updateUserAddressesMessages\r\n };\r\n case types.RESET_USER_ADDRESSES_FORM_STATE:\r\n return {\r\n ...state,\r\n areUserAddressesUpdatedSuccessful: false,\r\n updateUserAddressesMessages: []\r\n };\r\n case types.USER_ADDRESSES_ERROR_MESSAGE: return {\r\n ...state,\r\n areUserAddressesUpdatedSuccessful: false,\r\n updateUserAddressesMessages: action.errorMessages\r\n };\r\n case types.CHANGE_PASSWORD_SUCCESS:\r\n return {\r\n ...state,\r\n isUserPasswordChangedSuccessful: true,\r\n changePasswordMessages: action.changePasswordMessages\r\n };\r\n case types.CHANGE_PASSWORD_ERROR:\r\n return {\r\n ...state,\r\n isUserPasswordChangedSuccessful: false,\r\n changePasswordMessages: action.changePasswordMessages\r\n };\r\n case types.RESET_USER_DETAILS_FORM_STATE:\r\n return {\r\n ...state,\r\n isUserDetailsUpdatedSuccessful: false,\r\n updateUserDetailsMessages: []\r\n };\r\n case types.RESET_CHANGE_PASSWORD_FORM_STATE:\r\n return {\r\n ...state,\r\n isUserPasswordChangedSuccessful: false,\r\n changePasswordMessages: [],\r\n };\r\n case types.SAVE_USER_TO_ADDRESS_BOOK_SUCCESS:\r\n return {\r\n ...state,\r\n userAddedToAddressBookSuccessful: true,\r\n saveUserToAddressBookErrorMessages: []\r\n }\r\n case types.SAVE_USER_TO_ADDRESS_BOOK_ERROR_MESSAGE:\r\n return {\r\n ...state,\r\n userAddedToAddressBookSuccessful: false,\r\n saveUserToAddressBookErrorMessages: action.errorMessages\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\nimport { formMessageConstants } from '../../components/utils/constants/form-message-constants';\r\n\r\nfunction actionTypeEndsInSuccess(type) {\r\n return type.substring(type.length - 8) === '_SUCCESS';\r\n}\r\n\r\nexport default function apiStatusReducer(\r\n state = {\r\n apiCallsInProgress: initialState.apiStatus.apiCallsInProgress,\r\n apiErrorMessages: initialState.apiStatus.apiErrorMessages\r\n },\r\n action\r\n) {\r\n if (action.type === types.BEGIN_API_CALL) {\r\n return {\r\n ...state,\r\n apiCallsInProgress: state.apiCallsInProgress + 1,\r\n apiErrorMessages: []\r\n };\r\n }\r\n\r\n if (action.type === types.API_CALL_ERROR) {\r\n return {\r\n ...state,\r\n apiCallsInProgress: state.apiCallsInProgress - 1,\r\n apiErrorMessages: [formMessageConstants.somethingWentWrong]\r\n };\r\n }\r\n\r\n if (actionTypeEndsInSuccess(action.type)) {\r\n return {\r\n ...state,\r\n apiCallsInProgress: state.apiCallsInProgress - 1,\r\n apiErrorMessage: []\r\n };\r\n }\r\n\r\n if (action.type === types.API_CALL_STATE_RESET) {\r\n return state;\r\n }\r\n\r\n return state;\r\n}\r\n","import { 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, USER_STATE_VALID } 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 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 userService.removeDataFromLocalStorage(USER_STATE_VALID);\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":""}