{"version":3,"sources":["webpack://fxsWidgets/../src/js/widgets/calendar-common/constants/gtmIds.js","webpack://fxsWidgets/../src/js/widgets/calendar-topevents-subscription/actions/notificationsActions.js","webpack://fxsWidgets/../src/js/widgets/calendar-topevents-subscription/actions/subscriptionActions.js","webpack://fxsWidgets/../src/js/widgets/calendar-topevents-subscription/actions/index.js","webpack://fxsWidgets/../src/js/widgets/calendar-common/helpers/calendar.js","webpack://fxsWidgets/../src/js/widgets/calendar-topevents-subscription/store.js","webpack://fxsWidgets/../src/js/widgets/calendar-common/helpers/notifySubscriptionHelper.js","webpack://fxsWidgets/../src/js/widgets/calendar-common/helpers/oneSignalHelper.js","webpack://fxsWidgets/../src/js/widgets/calendar-topevents-subscription/components/TopEventsSubscription.js","webpack://fxsWidgets/../src/js/widgets/calendar-topevents-subscription/actions/localizationActions.js","webpack://fxsWidgets/../src/js/widgets/calendar-topevents-subscription/index.js","webpack://fxsWidgets/../src/js/widgets/calendar-topevents-subscription/components/TopEventsSubscriptionContainer.js"],"names":["GTM_ID","CONFIGURATION_SOUND_ON","CONFIGURATION_SOUND_OFF","CONFIGURATION_DEFAULT_VIEW","CONFIGURATION_PREMIUM_VIEW","CONFIGURATION_BASIC_VIEW","CONFIGURATION_PREMIUM_LINK","SUBSCRIPTION_TOP_EVENTS_SUBSCRIBE","SUBSCRIPTION_TOP_EVENTS_UNSUBSCRIBE","RELATED_EVENTS","GA4EVENT","NAMES","FEATURES_CALENDAR","ELEMENTS","getHelper","store","getState","config","notificationsHelper","enabledNotifications","enabledCalendarNotifications","initEventNotifications","oneSignalInit","initOneSignal","then","helper","isPushNotificationsSupported","isSupported","initSubscriptions","setState","notificationsSupported","catch","err","console","error","activeSubscription","cookieTopEventsSubscription","setCookie","isSubscribed","log","deactivateSubscription","toggleSubscription","_store$getState4","eventsId","callbackSubscription","unsubscribe","eventTags","notifySubscriptions","subscriptionChangedEventName","unSubscribeMultipleEvents","eventNotifications","subscribe","subscribeMultipleEvents","fetchLocalizations","notificationsActions","subscriptionActions","initializeSubscriptionCookie","isFetching","fetchError","initializing","getCookie","Boolean","oneSignalAppId","downloadCalendar","url","format","fetch","headers","response","Promise","resolve","blob","filename","getAttachmentFileName","_ref","window","URL","createObjectURL","Blob","link","document","createElement","href","setAttribute","body","appendChild","click","parentNode","removeChild","disposition","get","indexOf","matches","exec","replace","INITIAL_STATE","culture","oneSignalUrl","safariWebId","tracking","convertCulture","input","Object","keys","translations","includes","toLowerCase","createStore","props","createCustomStore","newEvents","event","CustomEvent","detail","dispatchEvent","OneSignal","mustOneSignalInit","push","settings","appId","notifyButton","enable","welcomeNotification","disable","isHttps","subdomainName","safari_web_id","init","showNativePrompt","TopEventsSubscription","_Component","_callSuper","arguments","_inherits","key","value","translate","gtmid","h","Spinner","WidgetError","Fragment","class","IconBellSolid","IconInfoCircle","role","type","className","onClick","IconCheck","Component","storeCulture","currentCulture","hasOwnProperty","default","_x","apply","CalendarTopEventsSubcriptionWidget","_this","Provider","this","TopEventsSubscriptionContainer","connectWithTranslations","actions"],"mappings":"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","file":"calendar-topevents-subscription.4abbba63eb66df77a295.js","sourcesContent":["export const GTM_ID = {\r\n CONFIGURATION_SOUND_ON: 'features-calendar-configuration-soundon',\r\n CONFIGURATION_SOUND_OFF: 'features-calendar-configuration-soundoff',\r\n CONFIGURATION_DEFAULT_VIEW: 'features-calendar-configuration-defaultview',\r\n CONFIGURATION_PREMIUM_VIEW: 'features-calendar-configuration-premiumview',\r\n CONFIGURATION_BASIC_VIEW: 'features-calendar-configuration-basicview',\r\n CONFIGURATION_PREMIUM_LINK: \"features-calendar-configuration-premiumlink\",\r\n SUBSCRIPTION_TOP_EVENTS_SUBSCRIBE: \"features-calendar-topevents-subscription\",\r\n SUBSCRIPTION_TOP_EVENTS_UNSUBSCRIBE: \"features-calendar-topevents-unsubscription\",\r\n RELATED_EVENTS: \"features-calendar-related-event-{relatedEventName}\"\r\n}\r\nexport const GA4EVENT = {\r\n NAMES: { FEATURES_CALENDAR: \"features-calendar\" },\r\n ELEMENTS: {\r\n CONFIGURATION_SOUND_ON: 'configuration-soundon',\r\n CONFIGURATION_SOUND_OFF: 'configuration-soundoff',\r\n CONFIGURATION_DEFAULT_VIEW: 'configuration-defaultview',\r\n CONFIGURATION_PREMIUM_VIEW: 'configuration-premiumview',\r\n CONFIGURATION_BASIC_VIEW: 'configuration-basicview',\r\n CONFIGURATION_PREMIUM_LINK: \"configuration-premiumlink\",\r\n SUBSCRIPTION_TOP_EVENTS_SUBSCRIBE: \"topevents-subscription\",\r\n SUBSCRIPTION_TOP_EVENTS_UNSUBSCRIBE: \"topevents-unsubscription\",\r\n RELATED_EVENTS: \"related-event\"\r\n }\r\n}","import { oneSignalInit } from \"../../calendar-common/helpers/oneSignalHelper\";\r\nimport { enabledCalendarNotifications } from \"../../calendar-common/helpers/calendar\";\r\nimport { notifySubscriptions } from \"../../calendar-common/helpers/notifySubscriptionHelper\";\r\n\r\nconst getHelper = (store) => {\r\n const { config } = store.getState();\r\n\r\n return config.notificationsHelper();\r\n};\r\n\r\nconst initOneSignal = (store) => {\r\n const { config } = store.getState();\r\n\r\n oneSignalInit(config);\r\n};\r\n\r\nconst enabledNotifications = (store) => {\r\n const { config } = store.getState();\r\n\r\n return enabledCalendarNotifications(config);\r\n};\r\n\r\nexport const initEventNotifications = (store) => {\r\n initOneSignal(store);\r\n\r\n getHelper(store)\r\n .then((helper) => {\r\n helper.isPushNotificationsSupported().then((isSupported) => {\r\n if (helper.initSubscriptions) {\r\n helper.initSubscriptions()\r\n .then(() => store.setState({ notificationsSupported: isSupported }))\r\n }\r\n else {\r\n store.setState({ notificationsSupported: isSupported });\r\n }\r\n });\r\n })\r\n .catch((err) => console.error(err));\r\n};\r\n\r\nexport const subscribeMultipleEvents = (\r\n store,\r\n eventsId,\r\n callbackSubscription\r\n) => {\r\n const { config } = store.getState();\r\n if (!enabledNotifications(store)) return;\r\n\r\n getHelper(store).then((helper) => {\r\n helper\r\n .subscribe(eventsId)\r\n .then((eventTags) => {\r\n notifySubscriptions(\r\n eventTags,\r\n config.subscriptionChangedEventName\r\n );\r\n callbackSubscription(store);\r\n })\r\n .catch((err) => {\r\n console.error(\"Could not subscribe to events \" + eventsId);\r\n console.error(err);\r\n });\r\n });\r\n};\r\n\r\nexport const unSubscribeMultipleEvents = (\r\n store,\r\n eventsId,\r\n callbackSubscription\r\n) => {\r\n const { config } = store.getState();\r\n if (!enabledNotifications(store)) return;\r\n\r\n getHelper(store).then((helper) => {\r\n helper\r\n .unsubscribe(eventsId)\r\n .then((eventTags) => {\r\n notifySubscriptions(\r\n eventTags,\r\n config.subscriptionChangedEventName\r\n );\r\n callbackSubscription(store);\r\n })\r\n .catch((err) => {\r\n console.error(\"Could not unsubscribe to events \" + eventsId);\r\n console.error(err);\r\n });\r\n });\r\n};\r\n","import { getCookie, setCookie } from \"../../common/helpers/cookieHelpers\";\r\nimport {\r\n subscribeMultipleEvents,\r\n unSubscribeMultipleEvents,\r\n} from \"./notificationsActions\";\r\n\r\nconst initializing = (store) => {\r\n store.setState({\r\n isFetching: true,\r\n fetchError: false,\r\n isSubscribed: false,\r\n });\r\n};\r\n\r\nexport const initializeSubscriptionCookie = (store) => {\r\n initializing(store);\r\n const { cookieTopEventsSubscription } = store.getState();\r\n try {\r\n const isSubscribed = getCookie(cookieTopEventsSubscription);\r\n if (isSubscribed === null || isSubscribed === undefined) {\r\n setCookie(cookieTopEventsSubscription, false, 3650, '/');\r\n store.setState({\r\n isSubscribed: false,\r\n isFetching: false,\r\n });\r\n } else {\r\n store.setState({\r\n isSubscribed: isSubscribed,\r\n isFetching: false,\r\n });\r\n }\r\n } catch (error) {\r\n store.setState({\r\n isSubscribed: false,\r\n isFetching: false,\r\n fetchError: true,\r\n });\r\n }\r\n};\r\n\r\nconst activeSubscription = (store) => {\r\n const { cookieTopEventsSubscription } = store.getState();\r\n\r\n try {\r\n setCookie(cookieTopEventsSubscription, true, null, '/');\r\n store.setState({\r\n isSubscribed: true,\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n};\r\n\r\nconst deactivateSubscription = (store) => {\r\n const { cookieTopEventsSubscription } = store.getState();\r\n\r\n try {\r\n setCookie(cookieTopEventsSubscription, false, null, '/');\r\n store.setState({\r\n isSubscribed: false,\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n};\r\n\r\nexport const toggleSubscription = (store) => {\r\n const { isSubscribed, config } = store.getState();\r\n if (isSubscribed === true) {\r\n unSubscribeMultipleEvents(\r\n store,\r\n config.eventNotifications,\r\n deactivateSubscription\r\n );\r\n } else {\r\n subscribeMultipleEvents(store, config.eventNotifications, activeSubscription);\r\n }\r\n};\r\n","import { fetchLocalizations } from \"./localizationActions\";\r\nimport * as notificationsActions from \"./notificationsActions\";\r\nimport * as subscriptionActions from \"./subscriptionActions\";\r\n\r\nexport default (store) => ({\r\n fetchLocalizations: (state) => fetchLocalizations(store),\r\n initEventNotifications: (state) =>\r\n notificationsActions.initEventNotifications(store),\r\n toggleSubscription: (state) =>\r\n subscriptionActions.toggleSubscription(store),\r\n initializeSubscriptionCookie: (state) => subscriptionActions.initializeSubscriptionCookie(store),\r\n});\r\n","export const enabledCalendarNotifications = (config) => {\r\n return Boolean((config.notificationsHelper) || config.oneSignalAppId);\r\n}\r\n\r\nexport const downloadCalendar = (url, format) => {\r\n fetch(url, { headers: { 'Accept': format }})\r\n .then(response => {\r\n const promise = new Promise((resolve, reject) =>\r\n response.blob()\r\n .then(blob => resolve({ filename: getAttachmentFileName(response), blob }))\r\n )\r\n return promise\r\n })\r\n .then(({ filename, blob }) => {\r\n const url = window.URL.createObjectURL(new Blob([blob]))\r\n const link = document.createElement('a')\r\n link.href = url\r\n link.setAttribute('download', filename)\r\n document.body.appendChild(link)\r\n link.click()\r\n link.parentNode.removeChild(link)\r\n }).catch(err => {\r\n console.error('Could not download the iCalendar file')\r\n console.error(err)\r\n })\r\n}\r\n\r\nconst getAttachmentFileName = (response) => {\r\n let filename = null\r\n const disposition = response.headers.get('Content-Disposition')\r\n if (disposition && disposition.indexOf('attachment') !== -1) {\r\n const filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/\r\n var matches = filenameRegex.exec(disposition)\r\n if (matches !== null && matches[1]) {\r\n filename = matches[1].replace(/['\"]/g, '')\r\n }\r\n }\r\n return filename\r\n}\r\n\r\n","import { createCustomStore } from \"../common/helpers/storeHelpers\";\r\nimport { translations } from \"./actions/localizationActions\";\r\n\r\nconst INITIAL_STATE = {\r\n config: {\r\n culture: \"en\",\r\n oneSignalUrl: \"https://cdn.onesignal.com/sdks/OneSignalSDK.js\",\r\n notificationsHelper: null,\r\n oneSignalAppId: null,\r\n initOneSignal: null,\r\n safariWebId: null,\r\n subscriptionChangedEventName: \"subscription-changed\",\r\n eventNotifications: [],\r\n tracking: true,\r\n },\r\n isSubscribed: false,\r\n isFetching: false,\r\n fetchError: false,\r\n cookieTopEventsSubscription: \"SubscribedTopCalendarEvents\",\r\n notificationsSupported: true,\r\n \r\n};\r\n\r\nconst convertCulture = (input) => {\r\n const result =\r\n input && Object.keys(translations).includes(input.toLowerCase())\r\n ? input.toLowerCase()\r\n : \"en\";\r\n return result;\r\n};\r\n\r\nconst createStore = (props) => {\r\n const result = createCustomStore(props, INITIAL_STATE, {\r\n culture: convertCulture,\r\n });\r\n return result;\r\n};\r\n\r\nexport { createStore };\r\n","export const notifySubscriptions = function(newEvents,subscriptionChangedEventName ){\r\n if(!subscriptionChangedEventName)\r\n return;\r\n const event = new CustomEvent(subscriptionChangedEventName, { detail: newEvents});\r\n document.dispatchEvent(event);\r\n};","export const oneSignalInit = function (config) {\r\n window.OneSignal = window.OneSignal || [];\r\n if (mustOneSignalInit(config)) {\r\n OneSignal.push(function () {\r\n let settings = {\r\n appId: config.oneSignalAppId,\r\n notifyButton: {\r\n enable: false,\r\n },\r\n welcomeNotification: {\r\n disable: true,\r\n },\r\n };\r\n if (!isHttps(config))\r\n settings.subdomainName = config.initOneSignal;\r\n if (config.safariWebId)\r\n settings.safari_web_id = config.safariWebId;\r\n\r\n OneSignal.init(settings);\r\n\r\n if (isHttps(config))\r\n OneSignal.showNativePrompt();\r\n });\r\n }\r\n};\r\n\r\nexport const mustOneSignalInit = (config) => {\r\n return config.oneSignalAppId && config.initOneSignal;\r\n};\r\n\r\nexport const isHttps = (config) => {\r\n return config.initOneSignal === \"https\";\r\n};\r\n","import { h, Component, Fragment } from \"preact\";\r\nimport { GTM_ID, GA4EVENT} from \"../../calendar-common/constants\";\r\nimport IconBellSolid from \"../../common/components/icons/IconBellSolid\";\r\nimport IconCheck from \"../../common/components/icons/IconCheck\";\r\nimport IconInfoCircle from \"../../common/components/icons/IconInfoCircle\";\r\nimport Spinner from \"../../common/components/Spinner\";\r\nimport WidgetError from \"../../common/components/WidgetError\";\r\n\r\nclass TopEventsSubscription extends Component {\r\n render({\r\n config,\r\n toggleSubscription,\r\n translate,\r\n isSubscribed,\r\n isFetching,\r\n fetchError,\r\n }) {\r\n const gtmid = isSubscribed\r\n ? GTM_ID.SUBSCRIPTION_TOP_EVENTS_UNSUBSCRIBE\r\n : GTM_ID.SUBSCRIPTION_TOP_EVENTS_SUBSCRIBE;\r\n return isFetching ? (\r\n <Spinner />\r\n ) : fetchError ? (\r\n <WidgetError />\r\n ) : (\r\n <Fragment>\r\n <div class=\"fxs_header_top_events\">\r\n <div class=\"fxs_header_top_events_content\">\r\n <IconBellSolid />\r\n <span class=\"fxs_header_top_event_description\">\r\n {translate(\"TopEventsSubscriptionHeader\")}\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"fxs_content_top_events_description\">\r\n {translate(\"SubscribeContent\")}\r\n <div class=\"tooltip_wrapper\">\r\n <i class=\"fxs_icon_info_container\">\r\n <IconInfoCircle />\r\n </i>\r\n <div class=\"tooltip fade top in\" role=\"tooltip\">\r\n <div class=\"tooltip_arrow\"></div>\r\n <div class=\"tooltip_inner\">\r\n If you subscribe to our notification service you\r\n will receive live browser notifications for top\r\n impact events <strong>30 minutes</strong> prior\r\n to the release and once the event is published.\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"fxs_button_top_events_container\">\r\n <button\r\n type=\"button\"\r\n role=\"button\"\r\n className={\r\n isSubscribed\r\n ? \"fxs_button_top_events fxs_button_top_events_subscribed\"\r\n : \"fxs_button_top_events fxs_button_top_events_default\"\r\n }\r\n onClick={() => toggleSubscription()}\r\n data-gtmid={config.tracking && gtmid}\r\n data-ga4event-clk-name={ config.tracking && GA4EVENT.NAMES.FEATURES_CALENDAR}\r\n data-ga4event-element = {isSubscribed\r\n ? GA4EVENT.ELEMENTS.SUBSCRIPTION_TOP_EVENTS_UNSUBSCRIBE\r\n : GA4EVENT.ELEMENTS.SUBSCRIPTION_TOP_EVENTS_SUBSCRIBE}\r\n\r\n >\r\n {isSubscribed && (\r\n <Fragment>\r\n <i class=\"fxs_button_check\">\r\n <IconCheck />\r\n </i>\r\n {translate(\"SubscribedButtonText\")}\r\n </Fragment>\r\n )}\r\n {!isSubscribed && translate(\"SubscribeButtonText\")}\r\n </button>\r\n </div>\r\n </Fragment>\r\n );\r\n }\r\n}\r\n\r\nexport default TopEventsSubscription;\r\n","export const translations = {\r\n \"ar\": () => import(/*webpackChunkName: 'calendar-topevents-subscription-t-ar'*/\"../translations/ar\"),\r\n \"de\": () => import(/*webpackChunkName: 'calendar-topevents-subscription-t-de'*/\"../translations/de\"),\r\n \"en\": () => import(/*webpackChunkName: 'calendar-topevents-subscription-t-en'*/\"../translations/en\"),\r\n \"es\": () => import(/*webpackChunkName: 'calendar-topevents-subscription-t-es'*/\"../translations/es\"),\r\n \"fr\": () => import(/*webpackChunkName: 'calendar-topevents-subscription-t-fr'*/\"../translations/fr\"),\r\n \"id\": () => import(/*webpackChunkName: 'calendar-topevents-subscription-t-id'*/\"../translations/id\"),\r\n \"ru\": () => import(/*webpackChunkName: 'calendar-topevents-subscription-t-ru'*/\"../translations/ru\"),\r\n \"tr\": () => import(/*webpackChunkName: 'calendar-topevents-subscription-t-tr'*/\"../translations/tr\"),\r\n \"zh-cht\": () => import(/*webpackChunkName: 'calendar-topevents-subscription-t-zh-cht'*/\"../translations/zh-cht\"),\r\n \"zh-cn\": () => import(/*webpackChunkName: 'calendar-topevents-subscription-t-zh-cn'*/\"../translations/zh-cn\"),\r\n \"vi\": () => import(/*webpackChunkName: 'calendar-topevents-subscription-t-vi'*/\"../translations/vi\"),\r\n \"fa\": () => import(/*webpackChunkName: 'calendar-topevents-subscription-t-fa'*/\"../translations/fa\"),\r\n \"pt\": () => import(/*webpackChunkName: 'calendar-topevents-subscription-t-pt'*/\"../translations/pt\"),\r\n \"cs\": () => import(/*webpackChunkName: 'calendar-topevents-subscription-t-cs'*/\"../translations/cs\"),\r\n}\r\n\r\nexport const fetchLocalizations = async (store) => {\r\n const storeCulture = store.getState().config.culture\r\n const culture = storeCulture ? storeCulture.toLowerCase() : 'en'\r\n\r\n const currentCulture = translations.hasOwnProperty(culture) ? culture : 'en'\r\n\r\n const fetchedTranslations = await translations[currentCulture]()\r\n .catch(() => {\r\n console.error('Could not fetch translations')\r\n return null\r\n })\r\n\r\n return { translations: fetchedTranslations.default }\r\n}\r\n","import { Component } from \"preact\";\r\nimport { Provider } from \"unistore/preact\";\r\nimport { createStore } from './store'\r\nimport TopEventsSubscriptionContainer from \"./components/TopEventsSubscriptionContainer\";\r\n\r\nclass CalendarTopEventsSubcriptionWidget extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.store = createStore(props)\r\n }\r\n\r\n render(props) {\r\n return (\r\n <Provider store={this.store}>\r\n <TopEventsSubscriptionContainer />\r\n </Provider>\r\n );\r\n }\r\n}\r\n\r\nexport default CalendarTopEventsSubcriptionWidget;\r\n","import { Component } from \"preact\";\r\nimport { connectWithTranslations } from \"../../common/helpers/translationsHelpers\";\r\nimport actions from \"../actions\";\r\nimport TopEventsSubscription from \"./TopEventsSubscription\";\r\n\r\nclass TopEventsSubscriptionContainer extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n componentWillMount() {\r\n this.props.fetchLocalizations();\r\n this.props.initEventNotifications();\r\n this.props.initializeSubscriptionCookie();\r\n }\r\n\r\n render({\r\n config,\r\n translate,\r\n toggleSubscription,\r\n isSubscribed,\r\n isFetching,\r\n fetchError,\r\n }) {\r\n return (\r\n <div class=\"fxs_widget fxs_top-events-subscription\">\r\n {\r\n <TopEventsSubscription\r\n config={config}\r\n translate={translate}\r\n toggleSubscription={toggleSubscription}\r\n isSubscribed={isSubscribed}\r\n isFetching={isFetching}\r\n fetchError={fetchError}\r\n ></TopEventsSubscription>\r\n }\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default connectWithTranslations(\r\n \"config,isSubscribed,cookieTopEventsSubscription,isFetching,fetchError\",\r\n actions\r\n)(TopEventsSubscriptionContainer);\r\n"],"sourceRoot":""}