{"version":3,"sources":["webpack://fxsWidgets/../src/js/widgets/calendar-settings/actions/notificationsActions.js","webpack://fxsWidgets/../src/js/widgets/calendar-settings/actions/settingsActions.js","webpack://fxsWidgets/../src/js/widgets/calendar-settings/actions/index.js","webpack://fxsWidgets/../src/js/widgets/calendar-settings/actions/searchActions.js","webpack://fxsWidgets/../src/js/widgets/calendar-settings/actions/localizationActions.js","webpack://fxsWidgets/../src/js/widgets/calendar-common/constants/gtmIds.js","webpack://fxsWidgets/../src/js/widgets/calendar/constants/timeFiltersValues.js","webpack://fxsWidgets/../src/js/widgets/calendar-common/helpers/settingsHelper.js","webpack://fxsWidgets/../src/js/widgets/calendar-common/helpers/notifySubscriptionHelper.js","webpack://fxsWidgets/../src/js/widgets/calendar-common/constants/view.js","webpack://fxsWidgets/../src/js/widgets/calendar-common/components/SoundAlert.js","webpack://fxsWidgets/../src/js/widgets/calendar-common/components/ConfigureView.js","webpack://fxsWidgets/../src/js/widgets/calendar-common/helpers/formatDate.js","webpack://fxsWidgets/../src/js/widgets/calendar-common/constants/events.js","webpack://fxsWidgets/../src/js/widgets/calendar/helpers/filter/dateRange.js","webpack://fxsWidgets/../src/js/widgets/calendar-common/constants/filterType.js","webpack://fxsWidgets/../src/js/widgets/calendar-common/components/ConfirmationPopUp.js","webpack://fxsWidgets/../src/js/widgets/calendar-common/helpers/calendarNotificationHelper.js"],"names":["eventNotificationsReceived","store","eventIds","updated","Date","now","length","setState","isFetching","fetchError","data","lastUpdated","eventResult","config","getState","totalResponse","urlPrefix","concat","calendarApiUrl","culture","forEach","id","url","cacheFetch","then","response","ok","json","value","push","checked","name","countryCode","currencyCode","isVisible","pushAndCheck","catch","err","console","error","getHelper","notificationsHelper","calendarNotificationHelper","enabledNotifications","hasNotifications","initEventNotifications","helper","subscriptionChangedEventName","document","addEventListener","e","detail","subscriptionChangedListener","initSubscriptions","toEvent","action","Promise","resolve","reject","Array","isArray","eventCount","verifyPermision","eventId","updateSettingsFromStorage","storageSettings","getSettingsWithNoFilter","newSettings","_objectSpread","settings","fetchLocalizations","notificationsActions","subscribeToEvents","state","subscribe","eventTags","notifySubscriptions","unsubscribeToEvents","unsubscribe","search","text","filtered","map","x","item","toLowerCase","indexOf","searchActions","close","_store$getState2","show","openCloseListener","openCloseEventName","isOpen","saveNotificationSoundOn","actualValue","_store$getState","notificationSoundOn","settingsActions","saveSettings","actualSettings","translations","_ref","storeCulture","currentCulture","hasOwnProperty","default","_x","apply","arguments","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","TIME_FILTERS_VALUES","RecentNext","Today","Tomorrow","ThisWeek","ThisMonth","NextWeek","NextMonth","Yesterday","PreviousWeek","PreviousMonth","Custom","SETTING_KEYS","persistSettings","getSetting","filter","time","INITIAL_SETTING","dateRange","getDateRange","timezoneOffset","type","FILTER_TYPE","custom","setSetting","newEvents","event","CustomEvent","dispatchEvent","CALENDAR_VIEW","Configure_View_Basic","Configure_View_Default","Configure_View_Premium","vi","ar","de","en","es","fr","ru","tr","fa","pt","cs","SoundAlert","_Component","_callSuper","_inherits","key","_this","this","props","locale","t","_ref2","onCheckboxChanged","h","class","NotificationSoundButton","gtmIdSoundOn","tracking","gtmIdSoundOff","GA4IdSoundOn","GA4IdSoundOff","g4Name","activated","toggleSound","SoundAlert_Summary","Component","connectWithTranslations","actions","ConfigureView","view","_this2","onOptionSelected","showDescription","keys","getKeysOfNotNullValues","hasPremium","Configure_View_Title","ConfigureView_Summary","onClick","getGTMTracking","getGA4Tracking","disabled","href","premiumUrl","target","Premium_More_Info","getOrdinalDay","day","SETTINGS_SAVED_EVENT_NAME","nowDate","startOfThisWeek","startOfWeek","weekStartsOn","endOfThisWeek","endOfWeek","startOfToday","startOfDay","endOfToday","endOfDay","startOfThisMonth","startOfMonth","dayOfWeek","getDay","from","subMinutes","to","addHours","addDays","subDays","endOfMonth","addWeeks","subWeeks","startOfNextMonth","addMonths","startOfPreviousMonth","subMonths","undefined","basic","ConfirmationPopUp","translate","cancel","save","role","notificationCalendar","window","Notifications","OneSignal","getTags","tags","isPushNotificationsSupported","isSupported","isPushNotificationsEnabled","isEnabled","onPermissionChanged","callback","on","permissionChange","log","getNotificationPermission","permission","registerForPushNotifications","sendTag","deleteTag","sendTags","Calendar","notification","tagPrefix","currentTags","processTags","Object","startsWith","replace","getSubscriptions","calendarTags","JSON","stringify","tag","toUpperCase","newTags"],"mappings":"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","file":"calendar~calendar-settings.4abbba63eb66df77a295.js","sourcesContent":["import { cacheFetch } from '../../common/helpers/cacheFetchHelpers'\r\nimport {calendarNotificationHelper} from '../../calendar-common/helpers/calendarNotificationHelper'\r\nimport {notifySubscriptions} from '../../calendar-common/helpers/notifySubscriptionHelper'\r\n\r\nconst eventNotificationsReceived = (store, eventIds) => {\r\n    const updated = Date.now()\r\n\r\n    if(eventIds.length === 0){\r\n        store.setState({ isFetching: false, fetchError: false, data: null, lastUpdated: updated })\r\n        return true;\r\n    }\r\n\r\n    let eventResult = [];\r\n    store.setState({ isFetching: true, fetchError: false, data: null, lastUpdated: updated })\r\n\r\n    const config = store.getState().config;\r\n\r\n    var totalResponse = 0\r\n    let urlPrefix = `${config.calendarApiUrl}/${config.culture}/api/v1/events`\r\n\r\n    const pushAndCheck = function(id,value){\r\n        const { lastUpdated } = store.getState()\r\n        if(lastUpdated > updated)\r\n            return true;\r\n\r\n        eventResult.push({\r\n            id: id,\r\n            checked: true,\r\n            name: value.name,\r\n            countryCode: value.countryCode,\r\n            currencyCode: value.currencyCode,\r\n            isVisible: true\r\n        });\r\n        if(totalResponse === eventIds.length)\r\n        {\r\n            store.setState({\r\n                isFetching: false,\r\n                fetchError: false,\r\n                data: eventResult\r\n            })\r\n            return true;\r\n        }\r\n        return false;\r\n    }\r\n\r\n    eventIds.forEach(id => {\r\n        let url = `${urlPrefix}/${id}`\r\n\r\n        cacheFetch(url, false)\r\n            .then(response => {\r\n                totalResponse++;\r\n\r\n                if (response.ok) {\r\n                    response.json().then(value => {\r\n                        if(pushAndCheck(id, value))\r\n                            return\r\n                    })\r\n                }\r\n            })\r\n            .catch(err => {\r\n                console.error(err)\r\n                store.setState({ isFetching: false, fetchError: true, data: null, lastUpdated: updated })\r\n                return\r\n            })\r\n    });\r\n}\r\n\r\nconst getHelper = (store) => {\r\n    const { config } = store.getState();\r\n\r\n    return (config.notificationsHelper || calendarNotificationHelper)();\r\n}\r\n\r\nconst enabledNotifications = (store) => {\r\n    const { config } = store.getState();\r\n\r\n    return (config.notificationsHelper || config.hasNotifications);\r\n}\r\n\r\nconst subscriptionChangedListener = (store) => {\r\n    const { config } = store.getState()\r\n    if(config.subscriptionChangedEventName){\r\n        document.addEventListener(config.subscriptionChangedEventName, function(e){\r\n            eventNotificationsReceived(store, e.detail)\r\n        }, false)\r\n    }\r\n}\r\n\r\nconst getEventNotifications = (store, helper) => {\r\n    //helper.getSubscriptions().then(eventIds => eventNotificationsReceived(store, eventIds))\r\n}\r\n\r\nexport const initEventNotifications = (store) => {\r\n    if (!enabledNotifications(store))\r\n        return;\r\n\r\n    getHelper(store)\r\n        .then(helper => {\r\n                subscriptionChangedListener(store)\r\n\r\n                if (helper.initSubscriptions) {\r\n                    helper.initSubscriptions()\r\n                        .then(() => getEventNotifications(store, helper))\r\n                }\r\n                else {\r\n                    getEventNotifications(store, helper)\r\n                }\r\n            })\r\n        .catch(err => console.error(err))\r\n}\r\n\r\nconst toEvent = (store, eventIds, action) => {\r\n    return new Promise((resolve, reject) => {\r\n        if(!eventIds || !Array.isArray(eventIds) || eventIds.length === 0)\r\n            return resolve();\r\n\r\n        if (!enabledNotifications(store))\r\n            return reject();\r\n\r\n        var eventCount = 0\r\n\r\n        getHelper(store)\r\n            .then(helper => {\r\n                helper.verifyPermision().then(\r\n                    () => {\r\n                        eventIds.forEach(eventId => {\r\n                            action(helper, eventId)\r\n                                .then(() => {\r\n                                    eventCount++;\r\n                                    if(eventCount === eventIds.length)\r\n                                        return resolve();\r\n                                })\r\n                                .catch(err => {\r\n                                    console.error(err)\r\n                                    return reject();\r\n                                })\r\n                        })\r\n                    }\r\n                )\r\n            })\r\n    })\r\n}\r\n\r\nexport const subscribeToEvent = (store, eventIds) => {\r\n    const { config } = store.getState();\r\n    return toEvent(store, eventIds,\r\n        (helper, eventId) => helper.subscribe(eventId).then(eventTags => {\r\n            notifySubscriptions(eventTags, config.subscriptionChangedEventName);\r\n        })\r\n        .catch(err => {\r\n            console.error('Could not subscribe to event ' + eventId)\r\n            console.error(err)\r\n        }))\r\n}\r\n\r\nexport const unsubscribeToEvent = (store, eventIds) => {\r\n    const { config } = store.getState();\r\n    return toEvent(store, eventIds,\r\n        (helper, eventId) => helper.unsubscribe(eventId).then(eventTags => {\r\n            notifySubscriptions(eventTags, config.subscriptionChangedEventName);\r\n        })\r\n        .catch(err => {\r\n            console.error('Could not unsubscribe to event ' + eventId)\r\n            console.error(err)\r\n        }))\r\n}\r\n","import { SETTING_KEYS } from \"../constants/settings\";\r\nimport {\r\n    getSetting,\r\n    setSetting,\r\n} from \"../../common/helpers/settingStorageHelpers\";\r\nimport { getSettingsWithNoFilter } from \"../../calendar-common/helpers/settingsHelper\";\r\n\r\nexport const saveNotificationSoundOn = (store, actualValue) => {\r\n    const { settings } = store.getState();\r\n\r\n    store.setState({\r\n        settings: {\r\n            ...settings,\r\n            notificationSoundOn: actualValue,\r\n        },\r\n    });\r\n};\r\nexport const saveSettings = (store, actualSettings) => {\r\n    const { settings } = store.getState();\r\n\r\n    store.setState({\r\n        settings: {\r\n            ...settings,\r\n            ...actualSettings\r\n        },\r\n    });\r\n};\r\nexport const updateSettingsFromStorage = (store) => {\r\n\r\n    let storageSettings = getSettingsWithNoFilter();\r\n    const { settings } = store.getState();\r\n    \r\n    let newSettings = {...settings, ...storageSettings}\r\n    store.setState({ settings: newSettings });\r\n    \r\n};","import { fetchLocalizations } from \"./localizationActions\";\r\nimport * as notificationsActions from \"./notificationsActions\";\r\nimport * as searchActions from \"./searchActions\";\r\nimport * as settingsActions from \"./settingsActions\";\r\n\r\nexport default (store) => ({\r\n    fetchLocalizations: (state) => fetchLocalizations(store),\r\n\r\n    initEventNotifications: (state) =>\r\n        notificationsActions.initEventNotifications(store),\r\n    subscribeToEvents: (state, eventIds) =>\r\n        notificationsActions.subscribeToEvent(store, eventIds),\r\n    unsubscribeToEvents: (state, eventIds) =>\r\n        notificationsActions.unsubscribeToEvent(store, eventIds),\r\n\r\n    search: (state, eventIds) => searchActions.search(store, eventIds),\r\n    close: (state) => searchActions.close(store),\r\n    openCloseListener: (state) => searchActions.openCloseListener(store),\r\n\r\n    saveNotificationSoundOn: (state, actualValue) =>\r\n        settingsActions.saveNotificationSoundOn(store, actualValue),\r\n    saveSettings:(state, actualSettings) =>\r\n        settingsActions.saveSettings(store, actualSettings),\r\n    updateSettingsFromStorage: (state) =>\r\n        settingsActions.updateSettingsFromStorage(store),\r\n});\r\n","import { updateSettingsFromStorage } from \"./settingsActions\";\r\n\r\nexport const search = (store, text) => {\r\n    const { data } = store.getState();\r\n\r\n    let filtered = data.map((x) => {\r\n        var item = { ...x };\r\n        item.isVisible =\r\n            !text ||\r\n            text.length < 3 ||\r\n            item.name.toLowerCase().indexOf(text.toLowerCase()) > -1;\r\n        return item;\r\n    });\r\n\r\n    store.setState({ data: filtered });\r\n};\r\n\r\nexport const close = (store) => {\r\n    const { config } = store.getState();\r\n    store.setState({ config: { ...config, show: false } });\r\n};\r\n\r\nexport const openCloseListener = (store) => {\r\n    const { config } = store.getState();\r\n    if (config.openCloseEventName) {\r\n        document.addEventListener(\r\n            config.openCloseEventName,\r\n            function (e) {\r\n                updateSettingsFromStorage(store);\r\n                const { config } = store.getState();\r\n                let isOpen = config.show;\r\n                store.setState({ config: { ...config, show: !isOpen } });\r\n            },\r\n            false\r\n        );\r\n    }\r\n};\r\n","export const translations = {\r\n    \"ar\": () => import(/*webpackChunkName: 'calendar-settings-t-ar'*/\"../translations/ar\"),\r\n    \"de\": () => import(/*webpackChunkName: 'calendar-settings-t-de'*/\"../translations/de\"),\r\n    \"en\": () => import(/*webpackChunkName: 'calendar-settings-t-en'*/\"../translations/en\"),\r\n    \"es\": () => import(/*webpackChunkName: 'calendar-settings-t-es'*/\"../translations/es\"),\r\n    \"fr\": () => import(/*webpackChunkName: 'calendar-settings-t-fr'*/\"../translations/fr\"),\r\n    \"id\": () => import(/*webpackChunkName: 'calendar-settings-t-id'*/\"../translations/id\"),\r\n    \"ru\": () => import(/*webpackChunkName: 'calendar-settings-t-ru'*/\"../translations/ru\"),\r\n    \"tr\": () => import(/*webpackChunkName: 'calendar-settings-t-tr'*/\"../translations/tr\"),\r\n    \"zh-cht\": () => import(/*webpackChunkName: 'calendar-settings-t-zh-cht'*/\"../translations/zh-cht\"),\r\n    \"zh-cn\": () => import(/*webpackChunkName: 'calendar-settings-t-zh-cn'*/\"../translations/zh-cn\"),\r\n    \"vi\": () => import(/*webpackChunkName: 'calendar-settings-t-vi'*/\"../translations/vi\"),\r\n    \"fa\": () => import(/*webpackChunkName: 'calendar-settings-t-fa'*/\"../translations/fa\"),\r\n    \"pt\": () => import(/*webpackChunkName: 'calendar-settings-t-pt'*/\"../translations/pt\"),\r\n    \"cs\": () => import(/*webpackChunkName: 'calendar-settings-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","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}","export const TIME_FILTERS_VALUES = {\r\n    RecentNext: 'TimeFilter_RecentNext',\r\n    Today: 'TimeFilter_Today',\r\n    Tomorrow: 'TimeFilter_Tomorrow',\r\n    ThisWeek: 'TimeFilter_ThisWeek',\r\n    ThisMonth: 'TimeFilter_ThisMonth',\r\n    NextWeek: 'TimeFilter_NextWeek',\r\n    NextMonth: 'TimeFilter_NextMonth',\r\n    Yesterday: 'TimeFilter_Yesterday',\r\n    PreviousWeek: 'TimeFilter_PreviousWeek',\r\n    PreviousMonth: 'TimeFilter_PreviousMonth',\r\n    Custom: 'TimeFilter_Custom'\r\n}","import { getDateRange } from \"../../calendar/helpers/filter/dateRange\";\r\nimport { getSetting, setSetting } from \"../../common/helpers/settingStorageHelpers\";\r\nimport { FILTER_TYPE } from \"../constants\";\r\n\r\nconst SETTING_KEYS = {\r\n    Settings: \"calendarSettings\",\r\n};\r\nexport const persistSettings = (newSettings) => {\r\n    if (!newSettings) return;\r\n\r\n    let settings = getSetting(SETTING_KEYS.Settings);\r\n\r\n    newSettings = { ...settings, ...newSettings };\r\n\r\n    if (newSettings.filter) {\r\n        if (!newSettings.filter.time) {\r\n            newSettings.filter.time = INITIAL_SETTING.filter.time;\r\n            newSettings.filter.dateRange = getDateRange(\r\n                { time: newSettings.filter.time },\r\n                newSettings.timezoneOffset\r\n            );\r\n        }\r\n        newSettings.filter.type = FILTER_TYPE.custom;\r\n    }\r\n\r\n    setSetting(SETTING_KEYS.Settings, newSettings);\r\n};\r\n\r\nexport const getSettingsWithNoFilter = () => {\r\n    let settings = getSetting(SETTING_KEYS.Settings);\r\n\r\n    if (settings && settings.filter) {\r\n        delete settings.filter;\r\n    }\r\n\r\n    return settings;\r\n};\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 CALENDAR_VIEW = {\r\n    Configure_View_Basic: 0,\r\n    Configure_View_Default: 1,\r\n    Configure_View_Premium: 2,\r\n};\r\n","import { Component } from \"preact\";\r\nimport { connectWithTranslations } from \"../../common/helpers/translationsHelpers\";\r\nimport actions from \"../../calendar-settings/actions\";\r\nimport { GTM_ID, GA4EVENT } from \"../../calendar-common/constants\";\r\nimport NotificationSoundButton from \"../../common/components/NotificationSoundButton\";\r\nconst translations = {\r\n    vi: () =>\r\n        import(/*webpackChunkName: 'sound-alert-vi'*/ \"../translations/vi\"),\r\n    ar: () =>\r\n        import(/*webpackChunkName: 'sound-alert-ar'*/ \"../translations/ar\"),\r\n    de: () =>\r\n        import(/*webpackChunkName: 'sound-alert-de'*/ \"../translations/de\"),\r\n    en: () =>\r\n        import(/*webpackChunkName: 'sound-alert-en'*/ \"../translations/en\"),\r\n    es: () =>\r\n        import(/*webpackChunkName: 'sound-alert-es'*/ \"../translations/es\"),\r\n    fr: () =>\r\n        import(/*webpackChunkName: 'sound-alert-fr'*/ \"../translations/fr\"),\r\n    id: () =>\r\n        import(/*webpackChunkName: 'sound-alert-id'*/ \"../translations/id\"),\r\n    ru: () =>\r\n        import(/*webpackChunkName: 'sound-alert-ru'*/ \"../translations/ru\"),\r\n    tr: () =>\r\n        import(/*webpackChunkName: 'sound-alert-tr'*/ \"../translations/tr\"),\r\n    \"zh-cht\": () =>\r\n        import(\r\n            /*webpackChunkName: 'sound-alert-zh-cht'*/ \"../translations/zh-cht\"\r\n        ),\r\n    \"zh-cn\": () =>\r\n        import(\r\n            /*webpackChunkName: 'sound-alert-zh-cn'*/ \"../translations/zh-cn\"\r\n        ),\r\n    fa: () =>\r\n        import(/*webpackChunkName: 'sound-alert-fa'*/ \"../translations/fa\"),\r\n    pt: () =>\r\n        import(/*webpackChunkName: 'sound-alert-pt'*/ \"../translations/pt\"),\r\n    cs: () =>\r\n        import(/*webpackChunkName: 'sound-alert-cs'*/ \"../translations/cs\"),\r\n};\r\nclass SoundAlert extends Component {\r\n    componentWillMount() {\r\n        translations[\r\n            this.props.locale ? this.props.locale.toLowerCase() : \"en\"\r\n        ]().then((t) => {\r\n            this.setState({ translations: t.default });\r\n        });\r\n    }\r\n    render(\r\n        { config, translate, onCheckboxChanged, notificationSoundOn },\r\n        { translations }\r\n    ) {\r\n        if (!translations) return null;\r\n\r\n        return (\r\n            <div>\r\n                <h3 class=\"fxs_headline_small\">\r\n                    {translations.SoundAlert}\r\n                    <NotificationSoundButton\r\n                        gtmIdSoundOn={\r\n                            config.tracking && GTM_ID.CONFIGURATION_SOUND_ON\r\n                        }\r\n                        gtmIdSoundOff={\r\n                            config.tracking && GTM_ID.CONFIGURATION_SOUND_OFF\r\n                        }\r\n                        GA4IdSoundOn={\r\n                            config.tracking && GA4EVENT.ELEMENTS.CONFIGURATION_SOUND_ON\r\n                        }\r\n                        GA4IdSoundOff={\r\n                            config.tracking && GA4EVENT.ELEMENTS.CONFIGURATION_SOUND_OFF\r\n                        }\r\n                        g4Name={config.tracking && GA4EVENT.NAMES.FEATURES_CALENDAR}\r\n                        activated={notificationSoundOn}\r\n                        toggleSound={() => onCheckboxChanged()}\r\n                    />\r\n                </h3>\r\n\r\n                <p class=\"fxs_entryPlain_txt\">\r\n                    {translations.SoundAlert_Summary}\r\n                </p>\r\n            </div>\r\n        );\r\n    }\r\n}\r\n\r\nexport default connectWithTranslations(\"settings, config\", actions)(SoundAlert);\r\n","import { Component } from \"preact\";\r\nimport { connectWithTranslations } from \"../../common/helpers/translationsHelpers\";\r\nimport actions from \"../../calendar-settings/actions\";\r\nimport { CALENDAR_VIEW } from \"../constants/view\";\r\nimport { getKeysOfNotNullValues } from \"../../common/helpers/objects\";\r\nimport { GTM_ID, GA4EVENT} from \"../constants\";\r\nconst translations = {\r\n    vi: () =>\r\n        import(/*webpackChunkName: 'configure-view-vi'*/ \"../translations/vi\"),\r\n    ar: () =>\r\n        import(/*webpackChunkName: 'configure-view-ar'*/ \"../translations/ar\"),\r\n    de: () =>\r\n        import(/*webpackChunkName: 'configure-view-de'*/ \"../translations/de\"),\r\n    en: () =>\r\n        import(/*webpackChunkName: 'configure-view-en'*/ \"../translations/en\"),\r\n    es: () =>\r\n        import(/*webpackChunkName: 'configure-view-es'*/ \"../translations/es\"),\r\n    fr: () =>\r\n        import(/*webpackChunkName: 'configure-view-fr'*/ \"../translations/fr\"),\r\n    id: () =>\r\n        import(/*webpackChunkName: 'configure-view-id'*/ \"../translations/id\"),\r\n    ru: () =>\r\n        import(/*webpackChunkName: 'configure-view-ru'*/ \"../translations/ru\"),\r\n    tr: () =>\r\n        import(/*webpackChunkName: 'configure-view-tr'*/ \"../translations/tr\"),\r\n    \"zh-cht\": () =>\r\n        import(\r\n            /*webpackChunkName: 'configure-view-zh-cht'*/ \"../translations/zh-cht\"\r\n        ),\r\n    \"zh-cn\": () =>\r\n        import(\r\n            /*webpackChunkName: 'configure-view-zh-cn'*/ \"../translations/zh-cn\"\r\n        ),\r\n    fa: () =>\r\n        import(/*webpackChunkName: 'configure-view-fa'*/ \"../translations/fa\"),\r\n    pt: () =>\r\n        import(/*webpackChunkName: 'configure-view-pt'*/ \"../translations/pt\"),\r\n    cs: () =>\r\n        import(/*webpackChunkName: 'configure-view-cs'*/ \"../translations/cs\"),\r\n};\r\nclass ConfigureView extends Component {\r\n    componentWillMount() {\r\n        translations[\r\n            this.props.locale ? this.props.locale.toLowerCase() : \"en\"\r\n        ]().then((t) => {\r\n            this.setState({ translations: t.default });\r\n        });\r\n    }\r\n\r\n    getGTMTracking(view) {\r\n        switch (view) {\r\n            case CALENDAR_VIEW.Configure_View_Basic:\r\n                return GTM_ID.CONFIGURATION_BASIC_VIEW;\r\n            case CALENDAR_VIEW.Configure_View_Default:\r\n                return GTM_ID.CONFIGURATION_DEFAULT_VIEW;\r\n            case CALENDAR_VIEW.Configure_View_Premium:\r\n                return GTM_ID.CONFIGURATION_PREMIUM_VIEW;\r\n        }\r\n    }\r\n    getGA4Tracking(view) {\r\n        switch (view) {\r\n            case CALENDAR_VIEW.Configure_View_Basic:\r\n                return GA4EVENT.ELEMENTS.CONFIGURATION_BASIC_VIEW;\r\n            case CALENDAR_VIEW.Configure_View_Default:\r\n                return GA4EVENT.ELEMENTS.CONFIGURATION_DEFAULT_VIEW;\r\n            case CALENDAR_VIEW.Configure_View_Premium:\r\n                return GA4EVENT.ELEMENTS.CONFIGURATION_PREMIUM_VIEW;\r\n        }\r\n    }\r\n\r\n    render(\r\n        { config, view, onOptionSelected, showDescription },\r\n        { translations }\r\n    ) {\r\n        if (!translations) return null;\r\n\r\n        const keys = getKeysOfNotNullValues(CALENDAR_VIEW).filter(\r\n            (key) => key != \"Configure_View_Premium\" || config.hasPremium\r\n        );\r\n\r\n        return (\r\n            <div class={`fxs_c${showDescription ? \"s\" : \"\"}_configure_view`}>\r\n                <h2 class=\"fxs_headline_small\">\r\n                    {translations.Configure_View_Title}\r\n                </h2>\r\n                <p class=\"fxs_entryPlain_txt\">\r\n                    {translations.ConfigureView_Summary}\r\n                </p>\r\n                <form\r\n                    class={`fxs_c${showDescription ? \"s\" : \"\"}_view_selector`}\r\n                >\r\n                    {keys.map((key) => (\r\n                        <div\r\n                            class={`fxs_c${\r\n                                showDescription ? \"s\" : \"\"\r\n                            }_view_item ${\r\n                                view === CALENDAR_VIEW[key]\r\n                                    ? `fxs_c${\r\n                                          showDescription ? \"s\" : \"\"\r\n                                      }_view_item_active`\r\n                                    : \"\"\r\n                            }\r\n                            ${\r\n                                CALENDAR_VIEW.Configure_View_Premium ===\r\n                                CALENDAR_VIEW[key]\r\n                                    ? `fxs_c${\r\n                                          showDescription ? \"s\" : \"\"\r\n                                      }_view_item_disabled`\r\n                                    : \"\"\r\n                            }\r\n                            ${\r\n                                config.hasPremium\r\n                                    ? \"\"\r\n                                    : \"fxs_cs_premium_disabled\"\r\n                            }\r\n                            `}\r\n                        >\r\n                            <label\r\n                                onClick={() =>\r\n                                    onOptionSelected(CALENDAR_VIEW[key])\r\n                                }\r\n                                class={`fxs_c${\r\n                                    showDescription ? \"s\" : \"\"\r\n                                }_view_item_selector`}\r\n                            >\r\n                                <input\r\n                                    type=\"radio\"\r\n                                    name=\"viewOption\"\r\n                                    class={`fxs_c${\r\n                                        showDescription ? \"s\" : \"\"\r\n                                    }_view_item_checkbox`}\r\n                                    data-gtmid={\r\n                                        config.tracking &&\r\n                                        this.getGTMTracking(CALENDAR_VIEW[key])\r\n                                    }\r\n                                    data-ga4event-clk-name={ config.tracking && GA4EVENT.NAMES.FEATURES_CALENDAR}\r\n                                    data-ga4event-element = {this.getGA4Tracking(CALENDAR_VIEW[key])}                                    \r\n                                    onClick={() =>\r\n                                        onOptionSelected(CALENDAR_VIEW[key])\r\n                                    }\r\n                                    checked={view === CALENDAR_VIEW[key]}\r\n                                    disabled={\r\n                                        CALENDAR_VIEW[key] ===\r\n                                        CALENDAR_VIEW.Configure_View_Premium\r\n                                    }\r\n                                />\r\n\r\n                                <span\r\n                                    class={`fxs_c${\r\n                                        showDescription ? \"s\" : \"\"\r\n                                    }_view_item_label fxs_entryPlain_txt`}\r\n                                >\r\n                                    {translations[key]}\r\n                                </span>\r\n\r\n                                {showDescription && (\r\n                                    <span\r\n                                        class={`fxs_cs_view_description fxs_txt_size_xsmall ${\r\n                                            CALENDAR_VIEW.Configure_View_Premium ===\r\n                                            CALENDAR_VIEW[key]\r\n                                                ? \"fxs_marginBase_top\"\r\n                                                : \"\"\r\n                                        }`}\r\n                                    >\r\n                                        {translations[key + \"_Summary\"]}\r\n                                    </span>\r\n                                )}\r\n\r\n                                {showDescription &&\r\n                                    CALENDAR_VIEW.Configure_View_Premium ===\r\n                                        CALENDAR_VIEW[key] && (\r\n                                        <p>\r\n                                            <a\r\n                                                data-gtmid={\r\n                                                    config.tracking &&\r\n                                                    GTM_ID.CONFIGURATION_PREMIUM_LINK\r\n                                                }\r\n                                                data-ga4event-clk-name={ config.tracking && GA4EVENT.NAMES.FEATURES_CALENDAR}\r\n                                                data-ga4event-element = { config.tracking && GA4EVENT.ELEMENTS.CONFIGURATION_PREMIUM_LINK}\r\n                                                href={config.premiumUrl}\r\n                                                target=\"_blank\"\r\n                                                class=\"fxs_cs_view_premium fxs_txt_size_xsmall\"\r\n                                            >\r\n                                                {translations.Premium_More_Info}\r\n                                            </a>\r\n                                        </p>\r\n                                    )}\r\n                            </label>\r\n                        </div>\r\n                    ))}\r\n                </form>\r\n            </div>\r\n        );\r\n    }\r\n}\r\n\r\nexport default connectWithTranslations(\r\n    \"settings, config\",\r\n    actions\r\n)(ConfigureView);\r\n","export const getPostDateString = (date, culture) => {\r\n    if (date === undefined || date === null) {\r\n        return \"\";\r\n    }\r\n\r\n    var locale = culture.split('-')[0];\r\n    var month = new Intl.DateTimeFormat(locale, { month: 'long' }).format(date)\r\n    \r\n    var splittedDate = date.toString().split(\" \");\r\n    var splittedHours = splittedDate[4].split(\":\");\r\n    var eventDate = month + \" \" + splittedDate[2] + \", \" + splittedHours[0] + \":\" + splittedHours[1] + \" GMT\";\r\n\r\n    return eventDate;\r\n};\r\n\r\nexport const getOrdinalDay = (day) => {\r\n    switch (day) {\r\n        case \"one\":\r\n            return \"st\";\r\n        case \"two\":\r\n            return \"nd\";\r\n        case \"few\":\r\n            return \"rd\";\r\n        default:\r\n            return \"th\";\r\n    }\r\n};\r\n","export const SETTINGS_SAVED_EVENT_NAME = \"settings-saved-event-name\";\r\n","import { TIME_FILTERS_VALUES } from '../../constants'\r\nimport { nowDate } from '../../../common/helpers/dateHelpers'\r\nimport { addHours, startOfDay, endOfDay, startOfWeek, endOfWeek, addDays, addWeeks, subDays, subWeeks, startOfMonth, addMonths, subMonths, endOfMonth, subMinutes } from 'date-fns'\r\n\r\nconst getDateRange = (filter, timezoneOffset) => {\r\n    const now = nowDate(timezoneOffset)\r\n    const startOfThisWeek = startOfWeek(now, {weekStartsOn: 7})\r\n    const endOfThisWeek = endOfWeek(now, {weekStartsOn: 7})\r\n    const startOfToday = startOfDay(now)\r\n    const endOfToday = endOfDay(now)\r\n    const startOfThisMonth = startOfMonth(now)\r\n\r\n    switch(filter.time) {\r\n        case TIME_FILTERS_VALUES.RecentNext:\r\n            const dayOfWeek = now.getDay()\r\n            return {\r\n                from: subMinutes(now, 120),\r\n                to: dayOfWeek >= 5 ? addHours(now, (7-dayOfWeek)*24 + 48) : addHours(now, 48)\r\n            }\r\n        case TIME_FILTERS_VALUES.Today:\r\n            return {\r\n                from: startOfToday,\r\n                to: endOfToday\r\n            }\r\n        case TIME_FILTERS_VALUES.Tomorrow:\r\n            return {\r\n                from: addDays(startOfToday, 1),\r\n                to: addDays(endOfToday, 1)\r\n            }\r\n        case TIME_FILTERS_VALUES.Yesterday:\r\n            return {\r\n                from: subDays(startOfToday, 1),\r\n                to: subDays(endOfToday, 1)\r\n            }\r\n        case TIME_FILTERS_VALUES.ThisWeek:\r\n            return {\r\n                from: startOfThisWeek,\r\n                to: endOfThisWeek\r\n            }\r\n        case TIME_FILTERS_VALUES.ThisMonth:\r\n            return {\r\n                from: startOfThisMonth,\r\n                to: endOfMonth(now)\r\n            }\r\n        case TIME_FILTERS_VALUES.NextWeek:\r\n            return {\r\n                from: addWeeks(startOfThisWeek, 1),\r\n                to: addWeeks(endOfThisWeek, 1)\r\n            }\r\n        case TIME_FILTERS_VALUES.PreviousWeek:\r\n            return {\r\n                from: subWeeks(startOfThisWeek, 1),\r\n                to: subWeeks(endOfThisWeek, 1)\r\n            }\r\n        case TIME_FILTERS_VALUES.NextMonth:\r\n            const startOfNextMonth =  addMonths(startOfThisMonth, 1)\r\n            return {\r\n                from: startOfNextMonth,\r\n                to: endOfMonth(startOfNextMonth),\r\n            }\r\n        case TIME_FILTERS_VALUES.PreviousMonth:\r\n            const startOfPreviousMonth = subMonths(startOfThisMonth, 1)\r\n            return {\r\n                from: startOfPreviousMonth,\r\n                to: endOfMonth(startOfPreviousMonth),\r\n            }\r\n        case TIME_FILTERS_VALUES.Custom:\r\n            if(!filter.dateRange){\r\n                return {\r\n                    from: now,\r\n                    to: undefined,\r\n                }\r\n            }\r\n            \r\n            return filter.dateRange\r\n            \r\n        default:\r\n            return filter.dateRange\r\n    }\r\n}\r\n\r\nexport { getDateRange }\r\n","export const FILTER_TYPE = {\r\n    custom: \"custom\",\r\n    default: \"default\",\r\n    basic: \"basic\",\r\n};\r\n","import { Component } from \"preact\";\r\nimport { connectWithTranslations } from \"../../common/helpers/translationsHelpers\";\r\nimport actions from \"../../calendar-settings/actions\";\r\n\r\nclass ConfirmationPopUp extends Component {\r\n    render({ translate, cancel, save }) {\r\n        return (\r\n            <div class=\"fxs_detail fxs_cs_detail\">\r\n                <h4 class=\"fxs_headline_from_small_to_medium\">\r\n                    {translate(\"Pop_Up_Title\")}\r\n                </h4>\r\n                <p class=\"fxs_entryPlain_txt_small\">\r\n                    {translate(\"Pop_Up_Summary\")}\r\n                </p>\r\n                <div class=\"fxs_clearfix fxs_marginBase_top\" />\r\n                <button\r\n                    type=\"button\"\r\n                    class=\"fxs_btn fxs_btn_cta fxs_btn_small fxs_fRight \"\r\n                    role=\"button\"\r\n                    onClick={() => save()}\r\n                >\r\n                    {translate(\"Pop_Up_Confirm_Button\")}\r\n                </button>\r\n                <button\r\n                    type=\"button\"\r\n                    class=\"fxs_btn fxs_fRight fxs_btn_small \"\r\n                    role=\"button\"\r\n                    onClick={() => cancel()}\r\n                >\r\n                    {translate(\"Pop_Up_Cancel_Button\")}\r\n                </button>\r\n            </div>\r\n        );\r\n    }\r\n}\r\n\r\nexport default connectWithTranslations(\r\n    \"settings, config\",\r\n    actions\r\n)(ConfirmationPopUp);\r\n","window.Notifications = {};\r\nNotifications.OneSignal = function () {\r\n  return {\r\n    getTags: function () {\r\n      return new Promise((resolve, reject) => {\r\n        OneSignal.push(() => {\r\n          OneSignal.getTags(function (tags) {\r\n            resolve(tags);\r\n          });\r\n        })\r\n      });\r\n    },\r\n    isPushNotificationsSupported: function () {\r\n      return new Promise((resolve, reject) => {\r\n        OneSignal.push(() => {\r\n          var isSupported = OneSignal.isPushNotificationsSupported()\r\n          resolve(isSupported)\r\n        })\r\n      })\r\n    },\r\n    isPushNotificationsEnabled: function () {\r\n      return new Promise((resolve, reject) => {\r\n        OneSignal.push(() => {\r\n          OneSignal.isPushNotificationsEnabled(isEnabled => resolve(isEnabled))\r\n        })\r\n      })\r\n    },\r\n    onPermissionChanged: function (callback) {\r\n      OneSignal.push(() => {\r\n        OneSignal.on('notificationPermissionChange', (permissionChange) => {\r\n          console.log(\"Permissions changed: \" + permissionChange.to);\r\n          var isEnabled = permissionChange.to === 'granted'\r\n          if (callback && typeof callback === \"function\")\r\n            callback(isEnabled)\r\n        })\r\n      })\r\n    },\r\n    verifyPermision: function () {\r\n      return new Promise((resolve, reject) => {\r\n        OneSignal.push(() => {\r\n          OneSignal.getNotificationPermission(permission => {\r\n            switch (permission) {\r\n              case \"granted\":\r\n                console.log(\"Permission already granted\");\r\n                resolve();\r\n                break;\r\n              case \"default\":\r\n                console.log(\"Requesting permission: showing prompt\");\r\n                OneSignal.registerForPushNotifications();\r\n                reject();\r\n                break;\r\n              default:\r\n                console.log('Permission denied: User action required')\r\n                reject('DENIED');\r\n                break;\r\n            }\r\n          })\r\n        })\r\n      })\r\n    },\r\n    sendTag: function (key, value) {\r\n      return new Promise((resolve, reject) => {\r\n        OneSignal.push(() => {\r\n          OneSignal.getNotificationPermission(permission => {\r\n            OneSignal.sendTag(key, value);\r\n            console.log(\"Tag sent: [\" + key + \", \" + value + \"]\");\r\n\r\n            switch (permission) {\r\n              case \"granted\":\r\n                console.log(\"Permission already granted\");\r\n                resolve();\r\n                break;\r\n              case \"default\":\r\n                console.log(\"Requesting permission: showing prompt\");\r\n                OneSignal.registerForPushNotifications();\r\n                break;\r\n              default:\r\n                console.log('Permission denied: User action required')\r\n                reject('DENIED');\r\n                break;\r\n            }\r\n          })\r\n        })\r\n      })\r\n    },\r\n    deleteTag: function (key) {\r\n      return new Promise((resolve, reject) => {\r\n        OneSignal.push(() => {\r\n          OneSignal.deleteTag(key);\r\n          console.log('Tag deleted - ' + key);\r\n          resolve();\r\n        })\r\n      })\r\n    },\r\n    sendTags: function (tags) {\r\n      return new Promise((resolve, reject) => {\r\n        OneSignal.push(() => {\r\n          OneSignal.sendTags(tags)\r\n          resolve();\r\n        })\r\n      })\r\n    }\r\n  }\r\n};\r\nNotifications.Calendar = function (notification) {\r\n  const tagPrefix = \"CALENDAR_\";\r\n  var currentTags = {};\r\n\r\n  const processTags = (tags) => {\r\n    var calendarKeys = Object.keys(tags).filter(t => t.startsWith(tagPrefix))\r\n    var result = calendarKeys.map(x => x.replace(tagPrefix, \"\").toLowerCase())\r\n    return result;\r\n  };\r\n\r\n  this.onPermissionChanged = () => notification.onPermissionChanged();\r\n  this.isPushNotificationsEnabled = () => notification.isPushNotificationsEnabled();\r\n  this.isPushNotificationsSupported = () => notification.isPushNotificationsSupported();\r\n\r\n  this.verifyPermision = function () {\r\n    return new Promise((resolve, reject) => {\r\n      notification.verifyPermision()\r\n        .then(() => resolve())\r\n        .catch(err => {\r\n          reject(err);\r\n        })\r\n    });\r\n  };\r\n  this.getSubscriptions = () => {\r\n    return new Promise((resolve, reject) => {\r\n      if (Object.keys(currentTags).length > 0) {\r\n        var calendarTags = processTags(currentTags);\r\n        return resolve(calendarTags);\r\n      }\r\n      else {\r\n        notification.getTags()\r\n          .then(tags => {\r\n            if (!tags) {\r\n              currentTags = {};\r\n              return resolve([]);\r\n            }\r\n\r\n            currentTags = tags;\r\n            var calendarTags = processTags(tags);\r\n            console.log('Tags received: ' + JSON.stringify(calendarTags));\r\n            resolve(calendarTags);\r\n          })\r\n          .catch(err => reject(err))\r\n      }\r\n    })\r\n  };\r\n  this.subscribe = function (eventId) {\r\n    return new Promise((resolve, reject) => {\r\n      var tag = (tagPrefix + eventId).toUpperCase();\r\n      notification.sendTag(tag, \"1\")\r\n        .then(() => {\r\n          currentTags[tag] = \"1\"\r\n          const newTags = processTags(currentTags)\r\n\r\n          console.log('Subscribed to event ' + eventId)\r\n\r\n          this.verifyPermision()\r\n            .then(() => resolve(newTags))\r\n            .catch(err => {\r\n              if (err === 'DENIED')\r\n                console.log('User should active browser notifications manually (eventId: ' + eventId + ')')\r\n\r\n              reject(err);\r\n            });\r\n\r\n        })\r\n        .catch(err => {\r\n          if (err === 'DENIED')\r\n            console.log('User should active onesignal notifications manually (eventId: ' + eventId + ')')\r\n\r\n          reject(err);\r\n        })\r\n    })\r\n  };\r\n  this.unsubscribe = (eventId) => {\r\n    return new Promise((resolve, reject) => {\r\n      var tag = (tagPrefix + eventId).toUpperCase();\r\n      notification.deleteTag(tag)\r\n        .then(() => {\r\n          delete currentTags[tag]\r\n          const newTags = processTags(currentTags)\r\n\r\n          console.log('Unsubscribed to event ' + eventId)\r\n\r\n          resolve(newTags)\r\n\r\n        })\r\n\r\n        .catch(err => {\r\n          reject(err);\r\n          console.error(err);\r\n        })\r\n    })\r\n  }\r\n};\r\n\r\n\r\nvar notificationCalendar;\r\n\r\nexport const calendarNotificationHelper = () => {\r\n  return new Promise(function (resolve, reject) {\r\n    if (!notificationCalendar)\r\n      notificationCalendar = new Notifications.Calendar(new Notifications.OneSignal());\r\n    resolve(notificationCalendar);\r\n  });\r\n}\r\n"],"sourceRoot":""}