{"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":""}