{"version":3,"sources":["webpack://fxsWidgets/../src/js/widgets/calendar-event-data/actions/localizationActions.js","webpack://fxsWidgets/../src/js/widgets/calendar-event-data/store.js","webpack://fxsWidgets/../src/js/widgets/calendar-event-data/actions/index.js","webpack://fxsWidgets/../src/js/widgets/calendar-event-data/actions/tabActions.js","webpack://fxsWidgets/../src/js/widgets/calendar-event-data/constants/gtmIds.js","webpack://fxsWidgets/../src/js/widgets/calendar-event-data/components/EventData.js","webpack://fxsWidgets/../src/js/widgets/calendar-event-data/components/EventDataContainer.js","webpack://fxsWidgets/../src/js/widgets/calendar-event-data/index.js"],"names":["translations","fetchLocalizations","_ref","store","storeCulture","getState","config","culture","toLowerCase","currentCulture","hasOwnProperty","catch","console","error","default","_x","apply","arguments","INITIAL_STATE","eventId","tracking","tabs","historical_chart","widgets","loaded","selected","attributes","height","historical_data","type","marketimpact_truerange","marketimpact_volatility","truerange_deviation","convertCulture","input","Object","keys","includes","tabSelected","state","tabName","previousTabSelected","previousSelected","selectedTab","tabToSave","_objectSpread","_defineProperty","setState","tabLoaded","GTM_ID","concat","widgetName","GA4EVENT","FEATURES_CALENDAR","TAB_NAME","WIDGET_NAME","EventData","_Component","props","_this","_callSuper","name","data","_inherits","key","value","this","loadCurrentTab","currentSelectedTab","forEach","widget","fxsWidgets","load","translate","_this2","h","class","map","tab","onClick","_extends","_this3","renderTabContent","renderTabs","renderContents","Component","connectWithTranslations","actions","EventDataContainer","_classCallCheck","dir","CalendarEventDataWidget","createCustomStore","createStore","Provider"],"mappings":"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","file":"calendar-event-data.4abbba63eb66df77a295.js","sourcesContent":["export const translations = {\r\n \"ar\": () => import(/*webpackChunkName: 'calendar-event-data-t-ar'*/\"../translations/ar\"),\r\n \"de\": () => import(/*webpackChunkName: 'calendar-event-data-t-de'*/\"../translations/de\"),\r\n \"en\": () => import(/*webpackChunkName: 'calendar-event-data-t-en'*/\"../translations/en\"),\r\n \"es\": () => import(/*webpackChunkName: 'calendar-event-data-t-es'*/\"../translations/es\"),\r\n \"fr\": () => import(/*webpackChunkName: 'calendar-event-data-t-fr'*/\"../translations/fr\"),\r\n \"id\": () => import(/*webpackChunkName: 'calendar-event-data-t-id'*/\"../translations/id\"),\r\n \"ru\": () => import(/*webpackChunkName: 'calendar-event-data-t-ru'*/\"../translations/ru\"),\r\n \"tr\": () => import(/*webpackChunkName: 'calendar-event-data-t-tr'*/\"../translations/tr\"),\r\n \"zh-cht\": () => import(/*webpackChunkName: 'calendar-event-data-t-zh-cht'*/\"../translations/zh-cht\"),\r\n \"zh-cn\": () => import(/*webpackChunkName: 'calendar-event-data-t-zh-cn'*/\"../translations/zh-cn\"),\r\n \"vi\": () => import(/*webpackChunkName: 'calendar-event-data-t-vi'*/\"../translations/vi\"),\r\n \"fa\": () => import(/*webpackChunkName: 'calendar-event-data-t-fa'*/\"../translations/fa\"),\r\n \"pt\": () => import(/*webpackChunkName: 'calendar-event-data-t-pt'*/\"../translations/pt\"),\r\n \"cs\": () => import(/*webpackChunkName: 'calendar-event-data-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 { 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 eventId: \"\",\r\n tracking: false\r\n },\r\n translations: null,\r\n tabs: {\r\n historical_chart: {\r\n widgets: [\"calendar-historical\"],\r\n loaded: false,\r\n selected: true,\r\n attributes: { height: \"400px\" },\r\n },\r\n historical_data: {\r\n widgets: [\"calendar-historical\"],\r\n loaded: false,\r\n selected: false,\r\n attributes: { type: \"table\", height: \"400\" },\r\n },\r\n marketimpact_truerange: {\r\n widgets: [\"marketimpact-truerange\"],\r\n loaded: false,\r\n selected: false,\r\n attributes: { height: \"400px\" },\r\n },\r\n marketimpact_volatility: {\r\n widgets: [\"marketimpact-volatility\"],\r\n loaded: false,\r\n selected: false,\r\n attributes: { height: \"400px\" },\r\n },\r\n truerange_deviation: {\r\n widgets: [\"marketimpact-truerangevsdeviation\"],\r\n loaded: false,\r\n selected: false,\r\n attributes: { height: \"400px\" },\r\n },\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","import { tabSelected, tabLoaded } from './tabActions'\r\nimport { fetchLocalizations } from './localizationActions'\r\n\r\nexport default (store) => ({\r\n fetchLocalizations: (state) => fetchLocalizations(store),\r\n tabSelected: (state, tabName, previousTabSelected) => tabSelected(store, tabName, previousTabSelected),\r\n tabLoaded: (state, tabName) => tabLoaded(store, tabName)\r\n})\r\n","export const tabSelected = (store, tabName, previousSelected) => {\r\n if(tabName == previousSelected)\r\n return;\r\n\r\n const { tabs } = store.getState()\r\n\r\n var selectedTab = tabs[tabName];\r\n\r\n const tabToSave = {\r\n ...tabs,\r\n [tabName]: {\r\n ...selectedTab,\r\n selected: true\r\n },\r\n [previousSelected]: {\r\n ...tabs[previousSelected],\r\n selected: false\r\n }\r\n }\r\n\r\n store.setState({\r\n tabs: tabToSave\r\n })\r\n}\r\n\r\nexport const tabLoaded = (store, tabName) => {\r\n\r\n const { tabs } = store.getState()\r\n\r\n var selectedTab = tabs[tabName];\r\n\r\n const tabToSave = {\r\n ...tabs,\r\n [tabName]: {\r\n ...selectedTab,\r\n loaded: true\r\n }\r\n }\r\n\r\n store.setState({\r\n tabs: tabToSave\r\n })\r\n}\r\n","export const GTM_ID = {\r\n TAB_NAME: tabName => `features-calendar-tab-${tabName}`,\r\n WIDGET_NAME: widgetName => `features-calendar-graph-${widgetName}`\r\n}\r\nexport const GA4EVENT = {\r\n NAMES: { FEATURES_CALENDAR: \"features-calendar\" },\r\n ELEMENTS: {\r\n TAB_NAME: tabName => `tab-${tabName}`,\r\n WIDGET_NAME: widgetName => `graph-${widgetName}`\r\n }\r\n}","import { h, Component } from \"preact\";\r\nimport { connectWithTranslations } from \"../../common/helpers/translationsHelpers\";\r\nimport actions from \"../actions\";\r\nimport { GTM_ID, GA4EVENT} from \"../constants/gtmIds\";\r\nclass EventData extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n currentSelectedTab = { name: \"\", data: {} };\r\n\r\n componentDidMount() {\r\n this.loadCurrentTab();\r\n }\r\n\r\n componentDidUpdate() {\r\n this.loadCurrentTab();\r\n }\r\n\r\n loadCurrentTab() {\r\n const { tabLoaded } = this.props;\r\n if (!this.currentSelectedTab.data.loaded) {\r\n this.currentSelectedTab.data.widgets.forEach((widget) => {\r\n fxsWidgets.load(widget, true);\r\n });\r\n tabLoaded(this.currentSelectedTab.name);\r\n }\r\n }\r\n\r\n renderTabs(translate, tabs, tabSelected, config) {\r\n return (\r\n <div class=\"fxs_ed_tabs_wrapper\">\r\n <ul class=\"fxs_ed_tabs\">\r\n {Object.keys(tabs).map(\r\n (tabName) => {\r\n const tab = tabs[tabName];\r\n if (tab.selected)\r\n this.currentSelectedTab = {\r\n name: tabName,\r\n data: tab,\r\n };\r\n return (\r\n <li\r\n class={`fxs_ed_tab_item ${\r\n tab.selected\r\n ? \"fxs_ed_tab_item_active\"\r\n : \"\"\r\n }`}\r\n onClick={() => {\r\n tabSelected(\r\n tabName,\r\n this.currentSelectedTab.name\r\n );\r\n }}\r\n data-gtmid={\r\n config.tracking &&\r\n GTM_ID.TAB_NAME(tabName)\r\n }\r\n data-ga4event-clk-name={ config.tracking && GA4EVENT.NAMES.FEATURES_CALENDAR}\r\n data-ga4event-element = { config.tracking && GA4EVENT.ELEMENTS.TAB_NAME(tabName)}\r\n\r\n >\r\n {translate(`tab_${tabName}`)}\r\n </li>\r\n );\r\n },\r\n translate,\r\n tabSelected\r\n )}\r\n </ul>\r\n </div>\r\n );\r\n }\r\n\r\n renderTabContent(config, tab) {\r\n return tab.widgets.map(\r\n (widget) => (\r\n <div\r\n class=\"fxs_clearfix fxs_marginBase_vertical\"\r\n data-gtmid={config.tracking && GTM_ID.WIDGET_NAME(widget)}\r\n data-ga4event-clk-name={ config.tracking && GA4EVENT.NAMES.FEATURES_CALENDAR}\r\n data-ga4event-element = { config.tracking && GA4EVENT.ELEMENTS.WIDGET_NAME(widget)}\r\n\r\n >\r\n <div\r\n fxs-widget\r\n name={widget}\r\n {...tab.attributes}\r\n event-id={config.eventId}\r\n ></div>\r\n </div>\r\n ),\r\n tab\r\n );\r\n }\r\n\r\n renderContents(config, tabs) {\r\n return Object.keys(tabs).map((tabName) => {\r\n const tab = tabs[tabName];\r\n return (\r\n <div\r\n class={`fxs_ed_content ${\r\n tab.selected ? \"fxs_ed_content_selected\" : \"\"\r\n }`}\r\n >\r\n {this.renderTabContent(config, tabs[tabName])}\r\n </div>\r\n );\r\n }, config);\r\n }\r\n\r\n render({ translate, config, tabs, tabSelected }) {\r\n return (\r\n <div class=\"fxs_ed_wrapper\">\r\n {this.renderTabs(translate, tabs, tabSelected, config)}\r\n {this.renderContents(config, tabs)}\r\n </div>\r\n );\r\n }\r\n}\r\nexport default connectWithTranslations(\"config,tabs\", actions)(EventData);\r\n","import { h, Component } from \"preact\";\r\nimport actions from \"../actions\";\r\nimport EventData from \"./EventData\";\r\nimport { connectWithTranslations } from \"../../common/helpers/translationsHelpers\";\r\n\r\nclass EventDataContainer extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n componentWillMount() {\r\n this.props.fetchLocalizations();\r\n }\r\n\r\n render({ translate }) {\r\n return (\r\n <div\r\n class=\"fxs_widget fxs_event_data\"\r\n dir={`${!!translate(\"IsRightToLeftOriented\") ? \"rtl\" : \"auto\"}`}\r\n >\r\n {<EventData />}\r\n </div>\r\n );\r\n }\r\n}\r\nexport default connectWithTranslations(\"config\", actions)(EventDataContainer);\r\n","import { h, Component } from 'preact'\r\nimport { Provider } from 'unistore/preact'\r\nimport { createStore } from './store'\r\nimport EventDataContainer from './components/EventDataContainer'\r\n\r\n\r\nclass CalendarEventDataWidget extends Component {\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 <EventDataContainer/>\r\n </Provider>\r\n )\r\n }\r\n}\r\n\r\nexport default CalendarEventDataWidget"],"sourceRoot":""}